#audio-devices #sound #multi-channel #play #record #stream

multichannel_audio

在Rust中播放和录制多通道音频

3个不稳定版本

新版本 0.2.0 2024年8月21日
0.1.1 2024年8月14日
0.1.0 2024年8月14日

219音频

Download history 200/week @ 2024-08-09 107/week @ 2024-08-16

每月307次下载

MIT许可证

6MB
707

多通道Rust音频

此库提供易于使用的音频库,用于播放和录制多通道音频。

它受到Python Sounddevice及其易于理解的功能的启发。

此库主要是一个围绕CPAL crate的包装器。它抽象化了流创建,并提供了简单的播放/录制函数。

目前仅支持使用Focusrite音频接口的LinuxWindows。未来计划提供更多支持。

入门

将以下内容添加到您的Cargo.toml文件中

[dependencies]
multichannel_audio = "0.1.0"

如何使用

  • 如果您在Windows上,请遵循CPAL文档中的Windows上的ASIO部分的说明来设置ASIO SDK。

  • 在程序开始时初始化音频设备一次。

  • 准备一个二维音频数组,列数等于您的音频设备上的通道数。例如,如果您在一个立体声2通道设备上播放,则您的数组将是2行x,其中x是要播放的样本数。

  • 将指定的时间录制到新的二维数组中。数据形状的原则与播放相同。

示例

以48kHz采样率在6通道音频设备的1通道中播放白噪声

set_host_and_audio_device().unwrap();

let signal = generate_gaussian_white_noise(5.0, 48000, None);
let mut multichannel_signal = vec![vec![0; 5 * 48000]; 6];
multichannel_signal[0] = signal;

let audio_instance = audio_class::AudioInstance::new(48000).unwrap();
audio_instance.play(multichannel_signal).unwrap();

录制5秒

set_host_and_audio_device().unwrap();

let audio_instance = audio_class::AudioInstance::new(48000).unwrap();
let recording = audio_instance.record(5.0).unwrap();

许可

在MIT许可证下授权(LICENSEhttps://opensource.org/license/MIT

依赖关系

~0.7–29MB
~421K SLoC