\chapter{Open Sound Control} \index{OSC} \label{chap:OSC} Wikipedia : \textsl{OSC est un format de transmission de données entre ordinateurs, synthétiseurs, robots ou tout autre matériel ou logiciel compatible, conçu pour le contrôle en temps réel. Il utilise le réseau IP\index{IP} au travers des protocoles UDP\index{UDP} ou TCP\index{TCP} et apporte des améliorations en termes de rapidité et de flexibilité par rapport à l'ancienne norme MIDI\index{MIDI}\dots} Actuellement, j'utilise (pour le C) \texttt{liblo}\index{liblo} qui reste simple à utiliser tout en permettant de descendre à un bas niveau. Cette bibliothèque est livrée avec deux outils que nous allons voir maintenant. \section{oscdump \& oscsend} \index{oscdump}\index{oscsend} Ecouter : \begin{verbatim} tth@debian:~$ oscdump 1664 /tmp/kmem is 61 "meg, efface !" ^C tth@debian:~$ \end{verbatim} Envoyer : \begin{verbatim} tth@debian:~$ oscsend localhost 1664 /tmp/kmem is 61 'meg, efface !' tth@debian:~$ \end{verbatim} \section{Exemple de code} Ecouter : \lstinputlisting[language=c]{code/listen-osc.c} Envoyer : \lstinputlisting[language=c]{code/send-osc.c} \section{Autres logiciels} Beaucoup d'autres logiciels peuvent être controlés par OSC, ou générer des trames OSC : on peut citer Processing\index{Processing}, Chuck\index{Chuck},\dots