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
61 lines
2.2 KiB
TOML
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" }
|