Pym2149: Difference between revisions

From ym2149.org
Jump to navigationJump to search
(Created page with "{{lowercase}} <div style="float: right"> __TOC__ </div> 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. * I'm not working on this any more, it's become more about making Pyt...")
 
No edit summary
Line 5: Line 5:
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.
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.


* I'm not working on this any more, it's become more about making Python fast enough than making music
* This project is fairly mature, further effort is likely to go towards developing [[Lurlene]] and [[Concern]] with pym2149 as their chief target
* [[pym2149 provenance]]
* [[pym2149 provenance]]
* [[Accuracy]]
* [[Accuracy]]

Revision as of 11:33, 19 April 2024

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.

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
  • 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
  • To play via JACK ensure jackd is running (I use qjackctl -s) and then ./ym2jack.py 'Utopia 1.ym'

Dev