Annonce

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

17 mai 2019 : accident de la base de données : plus d'infos

#1 2010-05-04 14:17:44 Récupérer Osc

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

Récupérer Osc



Salut à tous,

J'essaye de récupérer des valeurs provenant de Processing vers Sc via Osc avec le code que voici:

(
{var txt;
thisProcess.recvOSCfunc = { |time, addr, msg| 
	if(msg[0] != 'status.reply') {
		txt = msg;
		txt.postln;
	}
	};
SinOsc.ar(SinOsc.ar(txt[1],0,txt[2], 440),0,0.25)}.play;
);

Dans la console de Sc je vois les valeurs récupérée mais je n'ai aucun son.
Pourtant avec des valeurs en dur l'oscillateur marche.

Thank you for any help


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

Hors ligne

 

#2 2010-05-04 15:04:26 Re : Récupérer Osc

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Récupérer Osc



Salut Matthieu,

essaye ça (juste un manque de parenthèse ?...):

(
	{var txt;
	thisProcess.recvOSCfunc = { |time, addr, msg| 
		if(msg[0] != 'status.reply') {
			txt = msg;
			txt.postln;
					}
				};
	{SinOsc.ar(SinOsc.ar(txt[1],0,txt[2], 440),0,0.25)}.play;
	}
	
)

+++

Hors ligne

 

#3 2010-05-05 21:07:33 Re : Récupérer Osc

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

Re: Récupérer Osc



Merci pour ton aide

Avec le code que tu proposes la console indique :

a Function

et ne  reçoit aucun messages.

Le mystère s'épaissit !


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

Hors ligne

 

#4 2010-05-05 23:37:10 Re : Récupérer Osc

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Récupérer Osc



Salut,

Non, tu viens de créer une fonction. Dans supercollider lorsque tu pose des {}, tu définis une fonction.
plus de précisions ici http://danielnouri.org/docs/SuperCollid … tions.html .

Pour l'efficacité de ta fonction c'est une autre histoire...
J'aurais plutôt fait ça :

j'ai testé avec P5, ça marche. mais penses à faire un SynthDef quand tu auras avancé dans ton code smile

bonne suite
+++

Hors ligne

 

#5 2010-05-08 21:03:04 Re : Récupérer Osc

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

Re: Récupérer Osc



J'ai essayé le code que tu m'as dis et je n'obtient aucune réponse.

Voici comment j'ai remplacé test dans Sc

t.ecouteur = OSCresponder(nil, '57120',

et le code Processing

import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress myRemoteLocation;

void setup(){
  size(1024/2, 768/2);
  oscP5 = new OscP5(this, 12000);
  myRemoteLocation = new NetAddress("127.0.0.1", 57120);
}
void draw(){
  OscMessage myMessage = new OscMessage("wii");
  myMessage.add(mouseX*2);
  myMessage.add(mouseY*2);
  oscP5.send(myMessage, myRemoteLocation);
 
}

Bizarre n'est-ce pas ?


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

Hors ligne

 

#6 2010-05-12 10:34:31 Re : Récupérer Osc

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Récupérer Osc



Salut Matthieu,

ta partie de code modifiée n'est pas correcte :

citation :

t.ecouteur = OSCresponder(nil, '57120',

l'adresse osc de réception (57120) est le premier argument, en second tu doit placer ta cmdName, c'est à dire l'entrée de ton message osc, ce que tu précise dans processing lorsque tu écris:

citation :

OscMessage myMessage = new OscMessage("wii");

On aura plutôt quelque chose comme ça :

t.ecouteur = OSCresponder(nil, '/wii',

(par défaut SC prend tout les messages osc qui circule lorsque tu mets nil en address, mais tu peux mettre 57120.

et dans ta partie P5, je rajouterai un / devant "wii" de cette façon :

  OscMessage myMessage = new OscMessage("/wii");

à cette localisation osc (57120 ... /wii) tu devrais recevoir tes 2 valeurs de souris dans SC.

amuses toi bien !

+++

Dernière modification par oyster_twiter (2010-05-12 10:35:25)

Hors ligne

 

#7 2010-05-12 21:40:36 Re : Récupérer Osc

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

Re: Récupérer Osc



Salut,

et encore merci pour ton aide.

J'essaye maintenant de créer un SyntDef avec le code que voici :

(
SynthDef("ONE", 
	{arg x = 250, y = 1200;
		a = SinOsc.ar(SinOsc.ar(x, y, 440),0,0.25);
	}).play;
)

Il a l'air bon mais ensuite j'essaye de remettre l'écouteur Osc et j'ai un problème de point-virgule ou d'indentation.
Je n'arrive pas à compiler le code suivant :

(
(
t =();
t.ecouteur = OSCresponder(nil, '/wii',
	{arg time, addr, msg ;var txt;
		if(msg[0] != 'status.reply') {
		txt = msg;
		txt.postln;
		a.set([\x, txt[1], \y, txt[2]);
		}
	});	
)

Any ideas ?

@+


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

Hors ligne

 

#8 2010-05-12 23:05:28 Re : Récupérer Osc

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Récupérer Osc



euh là à vue de nez, je dirais que tu as une parenthèse ouvrante en trop sur ta partie OSCresponder ... au début.
Il te manque un crochet fermant dans ton a.set, toujours dans ta partie OSCresponder...

Il faut également que tu rajoutes une sortie à ton synthdef .
de cette façon là:

a =Out.ar(0, SinOsc.ar(SinOsc.ar(x, y, 440),0,0.25));

Là en principe, tu devrais avoir du son.


+++

Hors ligne

 

#9 2010-05-13 20:25:52 Re : Récupérer Osc

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

Re: Récupérer Osc



Super, ça marche !

Voici le code final pour ceux qui suivaient la discussion :

(
SynthDef("ONE", 
	{arg x , y;
		Out.ar(0, SinOsc.ar(SinOsc.ar(x, y, 440),0,0.25));
	}).play;
a = Synth("ONE", [\x, 2000, \y, 4000]);
)
(
	t =();
	t.ecouteur = OSCresponder(nil, '/wii', 
			 {arg time, addr, msg ;var txt;
			if(msg[0] != 'status.reply') {
			txt = msg;
			txt.postln;
			a.set(\x, txt[1], \y, txt[2]);	
				}}).add;
		
)

Merci pour tout, quand j'aurais une version montrable de mon projet, je posterai un lien.

Ciao a tutti


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

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020