電音の工場ブログ

趣味の電子工作を中心としたブログです.音モノの工作が多いです.

作りかけ2 ― MIDI on Win

作りかけ2 ― MIDI on Win

id:Chuck:20040512#p1 で言及した作りかけのソフト。その後 1年と10ヶ月が経ようとしているが、なんの進捗もない。

しかしちょっと心に引っかかるものがあって、あわよくばまた弄ろうかと思ったが、すっかり忘れて思い出せない。何かBOSS GT-3 の仕様的な問題で、当初考えていた構成がうまく行かないということに突き当たって中断して今に至った、ということだけ思い出したが、その内容までは思い出せず…

ソースを見るとなぜか Pascal だし… 当時 Delphi を使っていたのだろうか>自分

あまりに思い出せなかったので

あまりに思い出せなかったので再勉強中につき、メモ

Short Msg の MIDI outだけど
http://codezine.jp/a/article.aspx?aid=172 (Delphi)
MIDI 制御
http://www.cs.k.tsukuba-tech.ac.jp/labo/koba/software/midi.html (VB)
古そう
http://ourworld.compuserve.com/homepages/Satsuki_Kojima/winprog.htm (Win3.1か)
本家
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpmltimd/html/_win32_midioutlongmsg.asp
こういうのも
http://www.sm.rim.or.jp/~shishido/midimsg.html
これはC++ Builderか
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-062.html
書籍
本もあった

たぶん APIの本を買おうと思わないところが敗因であろう>自分

「システム排他 MIDI メッセージ」という訳はヤメテほしい>MS

開発環境は

ツールがフリーであることを条件に Delphi で組むのと ActiveBasic で組むのと、どっちがいいでしょうか?

気になったので弄ってみているわけだが

なんとか(Delphi)動かしているうちに思い出してきた。

なんどもアプリを上げたり落としたりしていると「メモリが足りません」というのできっとどこかでリークを… 使用しているUSB MIDI I/F をはずしてつけ直せばOK(おい)。

作ったテストアプリは、BOSSのフロアマルチ GT-3 にシステムエクスクルーシブを送りつけて、とあるアドレスにある設定情報を吸い上げようとするもの。弄っていて思い出したのは、GT-3側でMIDI bulk load 待ちの状態にしないと [Request data 1] (RQ1) を受け付けないらしいことである。

これは使い勝手が悪い。最悪、

  1. bulk load 待ちにする
  2. パソコンからSysEXを送り、GT-3の状態を得る
  3. パソコンから変更したパラメータを送る
  4. 通常動作状態にする
  5. 音を出してみる
  6. さらに変更したいときはまた bulk load 待ちにする

ような動作が必要。

最初にGT-3の状態をbulk dumpして、あとはパソコン側の情報で制御という方法も考えられるが、パソコン側情報とGT-3のパラメータがミスマッチしたら修正は効かない。

GT-3 のエディタを作ろうと勇んでWindowsMIDIに挑んだのであるが、プログラミングというよりは仕様の壁に阻まれたようである。ということを約2年前にもやっていたのにすっかり忘れてもう一度やり直すとは>自分

おそらくは GT-3のシスコン・マイコンがアップアップで通常動作状態のときに SysEX を処理する余力がなかったのだろうなぁ。GT-5も同じ仕様。GT-6以降は通常動作状態のときに RQ1 を受けられると、どこかで見たような気がする。GT-8も同じだろう。GT-8ならエディタを作れるかも。

ああ、誰か GT-8 を恵んでくれませんかねぃ…

追記
MIDI IN w/ VB
MIDIデバイスを列挙する
VBのお部屋 - エクスクルーシブ・メッセージの送信
VBのお部屋 - MIDIの入力を受信
MIDI w/ ActiveBasic
http://www.discoversoft.net/forum/viewtopic.php?t=524&highlight=MIDI&sid=abbeac3989cea13e4cd74800ac181087