Raspberry Piには、MIDIの音源チップが載っているようだ。
そして、多くの人は、Sonic Pi というRaspberry Pi にプレインストールされているソフトで遊ぶのが普通かもしれない。
しかし、ここでは別の方法でMIDIを操ってみよう。
せっかく Wolfram/Mathematica について書いてきたので、WolframでMIDIを操ってみよう。
音は、HDMIのディスプレイからでも、ラズパイのイアホンジャックからでも音は出せる。
どこから出すかの切り替えは、公式マニュアル(訳)のオーディオ設定を見て欲しい。
さて、Wolframで「ド」の音を出してみよう。実際には、”C”と書く。
Sound[SoundNote["C"]]
すると、次のようなものが現れ、左下の三角マーク(Play)を押すと音が出る。
右下に”1s”とあるが、これは1秒という意味である。
次に、”ドミソ”を示す。
Sound[{SoundNote["C"], SoundNote["E"], SoundNote["G"]}]
しかし、こんな書き方ではとても面倒である。
それで、もっとMathematicaらしい書き方に直してみた。
Sound[SoundNote /@ {"C", "E", "G"}]
結果は同じなので、省略。
次は上とほとんど同じだが、/@ が @ だけになっているところだけが異なる。
Sound[SoundNote @ {"C", "E", "G"}]
この場合、”C’,”E”,”G”(ドミソ)の和音になる。
ここまでの知識で、ちょっと春の小川を書いてみた。
アルファベットの後についている数字はオクターブの指定である。
最後のNoneは、休止を示す。
Sound[SoundNote /@ { "E4", "G4", "A4", "G4", "E4", "G4", "C5", "C5", "A4", "A4", "G4", "E4", "C4", "D4", "E4", None, "E4", "G4", "A4", "G4", "E4", "G4", "C5", "C5", "A4", "A4", "G4", "E4", "D4", "E4", "C4", None}, 20]
この曲は、4分音符だけなので、ここの音符に対する長さの指定をしていない。
最後の20は、この演奏時間全体が20秒であることを示す。
このあたりまで来ると、なんとなくMIDIをいじっている感じになってくる。
Wolfram/MathematicaのMIDIについては、An Elementary Introduction to the Wolfram Language by Stephen Wolfram の第12章 Soundを見て欲しい。
これは、Wolfram言語の英語の入門書であるが、とても丁寧で分かりやすい。
英語が苦手でも、MIDIで何かしたいという思いがあれば、十分読めると思う。