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
This commit is contained in:
60
Cargo.toml
Normal file
60
Cargo.toml
Normal file
@@ -0,0 +1,60 @@
|
||||
[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" }
|
||||
Reference in New Issue
Block a user