pysoundmonitor
Pure-Python player, reader and detector for Soundmonitor (64'er / Chris Hulsbeck) C64 SID tunes (HVSC tracker #6).
Consumes .sid files (PSID/RSID containers) and bare .prg images through the
shared pysidtracker base: the
Soundmonitor player is relocatable, so it is located by a relocation-invariant
hardware-register fingerprint and packed/relocating builds are detected by
running the tune's init in a 6502 emulator — container headers are not trusted.
SoundMonitorPlayer reproduces the replay byte-exact (validated against the
sidtrace oracle) by running the tune's own init/play over the shared
MemPlayer memory image.
Install
pip install pysoundmonitor
Usage
import pysoundmonitor as psm
song = psm.read("tune.sid") # path; or psm.parse(raw_bytes)
print(song.cia_latch, len(song.sections), len(song.instruments))
for section in song.sections:
print(section.cadence, section.tempo, section.pattern_length)
# Byte-exact playback (MemPlayer subclass driving the tune's own init/play):
player = psm.SoundMonitorPlayer(open("tune.sid", "rb").read())
grid = player.render_grid(250) # 25-reg, forward-filled per-frame grid
writes = list(player.register_writes(250)) # pysidtracker RegWrite log
player.render_wav("tune.wav", 250) # needs the `audio` extra
# Relocation-tolerant detection (untrustworthy header):
det = psm.SoundMonitorSidParser().detect("tune.sid")
print(det.kind) # DIRECT / RELOCATED / PACKED / UNKNOWN
Development
pip install -e ".[dev]"
pytest # offline synthetic fixtures + HVSC corpus
pytest -m oracle -n auto # byte-exact vs the sidtrace Docker oracle
python scripts/fetch_tunes.py # cache the HVSC reference tune (never committed)
Test tunes are HVSC copyright works: fetched and cached on demand (gitignored),
never committed. The oracle job needs Docker (anarkiwi/sidtrace) and renders
each covered tune with SoundMonitorPlayer, asserting a frame-exact match — see
docs/format.md.
See docs/format.md for the container, detection, and song-data model, and its HVSC oracle survey section for the whole-song comparison over every HVSC Soundmonitor tune.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for pysoundmonitor 0.5.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 | |
|---|---|---|---|
| pysoundmonitor-0.5.0.tar.gz | 32.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysoundmonitor-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.4 kB
Release files / pysoundmonitor-0.5.0.tar.gz
| Download URL | pysoundmonitor-0.5.0.tar.gz |
|---|---|
| Size | 32.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27e9eb7d4a209cc18df6e0516278aa7684b1dcbc20c806e14d18cb1d77147a8b
|
|
BLAKE2b-256 checksum How to use checksums |
47f283e9d3268924805d23ce1ac1aea4999ff987f00aca47d12fb4bdca85e391
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / pysoundmonitor-0.5.0-py3-none-any.whl
| Download URL | pysoundmonitor-0.5.0-py3-none-any.whl |
|---|---|
| Size | 24.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
55549181108d3a49de53045a364adf65ae92ef0ddec67fa2f33aa287d6ada844
|
|
BLAKE2b-256 checksum How to use checksums |
25305ef5d0084d1b3ef096abbdd98c0160c4142a8ed30121ecab20e469b116a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log