arduinoでeVY1 Shieldを歌わせてみた
- 4. 用語
●
今日でてくる用語
MIDI(Musical Instrument Digital Interface)
30年前からある楽器の通信規格。中身は単純なシリアル通信。31250bps(38400bpsではないので注意)
イベント情報を送って音鳴らしたりする
●
(標準)MIDIファイル(.mid)
SMF(Standard MIDI file)
バイナリの楽譜データ。wavのような「音(波形)データ」は入ってない。あくまで音符等の情報。
音源側で音データ持ってて、鳴らしてくれる(音の良さは再生環境依存)
●
MML(Music Macro Language)
テキストで表現した簡易的な楽譜データ。
”ドレミファソラシド”⇒”CDEFGABC”みたいな。
2013
11/16
詳細は後ほど
- 10. 解析
サンプルスケッチを見る
MMLでかえるのうたを歌うサンプルスケッチ
//かえるのうたがきこえてくるよ
int lylics[]={
5,3,42,24,2,15,50,6,9,3,18,7,42,39};
歌詞部分。
サンプルでは歌詞はint配列(↑)で
「あ」が1、「い」が2・・・という風に指定
これを「発声文字列」にテーブル(→)で
変換してeVY1に送信!
右が変換テーブル。
MIDI的にはSystemExclusiveで楽器固有メッセージとして送信しているよ。
発音文字列書き方はYAMAHAさんの仕様書内「日本語eVocaloid™Phonetic Alphabet(PA)」
を参照。(この変換テーブル少し仕様書より少ないぞ・・・)
2013
11/16
- 17. 実験
●
実験2
MMLをシリアル受信して演奏させる
いちいち「かえるのうた」サンプルソースに、歌詞・MMLを直書きして
arduionoに書き込みしてたら手軽に楽しめないよ!
歌詞(発音文字列)と、MML文字列を、シリアルで受信して演奏するよ
うにしてみた
⇒arduinoIDEのシリアルコンソールからキーボード入力できるよ
歌詞:
MML:
#k a,e,4 M,n o,M,t a,g a,k' i,k o,e,t e,k M,4 M,j o
先頭#で歌詞指定
にしてみた
CDEFEDC EFGAGFE
詳細はこちらに記録済み http://init0.net/wp/archives/596
2013
11/16
- 22. 実験
2013
11/16
本実験アプリのMMLの書式
■対応MMLコマンド
MMLにも色々方言があります
大文字小文字区別しません。どちらでも/混在OK。
・音階 C D E F G A B (ド レ ミ ファ ソ ラ シ ド)
・半音 + # - (音階の後につける)
・休符 R
・明示的音長指定 0-128 (音階(半音)、休符の後につける)
なければLコマンドの音長を使用する
0を指定した場合、和音指定(次の音が重なる)
・付点 . (音階(半音)、休符の後につける)
・デフォルト音長指定 Ln (n=1-128) default:4(4分音符)
・音量 Vn (n=0-15) default:15(最大)
・オクターブ[絶対指定] On (n=0-9) default:4
・オクターブ[相対指定] > (上げ)
・オクターブ[相対指定] < 下げ)
・テンポ Tn (n=1-255) default:100(100bpm)
・楽器変更 @n (n=0-127) MIDI規定の楽器番号-1を指定(default:0 piano) ※eVocaloidで
は無視されるような
- 24. 実験
●
演奏例
どんぐりころころ
歌詞
#d o N,g M,4' i,k o,4 o,k o,4 o,d o N,b M,4' i,k o
,o,i,k e,J i,h a,m a ,t e,s a,t a,i,h e N
,d o,dZ o,o,g a,d e,t e,k' i,t e,k o J,J i,tS i,w a
,b o ,tS a N,i ,S o,J i,a,s o,b' i,m a,S o
●
どんぶりこ・・・?
どんぐりころころどんぶりこ
おいけにはまってさあたいへん
どじょうがでてきてこんにちわ
ぼっちゃんいっしょにあそびましょ
MML
T60L16 G8EEFEDC G8EED8R8 EEGGAA8A >C8<EEG8R8
GGEEFEDC G8EED8R8 G8E8A8GG AABB>C4
・楽譜を見ながらMMLを書くよ
2013
11/16
・歌詞を見ながらPA(発声文字列)を書くよ
音符1音に複数発声が当てられてる時はカンマ無しでつなげるよ
(さいしょの「ド(d o)ン(N)」の間にカンマないよ)
発音上書き直した方がいいところもあるよ
- 26. 実験
●
演奏例
楽曲だけ入れ替えて見る
歌詞(譜面側に合わせて微調整)
#d o N,g M 4' i,k o,4 o,k o,4 o,o,o,d o N,b M,4' i,k o
,o,i,k e,J i,i,h a,m a,a, ,t e,s a,t a,i,h e N
,M,M,M,d o,dZ o,o,g a,d e,t e,k' i,t e,k o,J,J i,tS i,w a
,b o,tS a,N,i,i,S o,J i,a,s o,b' i,m a,S o,
d o N,g M 4' i,k o,4 o,k o,4 o,o,o,d o N,b M,4' i,k o
,o,i,k e,J i,i,h a,m a,a, ,t e,s a,a,a,t a,i,h e N
●
MML(完全入れ替え)
T130L12O4
E2B2A4BRAG4ARB>C2D4<A4B2.ARB>C2D4C4<B4>CR<BA4G4A2E4A4B2.
GAB>C2R6<ba6g F+4G4A4>C4 <B2R6A12G6F+ E2R4EF+G A2R6GF+6E
D+4E4F+4A4 B2.R4
E2B2A4BRAG4ARB>C2D4<A4B2.ARB>C2D4C4<B4>CR<BA4G4 A4B6AG4F+4 E1
2013
11/16