Pular para conteúdo

6.1 Envio de Mensagens Osc🔗

Open Sound Control🔗

Open Sound Control (OSC) é um protocolo de comunicação de música digital que está se tornando cada vez mais comum em softwares de áudio modernos. Aplicativos que utilizam OSC possuem um servidor que escuta mensagens de um cliente – é assim que o FoxDot se comunica com o SuperCollider para gerar áudio. Aqui está um rápido resumo de como enviar essas mensagens para outros aplicativos OSC a partir do FoxDot.

É muito simples; basta dizer ao FoxDot para "encaminhar" todas as mensagens OSC. Digamos que seu aplicativo esteja sendo executado no host local na porta 12345. Aqui está o código para conectar-se a ele:

Server.add_forward("localhost", 12345)

E é isso! Sempre que o FoxDot enviar uma mensagem OSC para o SuperCollider, ele também a enviará para o outro aplicativo OSC. Essas mensagens são geralmente enviadas como um grupo chamado "OSC Bundle", que contém uma mensagem sobre a nota que está sendo tocada e também uma mensagem para cada efeito aplicado. Veja como é a mensagem da nota:

[address, synth-name, synth-id, add-action, target-id, arg-1, value-1, arg-2, value-2, ...]

O "address" é basicamente o nome da função com a qual o aplicativo OSC deve processar o restante da mensagem; para o SuperCollider, geralmente é /s_new e significa "acionar sintetizador", e o "synth-name" é o nome do SynthDef que está sendo acionado. Os valores "synth-id", "add-action" e "target-id" referem-se especificamente ao SuperCollider, portanto, seu aplicativo provavelmente pode ignorá-los. Em seguida, vêm os argumentos usados, como frequência e amplitude, que são escritos em sequência e separados por vírgulas. Veja como uma mensagem típica pode ser:

["/s_new", "pluck", 1001, 1, 0, "freq", 440, "amp", 1, "pan", -1, "sus", 1]

Portanto, um sintetizador "pluck" cria uma nota com amplitude 1, frequência de 440 Hz, sustentação 1 e panorama -1. Todos os argumentos estão relacionados aos nomes dos parâmetros nomeados usados pelo FoxDot.

Outras informações🔗

Se você estiver recebendo este erro – FoxDot.lib.OSC3.OSCClientError: while sending: [Errno 111] Connection refused, verifique se as configurações de conexão de rede estão corretas. No Windows, isso será ignorado, mas o MacOS e o Linux exibirão esse erro sempre que você quiser tocar uma nota.

Para obter mais informações sobre como as mensagens OSC são tratadas pelo SuperCollider, aqui está um link para um excelente recurso sobre a arquitetura de comandos do servidor.