Soundgen is a Rust workspace for generating 8-bit/chiptune sound effects, UI sounds, and ambient textures for game audio assets. It features JSON-first sound specs, an MCP server for LLM tool-use, an egui GUI editor, and a runtime library with NES-authentic DAC emulation. Features: - 6 voice types: pulse, triangle, noise, DPCM, wavetable, FM - Effects: ADSR envelope, frequency sweep, biquad filter, vibrato - 13 built-in presets (SFX/UI/ambient) as JSON data files - MCP server: list_presets, generate_sfx, render_sound tools - Pattern-based sequencer (JSON song format) - egui GUI: virtual keyboard, preset browser, channel editor, undo/redo - Runtime: NES nonlinear DAC + SoundBank for game embedding - 90 tests, 0 warnings Crates: - soundgen-core: synthesis engine (no I/O) - soundgen-fmt: SoundSpec JSON schema + PresetRegistry - soundgen-io: WAV writer + audio playback - soundgen-seq: sequencer (patterns, songs) - soundgen-cli: gen/render/render-song/list-presets - soundgen-mcp: MCP server for LLM integration - soundgen-gui: egui editor - soundgen-runtime: NES DAC + SoundBank
30 lines
729 B
JSON
30 lines
729 B
JSON
{
|
|
"name": "drone",
|
|
"duration": 5.0,
|
|
"sample_rate": 44100,
|
|
"channels": [
|
|
{
|
|
"type": "triangle",
|
|
"frequency": { "start": 55, "end": 55 },
|
|
"envelope": { "attack": 1.0, "decay": 0.0, "sustain": 0.9, "release": 1.0 },
|
|
"volume": 0.4,
|
|
"pan": -0.3
|
|
},
|
|
{
|
|
"type": "triangle",
|
|
"frequency": { "start": 82.5, "end": 82.5 },
|
|
"envelope": { "attack": 1.5, "decay": 0.0, "sustain": 0.7, "release": 1.0 },
|
|
"volume": 0.3,
|
|
"pan": 0.3
|
|
},
|
|
{
|
|
"type": "pulse",
|
|
"duty": 12,
|
|
"frequency": { "start": 110, "end": 110 },
|
|
"envelope": { "attack": 2.0, "decay": 0.0, "sustain": 0.3, "release": 1.0 },
|
|
"volume": 0.15,
|
|
"pan": 0.0
|
|
}
|
|
]
|
|
}
|