2个稳定版本
1.0.1 | 2022年8月30日 |
---|
#10 in #奇幻
2.5MB
424 行
包含 (WOFF字体,680KB) docs/NanumBarunGothic.ttf.woff,(WOFF字体,400KB) docs/NanumBarunGothic.ttf.woff2,(WOFF字体,190KB) docs/FiraSans-Medium.woff,(WOFF字体,135KB) docs/FiraSans-Medium.woff2,(WOFF字体,185KB) docs/FiraSans-Regular.woff,(WOFF字体,130KB) docs/FiraSans-Regular.woff2 以及 12 个更多文件 等。
LSynth是一个虚拟声卡,旨在作为LIKO-12奇幻控制台的APU。
尽情发挥。
lib.rs
:
这个库用于生成L-Synth音频流。
以下是一个LSynth芯片的基本设置的示例。你使用的任何播放此音频的库都应该为L-Synth提供一个音频缓冲区,这里用buffer
参数的audio_sample_request
表示。
use lsynth::*;
let mut chip = ChipState::new(4, ChipParameters::new(44_100, 0.5, 120.0));
chip.send_command(Command::SetAmplitude(0.5), 0);
chip.send_command(Command::SetFrequency(110.0), 0);
let mut frequency = 110.0;
let mut beat = 0;
let mut request_callback = move |chip: &mut ChipState| {
beat += 1;
while beat >= 4 {
frequency += 110.0;
chip.send_command(Command::SetFrequency(frequency), 0);
beat -= 4;
}
};
let mut audio_sample_request = move |buffer: &mut [f32]| {
let mut sample_index = 0;
while sample_index < buffer.len() {
let generated_data = chip.generate(&mut buffer[sample_index..]).unwrap();
sample_index += generated_data.generated;
assert!(generated_data.generated != 0);
if generated_data.remaining_samples == 0 { request_callback(&mut chip); }
}
};
#