MMLコンパイラ(クラスライブラリ&コマンドラインアプリ)を GitHub で公開してみました。C++17 での実装です。
MML とは、演奏データをテキストで書くというもので、80年代頃からゲームソフトの音楽や効果音制作で使われてた言語(って言っていいのかな)です。
が、特に決められた規格があるわけでもなく、各々(ゲーム会社さんやプログラマさん)がよかれと思った文法を取り入れていた気がします。
そんな中でも、”cdefgab”はドレミファソラシ、”r”は休符。など、どんな音源ドライバであっても通用する暗黙の標準仕様のような文法があり、今回のMMLコンパイラもそのあたりに沿っているつもりです。
/*
“音源ドライバ”というのは、曲や効果音を再生するアプリの当時の総称です。
*/
というわけで MML 自体は目新しいものではありませんが、自分への課題ということで C++17 でコードを焼き直しました。
さらに、作ったMMLコンパイラをお手軽に試すという目的も兼ねた自分への課題として、ウェブサイトも構築してみました。
https://rlib-mml.thinkridge.jp/
MML の記述から再生、標準MIDIファイル出力まで、ブラウザ上で一通りのことが出来ます。
ご興味あればぜひ触ってみて頂きたいです。
最後に。
色々な OSS やツ-ル開発者様、ネットに情報を載せてくれてる方々などに大変感謝です。ありがとうございます。