Я экспериментировал с созданием звуков, используя математические волновые функции в C. Следующим шагом в моем проекте является получение пользовательского ввода с контроллера MIDI-клавиатуры для модуляции волн на разные высоты тона.
Моей первой мыслью было, что это будет относительно просто и что Linux, будучи Linux, позволит мне читать необработанный поток данных с моего устройства, как и любой другой файл.
Тем не менее, исследования в подавляющем большинстве советуют мне написать драйвер устройства для MIDI-контроллера. Общая идея состоит в том, что даже если файл устройства может присутствовать, ядро не будет знать, какие системные вызовы выполнять, когда мое приложение вызывает такие функции, как read() и write().
Несмотря на эти предупреждения, я провел эксперимент. Я подключил MIDI-контроллер и открыл файл устройства «/dev/midi1». Появился постоянный поток нулевых символов, и когда я нажал клавишу на MIDI-контроллере, появилось несколько байтов, соответствующих ожидаемым фрагментам сообщений, которые должно выводить MIDI-устройство.Информация о MIDI-протоколе
Итак, мои вопросы:
Почему поток с катами ведет себя таким образом?
Означает ли это, что в моей системе уже установлен драйвер устройства plug and play?
Должен ли я продолжать и писать драйвер устройства, или мне может сойти с рук чтение его как файла?
Заранее благодарю вас за то, что вы поделились своей мудростью в этих областях.