OSCraw

OSCraw — Ecoute tous les messages OSC sur un port donné.

Description

A chaque cycle-k cherche si un message OSC a été reçu sur un port donné et copie son contenu dans un tableau de chaînes de caractères. Tous les messages sont copiés. Si un paquet de messages est reçu, le tableau de sortie contiendra tous les messages.

Syntaxe

Smess[], klen OSCraw iport

Initialisation

iport -- port sur lequel les messages seront reçus.

Exécution

Smess[] -- un tableau de chaînes de caractères contenant les composantes du messages : adresse, types et éléments de données. Si le tableau n'existe pas (c'est-à-dire n'a pas été initialisé), il en est créé un de taille 2. Les tableaux ne peuvent grossir avec la taille du message, si bien que si un message de plus de 2 éléments (c'est-à-dire avec des éléments de données) doit être entièrement copié en sortie, un tableau plus grand doit être initialisé avant utilisation. Si un message a plus d'éléments que le tableau ne peut en contenir, il est tronqué.

klen -- nombre d'éléments placés dans le tableau de sortie. Vaut 0 si aucun message n'a été reçu et au moins 2 si un message a été reçu (adresse et types sont les éléments minimaux).

Exemple 693. Exemple.

Le fichier CSD suivant montre comment un message est reçu par OSCraw :

<CsoundSynthesizer>
<CsOptions>
-o dac
</CsOptions>
<CsInstruments>

instr	1
 kwhen  init 0
 kmetro metro 1
 kwhen += kmetro
 OSCsend kwhen, "127.0.0.1",7771, "/foo/bar", "f", kwhen
endin

instr 2
top:
Smess[],ka OSCraw 7771
kn = 0
while kn < ka do
  printf ": %s ", kn+1, Smess[kn]
  kn += 1
od
printf "%d items\n", ka, kn
if ka > 0 kgoto top
endin

</CsInstruments>
<CsScore>
i1 0 10
i2 0 10
</CsScore>
</CsoundSynthesizer>

Voir aussi

OSCsend, OSCinit, OSClisten.

Plus d'information sur cet opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y, par Andrés Cabrera

Crédits

Auteurs: Oeyvind Brandtsegg, Victor Lazzarini
2017

Les types aAG sont nouveaux dans Csound 6.07