Интерфейс миди-клавиатуры или другой миди-ввод в реальном времени с JavaScript? - PullRequest
9 голосов
/ 29 июня 2011

Я хочу создать простой инструмент визуализации, который позволил бы изобразить мою игру на клавиатуре миди.Я играю на относительно новом типе инструмента, называемом гармоническим столом:

http://en.wikipedia.org/wiki/Harmonic_table_note_layout

http://www.soundonsound.com/newspix/image/axis49.jpg

И хочу создавать инструменты, чтобы облегчить их использование и обучать другихкак их использовать.

Однако я не могу найти хороший способ получить midi в среду javascript (или, в этом отношении, Flash или Java без большой помощи jiggery-pokery, немного недоступной для меня, и использованиякода из того, что выглядит довольно устаревшим и заброшенным проектами с открытым исходным кодом. Ни в одном из языков я не слишком увлечен, чтобы работать над этим проектом в любом случае).

Есть ли подходящая библиотека или приложение, которое я пропустил, что позволит мне сделать это?

Ответы [ 8 ]

13 голосов
/ 30 июня 2011

При поиске другого решения (на основе Flash, с использованием функций флэш-сервера с открытым исходным кодом Red5 - действительно ужасно, но я в этом отчаялся) я нашел человека, который сделал именно то, что мне было нужно, используя Java для интерфейсас оборудованием.Они начали с флеш-решения и недавно портировали на Javascript.Yay!

http://www.abumarkub.net/abublog/?p=505

Не позволяйте предостережениям о «доказательстве концепции» обескураживать вас: базовые функциональные возможности кажутся надежными, по крайней мере, со всем, что я смог бросить.

Итак, я уже в пути, как и любой другой, кто хочет создавать основанные на javascript миди-интерфейсы / синтезаторы / что там у вас.

Я могу манипулировать миди в реальном времени в JavaScript!Это намного лучше, чем летающие машины и реактивные сапоги.

10 голосов
/ 28 марта 2012

Я создал плагин для браузера NPAPI, который позволяет вам общаться в Javascript с MIDI-устройствами.

В настоящее время он работает на OSX в Chrome и Safari, а также на Windows в Chrome.

Я работаю над поддержкой других браузеров (Firefox, Internet Explorer) и других операционных систем (Linux, Android, iOs)

См .: http://abumarkub.net/abublog/?p=754

8 голосов
/ 15 января 2013

EDIT:

Я недавно опубликовал этот модуль https://github.com/hems/midi2funk это модуль node.js, который слушает midi и транслирует его через socket.io, так что если у вас есть возможность запустить узел.js обслуживайте локально вместе со своей клиентской стороной, вы можете получить от этого удовольствие ...

~~~~~

Несколько других полезных ссылок, я вроде как заказал, как мне кажется, будетбыть наиболее важным для вас:

edit: только что понял, что ветка старая, надеюсь, ссылки кому-нибудь помогут (:

5 голосов
/ 17 октября 2015

API Web MIDI теперь является реальным в Google Chrome 43+. Я даже написал библиотеку, чтобы было легче с ней работать. Если вам все еще интересно, и вам все равно, работает ли он только в Chrome, проверьте это: https://github.com/cotejp/webmidi

1 голос
/ 09 января 2014

Поскольку Web MIDI API все еще является черновиком, прямого доступа к событиям MIDI в браузере нет.

Простой обходной путь - написать небольшой сервер, где вы регистрируете события MIDI и сообщаете о них.на ваш JavaScript с помощью веб-сокета.Это может быть сделано довольно легко в Python.

1 голос
/ 24 декабря 2012

Я действительно взволнован предстоящим Web MIDI API .Насколько я знаю, он только обсуждается и еще не вошел ни в один браузер.

В сочетании с API-интерфейсом Web Audio, который уже начал применяться в некоторых браузерах, можно будетполный синтез программного обеспечения в браузере.Захватывающие времена.

1 голос
/ 29 июня 2011

Большинство браузеров не разрешают доступ к любому оборудованию, кроме клавиатуры и мыши - по очевидным причинам безопасности, поэтому маловероятно, что вы можете получить доступ к устройству midi, если оно не подключено как одно из этих устройств.

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

0 голосов
/ 01 августа 2018

В настоящее время браузеры поддерживают прослушивание MIDI. Все, что вам нужно, это

navigator.requestMIDIAccess().then(requestMIDIAccessSuccess, requestMIDIAccessFailure);

и клавиши прослушивания

function requestMIDIAccessSuccess(midi) {
            var inputs = midi.inputs.values();
            for (var input = inputs.next(); input && !input.done; input = inputs.next()) {
                console.log('midi input', input);
                input.value.onmidimessage = midiOnMIDImessage;
            }
            midi.onstatechange = midiOnStateChange;
        }

См. Рабочий пример здесь

...