Réception OSC

Par défaut, lorsque Sonic Pi est lancé, il écoute sur le port 4560 pour des messages OSC entrant de programmes sur le même ordinateur. Cela veut dire que sans aucune configuration, vous pouvez envoyer à Sonic Pi un message OSC et il sera affiché dans la queue du journal tout comme les messages MIDI entrants. Cela veut également dire que tout message OSC entrant est aussi automatiquement ajouté à l’État du Temps, ce qui veut dire que vous pouvez aussi utiliser get et sync pour travailler avec l’information entrante, comme avec le MIDI, et synchroniser live_loops - voir les sections 5.7 et 10.2 pour récapituler comment cela fonctionne.

Un écouteur OSC basique

Construisons un écouteur OSC basique :

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

Dans cet exemple, nous décrivons un chemin OSC "/osc*/trigger/prophet" sur lequel nous nous synchronisons. Cela peut être n’importe quel chemin OSC valide (toutes les lettres et chiffres sont supportés et le / est utilisé comme dans une URL pour diviser le chemin en plusieurs mots). Le préfixe /osc est ajouté par Sonic Pi à tous les messages OSC entrants, alors nous devons envoyer un message OSC avec le chemin /trigger/prophet pour que notre sync cesse de bloquer et que le synthé prophet soit déclenché.

Envoyer du OSC à Sonic Pi

Nous pouvons envoyer du OSC à Sonic Pi à partir de n’importe lequel langage de programmation qui a une librairie OSC. Par exemple, si nous envoyons du OSC à partir de Python, nous allons faire quelque chose ressemblant à ceci :

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])

Ou si nous envoyons du OSC à partir de Clojure, nous allons faire quelque chose qui ressemble à ceci à partir de la REPL :

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

Recevoir des machines externes

Pour des raisons de sécurité, par défaut Sonic Pi ne laisse pas les machines distantes lui envoyer des messages OSC. Cependant, vous pouvez activer le support des machines distantes dans Préférences->IO->Réseau->Recevoir des messages OSC distants. Une fois que vous l’avez activé, vous pouvez recevoir les messages OSC de n’importe quel ordinateur sur votre réseau. Habituellement, la machine expéditrice va devoir connaître votre adresse IP (un identificateur unique de ton ordinateur sur ton réseau - comme un numéro de téléphone ou une adresse courriel). Vous pouvez découvrir l’adresse IP de votre ordinateur en regardant la section IO de votre panneau de préférences. (Si votre machine a plus d’une adresse IP, placer votre souris sur l’adresse listée fera apparaître une liste de toutes les adresses connues).

Prenez note, des programmes comme TouchOSC pour iPhone et Android supportent l’envoi de OSC comme fonctionnalité standard. Alors, une fois que vous écoutez les machines distantes et que vous connaissez votre adresse IP, vous pouvez commencer instantanément l’envoi de messages à partir d’applications comme TouchOSC ce qui vous permet de construire vos propres contrôles tactiles personnalisés avec glisseurs, boutons, cadrans, etc. Cela vous fournit un grand éventail de possibilités d’entrée.