2010-12-20 9 views
0

スタンドアロンサンプラー/シンセにMIDIイベントを送りますsampler/synth(SFZ +など)はこれらのイベントを受け取り、サウンドを再生します。は、私はピアノの鍵盤にPCのキーボードをマッピングするための非常に簡単なプログラムを開発したいと思います

midiOutShortMsgを使用してMIDIイベントを生成することはできますが、FMシンセに直接送信されるので、外部のソフトウェアに送信します。コードはC/C++でなければなりません。

お手伝いできますか?

Tnx。

答えて

3

あなたはJACK

をご覧くださいJACKは、リアルタイム、 低レイテンシーのオーディオ(およびMIDI)を処理するためのシステムです。これは、GNU/Linuxの、Solaris版、FreeBSDの、OS X およびWindows上 を実行します(と 他のPOSIX準拠のプラットフォームに移植することができます)。それは だけでなく、彼らが自分たちの間でオーディオ を共有することを可能にするよう として、オーディオ機器に異なる アプリケーションの数を接続することができます。そのクライアントが( 通常のアプリケーションとして、すなわち。)自分自身のプロセスで 実行することができ、またはそれらはJACKサーバ内 実行することができますすることができます(すなわち。 「プラグイン」など)。 JACKはまた、両方の高速で信頼性の高い&のLAN だけでなく、より遅く、信頼性の低いWANのように、 ネットワーク経由でオーディオ処理を分散 をサポートしています。

JACKはアップ プロオーディオの仕事のためにゼロから設計、およびその デザインは、次の2つの主要分野に焦点を当てていました: すべてのクライアントの同期実行、 と低遅延操作。 という背景情報があります。

ソースまたはバイナリとして利用可能ですhere

+0

+1ウィンドウ用のバージョンがあることを知りませんでした。 –

+0

ありがとうございました!しかし、私は第三者のライブラリ/フレームワークを避けたいと思います。私は、 "mmsystem.h"と "Winmm.lib"または他のシステムライブラリ(はい、私はWindows上にあります;-)のみを使用したいと考えていました。試してみて! –

0

「midiOutOpen」を使用してデバイスを開く必要があります。 別のデバイスIDを選択するとどうなりますか?

+0

デバイスIDとして0を渡すと内蔵FMシンセが再生され、1を超えるとプログラムがクラッシュします! :-( –

0

あなたは正しいデバイスを開いていないようです。 midiOutOpenは、第2のパラメータとしてデバイスIDを取得します。あなたが渡したものが正しいかどうかチェックしましたか(midiOutGetNumDevsとmidiOutGetDevCapsを使用していますか?)

+0

私はSFZを起動+私のアプリの前に、と1を返しmidiOutGetNumDevs方法(ただ一つのデバイス)!私のスタンドアロンのサンプラーが認識されていないようです! –

+0

どのようにサンプラーはその入力を取得していますか?あなたがそれを設定する必要がありますかハードウェアMIDIドライバからその入力を受け取りますか? – bgporter

+0

Ehm ...これは良い質問です!私はSFZ +が私にMIDI設定を許可しないことに気付きました。私がMIDIメニューをクリックすると何も表示されません!多分、私が働いているPCにMIDIインターフェースがないからかもしれません。別のサンプラー/シンセをインストールする価値はありますか? –

0

多くのソフトウェアシンセサイザーは、Windows MIDIデバイスとして機能しません。フリーウェアLoopBe1を使用して、MIDIアプリケーション間で仮想ケーブルを接続してみてください。

関連する問題