#模拟 #合成器 #复古 #opl

opl3-rs

为Nuked-OPL3提供Rust绑定,Nuked-OPL3是一个Yamaha OPL3 FM合成芯片仿真库

1个不稳定版本

0.2.0 2024年7月6日
0.1.2 2024年6月30日
0.1.1 2024年6月28日
0.1.0 2024年6月28日

#301模拟器

Download history 381/week @ 2024-06-26 127/week @ 2024-07-03 10/week @ 2024-07-10

每月 213 次下载

LGPL-2.1

185KB
3K SLoC

Rust 1.5K SLoC // 0.0% comments C 1.5K SLoC // 0.1% comments

opl3-rs

一个小型库,提供对Nuked-OPL3库的绑定。

Crates.io version Changelog Documentation

用法

Nuked-OPL3不是OPL3芯片的完整实现 - 例如状态寄存器、定时器和中断等作为实现细节保留。

如果需要,您可以通过Opl3Chip结构访问Nuked-OPL3 API,但请注意,直接向Nuked-OPL3写入寄存器将阻止您正确读取OPL寄存器。

如果您打算在模拟器中使用opl3-rs,您可能希望使用Opl3Device包装器,该包装器提供了一个完整的、面向设备的OPL3实现,包括状态、地址和数据寄存器,以及OPL3定时器。

文档

文档可以在docs.rs上找到

示例

在/example/play_tune目录下提供了一个音乐播放示例。此示例使用rodio库进行音频播放和crossbeam channels进行线程间通信。

opl3-rs主要是为与MartyPC PC模拟器一起使用而构建的。它用于实现AdLib音乐卡设备。

https://github.com/dbalsom/opl3-rs/assets/7229541/d78d4e90-71ed-4841-a963-9b09f25974c1

致谢

Nuked-OPL3是(C) 2013-2020 Nuke.YKT,并许可在LGPL 2.1下使用

play_tune示例基于Maarten Janssen和Peter De Wachter的代码。

依赖项

~0.3–2.7MB
~56K SLoC