OSCraw — Ecoute tous les messages OSC sur un port donné.
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.
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>
Plus d'information sur cet opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y, par Andrés Cabrera