retro-sfx-gen is a zero-dependency Python 3 script that procedurally synthesizes retro/chiptune-style sound effects from scratch using oscillators, pitch glides, arpeggios, ring modulation, filtered noise, and envelope shaping. Output is 44.1 kHz / 16-bit mono WAV. No recordings, no pip installs — just the standard library.
Covers 16 effect categories (coin, jump, laser, explosion, powerup, hit, ui_click, alarm, pickup, door, teleport, engine, blip, whoosh, land, shield), each with its own synthesis recipe. Generation is fully deterministic via CRC32-seeded RNG, making it suitable for reproducible builds and git-tracked audio pipelines.
A companion QC script validates every output file for correct format, duration, peak level, DC offset, silence, and click-free edges. Generated audio is royalty-free and commercially usable with no attribution required.
16bits-audio-mcp is a Zig-based MCP server that exposes game audio generation as tools callable by Claude. It produces 16-bit PCM WAV files using FM synthesis, reverb, ADSR envelopes, and multi-track mixing, all from the Zig standard library with zero external dependencies.
It covers three asset types: BGMs in 15 styles (adventure, dungeon, boss, cyber, horror, etc.) with 4-track arrangements; 20 sound effect types (jump, coin, explosion, laser, etc.) with pitch and volume control; and 12 jingle types for common game events like stage clear and game over. Scales, tempo, key, and a deterministic seed parameter give reproducible iteration.
A post-processing tool (wav_fx) chains effects such as reverb, delay, bitcrusher, chorus, and distortion, and a mixer tool combines multiple WAV files. Additional tools handle direct note/FM synthesis, WAV info, and playback. The workflow is prompt-driven: describe what you want to Claude, and WAV files are written to disk.
opal is a C11 implementation of the Yamaha YMF262 (OPL3) and its OPL2 predecessor — the chips behind AdLib and Sound Blaster cards. The core covers the full register set: two- and four-operator FM, all eight waveforms, tremolo/vibrato LFOs, percussion/rhythm mode with noise generator, timers, and stereo routing including the hardware pipeline delay between left and right channels. Sample-for-sample stereo output matches Nuked-OPL3 at the chip's native 49716 Hz, with internal resampling to any target rate.
The public API is eight functions. The chip instance holds no internal pointers, making it trivially copyable as a complete save state. Registers can be written immediately or queued with buffered timing for closer hardware fidelity. A bundled example player streams DRO v1, HSC, IMF, and WLF files to audio via miniaudio, and a WebAssembly build runs the same core in-browser.
Builds as a static library via CMake on Windows, Linux, macOS, Android, and iOS. The emulation core is public domain (Shayde of Reality/OpenMPT lineage); the surrounding C API and tooling are MIT.
opal-zig is a Zig binding for the opal OPL3/OPL2 FM synthesis emulator. It compiles the upstream C11 core via the Zig build system and exposes it as a native Zig module with no code generation step and no dependencies beyond libc. Requires Zig 0.16.0 or newer.
The public API wraps the eight C functions as methods on a plain `Opal` struct. Because the struct contains no internal pointers, copying an instance produces a complete save state, which is useful for rewinding or snapshotting synthesis state. Internal fields such as envelope stage, envelope generator output, and key state are exposed directly through mirrored `extern struct` types, making it straightforward to build visualizers on top of the emulator.
A layout verification test suite checks every field offset and struct size against the C compiler at build time, so Zig-side mirrors cannot silently drift from the C layout. A convenience `render` method fills buffers of interleaved stereo i16 frames. A demo target renders a short FM arpeggio to a WAV file.