Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kometbomb/prototracker
Prototracker
https://github.com/kometbomb/prototracker
chiptune chiptune-tracker fakebit sdl2 sequencer tracker
Last synced: 5 days ago
JSON representation
Prototracker
- Host: GitHub
- URL: https://github.com/kometbomb/prototracker
- Owner: kometbomb
- License: mit
- Created: 2017-04-05T09:43:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-12-22T09:12:59.000Z (almost 3 years ago)
- Last Synced: 2024-08-02T16:34:30.968Z (3 months ago)
- Topics: chiptune, chiptune-tracker, fakebit, sdl2, sequencer, tracker
- Language: C++
- Homepage: http://kometbomb.net/prototracker/
- Size: 422 KB
- Stars: 125
- Watchers: 4
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Prototracker
Note: Prototracker is not the same thing as Prototracker-modular or Prototracker-OPLL. They have their own forks.
Prototracker is a multiplatform fakebit chiptune tracker. [Try the online version.](http://kometbomb.net/prototracker/)
The editor is a fairly normal tracker. The synth is an absolutely minimal single-oscillator synth (with 256 preset waveforms). Macros are used to create "instruments" and also some normal channel effects. Most keyboard shortcuts are the same as in Protracker. See the docs/ directory for help.
Supported platforms:
* HTML5 (see the link above)
* Windows (MinGW)
* Linux
* Mac (just use the Linux makefile)
* Chip8 (runs great on a PocketCHIP)
* Probably anything SDL2 supports## Building
Simply do ```make mingw``` where "mingw" is your platform of choice. Do ```make``` to see the supported platforms.
### Building for OSX
To install SDL/SDL2 on OSX(using brew), type ```brew install sdl2 sdl sdl_image sdl_mixer sdl_ttf portmidi```. If you are getting the ```fatal error: 'SDL_image.h' file not found``` error, type ```apt-get install libsdl2-image-dev```. You should then be able to run ```make linux```.
The binary needs the files in the assets/ directory to work properly.
## Prototracker as a synth testbed
Prototracker was also created for testing audio/synth code (while having some minimal setup for a song structure), so it is quite easily extendable. Each of the channels runs an instance of ITrackState and IOscillator, and will simply extend IPlayer and ISynth to setup your own ITrackState (from IPlayer) and/or IOscillator (from ISynth).
The TrackState, Oscillator and Synth classes included (see src/) implement a minimal wavetable synth that has two extra track effects (W and Q). Since it's all per track, you can have each channel use a different set of effects and oscillators (think something like the audio capabilities of the NES). Just init the tracks in IPlayer::IPlayer() and ISynth::ISynth().