Комментарии 17
Спасибо за статью, недавно установил себе на Android программу TouchOSC, она как раз через новый протокол работает. Можно теперь легко телефон использовать как контроллер, даже доступ к акселерометру есть :)
Спасибо за статью, когда-то давно интересовался MIDI.
Подскажите какую прогамму можно использовать при работе в Линуксе с мидиклавиатурой (MAudio, в частности).
Существует ли у кого-нибудь проблема ощутимых задержек между нажатием клавиши на мидиклавиатуре и воспроизведением звука?
Подскажите какую прогамму можно использовать при работе в Линуксе с мидиклавиатурой (MAudio, в частности).
Существует ли у кого-нибудь проблема ощутимых задержек между нажатием клавиши на мидиклавиатуре и воспроизведением звука?
> Чтобы этого избежать, надо передавать сообщения в разных пакетах
Это точно правильно? Имхо, чтобы порядок не нарушился, команды должны прийти в одном пакете.
Это точно правильно? Имхо, чтобы порядок не нарушился, команды должны прийти в одном пакете.
В том то и дело, что их порядок нарушается в рамках одного пакета. А если в разных пакетах передавать, то можно выполнить синхронизацию с помощью тайм-тэгов.
Как это происходит физически? У нас есть один UDP-пакет. В нем один OSC bundle, внутри которого список сообщений. Байты будут в том же порядке, в каком они были посланы. Сообщения выполняются друг за другом, как они могут перепутаться местами?
Я не специалист в сетевых штуках, в моем случае bundle = пакет (это первый вариант, предложенный гуглопереводчиком, и я счел его подходящим). На диаграмме в статье сначала идет OSC stream, в котором последовательно передаются пакеты (bundles), в которых уже находятся сообщения. Я не знаю, где вы нашли еще пакеты.
Я тоже был удивлен, когда узнал, что сообщения могут прийти в не в том порядке, в котором были отправлены. В тексте я привел ссылку на публикацию с конверенции NIME, в которой этот факт разъясняется (4 глава).
Я тоже был удивлен, когда узнал, что сообщения могут прийти в не в том порядке, в котором были отправлены. В тексте я привел ссылку на публикацию с конверенции NIME, в которой этот факт разъясняется (4 глава).
Почитал pdf по ссылке, страница 4, раздел fault tolerance, верно? Там как раз говорится, что если шлются два UDP-сообщения (они же два UDP-пакета, вот откуда я нашел еще пакет), то сам факт доставки, равно как и порядок доставки не гарантирован. Это особенность протокола.
Еще раз: если будет послано две (или больше команд) в разных UDP-сообщениях, то и прийти они могут в произвольном порядке (но внутри каждого UDP-сообщения порядок будет сохранен).
Еще раз: если будет послано две (или больше команд) в разных UDP-сообщениях, то и прийти они могут в произвольном порядке (но внутри каждого UDP-сообщения порядок будет сохранен).
Шик! У самого руки бы никогда не дошли погуглить ;)
Небольшая ошибка: в таблице 1, статус байт для «Системные сообщения» должно быть должен быть 1111nnnn.
А насколько широко OSC поддерживается современными железками, например, теми же MIDI-клавиатурами?
Да практически никак. Для обычных клавиатур MIDI идеален. Из контроллеров, поддерживающих OSC, я знаю только Monome.
Хоть OSC и задумывался, как замена MIDI, реально он нашел свою нишу, отличную от MIDI. Его используют почти во всех креативных программах для обмена данными: VVVV, Max/MSP, PureData, EyeCon, Processing… Список можно продолжать очень долго.
Хоть OSC и задумывался, как замена MIDI, реально он нашел свою нишу, отличную от MIDI. Его используют почти во всех креативных программах для обмена данными: VVVV, Max/MSP, PureData, EyeCon, Processing… Список можно продолжать очень долго.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
MIDI и OSC — основные протоколы взаимодействия музыкальных приложений