74 lines
1.9 KiB
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
|
|
|
|
|