我一直在使用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/