1个不稳定版本
0.4.0 | 2022年5月5日 |
---|
#11 in #混叠
10KB
101 行
libaaarg
一个用于自动混叠工件随机生成的 library
请参阅文档 此处
lib.rs
:
以不同方式干扰音频的库
此库提供了alias
函数(将被重命名),它将以各种不同的方式干扰给定的音频片段。
警告
保护您的听力。每当处理音频时,请确保在进行可能输出音频的操作之前不要佩戴耳机,因为它可能会意外地很响并损害您的听力。
快速入门
use std::fs::File;
use std::time::Duration;
use std::io::BufReader;
use rodio::{Decoder, OutputStream, Sink};
use libaaarg::{self, AliasingParams};
// Get a output stream handle to the default physical sound device
let (_stream, stream_handle) = OutputStream::try_default().unwrap();
// Create a sink to output sound to
let sink = Sink::try_new(&stream_handle).unwrap();
// Load a sound from a file, using a path relative to Cargo.toml
let file = BufReader::new(File::open("examples/music.ogg").unwrap());
// Decode that sound file into a source
let source = Decoder::new(file).unwrap();
// Convert the source to an iterator of floating point values.
let samples = source.convert_samples::<f32>();
// Process the sound, speeding it up by 100x, and limiting the duration of the output sound to
// 5 seconds
let aliased = libaaarg::alias(samples, &AliasingParams {
factor: 100,
target_duration: Duration::from_secs(5),
});
// Play the sound directly on the device
sink.append(aliased);
依赖关系
~1.3–6MB
~112K SLoC