MeadowlarkDAW / rainout

Cross-platform audio and MIDI IO
Other
49 stars 10 forks source link

☔ rainout ☔ (Rust Audio IN-OUT)

Documentation Crates.io License

This project has been abandoned. If anyone wants to take this over, please let me know!

If you want to connect to audio and MIDI devices in Rust, check out cpal, midi-control, tinyaudio, and/or miniaudio instead.


A cross-platform, highly configurable, low-latency, and robust solution for connecting to audio and MIDI devices.

This crate is experimental and a work in progress. It is not yet ready for any kind of production use.

Current Progress

Backend Single Audio Device Multiple Audio Devices MIDI In/Out MIDI 2.0 In/Out
Pipewire (Linux) ◻ NYI ◻ NYI ◻ NYI ◻ NYI
CoreAudio (MacOS) ◻ NYI ◻ NYI ◻ NYI ◻ NYI
WASAPI (Windows) ⚠️ WIP (Currently output-only) ❓ Not on roadmap* ➖ Not Applicable ➖ Not Applicable
Windows MIDI ➖ Not Applicable ➖ Not Applicable ◻ NYI ◻ NYI
ASIO (Windows) ◻ NYI ◻ NYI ◻ NYI ◻ NYI
Jack (Linux) ✔️ Functional ✔️ Functional ✔️ Functional ◻ NYI
Jack (Windows) ✔️ Functional ✔️ Functional ✔️ Functional ◻ NYI
Jack (MacOS) ✔️ Functional ✔️ Functional ✔️ Functional ◻ NYI
Pulseaudio** (Linux) ◻ NYI ⛔ Not on roadmap ◻ NYI ⛔ Not on roadmap
Alsa** (Linux) ◻ NYI ⛔ Not on roadmap ◻ NYI ⛔ Not on roadmap
  • "Single Audio Device" means the ability to connect to a single audio device. This audio device can be input-only, output-only, or natively duplex (i.e. an audio interface with both microphone inputs and speaker outputs). "Multiple Audio Devices" means the ability to connect to a separate input and output audio device and then syncing them together in software.
  • * WASAPI makes it tricky to sync multiple audio devices together without adding a lot of extra latency, which is why it's not currently on the roadmap. However, we may add support for this if there is enough demand for it.
  • ** The Pulseaudio and ALSA backends may prove to be unecessary in the advent of Pipewire.

Contributing

If you wish to contribute, take a look at the current Design Document.

If you have any questions, you can reach us in the Meadowlark Discord Server under the rainout channel or the Rust Audio Discord Server under the rusty-daw channel.