Cross-platform audio in Rust
Go to file
mitchmindtree a2fe9386af [coreaudio] Fix handling of non-default sample rates for input streams (#214)
* [coreaudio] Fix handling of non-default sample rates for input streams

Currently when building an input stream the coreaudio backend only
specifies the sample rate for the audio unit, however coreaudio requires
that the audio unit sample rate matches the device sample rate.

This changes the `build_input_stream` behaviour to:

1. Check if the device sample rate differs from the desired one.
2. If so, check that there are no existing audio units using the device
at the current sample rate. If there are, panic with a message
explaining why.
3. Otherwise, change the device sample rate.
4. Continue building the input stream audio unit as normal.

Closes #213.

* Update CHANGELOG for coreaudio input stream sample rate fix

* Publish 0.8.1 for coreaudio input stream sample rate fix
2018-04-01 13:25:46 +02:00
.circleci Add testing on circle-ci (#171) 2017-10-21 15:08:34 +02:00
alsa-sys Bump alsa-sys version number 2017-03-06 15:57:18 +00:00
examples Update to a more general Device and Stream API. Add support for input streams (E.g. microphone). Add default format methods. (#201) 2018-02-12 14:10:24 +01:00
src [coreaudio] Fix handling of non-default sample rates for input streams (#214) 2018-04-01 13:25:46 +02:00
.gitignore Update to a more general Device and Stream API. Add support for input streams (E.g. microphone). Add default format methods. (#201) 2018-02-12 14:10:24 +01:00
.rustfmt.toml Run rustfmt on the code (#162) 2017-10-11 13:24:49 +02:00
.travis.yml Stop publishing on gh-pages 2017-02-10 09:45:41 +01:00
CHANGELOG.md [coreaudio] Fix handling of non-default sample rates for input streams (#214) 2018-04-01 13:25:46 +02:00
Cargo.toml [coreaudio] Fix handling of non-default sample rates for input streams (#214) 2018-04-01 13:25:46 +02:00
README.md Update to a more general Device and Stream API. Add support for input streams (E.g. microphone). Add default format methods. (#201) 2018-02-12 14:10:24 +01:00
appveyor.yml Fix the appveyor build 2014-12-23 15:28:38 +01:00

README.md

CPAL - Cross-Platform Audio Library

Build Status Crates.io docs.rs

Low-level library for audio input and output in pure Rust.

This library currently supports the following:

  • Enumerate all available audio devices.
  • Get the current default input and output devices.
  • Enumerate known supported input and output stream formats for a device.
  • Get the current default input and output stream formats for a device.
  • Build and run input and output PCM streams on a chosen device with a given stream format.

Currently supported backends include:

  • Linux (via ALSA)
  • Windows
  • macOS (via CoreAudio)
  • iOS (via CoreAudio)
  • Emscripten