Page 1 of 1

Global Data OSC

Posted: 09 Oct 2025, 11:44
by grego mondo
Bonjour, salut

Je viens de découvrir le global data osc

Super sur le principe mais je cherche à comprendre pourquoi il m'"espace" mes valeur en nourrissant le GA
j'ai (il me semble) bien commenté mon patch

mais en gros

Global Data OSC recoit bien les 90 (pour l'exemple) valeurs envoyées en osc
mais il nourrit mon global data array
avec 0=0
1=2
2=4
3=6
...

Je peux tricher en créant un global array 2 fois plus grand puis en le compressant pour récupérer les valeurs à leur place
mais j'aimerai comprendre à quel endroit je fais une erreur ....

merci d'avance pour vos réponses

Re: Global Data OSC

Posted: 09 Oct 2025, 15:13
by BM2F
Salut,

La petite erreur ici est dans l'envoi. l'OSC send avait un paquet size de 90 donc tu send un array d'une size de 90 à 1 seule adresse OSC.
Avec le module GA DATA OSC permet une "auto-indexation" du message OSC. Ainsi pour parler à l'index 0 in utilise l'adresse /osc/presence/test/1, /osc/presence/test/2 pour l'index 1 et ainsi de suite.
(note : /osc/presence/test/ est l'adresse OSC entrée dans le module)
Si tu veux set l'ensemble des 90 index, il te faut envoyer 90 messages OSC.

Ci joint un patch avec le correctif et quelques commentaires :

Re: Global Data OSC

Posted: 09 Oct 2025, 15:35
by grego mondo
Merci

J'envoyais bien un Array, c'était mon but.

Je comprend donc que la fonction de ce module Global Data OSC est au contraire de "concater" 90 messages différents en un seul array et de le transformer un Global Array direct et c'est super !!

J'avais compris qu'il transformait direct un array osc en global array.




J'imagine que le send transforme mon Array en 90 messages OSC (ce qui évite le sub patch avec polyphonie de 90 voix)
après mini essais, il semble que non, ce n'est pas si simple

Y a t'il un module qui transforme un Array en 90 messages OSC ?

Re: Global Data OSC

Posted: 09 Oct 2025, 19:09
by oli_lab
Yo !
Je complète la réponse de Baptiste :
Global array OSC intéressant pour interfacer un appareil OSC avec usine qui envoie l'OSC de maniere incrémental (comme Touch OSC par exemple).
Un ESP8266 (arduino) peut aussi envoyer de l'OSC sous cette forme, mais on peut aussi envoyer des ensembles de données avec une seule et même adresse. Dans ce dernier cas, il vaut mieux utiliser un OSC receive. (ou un osc lister)

si c'est pour communiquer entre plusieurs instances d'Usine, mieux vaut utiliser les global arrays.

Olivar

Re: Global Data OSC

Posted: 09 Oct 2025, 19:34
by grego mondo
Merci Olivar

Je communique avec Touch Designer et Untiy

d'un coté je reçois un array de 90 valeurs qui m'indiquent l'etat de 90 zones (disons capteurs)
et de l'autre je dois envoyer un même message /btn_on et le numéro de la zone qui est passé ON à Unity.

Je nourris un GA avec mes valeurs reçues en OSC,
Je les traites puis j'en renvoies certaines à Unity.
/btn_on/i 1 puis 5 puis 6 puis 9 mettons pour un array reçu 100011001

J'entre donc les valeurs de mon GA dans un sub polyphonique par un Array input (once in poly)
Je récupère la poly value de mon Array IN > 0 to 1 > send d'un OSC send avec un message /btn_on avec la valeur du current voice (oui de 1 à 90 et non 0/89)
et 1 to 0 avec le message /btn_off (même principe)

ça marche sans soucis, je cherche juste d'autres chemins pour la beauté du geste.

Re: Global Data OSC

Posted: 09 Oct 2025, 23:26
by oli_lab
pour plus de beauté du geste, tu peux changer l'adresse d'un unique OSC send, dynamiquement en fonction de l'index de l'array qui a changé d'état. à condition qu'il n'y a pas de changements simultanés.

Re: Global Data OSC

Posted: 10 Oct 2025, 01:08
by grego mondo
J'y ai pensé,
tu imagine bien,

nez en moins j'ai potentiellement 2 index (ou plus) simultanés ...

J'ai un peu exploré les "array différence" et j'aurais sans doute pu faire un patch à 5 (en imaginant cela comme un max de simultanés) voix de polyphonies en entrant le résultat de "difference" comme un array et en allant chercher le resultat en poly voice
mais j'ai buté sur la problématique suivante :
1 est activé et le reste > poly 1
2 est activé > poly 2
1 est relâché > 2 passe en poly 1 (il est donc re renvoyé par la voice 1) ...

à l'usage nous n'utilisons (pour l'instant) que les déclenchements (trigger) des capteurs mais je voulais garder la possibilité d'un ON/OFF, pas juste un trig, un mode qui puisse jouer sur la durée ....

Comme dit le proverbe Centre Breton :
"il faut accepter de devoir chauffer un peu plus si on laisse des portes ouvertes ..."


Bonne nuit

Re: Global Data OSC

Posted: 10 Oct 2025, 10:30
by oli_lab
jette un oeil à "array unpack" et "array one by one"