Initial release: 8-bit sound synthesizer with LLM/MCP integration
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
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
[workspace]
|
||||
members = [
|
||||
"crates/soundgen-core",
|
||||
"crates/soundgen-fmt",
|
||||
"crates/soundgen-io",
|
||||
"crates/soundgen-seq",
|
||||
"crates/soundgen-cli",
|
||||
"crates/soundgen-mcp",
|
||||
"crates/soundgen-gui",
|
||||
"crates/soundgen-runtime",
|
||||
]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/emil/soundgen"
|
||||
|
||||
[workspace.dependencies]
|
||||
soundgen-core = { path = "crates/soundgen-core" }
|
||||
soundgen-fmt = { path = "crates/soundgen-fmt" }
|
||||
soundgen-io = { path = "crates/soundgen-io" }
|
||||
soundgen-seq = { path = "crates/soundgen-seq" }
|
||||
soundgen-runtime = { path = "crates/soundgen-runtime" }
|
||||
|
||||
hound = "3"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
cpal = "0.15"
|
||||
eframe = "0.28"
|
||||
egui = "0.28"
|
||||
egui-file-dialog = "0.6"
|
||||
Reference in New Issue
Block a user