Raspberry Pi の MathematicaでMIDIオーディオの演奏ができる


2019年 04月 22日

Raspberry Piには、MIDIの音源チップが載っているようだ。
そして、多くの人は、Sonic Pi というRaspberry Pi にプレインストールされているソフトで遊ぶのが普通かもしれない。
しかし、ここでは別の方法でMIDIを操ってみよう。

せっかく Wolfram/Mathematica について書いてきたので、WolframでMIDIを操ってみよう。

音は、HDMIのディスプレイからでも、ラズパイのイアホンジャックからでも音は出せる。
どこから出すかの切り替えは、公式マニュアル(訳)のオーディオ設定を見て欲しい。

さて、Wolframで「ド」の音を出してみよう。実際には、”C”と書く。

Sound[SoundNote["C"]]

すると、次のようなものが現れ、左下の三角マーク(Play)を押すと音が出る。

Mathe-MIDI-C.JPG

右下に”1s”とあるが、これは1秒という意味である。

次に、”ドミソ”を示す。

Sound[{SoundNote["C"], SoundNote["E"], SoundNote["G"]}]

Mathe-MIDI-CEG.JPG

しかし、こんな書き方ではとても面倒である。
それで、もっとMathematicaらしい書き方に直してみた。

Sound[SoundNote /@ {"C", "E", "G"}]

結果は同じなので、省略。

次は上とほとんど同じだが、/@ が @ だけになっているところだけが異なる。

Sound[SoundNote @ {"C", "E", "G"}]

Mathe-MIDI-CEGchord.JPG

この場合、”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]

Mathe-MIDI-HarunoOgawa.JPG

この曲は、4分音符だけなので、ここの音符に対する長さの指定をしていない。

最後の20は、この演奏時間全体が20秒であることを示す。

このあたりまで来ると、なんとなくMIDIをいじっている感じになってくる。

Wolfram/MathematicaのMIDIについては、An Elementary Introduction to the Wolfram Language by Stephen Wolfram の第12章 Soundを見て欲しい。

これは、Wolfram言語の英語の入門書であるが、とても丁寧で分かりやすい。

英語が苦手でも、MIDIで何かしたいという思いがあれば、十分読めると思う。