2014/07/12
nsx-39 詳細仕様があった!
2014/07/12 判明事項:
・歌詞設定(0A)は、StatusSummary(21)で[完了]が返るまで 220m秒位掛かる
--> FLASH ROM への書込み時間
--> USB MIDI通信不可
・(歌詞設定で)ステータスを返さない slot#0 は「発声毎に歌詞を送る」用? (未確認)
--> FLASH ROM への書込みを行わないのでシーケンス中で歌詞設定が可能
2014/04/26 版 アップロード
・レスポンス時間計測機能を追加
詳細は、雑感・チラシの裏 に追加
ポケット・ミク nsx-39 のシステムエクスクルーシブをいろいろと弄くる。
・nsx-39 への歌詞の書込み・読込み
・他、既知のコマンドの遣り取り
・シーケンサ用に テキスト SysEx の出力 (現在 Domino のフォーマットに対応)
↑ メインウインドウ
コマンド番号別にタブ切替
現在、歌詞設定タブ
↑ 歌詞選択ウインドウ
ダブルクリック又は[Enter]で確定(メインが歌詞設定タブ時)
↑ システムエクスクルーシブ文字列ウインドウ
手編集可能
コメント(上記 "//" の行)付加選択可
ファイル出力出来るので、シーケンサデータ入力時にメモ帳から開いてコピペ
※注意:
MIDIポート(nsx-39) の「複数アプリからの共有」は出来ない(何か方法があるのかな?)ので、
シーケンサ等との同時使用は不可。
インストール:
適当にフォルダを作成して解凍するだけ
レジストリは使わない フォルダに IniFile を作成して状態を保存
アンインストール:
フォルダごと削除するだけ
ポケット・ミク 雑感:
・slot(*1)#0 と slot#1-15 では動作が違う?
・歌詞設定時、#1-15 の時には StatusSummary(21) を返して来るが、#0 では返さない
・[処理中] -> [完了] 少し時間が掛かる
・[完了]前に何か送信するとマズい?(想像)
・#0 は LyricsRequest(0F) で読み出せない?
・slot 切替で歌唱位置が先頭に戻る
2014/04/26
・歌詞設定(0A)は、StatusSummary(21)で[完了]が返るまで 220m秒位掛かる
・250ms -> RPM=120 8分音符
・文字数による時間変化は無いみたい (1文字でも同じ時間が掛かる)
・上記「完了前に何か送信するとマズい」とすると、「シーケンスで発声毎に歌詞を送る」は無理?
・ステータスを返さない slot#0 は「発声毎に歌詞を送る」用? (未確認)
・「あらかじめ slot#1-15 に歌詞を設定しておき、ModeSelect(0D)で slot を切換える」が正解では?
(*1)[slot]とは歌詞を格納するバッファ
プログラミング チラシの裏:
・MIDI 入出力
・Windows API midiIn--- midiOut---
・CALLBACK_WINDOW でイベントを受ける
・UI の更新は、上記イベント内で別イベントを SendMessage して受け先で行う
・C++ class化 (やっと C++ らしくなってきた)
・C++Builder
・TStringGlid ではなく TDrawGrid を使ってみた
・Canvas に自分で文字列を描く方が自由度が高い
・イベント発生の関係でブレークポイント設定出来ない(OnDrawCell)
2014/04/26
・レスポンス時間計測
・計測タイマ <mmsystem.h> DWORD timeGetTime() 1ms 精度 読み出しのみ
・タイマリセット (タイマ値保存)
・LongMsg(SysEx)送出完了 MOM_DONE コールバック時
・LongMsg(SysEx)受信完了 MIM_LONGDATA コールバック時
・時間算出 現在タイマ値 - 保存タイマ値
・桁あふれしても問題なし (ex. 0x00000001 - 0xFFFFFFFF)
参考にさせていただいたサイト
パラメータの名称はここに従っています。
ありがとうございます。
↓ Windows 実行用ファイル 実行用ファイルについて