« やりたい事が多過ぎるのに時間が無い。 | トップページ | 迫り来る納期。 »

2004/06/22

専門知識が無くてもMIDIを制御する。

現場から事務所に戻ったら誰も居なくて、寂しいとか思いながら(本当か?)日記など、書いてみます。

現場で測定しながら、自動測定だったりするので、その合間の空き時間をつかって、
例の、専門知識が無くてもMIDIが操作できるライブラリの、開発仕様を考えてみます。

まず、最低必要なのは、この3つの関数になるでしょう。

・Open   …MIDIデバイスを使用開始することを、Windowsに通知する
・Close   …MIDIデバイスを使用し終わったことを、Windowsに通知する
・Out    …MIDIデバイスに、データを送信する。(*1)

*1 データを送信する関数は、従来のWindows Multimedia APIを使用する手法だとかなりめんどくさくて、大変です。そこで、以下のように、使いやすくします。
  ・ショートメッセージと、ロングメッセージで、関数が異なる。           → 同じ関数にする。
  ・ロングメッセージの送信で、ストリームバッファを用意しなければならない。 → 1[byte]ずつ、送るだけ。
  ・ロングメッセージの送信後、送信が完了するまで、関数を呼べない。    → 呼べる。

 これを実現する為には、先日も書いた通り、「Qバッファ(FIFOバッファ)」の導入することです。
まぁ、過去に別のOSで作っているので、それを移植するだけなのですが…、
Windows APIは独特なことをやっているので、部分的に処理を追加しないとならないということで、
機能ブロック図を書いてみました。(流石に日記に図はかけないので、ここでは省きます。)

 今日は、まだ自宅に帰宅出来そうもないので、
仕事しながら、ボケーとこんなこと考えてました、不良社員です。

|

« やりたい事が多過ぎるのに時間が無い。 | トップページ | 迫り来る納期。 »

コメント

 そして、その低レベル関数の上に、

・キーオン/オフ
・音量
・音色
・パンポット

等の関数を作ってみると、面白いのでしょうか?
ひまわり」から操作できるように。

投稿: S.W. | 2004/06/22 23:01

うん、いいっすね~
ひまわりから簡単にMIDIへアクセス出来れば、「自分だけの楽器(インターフェース?)」を作ろうという動きに発展するかもしれません。

現状だと最も簡単なのは「サクラdllを呼び出してコンパイルさせる」ですが、それだと何かのキーを押して瞬時に応答するというのが中々作り難いですし。

投稿: 梅本 | 2004/06/23 01:20

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/36969/820299

この記事へのトラックバック一覧です: 専門知識が無くてもMIDIを制御する。:

« やりたい事が多過ぎるのに時間が無い。 | トップページ | 迫り来る納期。 »