Двунаправленный -анализ/отслеживание обмена данными ALSA MIDI SysEx

Кто-нибудь знает хороший способ получить би -направленный дамп данных MIDI SysEx в Linux? (между MIDI-клавиатурой Yamaha PSR -E413 и копией Yamaha MusicSoft Downloader , работающей в Wine)

Я хотел бы реверсировать -протокол, используемый для копирования MIDI-файлов в и из внутренней памяти моей клавиатуры, и для этого мне нужно сделать запись действительных обменов между ними.

Утилита работает в Wine(с небольшими подталкиваниями ), но я не хочу полагаться на дешевое, не -скриптовое приложение в Wine, когда я мог бы использовать файловую систему FUSE.

Вот текущее положение дел.:

  • Моя клавиатура подключается к компьютеру через встроенный -в USB -MIDI-мост. USB-дамперы/шпионы возможны, но я бы предпочел избегать их, если это возможно. Я не хочу декодировать еще один уровень кодирования протокола еще до того, как начну.
  • Я запускаю только Linux. Однако, если действительно нет другого варианта, кроме дампера/отслеживателя на базе Windows -, я могу попробовать получить пропуск USB 1.1 -, работая на моей виртуальной машине WinXP VirtualBox.
  • Я запускаю чистую ALSA для своей аудиосистемы с dmix для микширования звуковых сигналов.
    • Если звуковой сервер необходим, я готов поэкспериментировать с JACK.
    • Пожалуйста, не используйте PulseAudio. Потребовалось достаточно много времени, чтобы исключить его из моей системы.
  • Если процесс включает в себя MIDI-маршрутизацию ALSA :
    • , виртуальный проход -через устройство, которое я могу выбрать в загрузчике, предпочтительнее, потому что он часто появляется только в графическом интерфейсе отсека патчей ALSA, например patchage за мгновение до того, как он начнет обмениваться данными с клавиатурой.
    • Насколько я могу судить, ни KMIDIMon , ни GMIDIMonitor не поддерживают отслеживание двух направлений -.
    • virmidi не имеет значения , и мне не удалось заставить snd-seq-dummyработать.
  • Полагаю, я мог бы пропатчить ALSA, чтобы получать дампы, если мне действительно нужно, но на самом деле это крайний вариант.
    • Подавляющее большинство моего опыта программирования приходится на Python, PHP, Javascript и сценарии оболочки.
    • У меня почти нет опыта программирования на C.
    • Я даже мельком не видел код режима ядра -.
    • Я бы предпочел, чтобы моя система была стабильной, а время безотказной работы — высоким.

5
задан ssokolow 18 April 2012 в 23:17
поделиться