「C/C++言語での曲作り」は書籍
の試みではあったのですが、C/C++言語を扱うのは面倒に感じます(OSに合わせてプログラミング環境を整えないといけないなど)。
そこで、簡単なテキストで音(音楽)を鳴らすやり方を探してみました。
最初に見つけたのは「CUIで音楽製作環境の構築(macOS版)」で、「timidity++とテキスト音楽サクラを使う方法を紹介する。」とありました。「テキスト音楽「サクラ」v2」を使うのですが、「テキスト音楽「サクラ」は、エディタに『ドレミ』と書けば、その通りに音楽を演奏することができる音楽制作ツールです。」というものです( 参考:「サクラとは...」 )。
今はマルチプラットホーム対応コマンドライン版「csakura」やWeb版(「PicoSakura」)もあって、これが遊ぶなら簡単でした。例として童謡「チューリップ」のメロディーをバイオリンの音色で鳴らしてみました。「PicoSakura」を開いて音程を並べてテキストで書いて、「PLAY」ボタンを押すだけです。
音程、音長、和音など「サクラの簡単な使い方」にありますが、「文法の概要(ストトン表記)」に簡易的な書き方があります。「→もうちょっと詳しい解説はこちら」になっています。これは音で遊ぶときにはとても簡単で良いと思います。これらのページには試して鳴らせる様になっているので、それだけでも雰囲気は判ります。
また「サクラ」ではMML(Music Macro Language)をMIDIに変換(コンパイル)して音を鳴らすので、「MML文法」の説明も「MMLの基礎」に説明されています。また「リズムパートを入力しよう!」もあります。
(ピコサクラでのリズムの例)
MMLはPCがまだ8bit CPUの時代からある音楽のPCでの文法で様々な記法がありますが、その一例を使っている様です。エディタで記載してMIDIファイルに変換して鳴らせます。例えば「ドレミファソラシ」をMMLで記載すると「cdefgab」と書きます。
Windowsなら「コマンドプロンプト」Macなら「ターミナル」で MIDI再生コマンドでこのMIDIファイルを再生すると指定したMML(MIDIに変換したもの)が音になります。「CUIで音楽製作環境の構築(macOS版)」では「timidy」、「fluidsynth」を使う例が紹介されていました。
$ timidity -Od music.mid
の様に使います。なので、このMML文法をもっと簡便にしたものが、「文法の概要(ストトン表記)」だと思います。
「fluidsynth」( 参考:「[Shell] オープンソースなFluidSynthでMIDIファイルを再生する」 )の場合は「サウンドフォント」が必要になるので、コマンドは
$ fluidsynth -i GeneralUser_GS_v1.471.sf2 octave.mid
fluidsynth {オプション} {SoundFontのパス} {MIDIファイル}
の様にサウンドフォントファイルとMIDIファイルを指定して音を鳴らします(動作確認が取れました)。
サウンドフォントはWebを検索すれば様々なものが見つかります( 「Yamaha XG Sound Set.sf2」など )。
できればMIDIファイルを簡単に作りたいと思っているので、もう少し調べます。