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-37.tar.gz (827.8 kB view details)

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pym2149-37-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-37-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pym2149-37-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-37-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pym2149-37-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-37-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pym2149-37-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-37-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pym2149-37-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-37-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-37.tar.gz.

File metadata

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

File hashes

Hashes for pym2149-37.tar.gz
Algorithm Hash digest
SHA256 f7e0cdba4cfb435b4c7502ba4fa76277cc1ec1739d79756b561c6bdd89157dff
MD5 60e9835ff0ce8bff033292fe39c022d1
BLAKE2b-256 d3e08772d4acf7605f9c6e7ecc15bb3c32580e03d6b22b45494f3cb28e20c16f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4c903d4698dccac1de1507061964da9b5c8bf4cafb2b623577e1b62d46de47bc
MD5 3b472be4d771f4166104d324491849b7
BLAKE2b-256 b7f68fa49d902be0e2031a42ee2aa822cdcfae9927aa82ca4fcc17e1665c9089

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70a71cf078f31668c6ae701387b7481b9251cd68316ff2140cb947f690f99d84
MD5 74328d49f49c56834169daeff236542a
BLAKE2b-256 16a74143dade7c2c2c414e58280e9b883c1cb9a272af083c7fd91c33c6d462ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2cf5dac048f435fa9bd554ca00271484bd6808112d32ef6d4b655e3b1431400d
MD5 2f8d0f2b0c6e6fd337b6bfd0f7f85a13
BLAKE2b-256 662563862f69edeba14f738960b3253fb66f8e289372c17b6329adb0f16d93d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4236fd11122467c198b03801be1ab670b6da52ac9f9a4687b714786ac7fded73
MD5 31cb6ed490202a61bc5f5e436a74e096
BLAKE2b-256 74971f8a0ba1bb124d76b006a1d467dab8ff3ab9bcd8812ac85aee4e472536d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5463b1b0e499dd189f5daaf1aa26d104a24468a5f93e638b517a52e1450f56b0
MD5 9a121cfbe096e23d13de4ebf5cd6f110
BLAKE2b-256 289528b150a39de3395bef9f21fd1f2c22a4d5bf000b469765f746c0cdba3232

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4663d3bc264877ee36d5f8e0355b4d8cf83726502d5cc767cdedba8fc51ce741
MD5 f1dbee0f38d2b53cfca5a9699abdc578
BLAKE2b-256 df08aab58ed8c63372be00426e7e97b687f02c21036caae5e158e70240347d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 987ac9ad51a9d84c09b4c2264e45e42499edc4bb6c26da2217a6724e482a9d0c
MD5 a9e51c21cdd4ee6ca2d7ee88dd7b4035
BLAKE2b-256 5d57c147f37c8e29a401f6d567f4a755659c89b2a166b94855900084ae9d60e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8115f65ef816333e20bac9354c467fe6716da79f4b2a2758e7ca1f32e610ec43
MD5 79e81b610485f1f33e70329f5d5b1a75
BLAKE2b-256 526e7b481a33d9b6c38ad5a941b53106959b4cf06b59812fc99cb0add7817bca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 145c55e8991044fa2c8b1901f5f3a38bbbf8d99ed7ef42c8c31c8c3486243926
MD5 13d85c2266941f0c9076059ce3cbb7f2
BLAKE2b-256 efa049464babfb28492f66ee197e4688fc0fd60d65dc540d6506d7e2c8583793

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f28ce97afac5bdffb6331e3de6ae57241ac0ea00f5f470ae466ce722b7ef3aa
MD5 8e5e1ad7e78a4f33e71adde60f65ed49
BLAKE2b-256 4793756a872b39c98f0ea85fffa4d648e4bbe851242325e656bdd2cbd34f1118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a6b822cf749a371da174a06d993120b5077260440e6cd7d69614efd1bb1a228
MD5 2c8afa1aa252c9a05d18120e4e5aaa70
BLAKE2b-256 735b11be1431a6b118cae133fd08a3b07e67a9cd7955de2484eb5d1f3aac794c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 46fdb25fa93d546be50885edb3bc58e469bc796ddad5c106fe4a0d4ded03271f
MD5 dd25e1dba06f1eeea6ea34e3450de0f4
BLAKE2b-256 91da185c640ae5a0e591b26682f3116ff1bdfe54829729933716a18158481e72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 962fef66b0c98fdd38a89426be7d050113d50e56a159ce2473cd89fd36fce730
MD5 6bb4f5935e5192024d068107149b5206
BLAKE2b-256 0dd864b5fdeecacbc8938068d6865191f8925e6f6eafcce8bdcde66662d77e6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd3ac13341509ff84fc02ca07e72e065a1ee9185091e74ac67ddcef887300762
MD5 4a23744ceba442eb167eaf5681147ed4
BLAKE2b-256 16e96dfb530895139c84cc688158e03e4df5beeb747f4c3ee084ce09e38bb473

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de94fadbd8039b12089aadbdc10bfe37c8800a4a69af2d9cda6d43bb0dc34c7e
MD5 5942c3bcedc8703762eec4a5b604cc6e
BLAKE2b-256 2b8f080c0134afde4086450e8f85d00ff4b8e8cacb99480f2c57f9df0a3c3617

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5832275e64ac53420d81282e309bf170495bf7282c1ebea8cea0a434588da2ce
MD5 2321016d7ada9e286c2b3c5a495f518a
BLAKE2b-256 17a0ca30c28cea6906f1abb672b781382b574fc155e112266605c77022d2205d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d925558fc50531d580731a5890321dc4133d15de6cc43eef4c8789fbfd127b41
MD5 d4a2cf5c32b6c3e21e80a14733cf1b41
BLAKE2b-256 be72b2f5d4ca9bf93571889f2eafdaefda3333330d95912ee68d7f42ec3c3eec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0c0349be4ddfcfb8a45d2917d5ed92e7e209b4a2bc2d2ca653ea38c18d84404
MD5 d5bf5d114a8b53990abc34b09b9c82bd
BLAKE2b-256 876b960352244783083a3e3d423828e9aa48b96143d1c839a1df01f9be1fe784

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77bb519ad21685114d7e236ecab190b998d8a96aab15814bea08b5dc6d5dc427
MD5 8d0dc472f7954c2e5bef544517db8332
BLAKE2b-256 b968f9661c7f9218264c85e38bf6702f7cd60a7e3e8a15b1ce362bb93ccb62a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pym2149-37-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9fd7457dfaa1a4f6751cac0da2598c4369922c390752b50f51f3857bb18fb670
MD5 78968d716170a28b3639d52682f404c9
BLAKE2b-256 7121f9aa02864d2c8b6b1e6c29bbc14bbf3bed5cd7396e3f7ca66041ed5e3ce7

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