Bonjour,
dans l'idée de créer des modules facilement réutilisables, j'ai un OSCresponder réagissant à un toggle de TouchOSC et qui écrit dans un control bus des états 0 et 1.
Je souhaite me servir de ce bus pour différentes choses, notamment déclencher des Patterns.
Pour rester le plus modulaire possible j'aimerais ne pas avoir à écrire de condition de déclenchement dans l'OSCresponder. Donc en gros je cherche à gater un Pbind comme on peut gater un synth. C'est possible?
Merci!
PS: Bravo aux rennais pour leur rencontre de juillet! Je serais bien partant pour un petit échange de ce genre à Paris!
Hors ligne
derrière les patterns se cachent des Task/Routine donc il faut à un moment donné utiliser une condition si tu veux déclencher un Pbind.
par contre écrire une condition dans le code de l'OSCResponder ne me parait pas très approprié mais sans voir ton code c'est seulement de la spéculation
++
_y
Hors ligne
Ok,
mon code est composé de deux blocs:
un premier où je crée un control bus et un responder qui alimente ce bus à l'état 0 ou 1,
un deuxième avec un pattern quelconque:
(
//Toggle1
~kbus_toggle1 =Bus.control;
~osc_toggle1 = OSCresponderNode.new(nil, "/2/toggle1", { arg time, resp, msg;
~kbus_toggle1.value =msg.at(1);
}).add;
)
(
p=Pbind(
\instrument, \default,
\dur,0.5 )
)
J'aimerais pouvoir lancer mon pattern par une condition genre
"si la valeur de mon bus est égale à 1, q=p.play, sinon,q.stop".
Et ceci en dehors du bloc responder (ça marche dans ce cas, mais le bus ne sert à rien).
Merci!
Olivier
Hors ligne
dans ce cas je ne suis pas sûr de voir à quoi sert le bus...
voilà ce que je ferais, j'utiliserais une fonction plutot (code non testé mais ca te donnera peut-etre des idées):
( p = Pbind( \instrument, \default, \dur,0.5 ) ); ~playFunc = { |toggle| if (toggle == 1, { q = p.play; }, { q.stop; }) }; ~osc_toggle1 = OSCresponderNode.new(nil, "/2/toggle1", { |time, resp, msg| ~playFunc.(msg[1]); }).add; )
++
_y
[edit] je viens de relire ton message, apparement ceci est déjà ce que tu as fait
dans ce cas je ne comprend pas vraiment ta question ni pourquoi tu veux utiliser un bus...
Dernière modification par {yv} (2011-09-01 13:05:53)
Hors ligne
Merci pour ta réponse.
Je voudrais utiliser un bus pour ne pas avoir à retoucher mon code qui "écoute" TouchOSC. J'ai une trentaine de contrôleurs sur ma surface, je préfèrerais avoir un morceau de code regroupant des OSCresponders écrivant dans des control bus et ensuite en faire ce que je veux sans avoir besoin de retoucher ce bloc de base.
Rien de grave donc, juste envie de rester le plus modulaire possible!
Dernière modification par Olivier__F (2011-09-01 16:57:10)
Hors ligne
mais pourquoi utiliser des Bus pour ca?
tes Responders peuvent écrire dans la variable d'une classe (un Dictionary par exemple).
pas le temps là mais j'essaierai de te montrer un exemple ds qques jours.
++
_y
Hors ligne
Parce que je n'ai lu que le chapitre 1 du Supercollider Book!
En fait je n'ai aucune idée de ce qu'est un Dictionnary...
Hors ligne