2016-03-25 6 views
2

Я использую пакет github.com/hypebeast/go-osc/osc для отправки сообщений OSC на сервер OSC. Для этого я использую OSCulator, чтобы я мог маршрутизировать данные как MIDI в Abelton Live.Форматирование сообщений OSC для сообщений MIDI

Проблема, с которой я столкнулся, не может найти информацию о форматировании сообщений для таких вещей, как примечание, примечание, продолжительность и т. Д. Я нашел руководство на веб-сайте OSCulator, которое немного полезно, но оно не вдаваться в подробности на обмен сообщениями: http://s3.amazonaws.com/osculator/doc/OSCulator+2.12+Manual.pdf

Например, следующая функция работает нормально, но я понятия не имею, что сообщение действительно делает:

func note(pitch float32 , velocity float32) { 

    // TODO: Pass client into function. Find out it's type. 
    client := osc.NewClient("localhost", 8765)  

    noteMsg := osc.NewMessage("/4/toggle2") 
    client.Send(noteMsg) 

    msg := osc.NewMessage("/4/xy") 
    msg.Append(pitch) 
    msg.Append(velocity) 
    client.Send(msg) 
} 

Я имею в виду, с какой целью делает то 4 игру в этом, и что такое xy? Кроме того, какие другие сообщения доступны кроме toggle2? Я думал, что будет какая-то документация в Интернете, в которой есть все типы сообщений, доступные для приложений типа MIDI.

+0

Возможный дубликат [Существующий стандарт (ы) для передачи MIDI через OSC?] (Http://stackoverflow.com/questions/28913458/existing-standards-for-passing-midi-via-osc) –

+0

Есть ли почему вы не используете OSC в Ableton напрямую, а не конвертируете его в midi, например, с showync.info/livegrabber? – Mattijs

+0

@ Mattijs Я не думал, что это возможно, хотя вчера я обнаружил Connection Connection, с которым я сейчас играю. – BugHunterUK

ответ

0

Ваш вопрос, похоже, больше связан с самим OSC.

OSC работает так:

Вы отправляете сообщение на сервер. Сообщение состоит из адреса и некоторых значений.

В этом случае /4/xy - это адрес. 4 и косые черты вы определяете, что будет. Когда вы получите его с другой стороны, вы узнаете, что хотите получить, что означает адрес, который вы отправляете. Таким образом, вы настроите сервер или получатель на что-то сделать, когда он получит сообщение от определенного адреса.

Точно так же вы добавляете значения в сообщение. Количество значений, которые вы уже знаете, поэтому вам просто нужно делать то, что вы хотите с ними, когда получаете.

В принципе, если вы решите иметь клавиатуру, отправляющую заметки, вы должны использовать что-то вроде /keyboard/note в качестве адреса и отправить одно значение за раз, чтобы вы прочитали это значение и что-то с ним сделали.

 Смежные вопросы

  • Нет связанных вопросов^_^