掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
(改めて)VB2008でMIDIを読み込んで鍵盤表示するには・・・ (ID:146890)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> SMF=MIDI > なのですか? に関しては,元スレッド側に書きました。 > MIDIファイルでは、どれを使ったらいいのでしょうか? 使い勝手のよい物を使ってください。 現実的には, ・ReadByte ・Read (Byte(), Int32, Int32) ・Read7BitEncodedInt くらいしか使い物わないと思いますが……。 ビッグエンディアンなので,ReadInt32などを使う場合はエンディアンの変換をしてください。 > midiOutOpenって見たとたん試そうとは思ったのですが、 > 構文を見た感じ、C言語ではないですか・・・? Windows APIなので,Cです。 P/Invokeを使って呼び出すことになります。 単純にmidiOut系使うだけならあまり難しくは無かったと思います。 もちろん,MIDIまわりの知識は必要ですが……。 マルチメディアタイマに手を出すと,完全にCが必要になります。 # コールバックで呼び出せるAPIに制限があるので,.NET Frameworkは怖くて呼び出せない 最後に。 > 音の長さとかオーバー風呂して オーバーフローするような「音の長さ」とは何を指していますか。 MIDIの制御上, ・音を鳴らすにはVelocityが1以上のノート・オンメッセージ (9x) を送出する ・音を止めるにはノート・オフメッセージ (8x) を送出するか,Velocityが0のノート・オンメッセージを送出する ※9x HH 00でノート・オフになるのはランニング・ステータスで9xを省略することで,1octet通信量が有利になるため (元々33kbps程度の通信速度の規格) ・音の長さとはノート・オンメッセージの送出からノート・オフメッセージの送出までであり,それは単なる時間の経過でしかない となっています。 減衰のない音を使い (GM/PC#81:Lead1(square)等),ノート・オフメッセージを送らなければ鳴り続けますが, MIDI音源をソフトウェア的にまたはハードウェア的にリセットすれば止まります。 つまり,オーバーフローの発生する余地は高々経過時間の計算にしか存在しません。 計算のオーバーフローによってウィルスが発生するなどという余地がどこにあるのか,書く前に考えて欲しい物です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.