pym2149
From ym2149.org
YM2149 emulator in Python, NumPy and a little Cython where it matters. The aims of this project are to demonstrate it can be done in Python (done), accurate emulation (now probably the most accurate implementation out there), and interoperability with existing tools (MIDI support). Unlike other projects, we don't emulate the rest of the Atari ST.
- This project is fairly mature, further effort is likely to go towards developing Lurlene and Concern with pym2149 as their chief target
- pym2149 provenance
- Accuracy
- Project stats
System requirements
- Linux, but some stuff may work on other platforms
- ALSA for MIDI support
- JACK Audio Connection Kit for real-time rendering
Install
hg clone https://combatopera@bitbucket.org/combatopera/pym2149 cd pym2149
- To avoid ruining the system python installation, we're going to build a dedicated python environment
./drone.io.sh
- This will automatically download the pyrbo and pyven projects next to pym2149, download and configure Miniconda (a free scientific python distribution) next to pym2149, and run the tests
- YM files typically come compressed, and pym2149 requires
lha
to automatically unpack them- Debian/Ubuntu package:
lha
orlhasa
- Windows: http://gnuwin32.sourceforge.net/packages/lha.htm and add its folder to your
PATH
- Debian/Ubuntu package:
- For JACK output you'll need jackd running, I use qjackctl to manage it
- For MIDI support see MIDI
Play
- You can get some ZIPs of YM files from http://pacidemo.planet-d.net/aldn/
- Barry Leitch is a good start
- Now the
ym2wav.py
script can convert a YM file to WAV- e.g.
./ym2wav.py 'Utopia 1.ym' out.wav
or just./ym2wav.py 'Utopia 1.ym' - | aplay
- e.g.
- To play via JACK ensure jackd is running (I use
qjackctl -s
) and then./ym2jack.py 'Utopia 1.ym'