Arduino nanoでFM音源ボード YMF825を鳴らしてみた | a24a24a24のブログ

a24a24a24のブログ

アメピグ残党。
釣り、温泉、お出かけ、パソコン。最近、電子工作。

前回

 

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円分の難しさがあるなと、理解できた気分です。

 

おしまい。