В дополнение к получению 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 самому себе может быть забавной, но это не так полезно. Реальная польза начинается, когда мы отправляем сообщения в другие программы:
use_osc "localhost", 123456
osc "/hello/world"
В этом случае мы предполагаем, что есть другая программа на том же компьютере, которая прослушивает порт 123456. Если это так, то она получит сообщение OSC “/ hello / world`, с которым она сможет сделать все, что захочет.
Если наша программа работает на другом компьютере, нам нужно знать ее IP-адрес, который мы используем вместо " localhost "
:
use_osc "192.168.10.23", 123456
osc "/hello/world"
Теперь мы можем отправлять сообщения OSC на любое доступное нам устройство через наши локальные сети и даже через Интернет!