前回。
3300円のFM音源ボード(音を出す基板) YMF825を買ったものの
ヤマハ公式の技術資料ページが消えていて、途方にくれておりました。
困っている中、コメント欄でgithubのURLを教えていただき、資料を入手することができました。
ありがとうございました。
その後の結果です。
Arduino nanoとFM音源ボードを接続。SPIの6本+RSTピンの7本をつなぐだけ。
使い方のイメージですが、
YMF825は「周波数○○の音を出せ」「止めろ」みたいな信号を受けて
リアルタイムで最大16音を鳴らしてくれます。(演奏者×16人のようなもの)
しかし、音を出すタイミング、音色、音程、音量は、全てプログラムで制御しなければなりません。
(指揮者が必要)
初期状態では、音色ひとつすら入っていないので
ヤマハ公式のサンプルを元に、音色をセットするプログラムを作ります。
SPI通信などの面倒な処理はサンプルから切り貼りさせて貰いました。
一つの音が鳴っただけでは、曲になりません。
簡単なMML構文処理を作りました。
楽譜を英文字で書いて、プログラムがその通りに音を鳴らす、みたいなものです。
文法は勝手にこんな感じで決めました。
L1,2,3,4,6,8,H,Z : 全音符, 2分音符, 付点2分, 4分, 付点4分, 8分, 16分, 32分音符
O1~8, O+,O- : オクターブ 1~8, +1, -1
V0~8, V+,V- : 音量 0~8, +1, -1
@0~F : 音色 0~15
C,C#,...,A,A#,Ab,B,Bb : ド~シ #,b
R : 休符
まるで宇宙人の暗号ですが、
「 O4 L8 CDE 」ならば、オクターブ4の8分音符で「ドレミ」と鳴らします。
曲を耳コピする技量はないので、ネット上の楽譜を見ながらC、D、E、と入力していきます。
・・・もうこの時点で、お腹いっぱい、ゲッソリしていました。
結果。
なんとか鳴りました。
3300円を取り返したぞ。
この音源ボード、基本波形を29種から選べたり、イコライザで音質を変えたりと
もっと奥深い楽しみ方があるようですが・・・。
機能が複雑で身構えてしまいます。
なんだろう・・・世の中簡単にはいかないなと。
3300円分の難しさがあるなと、理解できた気分です。
おしまい。