#不同 #方法 #工件 #混叠 #部分 #别名

libaaarg

以不同方式干扰音频的库

1个不稳定版本

0.4.0 2022年5月5日

#11 in #混叠

MIT许可证

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