SDM への MQTT メッセージの送信方法

SDM への MQTT メッセージの送信方法
SDM は、複数の MQTT メッセージを順序に従って送信することで、音源が鳴るようになっています。
以下の順序で MQTT メッセージを送信してください。
【注意】
以下の Payload 中の■は、音源番号(1~7)が入りますが、これは一連の MQTT メッセージすべてで、
同じ番号を指定するようにしてください。
1.バンク指定
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W
Payload
value=0&channel=1&control=0&datetime=[現在時刻]
このまま送信してください。
これは、最初の 1 回だけ送信すれば OK です。
2.音量指定
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W
Payload
value=●&channel=■&control=7&datetime=[現在時刻]
●は音量です。0~127 を指定してください。初期値は 127 です。
■は音源番号です。
3.座標指定(上下)
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W
Payload
value=●&channel=■&control=11&datetime=[現在時刻]
●は上下方向の座標値です。0(下)~127(上)を指定してください。初期値は 64 です。
■は音源番号です。
4.座標指定(左右)
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W
Payload
value=●&channel=■&control=11&datetime=[現在時刻]
●は左右方向の座標値です。0(左)~127(右)を指定してください。初期値は 64 です。
■は音源番号です。
5.座標指定(前後)
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W
Payload
value=●&channel=■&control=11&datetime=[現在時刻]
●は前後方向の座標値です。0(後ろ)~127(前)を指定してください。初期値は 64 です。
■は音源番号です。
6.ピッチ指定
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/pitchBend/W
Payload
value=●&channel=■&pitch=99&datetime=2015-07-18T09:00:00+09:00
●はピッチです。-8192~0~8191 を指定してください。初期値は 0 です。
■は音源番号です。
Payload の中の pitch は、特に気にする必要はありません。
7.ノートオン
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/noteOn/W
Payload
value=999&channel=■&pitch=99&datetime=2015-07-18T09:00:00+09:00
これを送信することで、音源が鳴ります。
■は音源番号です。
8.ノートオフ
Topic
3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/noteOff/W
Payload
value=0&channel=■&pitch=0&datetime=2015-07-18T09:00:00+09:00
これを送信することで、音源が止まります。
■は音源番号です。
音源が鳴っている間の、音の操作方法
音源が鳴っている間に、上記の「音量指定」
「座標指定(上下)」
「座標指定(左右)」
「座標指定(前後)」
の MQTT メッセージを送信することで、音を操作することができます。
【補足】
Payload の[現在時刻]の部分は、Utils.GetDatetime()で取得できます。
サンプルコード:
Mqtt.Instance.Pub(“3dbcs.biz/UTokyo/iREF/6F/Hilobby/SDM/midi/sc/VSSS01/controlChange/W”
," value=0&channel=1&control=0&datetime="+Utils.GetDatetime());