TetaTricks/chap/OSC.tex

74 lines
1.9 KiB
TeX

\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}
\textbf{Envoyer :}
Pour envoyer, il faut bien définir une destination. Une fois
de plus, le couple IP adresse/port est utilisé. Ce sont les
deux premiers paramètres.
\begin{verbatim}
tth@debian:~$ oscsend localhost 1664 /tmp/kmem is 61 'meg, efface !'
tth@debian:~$
\end{verbatim}
La chaine \texttt{is} que vous voyez dans la ligne de commande
décrit le type des paramètres qui suivent~:
\texttt{i} est pour un integer et \texttt{s} pour une
chaine (notez les simples quotes pour passer les caractères
speciaux du shell).
\textbf{Ecouter :}
\begin{verbatim}
tth@debian:~$ oscdump 1664
/tmp/kmem is 61 "meg, efface !"
^C
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{En Perl} \index{Perl}
% ------------------------------------------------
\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