Files
analogue_synth/Cargo.toml
Matt Spencer 496b6bdc71 Initial commit of a toy analogue audio generator
Key components:
- no_std core so it can be used bare metal on embedded systems
- default implementation for RPi 2350, with midi input and I2s output using PIO
- Visualiser for the web to play with on a dev system
2026-03-23 15:06:31 +00:00

61 lines
2.2 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/synth-core",
"crates/synth-visualiser",
"crates/synth-embedded",
]
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
strip = "symbols"
[profile.release-wasm]
inherits = "release"
opt-level = "z"
lto = "fat"
panic = "abort"
[workspace.dependencies]
# no_std-compatible math
libm = { version = "0.2", default-features = false }
num-traits = { version = "0.2", default-features = false }
micromath = { version = "2.1", default-features = false }
# Stack-allocated collections
heapless = { version = "0.8", default-features = false }
# MIDI
midi-types = { version = "0.1", default-features = false }
# WASM / browser
wasm-bindgen = { version = "0.2" }
js-sys = { version = "0.3" }
wasm-bindgen-futures = { version = "0.4" }
console_error_panic_hook = { version = "0.1" }
# Serialisation
serde = { version = "1", default-features = false, features = ["derive"] }
# Embassy — RP2350 support is only in the git repo, not crates.io.
# Cargo pins the resolved commit into Cargo.lock on first build.
# Pin a specific `rev = "..."` for reproducible builds.
embassy-executor = { git = "https://github.com/embassy-rs/embassy", default-features = false }
embassy-rp = { git = "https://github.com/embassy-rs/embassy", default-features = false }
embassy-sync = { git = "https://github.com/embassy-rs/embassy", default-features = false }
embassy-time = { git = "https://github.com/embassy-rs/embassy", default-features = false }
embassy-futures = { git = "https://github.com/embassy-rs/embassy", default-features = false }
# Embedded ecosystem (crates.io — stable)
cortex-m = { version = "0.7", default-features = false }
cortex-m-rt = { version = "0.7", default-features = false }
defmt = { version = "1.0.1", default-features = false }
defmt-rtt = { version = "1.1.0", default-features = false }
panic-probe = { version = "1.0.0", default-features = false }
fixed = { version = "1.23", default-features = false }
static-cell = { version = "2", default-features = false }
pio = { version = "0.3", default-features = false }
# pio-proc = { version = "0.3" }