Skip to main content

pydmcsid

Pure-Python reader and player for DMC (Demo Music Creator) SID tunes — the C64 player by Brian/Graffity ("-PLAYER (C) BRIAN/GRAFFITY!").

A DMC .sid is the player binary plus the per-tune song data resident in the same image. pydmcsid loads the image, locates the per-tune table bases from the player code operands (no baked addresses — a differently-sized tune relocates its tables), and runs a faithful integer transcription of the 6502 play routine, exposing the per-frame SID register writes.

Usage

import pydmcsid

song = pydmcsid.read("tune.sid")
for w in pydmcsid.iter_register_writes(song, max_frames=50 * 60):
    print(w.clock, w.reg, w.val)   # absolute CPU cycle, $D4xx reg offset, value

iter_register_writes follows the shared py* register-log convention (pygoattracker / pymusicassembler): one RegWrite(clock, reg, val) per SID write, frames cycles_per_frame apart. The DMC player emits one tight write burst per VBI play call.

What it models

Tempo divider, per-voice orderlist walk (transpose / loop / stop), pattern walk (note / instrument-select / duration / effect / gate), stride-11 instrument records driving PW init + a 16-bit PW sweep, the $FF-arp wavetable, triangle vibrato, glide, the pitch-slide effect and a 6-step filter sweep, the hard-restart window, and the final per-voice frequency compose. Transcribed from the DMC disassembly.

License

Apache-2.0.

Metadata

Release files for pydmcsid 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydmcsid 0.1.0
File Size Uploaded
pydmcsid-0.1.0.tar.gz 21.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydmcsid 0.1.0
File Interpreter ABI Platform
pydmcsid-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.0 kB

Release files / pydmcsid-0.1.0.tar.gz

Download URL pydmcsid-0.1.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b3d34c9024a1fb53f8991e59218ed02c13b43c7dd4a03da7ca2e58e7de428f3b
BLAKE2b-256 checksum
How to use checksums
b17ba59b953b56daa2e1ae01368bdcba5a11098ecb0b9db8bbdb9482bec7cdcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 26, 2026.

Transparency log

Release files / pydmcsid-0.1.0-py3-none-any.whl

Download URL pydmcsid-0.1.0-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
db93ebaf60aba0177ad9706075c11f420e5e04a93b1a2ce8afb9cf399704ec7a
BLAKE2b-256 checksum
How to use checksums
d5dcf52910e07f9402a289142d0d375e0fd03f9b0bedcc0bf67019e006a7a853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page