ym2151-zig-cc
A project for building a simple sequencer leveraging Nuked-OPM with zig cc.
Quick Links
| Item | Link | |โโ|โโโ| | ๐ Development Status | generated-docs/development-status |
็ถๆณ
ใขใผใซใคใใใพใใๅพ็ถใฎRust็ใ้็บใใพใใ
ใใฎใชใใธใใชใฎ็จ้ใฏใC่จ่ชใซใใๆๅฐ้ใฎใณใผใใๆไพใใ็จใงใใ
Overview
This project is an experimental C language program that plays simple sounds using Nuked-OPM (a Yamaha YM2151 emulator). It uses zig cc for building.
Features
- โ Accurate YM2151 emulation using the Nuked-OPM library
- โ Windows builds using zig cc
- โ WAV file output functionality (src/phase2/)
- โ Real-time audio playback functionality (src/phase3/)
- โ Simple sequencer functionality (src/phase4/)
- โ Provides an easy way to experience YM2151 sounds on Windows
- โ Simple and easy-to-reference code (perhaps)
Build
python build.py build-phase4 && ./player.exe
Target Platforms
Windows
Linux is not officially tested. Voluntary Linux implementations and tests by contributors are tolerated from an overall project optimization perspective.
Maintenance
- If the project stops producing sound, I intend to prioritize restoring it to a playable state as quickly as possible.
Future Outlook
- If there are clear deficiencies in the code, comments, or documentation, I will consider making corrections.
Out of Scope
To prioritize code simplicity, this project explicitly excludes the following features, which would complicate the codebase:
- Active Linux support by users or other multi-platform compatibility.
- Enhancements for general usability, such as directly utilizing source files as a library, or any other feature additions that would complicate the code.
- Interactive performance.
- Reproduction of clock and timing as if performed on an X680x0.
- Reproduction of existing songs.
License
- This project: MIT License
- Nuked-OPM: LGPL 2.1
- MiniAudio: Public Domain OR MIT-0 (dual license)
The English README.md is automatically generated from README.ja.md by GitHub Actions using Geminiโs translation.