MIDI на Android: библиотеки Java и / или AIR - PullRequest
2 голосов
/ 26 мая 2010

Я уже некоторое время размышлял над (пере) сборкой приложения для iPad, где я использовал бы target-C и DSMI для отправки MIDI-сигналов на хост-компьютер.Это неплохо (я имею в виду, кроме написания приложения).

Сейчас я обдумываю, возможно, разработку приложения для планшетов Android (TBA).

Какие опции доступны для обмена сообщениями MIDI в Java? Я хорошо знаком с javax.sound.midi, но тогда мне понадобится виртуальный порт MIDI для отправки сообщений наhost.

С другой стороны, , если бы приложение было создано в Adobe AIR, какие варианты были бы у меня для связи с MIDI?

Очевидно, что другой вариант - этоотправлять / получать сообщения через сокет TCP / IP на хост Java и говорить таким образом, но это звучит немного громоздко ... или, возможно, нет?В конце концов, DSMI использует хост-программу.

1 Ответ

3 голосов
/ 26 мая 2010

javax.sound.midi недоступно в Android.

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

В одном приложении, которое я сделал, мне нужно было динамически воспроизводить ноты на основе графического интерфейса / взаимодействия с пользователем, и в итоге пришлось использовать сэмплы и фильтры тона для создания заметок.

Похоже, вам нужно сделать так, чтобы DSMI был перенесен на android, с открытым исходным кодом Библиотека iPhone выглядит довольно просто, не должно быть трудностей при переносе.

EDIT:

Подумав об этом на секунду, вы ничего не получите, используя javax.sound.midi или любую другую миди-функциональность, существующую в AIR. Все, что вам нужно сделать, это передать MIDI-сообщения по сетевому каналу на другое устройство, которое отвечает за связь с настоящим MIDI-синтезатором. Это именно то, что делает DSMI. Портирование iPhone libdsmi на Android - это то, что вам нужно, только 2 исходных файла и 2 заголовка. 1 обрабатывает формат сообщения MIDI, который очень прост и может быть просто преобразован построчно в java, а другой обрабатывает сетевое подключение к серверу DSMI, который необходимо переписать для использования семантики Android для создания сетевых подключений.

...