FM音源による再生をサポートしました。
実験的な機能追加です。
OPN(YM2203)のFM音源部の実装です。OPNの同時発音数3音という制限はなく実装しており、パンも可能としています。
CreatePort(instrument:fm,・・・)
と記述することでFM音源を扱うトラックになります。
音色の定義を行うにはFM音源トラックにて以下のように記述します。
DefinePresetFM(no:0, name:"piano",
// AR DR SR RR SL TL KS ML DT
28, 8, 0, 8, 3, 31, 2, 1, 2,
26, 3, 1, 6, 10, 0, 0, 2, 7,
27, 20, 0, 9, 2, 44, 0, 5, 2,
28, 7, 2, 6, 6, 0, 0, 1, 5,
// AL FB
4, 7,
)
サンプルとしてFM音源を使うテンプレートを用意しています。参考にしてください。
FM音源エンジンは ymfm を利用しています。開発者の方に感謝です。
https://github.com/aaronsgiles/ymfm
制限事項
- FM音源はサーバーレンダリングでのみ有効です。
- 処理はかなり重いです。高速化が課題です。
- ピッチベンドはまだ未実装です。すみません。
- OPNのPSG部は未サポートです。
問題の報告、改善案や御助言など何かありましたら御一報頂けますと幸いです。よろしくお願いします。
rlib-MML アプリ、rlib-MML WebApp はテキスト入力だけで曲が作れます。ぜひお気軽にお試しください。
rlib-MML WebApp はブラウザでご利用いただけます。
https://rlib-mml.thinkridge.jp
rlib-MML アプリ はiOS、macOS、Android に対応しています。