メトロノーム
簡単そうなので久しぶりにMIDIで書いてみる。
GM規格ではチャンネル10はリズム(パーカッション)音色に固定され、各音階(ノート番号)が、それぞれのリズム音色に対応しています。
http://www.pluto.dti.ne.jp/~daiki/Midi/AboutMidi_Program.html
10=0xAなので、今回はノートオンは0x9A、ノートオフは0x8Aの決めうち。
リズム音色マップ
http://www.pluto.dti.ne.jp/~daiki/Midi/IL_ProgramNum.html
No. | 音階 | 音色名 | Hex |
36 | C2 | Bass Drum1 | 0x24 |
37 | C#2 | Side Stick | 0x25 |
1拍目にBass Drum1(=0x24)を使って、2?4拍目にSide Stick(=0x25)を使ってみる。
ヘッダ部 4D 54 68 64 00 00 00 06 #MThdヘッダ 6バイト 00 00 00 01 00 20 #トラック数1,四分音符の長さ0x20 トラック部 4D 54 72 6B 00 00 00 2B #MTrkトラック 0x2Bバイト 00 FF 51 03 08 CD 9B #テンポ104 = 60*10^6/104 = 0x8CD9B 00 9A 24 40 10 8A 24 00 #1拍目 10 9A 25 40 10 8A 25 00 #2拍目 10 9A 25 40 10 8A 25 00 #3拍目 10 9A 25 40 10 8A 25 00 #4拍目 10 FF 2F 00 #トラック終了
とりあえずこんな感じかな。
まだ実際に試してないのでこれでいいのか不明。
デルタタイム。零しか待たないのは本当はやっちゃ駄目です。
http://www.geocities.jp/stdmidi/t0.html
簡単のためにこうしています。
いつも疑問に思うんだが、これってどのくらいダメなことなんだろ。
追記
0から数えるのでチャンネル10の場合は0xAじゃなくて9を指定する。
よって9A→99、8A→89に修正。