Контроллеры MIDI, обработка сообщений в Ableton Live

Чтобы запрограммировать контроллеры для управления той или иной программой, в моем случае это Ableton, часто приходиться сталкиваться с обработкой и изменением входящего/исходящего MIDI сигнала от устройства или программы. MIDI сигналы/таблицы

Пример

Ableton понимает только CC(Control Change) команды, от напольных контроллеров гитарного типа исходят в основном команды PC(Program Change)(Например редкий, но популярный контролер ADA MPC или ADA MXC, которые очень легкие и компактные). Секвенсор игнорирует PC, т.к. подобные сигналы зарезервированы как системные. Болле современный контролер Rocktron MIDI Mate умеет посылать CC команды, но оказалось что он посылает только 5 команд, а мне нужно использовать как минимум 10 банков PC (50 СС), а то и все 0-127. Почему нет?

Драйвер pyCoreMIDI vs PortMIDI

За основу взял Turcanator — проект для тех, кто хочет научиться играть на пианино. Michal J Wallace сделал его в 2006 году, тогда же ему понадобилось реализоваться минимум интерфейса CoreMIDI для программирования в python2.4 под MacOS X, но проект перестал развиваться.

Так как лицензия проекта BSD, берем документацию Apple CodeAudio и доделываем api модуля python так, как это нужно.