日別アーカイブ: 2017年2月19日

Launchpad用スクリプトでビート表示

dd_commands.hを眺めていたら、昔のバージョンにあったビート表示をするための命令が残っていたので、スクリプトに組み込んでみました。

アニメーションgifになっています。最下段の1・3・5・7個目のパッドがデッキA、2・4・6・8個目のパッドがデッキBのビートを表示します。

この部分のコードは

 

void OnTimerCallback()
{
 int PinkLow = 0x37;
 int PinkHigh = 0x35;
 int SkyblueLow = 0x27;
 int SkyblueHigh = 0x25;

 (get(BEAT_ID_A) == 1) ? sendMidiMessage(0x90, 0xB, SkyblueHigh) : sendMidiMessage(0x90, 0xB, SkyblueLow);
 (get(BEAT_ID_B) == 1) ? sendMidiMessage(0x90, 0xC, PinkHigh) : sendMidiMessage(0x90, 0xC, PinkLow);
 (get(BEAT_ID_A) == 2) ? sendMidiMessage(0x90, 0xD, SkyblueHigh) : sendMidiMessage(0x90, 0xD, SkyblueLow);
 (get(BEAT_ID_B) == 2) ? sendMidiMessage(0x90, 0xE, PinkHigh) : sendMidiMessage(0x90, 0xE, PinkLow);
 (get(BEAT_ID_A) == 3) ? sendMidiMessage(0x90, 0xF, SkyblueHigh) : sendMidiMessage(0x90, 0xF, SkyblueLow);
 (get(BEAT_ID_B) == 3) ? sendMidiMessage(0x90, 0x10, PinkHigh) : sendMidiMessage(0x90, 0x10, PinkLow);
 (get(BEAT_ID_A) == 4) ? sendMidiMessage(0x90, 0x11, SkyblueHigh) : sendMidiMessage(0x90, 0x11, SkyblueLow);
 (get(BEAT_ID_B) == 4) ? sendMidiMessage(0x90, 0x12, PinkHigh) : sendMidiMessage(0x90, 0x12, PinkLow);

 return;
}

こんな感じになっています。OnTimerCallback内で実行しているので50ミリ秒ごとに実行されます。そのため視覚的にずれを感じることもありません。

ある程度慣れているとピッチ合わせにこういった表示は必要なくなってきますが、一種のドレスアップ要素としては賑やかで楽しいと思います。