学研 NSX-39(ポケットミク)とお気軽に遊ぼう!
用意するもの:Ruby(1.9.3以降)
- gemからbundlerをインストールして下さい。
- nsx-39mlを展開して下さい。
- nsx-39mlディレクトリに移動して下さい。
- bundle installしてmidilibをインストールして下さい。
YAMLベースのマークアップ言語(NSX-39MLと呼びます)で記述した楽曲データからMIDIファイル(*.mid)を生成します。 MIDIに詳しくない or いちいち歌詞エクスクルーシブを定義しなくてもポケットミクに歌ってもらう事が出来ます。
付属のsample.39mlからsample.midを作る時は下記の様にします。
./nsx-39ml.rb sample.39ml sample.mid
NSX-39MLの文法はsample.39mlから編み出して下さい。
NSX-39MLはYAMLをベースとしているため、各種プログラミング言語から簡単に扱えます。 然しながらYAMLを0から構築するのは案外煩雑なので、Ruby用のヘルパーライブラリを用意しています。
nsx39helper.rbをrequireして下さい。 使い方はソースを読むかnsx-39_clock.rbを参照して下さい。
実行するとポケットミクが現在時刻を教えてくれます。 (要ALSA。LinuxっぽいOSで実行して下さい。)
ポケットミクを接続して、オプション無しで実行して下さい。
./nsx-39_clock.rb
よく分からないですがGPLv2としときます。
NSX-39MLには3種類のトラックが定義出来ます。
-
conductor テンポなど、楽曲全体に関わるパラメータを定義します。
-
miku 我らがミクたんを歌わせるためのトラックです。 チャンネルが自動的に1に設定されます。
-
channel2 〜 channel16 楽器用のトラックです。 channel10はドラム専用です。 このトラックはミクの発音遅延と折り合いを付けるため、頭に12/480の遅延が入ります。
` conductor:
- { ......... }
miku:
- { ......... }
channel2:
- { ......... } `
トラックに定義出来る各種情報です。
-
note 音を発声します。
-
key 音の高さを指定します。 CDEFGAB + オクターブもしくは、R(休符)が指定出来ます。
-
length 音の長さを指定します。 1:全音符、2:2分音符・・・・となります。
-
lyric 歌詞を指定します。 指定可能な歌詞はポケミクのマニュアルを見て下さい。 ひらがなのみ有効です。
-
vibrate ビブラートを掛けます。 ビブラートの強さを指定します(0〜127)
-
tone(program) 音色を変更します。
*tone_no 音色の番号を指定します(1〜128)
- control コントロールチェンジを発行します。
*type コントロールチェンジ番号を指定します。
-
value コントロールチェンジの値を指定します。
-
exclusive システムエクスクルーシブを発行します。
-
data 頭のF0と末尾のF7を除いたバイト列を、整数の配列形式で指定します。