#soundboard #fork #github #internal #modified #samples #libxm

libxm-soundboard

libxm-rs https://github.com/nukep/libxm-rs 的修改版分支,用于项目 soundboard 的内部使用

2 个版本

0.0.3 2020 年 8 月 4 日
0.0.1 2020 年 6 月 30 日

#23 in #modified

39 个月下载量
用于 soundboard

无许可证

125KB
3K SLoC

C 2.5K SLoC // 0.1% comments Rust 230 SLoC // 0.0% comments

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);
}

依赖关系