» codelab : http://codelab.fr/accueil » Forum : SuperCollider : http://codelab.fr/supercollider » envoyer Osc de openFrameworks vers Supercollider : http://codelab.fr/3562 Ceci est la version imprimable d'un sujet du forum, pour retourner à la version complète : envoyer Osc de openFrameworks vers Supercollider |
matheynen — 2012-08-31 17:45:38 |
Salut à tous, ( t =(); t.ecouteur = OSCresponder(nil, "/yell", {arg time, adr, msg ;var txt; if(msg[0] != 'status.reply') { txt = msg; txt.postln; "hello".postln; };}) ) Il me compile le code mais ne donne aucun message à chaque fois que j'envoie le message. import oscP5.*; import netP5.*; OscP5 oscP5; NetAddress myRemoteLocation; int on = 1; void setup() { size(104, 118); oscP5 = new OscP5(this, 12000); myRemoteLocation = new NetAddress("127.0.0.1", 57120); frameRate(1); } void draw(){ OscMessage myMessage = new OscMessage("/yell"); myMessage.add(on); oscP5.send(myMessage, myRemoteLocation); print(on); } et rebelotte toujours aucune réponse. |
pob — 2012-08-31 18:03:52 |
Une histoire de bundle OSC peut-être ? |
matheynen — 2012-09-02 16:10:23 |
En fait Oscresponder est déprécié depuis la version 3.5, maintenant ils conseillent d'utiliser OSCdef. |
{yv} — 2012-10-16 11:08:44 |
salut mathieu ( n = NetAddr("127.0.0.1", 57120); o = OSCdef(\osc, { |msg| a.set(\vitesse, msg[1]; }, '/vitesse', n) ) Autre erreur, pour les noms de paramètres de ton Synth, il faut utiliser des Symbol et non des String: \vitesse // Symbol 'vitesse' // Symbol "vitesse" // String y |
matheynen — 2012-10-16 12:39:39 |
OK, ( a = Buffer.read(s, "/home/mathieu/OF/apps/myApps/ plaid.wav"); b = SynthDef("SONG",{arg bufnum, out, ok = 0; if(ok == 1,{Out.ar( out, PlayBuf.ar(2, bufnum, BufRateScale.kr(bufnum)))} )}).store; ) plaid->set("ok", 1); // ce que j'envoie en continu depuis openFrameworks Quelqu'un sur la mail list me revoie à cette page http://supercollider.sourceforge.net/wi … a_SynthDef |
{yv} — 2012-10-16 13:26:04 |
En fait il me semble que tu mixes plusieurs concepts... s.boot; // server ( SynthDef(\foo, { |out=0, gate=1| var snd = SinOsc.ar(444, 0, 0.3); var env = EnvGen.kr(Env.perc, gate, doneAction: 2); Out.ar(out, snd * env) }).add ) // language ( fork{ inf.do{ |i| i.postln; if(i.asInteger.odd, { Synth(\foo) }); 1.wait; } } ) Plus d'info sur ce concept (très important dans SuperCollider..: http://doc.sccode.org/Guides/ClientVsServer.html |