2 个版本
0.0.3 | 2020 年 8 月 4 日 |
---|---|
0.0.1 | 2020 年 6 月 30 日 |
#23 in #modified
39 个月下载量
用于 soundboard
125KB
3K SLoC
libxm-soundboard
libxm-rs https://github.com/nukep/libxm-rs 的修改版分支,用于项目 soundboard 的内部使用
lib.rs
:
libxm-rs
Rust 的 libxm 绑定。
一个小的 XM (FastTracker II 扩展模块) 播放库。设计用于轻松集成到演示中,并提供定时函数,以便于与特定乐器、样本或通道同步。
示例
use libxm::XMContext;
use std::fs::File;
use std::io::Read;
// Read the contents of the module into `data`
let mut data = Vec::new();
File::open("song.xm").unwrap().read_to_end(&mut data).unwrap();
let mut xm = XMContext::new(&data, 48000).unwrap();
xm.set_max_loop_count(1);
let mut buffer = [0.0; 4096];
while xm.loop_count() == 0 {
xm.generate_samples(&mut buffer);
// The buffer is filled with stereo PCM data. Use it for whatever you need...
}
// The song has looped once.
示例
use libxm::XMContext;
fn audio_callback(xm: &mut XMContext, buffer: &mut [f32]) {
xm.generate_samples(buffer);
}