我一直在使用C中的数学波形函数来创建声音。我的项目的下一步是从MIDI键盘 Controller 获取用户输入,以便将波形调制为不同的音高。

我的第一个想法是,这将相对简单,并且Linux(即Linux)将使我能够像读取任何其他文件一样从设备读取原始数据流。

但是,绝大多数研究建议我为MIDI Controller 编写设备驱动程序。一般的想法是,即使设备文件可能存在,当我的应用程序调用诸如read()和write()之类的函数时,内核也不知道该执行什么系统调用。

尽管有这些警告,我还是做了一个实验。我插入MIDI Controller ,并整理了“/dev/midi1”设备文件。稳定的空字符流出现了,当我按下MIDI Controller 上的一个键时,出现了几个字节,对应于MIDI设备应该输出的预期消息块。 MIDI Protocol Info

所以我的问题是:

为什么猫流的行为如此?

这是否意味着我的系统上已经安装了即插即用设备驱动程序?

我还是应该继续编写设备驱动程序,还是可以像读取文件一样摆脱困境?

非常感谢您分享您在这些领域的智慧。

最佳答案



因为这大概是 Controller 正在接收的原始MIDI数据。空字节可能是某种同步滴答。



是的。



我不确定您正在阅读什么或如何得出这个结论,但这是错误的。 :)您已经为MIDI Controller 安装了一个非常好的驱动程序-继续使用它!

关于c - C Linux设备编程-从/Dev直接读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10856490/

10-13 06:43