Skip to main content

YM2149 emulator supporting YM files, OSC to JACK, PortAudio, WAV

Project description

pym2149

YM2149 emulator supporting YM files, OSC to JACK, PortAudio, WAV.

Install

These are generic installation instructions.

To use, disposably

Install the current release from PyPI to a virtual environment:

python3 -m venv venvname
venvname/bin/pip install -U pip
venvname/bin/pip install pym2149
. venvname/bin/activate

To use, permanently

# Tested on Linux and Mac:
pip3 install --break-system-packages --user pym2149

See ~/.local/bin for executables.

To develop

First install venvpool to get the motivate command:

pip3 install --break-system-packages --user venvpool

Get codebase and install executables:

git clone git@github.com:combatopera/pym2149.git
motivate pym2149

Requirements will be satisfied just in time, using sibling projects with matching .egg-info if any.

Usage

# Play a tune written in the Lurlene live coding language:
lc2portaudio 'contrib/Jochen Hippel - 7 Gates of Jambala Level 9.py'
lc2jack 'contrib/Jochen Hippel - 7 Gates of Jambala Level 9.py'

# Play a Dosound sound effect:
dosound2jack contrib/sounds.s snd19

Commands

bpmtool

Show a table of speed (updates per tracker line) to BPM.

dosound2jack

Play a Dosound script via JACK.

dosound2txt

Render a Dosound script to logging.

dosound2wav

Render a Dosound script to WAV.

dsd2wav

Render Dosound bytecode to WAV.

lc2jack

Play a Lurlene song via JACK.

lc2portaudio

Play a Lurlene song via PortAudio.

lc2txt

Render a Lurlene song to logging.

lc2wav

Render a Lurlene song to WAV.

mkdsd

Compile Dosound DSL scripts to bytecode for playback on a real Atari.

ym2jack

Play a YM file via JACK.

ym2portaudio

Play a YM file via PortAudio.

ym2txt

Render a YM file to logging.

ym2wav

Render a YM file to WAV.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pym2149-40.tar.gz (828.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pym2149-40-cp313-cp313-manylinux_2_34_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

pym2149-40-cp313-cp313-manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pym2149-40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pym2149-40-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

pym2149-40-cp312-cp312-manylinux_2_34_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

pym2149-40-cp312-cp312-manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pym2149-40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pym2149-40-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

pym2149-40-cp311-cp311-manylinux_2_34_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

pym2149-40-cp311-cp311-manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pym2149-40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pym2149-40-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

pym2149-40-cp310-cp310-manylinux_2_34_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

pym2149-40-cp310-cp310-manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pym2149-40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pym2149-40-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

pym2149-40-cp39-cp39-manylinux_2_34_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

pym2149-40-cp39-cp39-manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pym2149-40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pym2149-40-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

File details

Details for the file pym2149-40.tar.gz.

File metadata

  • Download URL: pym2149-40.tar.gz
  • Upload date:
  • Size: 828.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for pym2149-40.tar.gz
Algorithm Hash digest
SHA256 0cd0b4ceffa558cd201e91e564154b4aa87fe739059026a7bc6e4c9a71621fde
MD5 630b602009351c49f0f708427a312eb2
BLAKE2b-256 1ee526ba708ca545188b826650ad979017e49949f707060965f6497a364642c3

See more details on using hashes here.

File details

Details for the file pym2149-40-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e32f6ff1be066a99f0b19cc85c2513cb1532c5c63806575e75a1dd94f9ce7b36
MD5 f3c212848451a1b2daeb4b2735d66165
BLAKE2b-256 db5a310209d9e9680a7e45be6ad5f2d7fa59b00a6c18871328f3dd7285d0cb75

See more details on using hashes here.

File details

Details for the file pym2149-40-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2589e36907a9dfd8acb10656c672d41a20274afb86577dadf46f4c1fb8b871b2
MD5 3c48b6fb5a2b24c3928116fcd3711928
BLAKE2b-256 abbca6b1cdacd98128db1687d7258c9f336c259e27c9fc94950e381fa40814db

See more details on using hashes here.

File details

Details for the file pym2149-40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40c707227a27a6b6f820cf9256d92a4ab9004b7003041170e8b25422e3eeadd3
MD5 ec67618288513ac54f358669ff8c65cf
BLAKE2b-256 52506429000e84b3a8be847fe69ceb3ac91701f1df676d274bf76c43f271f8c9

See more details on using hashes here.

File details

Details for the file pym2149-40-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pym2149-40-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 90054bff0e457e4601da9414afd85a5559670f0bef419732658532e6726c42ff
MD5 7efdb5d8438f90db33946cc95f40ee9d
BLAKE2b-256 818b8978e5ded52a31829f6c4481e5653edd0aa8053a2f1e6401f2e60d90cba0

See more details on using hashes here.

File details

Details for the file pym2149-40-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f952b064b2d071c22aca109e3f999e7755555d65ef6fd694851caaf203015983
MD5 57e510b4412422b7b59ebcfdff632549
BLAKE2b-256 22fdff66d881e2bc110645d944fbb103303fa1dca600b0d2d5f5a56e1ab1fa89

See more details on using hashes here.

File details

Details for the file pym2149-40-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df85c94afcb8931b573693ed1677b67ae22ae98ca6bc6f2b361eb610cab485b6
MD5 d3669609f856a0c98f1519c4ed946bd0
BLAKE2b-256 6ee875cdfd31d229f55f2752aa58a120daea38b116cca61bdbc405dddd975a70

See more details on using hashes here.

File details

Details for the file pym2149-40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfa44dcc8c301ea8ef81f892704050ea64cd56d5d2756c4d365bb86516ed6f70
MD5 043cc45a6f7709e4eff81d3fef20613e
BLAKE2b-256 e83a6f2098e91c544d695d15bdaefeffaa0fff76bfef23ed6ae271e832431289

See more details on using hashes here.

File details

Details for the file pym2149-40-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pym2149-40-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2b8612fbb2a966013b786457e8f386340dfd85058cf151dd9150aaca1df4c9b1
MD5 40298ce2b7fe3c28444df7a01d30b5e6
BLAKE2b-256 4568f23b9f6f48cdc076fd59477a00994fbeae5407bad0718a0b8031587de2ab

See more details on using hashes here.

File details

Details for the file pym2149-40-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 957c0560765aba03e3a26b2c531140f5aad7a2724e4fce08baea6ddc2e6da489
MD5 64a80f43895c51b41f5b91a56f752fa0
BLAKE2b-256 91beb208c9031652174e57b9af971eff2bf1bce53305f158a0a2b8e5eb86036a

See more details on using hashes here.

File details

Details for the file pym2149-40-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ed10829d2c06f8db97e8de8659677e02ae42edb0f91dcad8b37677124fc088c
MD5 2f41c969f44996543598901fac710ffb
BLAKE2b-256 ebdb49a8b1ae1fd243ba6c66943df6c98a2b37ba0e0b4c8fec287a2d38e84a89

See more details on using hashes here.

File details

Details for the file pym2149-40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 745341b1309c6110fb384e729659e041bc6906754c3ff02aaaf25ffebebe7d45
MD5 c944ae9db6035b4ebd1d30a00094ffbc
BLAKE2b-256 dd7c071086b802fb069aba19fb0c581c4677a4bbac73f31c401ba2a98077a80a

See more details on using hashes here.

File details

Details for the file pym2149-40-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pym2149-40-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6b91af2ff82bc5ec94cbb3be67da57fba70f981cedc7eb02859929119c3f6672
MD5 c559c972bc325e9da61daddb7962a071
BLAKE2b-256 26cabea8684decdfd9652ec20015b2207f76011cabf8b0c1954e498726edef69

See more details on using hashes here.

File details

Details for the file pym2149-40-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d20acbba225472ba11ce626f524a7326db32f840aa7adb1dd18ba7eecc69e056
MD5 c41fba9efb675a3ab8505b7e71c96e0f
BLAKE2b-256 b85be32ab221db7a8c7ab1e4bb31fa69242e5d7b2a9219fb1cf419b4eae088e5

See more details on using hashes here.

File details

Details for the file pym2149-40-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12515dec2b20e8c38e48b4201d653e3c8814ebf26271a0d6d693a77448f568b0
MD5 22d30d94b6b57c9ee68183cd9d5b9c0b
BLAKE2b-256 847ecfb297c5dca84ab9653ac4a8e238a2483a2bb1c4610fbce052c6bf8cf212

See more details on using hashes here.

File details

Details for the file pym2149-40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f4c56df72555bbbd76521bd16046b154de5c759554f657ff25136f133303ada
MD5 0a4b9c1fdd11d50b597ed00a279411a8
BLAKE2b-256 a54267730d97ec88580bfc2ae88ae34e03e20257eb9512f034b4324926a80cb2

See more details on using hashes here.

File details

Details for the file pym2149-40-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pym2149-40-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d0b1b1806f09d2a2e86090d3991fae459bea5b46156ba819e8a3bc6211a4111c
MD5 aee6fa88269a1a776d43b2d94e2feb40
BLAKE2b-256 a2aa63e25800eb101f3a20692e5c3d5dd9bfe47b520e42c884ab112adca2cde4

See more details on using hashes here.

File details

Details for the file pym2149-40-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e244ae133b984fcead95ad6fb8600365dc3dfbd61f89f4db17e595b40c3af1c7
MD5 1e912bb5453e3cf7d3078447c67c4080
BLAKE2b-256 3c9d347507284e349899d15e2ba43b04569ced814d086bcf4447abc9ff9dcae5

See more details on using hashes here.

File details

Details for the file pym2149-40-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0f1ed5003cdc0f560ae91e0a0700cd0453b4a730e5e68f54db1b56add3d8059
MD5 37addddcb5e32d3398a484b638d8f69b
BLAKE2b-256 05bb8b0f2717dc5c299d3e1cefab5a9b475c35ed00bbd8e73c5858f75c67865b

See more details on using hashes here.

File details

Details for the file pym2149-40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pym2149-40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a4f30166683ba8b92bc41fa053dfe9bb983300923bbf6a43b2be2df122d7516f
MD5 9660efd43485aedbedae4294a1f338c1
BLAKE2b-256 ca86f18ee34a662741afafb9ae8eb8957d9a78b2007187aae72982c7cdd5819b

See more details on using hashes here.

File details

Details for the file pym2149-40-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pym2149-40-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dd372677b991f860e6736902e7bdeaa4a2c51c9958354694e3a8c49521a77745
MD5 7bcda6cc6d1a4e16a579ad49ba048450
BLAKE2b-256 fcf8687f7ed191eb06e9e0ec741b8ecd36b10aa6978b3cb426ee3f15e174ecc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page