Serveur UDP

Csound 6 comprend un serveur UDP pleinement fonctionnel, qui peut accepter un ensemble de commandes et/ou d'orchestres.

Vue d'ensemble

On peut démarrer le serveur UDP avec l'option suivante :


   --port=N
  

où N indique un numéro de port pour écouter les messages UDP. Il n'est pas nécessaire de donner à Csound un CSD ou un orchestre, mais on peut aussi le faire.

Commandes

Les commandes sont formées d'un opcode suivi d'un ou de plusieurs arguments. Le serveur accepte les commandes suivantes :


   &[line event]
  

Envoie une ligne de texte représentant un évènement de partition [live event]. On peut envoyer plusieurs évènements sur plusieurs lignes. Utiliser cette commande pour des évènements simples ou multiples qui ne nécessitent pas de prétraitement.


   $[score]
  

Envoie une partition [score], pour laquelle la majeure partie du prétraitement (à l'exception du tempo) peut être appliquée. Utiliser cette option pour des blocs d'évènements de partition plus importants.


   @[channel_name] [value]
  

Donne la valeur [value] au canal de contrôle [channel_name]. Exemple : si le csd contient la ligne ' chn_k "freq", 440' alors '@freq 330' fixe "freq" à 330.


   %[channel_name] [string]
  

Donne la chaîne de caractères [string] au canal de contrôle [channel_name].


   :@[channel_name] [address] [port]
  

Demande que la valeur du canal de contrôle [channel_name] soit envoyée sous forme de chaîne de caractères via UDP à l'addresse [address] sur le port [port]. La chaîne de caractères contiendra le nom du canal suivi de deux double-points (::) et de sa valeur courante.


   :%[channel_name] [address] [port]
  

Demande que le contenu du canal de chaîne de caractères [channel_name] soit envoyé sous forme de chaîne de caractères via UDP à l'addresse [address] sur le port [port]. La chaîne de caractères contiendra le nom du canal suivi de deux double-points (::) et de sa valeur courante.

Code d'orchestre

En plus des commandes ci-dessus, le serveur UDP accepte aussi une chaîne de caractères contenant le code d'un orchestre, qui est compilé immédiatement. Cette chaîne de caractères n'est préfixée par aucun opcode de commande spécial. Cette chaîne de caractères doit être envoyée en un seul message UDP. Par exemple : scoreline_i "i 2 0 1 550 60"

Si le code de l'orchestre dépasse le nombre de caractères que peut contenir un message unique, on peut le scinder en messages séparés. Pour que ça fonctionne, le code complet de l'orchestre doit être encadré par des accolades ({ }). L'accolade ouvrante ({) commence l'enregistrement du code par le serveur et l'accolade fermante (}) envoie le code pour compilation. De cette manière, le code peut être envoyé en plusieurs messages.

Fermeture du serveur

On peut fermer le serveur (et Csound) avec une des commandes suivantes :


    ##close##
  

ou


   !!close!!