2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

« ワンチップ・ボーカロイド eVY1を試してみる(その2) | トップページ | ワンチップ・ボーカロイド eVY1を試してみる(その4) »

2013年11月 5日 (火)

ワンチップ・ボーカロイド eVY1を試してみる(その3)

花岡ちゃんのウィークエンド

今回は、前回アップした簡易シーケンサについて説明します。

eVY1シールドはMIDIで動かすので、まずはMIDIの話を少し。
MIDIは電子楽器などの制御用に開発された、通信のソフト・ハードの仕様です。80年代に制定され、その後30年の永きにわたって、スタンダードフォーマットとして使われてきました。最近、MIDI制定に尽力したRolandの社長さんに、グラミー賞が授与されて話題になりましたね。

eVY1を搭載しているデバイス、NSX-1のMIDI仕様書を使って説明します。
MIDIで曲を演奏するだけなら、仕様書の1ページ目にあるChannel MessageのKey ONイベントだけでOKです。イベントのフォーマットは下記の通りで、3バイトのデータで構成されています。

0x9n 0xKK 0xVV

0x9n -> チャンネル n をKey ON
0xKK -> 音程を示す数値 0x00-0x7F
0xVV -> 音量(ベロシティ)を示す数値 0x00-0x7F

最初のバイトはStatus byteと言って、発音開始などのコマンドとして機能します。それ以降のバイトがパラメータで、音程などの情報を送ります。Status byteは、必ず最上位ビットが1で、パラメータはこれが0です。最上位ビットはコマンドか数値かの識別に使われている訳です。そのため、送ることの出来る数値の範囲は0-127となります。

Status byteの下位4ビットはチャンネル番号です。おおざっぱに言うと、一本のMIDI通信線にチャンネル番号の異なる、最大16台の楽器が接続でき、この番号でメッセージを送る楽器を選択できます。eVY1シールドのように、一つのモジュールに複数の音源が入っているものでも、内部的に、それぞれの音源にチャンネルが割当られています。

音を鳴らすには、ベロシティに0以外の数値を入れてKey ONイベントを送ります。これはピアノなら、鍵盤を押し下げたイベントに相当します。ベロシティは鍵盤を押し下げる早さです。これはつまり鍵盤を叩く強さで、音の大きさを意味しています。もちろん、数値が大きい方が音量が大きくなります。
同じイベントをベロシティ0で送ると、鍵盤を放したイベントを意味します。

音程も同様に数値で表現します。下記のように鍵盤に数値が割り当てられている、と考えるとわかりやすいでしょう。

Photo

もちろん、上下のオクターブも、同じように順番に数値が割り当てられています。つまり、図のドの1オクターブ下は62になります。

今回このキーでやってみましたが、実際のところ1オクターブ下の方がいいみたいです。そんなとき、プログラム内部で12を引いてやることで、簡単に移調が出来るのがこの方式の利点です。

MIDIの説明が長くなってしまいました。でも、この話をしておかないと、後の説明がわかりにくいので、やむを得ません。次回は歌詞をeVY1に送る方法について解説します。

« ワンチップ・ボーカロイド eVY1を試してみる(その2) | トップページ | ワンチップ・ボーカロイド eVY1を試してみる(その4) »

花岡ちゃんのウィークエンド」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/53826164

この記事へのトラックバック一覧です: ワンチップ・ボーカロイド eVY1を試してみる(その3):

« ワンチップ・ボーカロイド eVY1を試してみる(その2) | トップページ | ワンチップ・ボーカロイド eVY1を試してみる(その4) »