私は、C で数学的な波動関数を使用してサウンドを作成して遊んでいます。私のプロジェクトの次のステップは、波をさまざまなピッチに変調するために、MIDI キーボード コントローラーからユーザー入力を取得することです。
私の最初の考えは、これは比較的単純であり、Linux は Linux であるため、他のファイルと同じようにデバイスから生データ ストリームを読み取ることができるというものでした。
しかし、調査によると、MIDI コントローラー用のデバイス ドライバーを作成するように勧められています。一般的な考え方は、デバイス ファイルが存在する可能性があっても、アプリケーションが read() や write() などの関数を呼び出すときに、どのシステム コールを実行する必要があるかをカーネルが認識できないということです。
これらの警告にもかかわらず、私は実験を行いました。MIDI コントローラーを接続し、"/dev/midi1" デバイス ファイルを cat しました。null 文字の安定したストリームが表示され、MIDI コントローラーのキーを押すと、MIDI デバイスが出力する必要があると予想されるメッセージ チャンクに対応する数バイトが表示されました。MIDI プロトコル情報
だから私の質問は:
cat'ed ストリームがこのように動作するのはなぜですか?
これは、使用しているシステムにプラグ アンド プレイ デバイス ドライバーが既にインストールされているということですか?
デバイス ドライバーを作成する必要がありますか?それとも、ファイルのように読み取ることで解決できますか?
これらの分野であなたの知恵を共有してくれてありがとう。