Looks very nice, would you tell us a little bit about what you used to build this? I am just getting started with Rust and it would be cool to hear what approach you went and what you would recommend when starting today.
Heh, I always get those two crates names confused, even now, rereading comments I again thought it was "clap" and not "cpal" (because "clap" like in "clapping").
Dart being a GC'd runtime makes it quite hard to use for low latency audio applications, probably not as critical for audio input as output, but still potential issue, for more details see: https://github.com/dart-lang/sdk/issues/46943
More details on Rust backend:
For listening (getting audio signal from microphone) I used:
- Android: https://crates.io/crates/oboe
- native desktop/iOS (not currently released): https://crates.io/crates/clap
- Web: https://crates.io/crates/web-sys (so basically JS Web Audio API called from Rust compiled to WASM).
For pitch detection:
- https://crates.io/crates/pitch-detection