ymfm-py
Python bindings for the ymfm FM synthesis library.
Supported Chips
- OPL Family: YM3526 (OPL), Y8950 (MSX-Audio), YM3812 (OPL2), YMF262 (OPL3), YMF289B (OPL3L), YMF278B (OPL4)
- OPLL Family: YM2413 (OPLL), YM2423, YMF281 (OPLLP), DS1001 (Konami VRC7)
- OPN Family: YM2203 (OPN), YM2608 (OPNA), YM2610/YM2610B (OPNB), YM2612/YM3438/YMF276 (OPN2), YMF288 (OPN3L)
- OPM Family: YM2151 (OPM), YM2164 (OPP)
- OPQ Family: YM3806, YM3533
- OPZ Family: YM2414 (TX81Z/DX11)
- SSG Family: YM2149 (AY-3-8910 compatible)
Installation
pip install ymfm-py
Usage
import ymfm
# Create a Sega Genesis sound chip
chip = ymfm.YM2612(clock=7670453)
# Write to registers
chip.reset()
chip.write(0, 0x22) # Select register
chip.write(1, 0x00) # Write value
# Generate audio samples
samples = chip.generate(1024) # Returns numpy array
Bundled Dependencies
This package includes the ymfm FM synthesis library by Aaron Giles, which is compiled and distributed as part of ymfm-py. The ymfm source code is located in vendor/ymfm/.
Examples
The examples/ directory contains sample scripts demonstrating ymfm-py usage:
vgmrender.py
VGM file renderer - a Python port of the vgmrender example from ymfm. Renders VGM (Video Game Music) files to WAV format with support for gzip-compressed .vgz files.
python examples/vgmrender.py input.vgm -o output.wav [-r 44100]
Supported chips: YM2149, YM2151, YM2203, YM2413, YM2608, YM2610, YM2612, YM3526, Y8950, YM3812, YMF262
sine_waves.py
Generates pure sine waves using all supported FM chips. Demonstrates how to program each chip type's registers to generate sine waves at specific frequencies (110Hz, 220Hz, 440Hz, 880Hz). Outputs WAV files to the output/ directory.
python examples/sine_waves.py
Covers: OPL, OPLL, OPN, OPM, OPQ, and OPZ families.
csm.py
WAV to VGM converter using CSM (Composite Sinusoidal Modeling) voice synthesis. Extracts 4 formant frequencies from audio and generate a VGM file that reproduces them on FM chips using the true CSM hardware mode (with manual key-on). Based on csm_voice_encode_synthesis_python by Yasunori Shimura.
python examples/csm.py [-c CHIP] [-i input.wav] output.vgm
python examples/csm.py --test [-c CHIP] output.vgm # Generate test VGM
Supported chips: YM2151, YM2203, YM2608, YM3526, YM3812, Y8950
License
BSD-3-Clause
Both ymfm-py and the bundled ymfm library are licensed under the BSD 3-Clause License. The example code in examples/csm.py is derived from csm_voice_encode_synthesis_python by Yasunori Shimura under the MIT License. See the LICENSE file for details.
Metadata
Release files for ymfm-py 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ymfm_py-0.2.0.tar.gz | 238.8 kB | Without provenance | Details for ymfm_py-0.2.0.tar.gz |
Built distributions (wheels)
Total release size: 8.2 MB
Release files / ymfm_py-0.2.0.tar.gz
| Download URL | ymfm_py-0.2.0.tar.gz |
|---|---|
| Size | 238.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9914b825cf0df8f10fc22f9ebdca80f7e5b8c8a15ac394f2ca7822624f6c62e4
|
|
BLAKE2b-256 checksum How to use checksums |
ee8e2df53e77a8cac77bd650f938071e8d298aef8676fdcd8235d6001127df6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-win_arm64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 288.6 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
12005bfe049c38becca0afa9f7d91b3274f04fc295c5311cdb5cba77d9349cb6
|
|
BLAKE2b-256 checksum How to use checksums |
c64f3b5e7ec4d8164b2595f41a5996ef55f6fe73c6a4e90815d26ee35efc4250
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-win_amd64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 300.2 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f4de8aba707aee806cf04e0df3b0e927c28da5fa6cff531ef6e83b046e6e7f92
|
|
BLAKE2b-256 checksum How to use checksums |
5c0e8a7ef7160c2beb9fff89cd82d54515f0ef5892d9d93b8690d1fb867a14de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 389.4 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9bf2724d75692645d562355ae5db7d301d3a62862b49587a01b1c806e0d946cd
|
|
BLAKE2b-256 checksum How to use checksums |
335a24f09bf3f95b31963928a6aa0d7ae66666b0f64363ac54229afbd4538b69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 368.2 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5d6e74e31c5148b34065d9d177c58894b4a7e2a895e7e5137f96beed3e61bc71
|
|
BLAKE2b-256 checksum How to use checksums |
edd71a599635c37e733d7f14ba9bced884d2e5c1a8a9425e891a032d0d7a0385
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 321.3 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5ff5f8cb655364c9f7c1425882972aa6a92ef368b565921d76dd2a30fea5b5b6
|
|
BLAKE2b-256 checksum How to use checksums |
073a2fcdaa730357792f93fb6977ea916c7abb9de05e34ef4c0c52cb975f7b3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 339.5 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
471589d98e76d7585030d43bd1d4d9c0a45d8a67894f87163f1bac2bff13e71d
|
|
BLAKE2b-256 checksum How to use checksums |
e38e12a5ff4b88922df726c5d698fc0cdf17423a760e22d0d08fd3bb1180e3f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-win_arm64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 280.7 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
101dabf1a9c722700c76a727a2625f5b7b47c0ea037908e5f0bf9bd44ac07a6c
|
|
BLAKE2b-256 checksum How to use checksums |
d7463497040facea32689b886ea2c0be9233a8c8079adc465e1e93a34f1dfeef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-win_amd64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 287.8 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
90f8c361530d8f3ff10be075d8fe14d8c8f14ede07f4c91acc5d0524563db265
|
|
BLAKE2b-256 checksum How to use checksums |
148a4d89472b2554ea0b6382e4f3bd87d8a373cae945962b90d9ce2cbf2eb210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 388.9 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a126f57718b0fa226c77d785c4ebc1a8d7ae31e424f6c7d869f66f70ac01f922
|
|
BLAKE2b-256 checksum How to use checksums |
278debb1ef3b518ee9724df80446b081453bcbab48ad3c66114570f9bf42288c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 365.3 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9c415ae456a566458e7d0abc2fc2a170f58591802accad3f3e429bef085be47b
|
|
BLAKE2b-256 checksum How to use checksums |
53a982c2e317f57a2a39f2f57f9c9db31c18a2a1763cba92748e17a692dbe244
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 319.0 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a0e5e7c36ec8d9062745f0f658432710a30bbcb63fe0d5277471e0069a104c07
|
|
BLAKE2b-256 checksum How to use checksums |
cbdbd600d123a28e11837b9a4bd496e4ccdef190d4035a2a0494db8086dc8af1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 339.0 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
bf020da9522e32f39d4f2548805f2eb7a27ce993c92d8e56ce85ffa8d7c091b6
|
|
BLAKE2b-256 checksum How to use checksums |
6a44083ec3034e4931a1776f9873a6ceb6125eed434356f6a3552e9a0ba9b05e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-win_arm64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 280.7 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
d9273e42ebb369a08200d3ee4a2b1285bbaa87bd242a4d7a52ca612df2f12054
|
|
BLAKE2b-256 checksum How to use checksums |
917714012873bd34d7451117f8fe9a06b08db87c82b2f2991b66d1c4a1f3d9ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-win_amd64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 287.8 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0835b4e5b0c2c90440d19463704055994a3499276637a05e36069ec8b8ed5a3e
|
|
BLAKE2b-256 checksum How to use checksums |
151181165aeeb2bed16b2bb10fd88000ee214445a88d4914267484e4ca63c4f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 389.0 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2f3ac2390eb6deb4edd6ac3a8607b051363764720a96b693ad6934eaf518760b
|
|
BLAKE2b-256 checksum How to use checksums |
5177312609198d1c5f5a3845e9e6cfdf8cf18c91557cc8dd6afec0ea1318a452
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 365.6 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
61ee8502cbbb9df048b33155ad65e9a289f7df79c6c8e7340eeb06923e5e8542
|
|
BLAKE2b-256 checksum How to use checksums |
fb5a8b1720e4d83b664de9527920d33b66144a8321e934f6ec05ad00fa14a236
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 318.9 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4579de53c51b69b03aaba256feea11b654a3790880c380e09b592c804b6dcda2
|
|
BLAKE2b-256 checksum How to use checksums |
f0de75547b7a83c685575b79a8b7e9aea288cf6a25757285a391be13f82383e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 338.9 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
43a74f99c6d1fc7b9058c0b64bac792f2df9f8bf98d4f2567c7e08202317dbae
|
|
BLAKE2b-256 checksum How to use checksums |
2c1ede7c46b7527361e90f9e39d891994948eba4a0adc88e2c96d1a5c77687b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-win_arm64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 277.7 kB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
cfc7a5f2c72cac9e93ad90df0615df47397326c9261249ace54e2354c46a59d4
|
|
BLAKE2b-256 checksum How to use checksums |
d087d430d45a8a17c37c4f1d984620d79cce51372ada8aecfb7e1a838b85b2c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-win_amd64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 287.1 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
dc1400acad4f6680c375256627ea223c843ca61521017ef96d7b26d548efa4fe
|
|
BLAKE2b-256 checksum How to use checksums |
8055046a1927c4a9371c98c1f519a0ab65c5c61db85543357436c840a3652b92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 397.5 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
32b792943efe74f0c1313b8ee8ccde3bf8e07c5ee7f6bc83b54afba39bd18bbc
|
|
BLAKE2b-256 checksum How to use checksums |
340a0e8941219c53fdd32befe674a80e22bbea98ed24571687b0929929f96cbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 365.2 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5e44ff3f2d791ca6caa29307b28e0e2b6250c37ffab47dcfdc92dd701e6a2944
|
|
BLAKE2b-256 checksum How to use checksums |
f963358f0f06b8ef1b8ad989ef258034f4abf4dcd212ece2a776ed448ca509f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 317.6 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
95ebf9b97cb9a57516ee14a2aa3c2f712c152d2bed25226ac846fc898639bb2d
|
|
BLAKE2b-256 checksum How to use checksums |
66d02f4c5a8189b69db095e3b6306d855d441e0ecf85242a8e6f6564106d993b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / ymfm_py-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | ymfm_py-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 330.3 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
ed4e298c1bac199a248d53b6f70693e2ef8566f902b3fadfc518e7b5c08d05a6
|
|
BLAKE2b-256 checksum How to use checksums |
7ee507cd20a2a4c6211a92f12e7a3bfdf1fb3367b9bcc2ace104ae102e703ec5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Security for ymfm-py 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.