私はCで数学的な波動関数を使って音を作りました。プロジェクトの次のステップは、MIDIキーボードコントローラからのユーザ入力を受けて、ピッチ。C Linuxデバイスプログラミング - ストレートfrom/Devを読む
私の最初の考えは、これは比較的シンプルであり、LinuxのLinuxは他のファイルと同じように私のデバイスから生データストリームを読み取ることができるということでした。
しかし、研究では、MIDIコントローラのデバイスドライバを作成することを圧倒してお勧めします。一般的な考え方は、デバイスファイルが存在していても、アプリケーションがread()やwrite()のような関数を呼び出すときにカーネルが実行するシステムコールを知りません。
これらの警告にもかかわらず、私は実験を行った。私はMIDIコントローラを接続し、 "/ dev/midi1"デバイスファイルをcat'edしました。ヌル文字の安定したストリームが現れ、MIDIコントローラーでキーを押すと、MIDIデバイスが出力する必要があるメッセージチャンクに対応する数バイトが表示されました。 MIDI Protocol Info
だから私の質問は以下のとおりです。
なぜcat'edストリームは、このように動作するのでしょうか?
これは、システムにプラグアンドプレイデバイスドライバがインストールされていることを意味しますか?
まだデバイスドライバを作成する必要がありますか、それともファイルのように読むことができますか?
これらの分野であなたの知恵を共有していただき、ありがとうございます。
これをcat'tingするのではなく、 'C'プログラムからデバイスを読み込むことをお勧めします。 「有効な」データが表示されているとしたら、確かにわからないのですか? btwには既にそこにデバイスドライバが存在していなければなりません。さもなければ、デバイスファイルを持っていなくても、それにアクセスする方法もありません。 – KevinDTimm