3个不稳定版本
0.2.1 | 2024年8月13日 |
---|---|
0.2.0 | 2024年7月1日 |
0.1.0 | 2024年6月16日 |
在多媒体中排名85
每月下载量128
用于fbd_sequencer_cli
50KB
951 行
FBD序列器库
概述
此crate实现了一个使用PSG或AY-3-8910声音源播放音乐的序列器(.fbd)。该库本身不生成PSG波形。PSG波形的生成委托给实现了PsgTrait
的外部实现。
关于.fbd文件
序列文件是扩展名为.fbd的二进制文件。它们是为PSG声音源设计的,有三个独立的通道。"FBD"这个术语没有任何特定的含义。
仓库中有几个.fbd文件,模拟使用PSG声音芯片的游戏音乐。它们都是为了模仿在PC(MSX)上使用PSG声音芯片的游戏音乐而设计的。
音乐版权:©日本Falcom公司。
目前,没有可用的工具可以从头创建.fbd文件。我们正在考虑开发将MML等格式转换为的工具。
功能
- 软件包络(AL、AR、DR、SR、SL、RR)
- 软件LFO(颤音)
- 噪声周期设置
- 输出模式设置(音调、噪声、音调 & 噪声)
- 音调周期偏移(也称为失真)
- 嵌套循环
- 连接和滑音
- 以1/60秒为单位进行精细控制
PsgTrait
此库通过以下trait生成PSG波形。
#[derive(PartialEq)]
pub enum OutputMode {
None,
Tone,
Noise,
ToneNoise,
}
pub trait PsgTrait {
fn sample_rate(&self) -> u32;
fn clock_rate(&self) -> u32;
fn set_tone_period(&mut self, channel: usize, period: u16);
fn set_volume(&mut self, channel: usize, volume: u8);
fn set_output_mode(&mut self, channel: usize, mode: OutputMode);
fn set_noise_period(&mut self, period: u8);
fn next_sample_i16(&mut self) -> i16;
#[cfg(feature = "float")]
fn next_sample_f32(&mut self) -> f32;
}
许可证
许可在以下任一项之下
- Apache许可证,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确说明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义,都应如上所述双许可,不附加任何额外条款或条件。
依赖关系
~215KB