Skip to content

Useful Libraries

B0ney edited this page Jun 18, 2023 · 3 revisions

Check out: https://rust.audio/

  • symphonia - Audio decoding library
  • rubato - Asynchronous resampling
  • cpal - Cross platform audio library
  • midir - Cross-platform, real-time midi processing. Supports alsa, jack, winrt
  • midly - MIDI decoder and encoder
  • atomic_float
  • spin_sleep - accurate sleeping
  • parking_lot
  • hound - WAV output
  • bytemuck
  • arrayvec
  • once_cell
  • realfft - Real-to-complex forward FFT and complex-to-real inverse FFT based on RustFFT

The Rust ecosystem is still young, so there are a couple of features we may need. e.g. mp3, ogg, flac output.

C/C++ Bindings:

  • sdnfile - Allows reading and writing of many different sampled sound file formats.
  • ffmpeg

Adding cross-language bindings as a dependency can make building RMMS more complex. Additionally, some bindings only allow dynamic linking (such as ffmpeg).

For those reasons, linking against cross-language libraries should be optional. i.e. only enabled though a compilation flag.

Clone this wiki locally