OSC Ontvangen

Wanneer Sonic Pi opstart zal het standaard luisteren, op poort 4560, naar inkomende OSC berichten, van programma’s op dezelfde computer. Dit betekend dat je zonder dat je iets hoeft aan te passen, Sonic Pi OSC berichten kunt sturen, welke worden weergegeven in de cue log, net als inkomende MIDI berichten. Dit betekend ook dat alle inkomende OSC berichten worden toegevoegd aan de “Time State”, zodat je get en sync kan laten werken met ontvangen gegevens - net als dat dat met MIDI en synchronisatie van live_loops kan - zie secties 5.7 en 10.2 voor meer informatie over hoe dat werkt.

Een basis OSC berichten afhandelaar

Laten we een basis OSC berichten afhandelaar maken:

live_loop :bla do
  use_real_time
  a, b, c = sync "/osc*/trigger/prophet"
  synth :prophet, note: a, cutoff: b, sustain: c
end

In dit voorbeeld beschrijven het volgende OSC pad "/osc*/trigger/prophet" waarop we synchroniseren. Dit kan elk geldig OSC pad zijn. Een geldig pad mag alle letters en cijfers bevatten waarbij de /, zoals bij URLs, word gebruikt om het pad in meerdere woorden op te delen. Het /osc voorvoegsel word door Sonic Pi toegevoegd aan alle OSC berichten, dus we moeten OSC berichten sturen met pad /trigger/prophet om onze sync te laten doorlopen en de prophet synth te triggeren.

OSC berichten sturen naar Sonic Pi

We kunnen vanuit elke programmeertaal met een OSC module berichten naar Sonic Pi sturen. Als je bijvoorbeeld een OSC bericht wilt sturen vanuit Python kun je iets als dit doen:

from pythonosc import osc_message_builder
from pythonosc import udp_client
sender = udp_client.SimpleUDPClient('127.0.0.1', 4560)
sender.send_message('/trigger/prophet', [70, 100, 8])

Of, als je een OSC bericht vanuit Closure wilt sturen kunt het volgende doen vanuit de interactieve input omgeving (REPL):

(use 'overtone.core)
(def c (osc-client "127.0.0.1" 4560))
(osc-send c "/trigger/prophet" 70 100 8)

Ontvang van andere computers

Vanwege veiligheidsvoorzorgen laat Sonic Pi niet standaard machines op afstand OSC-berichten verzenden. Maar je kan dit toestaan in Voorkeuren->IO->Netwerk->Ontvang OSC-berichten op afstand. Wanneer je dit hebt aangezet, kan je OSC-berichten van elke computer op je netwerk ontvangen. Normaal zal de versturende machine moeten weten wat het IP-adres is (een unieke waarde die je computer identificeert op je netwerk - net als een telefoonnummer of een emailadres). Je kan je eigen IP-adres opzoeken door te kijken naar de IO-sectie in het voorkeursscherm. Als je computer meerdere IP-adressen heeft, ga dan met de muis over het adres om een lijst van alle bekende adressen te krijgen.

Weet dat sommige programma’s, zoals TouchOSC for iPhone en Android het versturen van OSC-berichten standaard ondersteunen. Dit betekent dat wanneer je luistert naar computers die van buitenaf berichten versturen en je weet je IP-adres, je meteen berichten kan gaan versturen van apps zoals TouchOSC waarmee je je eigen gebouwde drukknoppen en schuifregelaars, knoppen en draaiknoppen kan maken en zo meer. Hiermee kan je een ongelooflijke hoeveelheid inputmogelijkheden creëren.