pm-synth: a polyphonic drum-voice synth, a faithful f32 port of engine.js DRUMS (tone/ampEnv/v_noise/metalHat/clap recipes; RBJ biquads; exp envelopes). A Synth mixes active Voices sample-by-sample (transport-agnostic: offline render now, real-time device buffer fills later). All 808/909 + GM voices ported. synthrender (host bin): parse a groove -> track-format schedule -> trigger voices at click times -> 16-bit/48k mono WAV. Applies the editor default kit (kick-> kick909 etc.). Renders four demo grooves to audition off-bench. This is the reusable half of the audio feature; the device port (no_std + fixed-point/table osc, since the M0+ has no FPU) comes with the transport. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
710 B
TOML
18 lines
710 B
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"track-format",
|
|
"pm-ui",
|
|
"uisim",
|
|
"glyphgen",
|
|
"pm-synth",
|
|
"synthrender",
|
|
]
|
|
# pm-kit (RP2350/thumbv8m) and pm-grid (RP2040/thumbv6m) are embedded firmware (no_std + their own
|
|
# profile/build). Each is built on its own from its crate dir (e.g. `cargo build` inside pm-grid/,
|
|
# which picks up its .cargo/config.toml target), so they are kept OUT of this host workspace to
|
|
# avoid pulling their cortex-m deps into host `cargo build`/`cargo test`.
|
|
exclude = ["pm-kit", "pm-grid"]
|
|
|
|
# Profiles live at the workspace root (member profiles are ignored in a workspace). The firmware's
|
|
# size/LTO profile stays in pm-kit/Cargo.toml since pm-kit is excluded.
|