PSFTracker is a suite of DOS and Python programs for composing and playing Adlib/YM3812/OPL2 chip music.
There are plenty of other, excellent Adlib trackers out there, but none had the exact feature set I was looking for, so I wrote my own.
PSFTracker supports:
- 9 channels of 2-op synthesis.
- Arpeggiation, pitch slide, note cut, and modulator volume effects.
- A dedicated "volume" column (like MilkyTracker/XM).
PSFTracker does not support:
- Extra OPL3 channels and waveforms (although it runs fine on an OPL3).
- Rhythm mode
The following is a YouTube video: click to play.
https://github.com/larsimmisch/pyalsaaudio/ pip install pyalsaaudio
This isn't in any distro, as far as I know. Fortunately, it has absolutely no dependencies so it is simple to install from its PyPi project page.
Simply "git clone" this repo somewhere and you're off and running.
- The
.pyfiles require Python 2 (tested on 2.7.9). - Each
.sfile is nasm 80386 assembly, targeting a DOS machine with a Sound Blaster or Adlib compatible sound card. Each.sfile produces a native DOS COM binary; assemble withnasm -f bin foo.s -o foo.com.
###player/ DOS Adlib player.
The Real Deal. To use this, place a song file in the directory, then modify the line incbin "testsong" (in player.s) to point to your song file. When you compile with nasm, you will get one monolithic .com executable containing song and player.
###playspkr/ DOS PC-Speaker player.
This is a little hacky player that takes specially formatted 1-channel songs and blasts them out the PC speaker.
###python/ Python utilities that let you play and write songs on a modern PC. Contains small implementations of the song player and viewer, including software OPL2 Adlib emulation via pyopl.
###tracker/ DOS Adlib tracker. (Doesn't exist yet).
For now, contains a simple python "tracker" inspired by edlin. It's pretty clunky, but it's enough to write simple songs.
###songs/ The Adlib song format, and some test songs.
###utill/ DOS technical demonstrators.
These exercise features I wanted to add to the tracker or player. Feel free to ignore them.
PSFTracker is still under development and you shouldn't count on any part of the code remaining stable.
The song format, however, is stable. See songs/format.s and playspkr/format.s, and this repository's Wiki section, for more information.
Honestly, it's a bit early for that. But feel free to contact me with feature requests and general feedback.
PSFTracker is released into the public domain. If you find it useful, then use it -- whether as a finished tool to make music, or as a building block for your own Python/DOS audio experimentation!
Share and Enjoy.
