2 个稳定版本
1.0.1 | 2023 年 1 月 25 日 |
---|---|
1.0.0 | 2023 年 1 月 24 日 |
#151 在 模拟器 中
143 每月下载量
在 fbd_sequencer_cli 中使用
50KB
670 行
PSG - Rust 中的 AY-3-8910 和 YM2149 模拟
PSG 包提供对通用仪器 AY-3-8910 可编程声音发生器芯片及其最受欢迎的克隆芯片 Yamaha YM2149 的快速且高度精确的模拟。
这些 PSG 芯片被用于 20 世纪 80 年代和 90 年代初一些最受欢迎的家用电脑中,例如 MSX 系列、Sinclair ZX Spectrum 和 Atari ST。
这个 PSG 芯片的特定实现专门为模拟和音乐制作(例如 tracker)软件而构建,并附带许多有用的额外功能,以帮助编写此类应用程序。这些包括易于进行周期/频率转换的数学函数、MIDI 音符的转换,以及直接设置寄存器值的 API,以及公开 PSG 芯片每个单独属性的 API。
使用方法
要在您的项目中开始使用 PSG 模拟器,请将以下行添加到您的 Cargo 依赖项中
psg = "1.0.0"
之后,只需初始化一个新的 PSG 结构体,设置一些寄存器,并在循环中开始渲染
// Initialize a new PSG with a clock rate of an MSX machine and a sampling rate of 44100 Hz.
let mut psg = PSG::new(1789772.5, 44100)?;
// Set some registers.
let channel = psg.channel_mut(0);
channel.set_period(100);
channel.set_amplitude(8);
channel.set_tone_disabled(false);
// Render a second of audio.
for _ in 0..44100 {
let (left, right) = psg.render();
// Do something useful with the samples here, such as writing to a file or playing on an
// audio device.
}
有关如何使用该包的更详细信息,请参阅 PSG 结构体的文档,它是该包的工作马。
致谢
该包基于 Peter Sovietov 的优秀 Ayumi,并包括几个错误修复和改进,同时在与原始实现相比时保持样本精确。
许可证
与原始 Ayumi 实现一样,该模拟器和本包中的所有其他代码均在 MIT 许可证下发布。