Отправка OSC

В дополнение к получению OSC и работе с ним, используя Time State, мы также можем отправлять сообщения OSC одновременно с музыкой, исполняемой посредством нашего кода (точно так же, как мы можем одновременно с этим отправлять и MIDI-сообщения). Нам просто нужно знать, на какой IP-адрес и порт мы отправляем. Давайте попробуем:

use_osc "localhost", 4560
osc "/hello/world"

Если вы запустите приведенный выше код, вы заметите, что Sonic Pi отправляет сам себе сообщение OSC! Это связано с тем, что мы установили IP-адрес текущего компьютера, и значение порта OSC по умолчанию. По сути, это то же самое, что и отправка письма самому себе - сначала пакет OSC создается, покидает Sonic Pi, попадает в сетевой стек операционной системы, который перенаправляет упакованный пакет обратно в Sonic Pi, а затем он принимается как стандартное сообщение OSC и отображается в журнале событий как входящее сообщение /osc:127.0.0.1:4560/hello/world. (Обратите внимание, что Sonic Pi автоматически префиксирует все входящие сообщения OSC с помощью / osc.)

Отправка OSC в другие программы

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

use_osc "localhost", 123456
osc "/hello/world"

В этом случае мы предполагаем, что есть другая программа на том же компьютере, которая прослушивает порт 123456. Если это так, то она получит сообщение OSC “/ hello / world`, с которым она сможет сделать все, что захочет.

Если наша программа работает на другом компьютере, нам нужно знать ее IP-адрес, который мы используем вместо " localhost ":

use_osc "192.168.10.23", 123456
osc "/hello/world"

Теперь мы можем отправлять сообщения OSC на любое доступное нам устройство через наши локальные сети и даже через Интернет!