Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-08-31 17:45:38 envoyer Osc de openFrameworks vers Supercollider

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

envoyer Osc de openFrameworks vers Supercollider



Salut à tous,

J'essaye de récupérer un message Osc dans Supercollider à partir de Openframeworks sous ubuntuStudio 12.04.
Voici le code dans SC :

(
	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.
J'ai même essayer avec un sketch ultra-simple dans Processing :

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.
Le problème est dans Sc, mais où ?


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#2 2012-08-31 18:03:52 Re : envoyer Osc de openFrameworks vers Supercollider

pob
Exterminator
Lieu: Rennes
Date d'inscription: 2009-10-13
Messages: 765
Site web

Re: envoyer Osc de openFrameworks vers Supercollider



Une histoire de bundle OSC peut-être ?
Je ne connais pas bien tous ces langages, mais j'ai déjà eu des moments de crise à cause des bundles OSC.

Dernière modification par pob (2012-08-31 18:04:09)

Hors ligne

 

#3 2012-09-02 16:10:23 Re : envoyer Osc de openFrameworks vers Supercollider

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: envoyer Osc de openFrameworks vers Supercollider



En fait Oscresponder est déprécié depuis la version 3.5, maintenant ils conseillent d'utiliser OSCdef.
Alors voici mon code :

n = NetAddr("127.0.0.1", 57120);
o = OSCdef(\osc, {|msg| msg[1].postln}, '/vitesse', n);

Seulement je n'arrive pas à accéder à valeur de OF pour l'envoyer dans ce synth

(
SynthDef("vent",{ arg freq, out = 0, vitesse;
    freq = SinOsc.kr(vitesse, 600, 800);   
    Out.ar( out, SendTrig.kr(Impulse.kr(4), 0, freq);
SinOsc.ar(freq, 0, 0.3) ! 2;
)}).add;
)
a = Synth("vent").play;

a.set("vitesse", o.]);//c'est ici que ça coince.

C'est une bétise mais je suis bloqué.
Merci pour l'aide.


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#4 2012-10-16 11:08:44 Re : envoyer Osc de openFrameworks vers Supercollider

{yv}
membre
Lieu: Berlin
Date d'inscription: 2011-04-01
Messages: 219
Site web

Re: envoyer Osc de openFrameworks vers Supercollider



matthieu a écrit:

En fait Oscresponder est déprécié depuis la version 3.5, maintenant ils conseillent d'utiliser OSCdef.
Alors voici mon code :

n = NetAddr("127.0.0.1", 57120);
o = OSCdef(\osc, {|msg| msg[1].postln}, '/vitesse', n);

Seulement je n'arrive pas à accéder à valeur de OF pour l'envoyer dans ce synth
...
a = Synth("vent").play;

a.set("vitesse", o.]);//c'est ici que ça coince.

C'est une bétise mais je suis bloqué.
Merci pour l'aide.

salut mathieu
il faut que tu fasses ca dans la `function' de ton OSCdef (non testé):

(
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

Hors ligne

 

#5 2012-10-16 12:39:39 Re : envoyer Osc de openFrameworks vers Supercollider

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: envoyer Osc de openFrameworks vers Supercollider



OK,
merci pour les précisions.

Depuis lors j'ai changé mon fusil d'épaule, j'utilise l'addon OfxSupercolllider pour communiquer.

J'ai juste un petit problème. wink

Je voudrais mettre un if pour qu'il s'exécute juste une foi dans un synth.
Voici mon code de base qui ne fonctionne pas :

(
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

Mais j'avoue ne pas savoir que faire.Ça te dit quelque chose ?


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#6 2012-10-16 13:26:04 Re : envoyer Osc de openFrameworks vers Supercollider

{yv}
membre
Lieu: Berlin
Date d'inscription: 2011-04-01
Messages: 219
Site web

Re: envoyer Osc de openFrameworks vers Supercollider



matthieu a écrit:

OK,
merci pour les précisions.

Depuis lors j'ai changé mon fusil d'épaule, j'utilise l'addon OfxSupercolllider pour communiquer.

J'ai juste un petit problème. wink
...
Mais j'avoue ne pas savoir que faire.Ça te dit quelque chose ?

En fait il me semble que tu mixes plusieurs concepts...

- un SynthDef n'est pas un Synth: un SynthDef est la "représentation" d'un instrument, un Synth est une instance de cet instrument, qui le joue.

Il faudrait plus de code pour voir ce que tu fais exactement, ce que tu viens de poster n'a pas beaucoup de sens helaas roll

Un autre détail, il ne faut pas mettre de logique dans le code pour le Server, mais la mettre dans le code pour le langage:

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

y

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024