Драйвер pyCoreMIDI vs PortMIDI

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

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

Исходный код pyCoreMIDI

Скачать можно на страничке проекта pycoremidi-google-code или сразу тут, при помощи Mercurial.

hg clone https://pycoremidi.googlecode.com/hg/trunk pycoremidi

Доделать проект понадобилось для обработки входящих сигналов с физического интерфейса MIDI и конвертирования его с дальнейшим посылом на виртуальное устройство MIDI. На данный момент в стадии доработки, но решил анонсировать сразу, чтобы учесть все пожелания и комментарии.

import pyCoreMIDI as cm

print cm.midiVirtualSystem('pyCoreMIDI', True)
print cm.midiGetNumberOfSources()

Теперь можно пользоваться собственным виртуальным устройством MIDI.

В чем запор с драйвером pyPortMIDI ?

Установка от cratel

Установка в моем случае:

$ svn co https://portmedia.svn.sourceforge.net/svnroot/portmedia/portmidi/trunk portmidi
$ cd portmidi
$ sudo make -f pm_mac/Makefile.osx install-with-xcode
  1. Понадобилось сделать ссылки на dylib файлы
  2. Используем жирненький xcode чтобы сделать libportmidi.a для OS X 10.4
  3. Копируем libportmidi.a and portmidi.h, porttime.h в pyPortMidi директорию с исходным кодом
  4. Удаляем porttime из зависимостей в setup.py

И затем долгожданный запуск

$ sudo python setup.py install

Результаты

После граблей с установкой PortMIDI при тестовом запуске прослушивающего сервиса для физического интерфеса MIDI USB мой macbook закипел =). pyCoreMIDI при этом больше похож на оригинальное решение для Mac OS X и производительность впечатляющая.


Добавить пост в:   Yandex.ru Google Yahoo Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Memori.ru Myscoop.ru 100zakladok.ru Rucity.com Moemesto.ru News2.ru Delicious Reddit Slashdot Digg Technorati
Комментировать

Поля не обязательны для заполнения, по умолчанию комментарий от Anonymous

captcha
Оставить комментарий используя OpenID

Пожалуйста выберите сервер с вашим аккаунтом:

Комментарии

К этой публикации комментариев нет