我一直在用C语言创建数学波函数来制作声音。我的项目的下一步是从MIDI键盘控制器获取用户输入,以便将波形调制到不同的音高。
我最初认为这会相对简单,并且Linux会像处理其他文件一样允许我读取设备的原始数据流。
然而,研究表明我需要为MIDI控制器编写设备驱动程序。总的想法是,即使设备文件存在,内核也不知道在应用程序调用read()和write()等函数时执行哪些系统调用。
尽管有这些警告,我还是进行了一次实验。我插入了MIDI控制器并cat了“/dev/midi1”设备文件。一连串的空字符出现了,当我按下MIDI控制器上的一个键时,几个字节出现,对应于MIDI设备应输出的预期消息块。MIDI Protocol Info 所以我的问题是:
为什么cat的流会表现出这种方式?
这是否意味着我的系统已经安装了即插即用设备驱动程序?
我最初认为这会相对简单,并且Linux会像处理其他文件一样允许我读取设备的原始数据流。
然而,研究表明我需要为MIDI控制器编写设备驱动程序。总的想法是,即使设备文件存在,内核也不知道在应用程序调用read()和write()等函数时执行哪些系统调用。
尽管有这些警告,我还是进行了一次实验。我插入了MIDI控制器并cat了“/dev/midi1”设备文件。一连串的空字符出现了,当我按下MIDI控制器上的一个键时,几个字节出现,对应于MIDI设备应输出的预期消息块。MIDI Protocol Info 所以我的问题是:
为什么cat的流会表现出这种方式?
这是否意味着我的系统已经安装了即插即用设备驱动程序?
我是否仍然需要编写设备驱动程序,还是可以像读取文件一样轻松地进行阅读?
非常感谢您在这些领域分享您的智慧。