Annonce

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


#1 2012-01-21 00:44:29 processing et syphon server

djeizzy
nouveau membre
Date d'inscription: 2012-01-20
Messages: 4

processing et syphon server



Bonjour, Je suis nouveau sur ce forum et débutant sur processing, je bricole,
Je travail surtout avec isadora et je cherche a jouer des sketch processing dans isadora,
pour cela je pense utiliser syphon.
j'ai trouvé une librairie syphon avec un exemple (un cube 4D qui tourne, et je peux effectivement visualiser mon sketch dans isadora,
mais je veux répéter ces codes sur les sktech qui m'interressent et la ...ça pas marche!!!,
Je vois bien que processing transmet a siphon, met sur le siphon c'est écran noir...
Je met une copie de mon sketch, (enfin, un que j'ai recuperé et que je modifie et ou j'ai recopié des lignes depuis le sketch d'exemple de syphon)
si quelqu'un peux m'aider...
Merci
J

import codeanticode.syphon.*;

PGraphics canvas;
SyphonServer syphon;

/*
Alba G. Corral
Marzo 2009, Barcelona
Motion
*/
float angle = 0.0; // Current angle
float speed = 0.01; // Speed of motion
float radius = 130.0; // Range of motion
float sx ;
float sy ;
float hh = 0;
color col;
void setup() {
  size(925, 475, P3D);
  canvas = createGraphics(925, 475, P3D); 
  syphon = new SyphonServer(this);
  noStroke();
  smooth();
  inicia( random(5.0),random(2.0));
}

void draw() {
  // EVENTOS
  if(keyPressed){
    if(key == '1') {
      inicia(5.0,random(1));
    }
    if(key == '2') {
   
      background(255);
      inicia(random(1),2);

    }
  }

  angle += speed; // Update the
  println("angle:;"+angle);

  float sinval = sin(angle/sy);
  float cosval = cos(angle);

  // Set the position of the small circle based on new
  // values from sine and cosine
  float x = width/2 + (cosval * radius);
  float y = height/2 + (sinval * radius);
  fill(255);


  // Set the position of the large circles based on the
  // new position of the small circle
  float x2 = x + cos(angle * sx) * radius ;
  float y2 = y + sin(angle * sy) * radius ;
  ellipse(x2, y2, 1, 1); // Draw larger circle

  //line
  if(hh<255){
    hh+=1;
  }
  else{
    hh=0;
  }
 
  col = color(255,0,100+hh,15);
  stroke(0,random(10,40));
  line(x,y,x2,y2);
 
  image(canvas, 0, 0);
  syphon.sendImage(canvas);

}

void inicia(float _sx, float _sy ){
  background(255);
  sy=_sx;
  sx = _sy;
  println("inicia : sx:   "+sx +"  sy:" + sy);
}

Hors ligne

 

#2 2012-01-21 20:51:08 Re : processing et syphon server

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: processing et syphon server



as tu lus ce thread : http://codelab.fr/2701

Hors ligne

 

#3 2012-01-22 14:38:16 Re : processing et syphon server

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: processing et syphon server



Bonjour Djeizzy,

Difficile de reproduire ton problème n'ayant ni mac ni isadora!

Est ce que ce sketch fonctionne dans processing? (sans syphon)
Est ce que tu peux essayer d'autres sketchs pour comparer ce qui fait qu'un sketch fonctionne ou ne fonctionne pas avec syphon / isadora (peut-être du aux modes P3D ou OPENGL, par exemple, ou au frameRate)

En regardant le sketch, je remarque qu'il y a quelque chose qui ne colle pas, et c'est probablement pour ça que tu ne reçois qu'une image noire dans syphon. Toutes les fonctions graphique doivent se faire sur le buffer (canvas) avant d'être affichées à l'écran et envoyées vers syphon. Il faut donc que dans la boucle draw, tu indiques que les fonctions graphiques se réalisent dans le buffer. Essaye avec cette version modifiée de draw() :

void draw() {
  canvas.beginDraw();
  // EVENTOS
  if(keyPressed){
    if(key == '1') {
      inicia(5.0,random(1));
    }
    if(key == '2') {
   
      canvas.background(255);
      inicia(random(1),2);

    }
  }

  angle += speed; // Update the
  println("angle:;"+angle);

  float sinval = sin(angle/sy);
  float cosval = cos(angle);

  // Set the position of the small circle based on new
  // values from sine and cosine
  float x = width/2 + (cosval * radius);
  float y = height/2 + (sinval * radius);
  canvas.fill(255);


  // Set the position of the large circles based on the
  // new position of the small circle
  float x2 = x + cos(angle * sx) * radius ;
  float y2 = y + sin(angle * sy) * radius ;
  canvas.ellipse(x2, y2, 1, 1); // Draw larger circle

  //line
  if(hh<255){
    hh+=1;
  }
  else{
    hh=0;
  }
 
  col = color(255,0,100+hh,15);
  canvas.stroke(0,random(10,40));
  canvas.line(x,y,x2,y2);
 
  canvas.endDraw();

  image(canvas, 0, 0);
  syphon.sendImage(canvas);
  
}

Dans inicia(), il faut aussi indiquer canvas.background(255);

Hors ligne

 

#4 2012-01-22 17:30:38 Re : processing et syphon server

djeizzy
nouveau membre
Date d'inscription: 2012-01-20
Messages: 4

Re: processing et syphon server



Merci Emoc,
J'ai tester ta modif, et je concerve un fond noir sur siphon, et n'obtient qu'une partie du sketch...
D plus, en indiquant canvas.background(255); dans initia, mon sketch prend un fond bleu...
Ne connais tu pas une autre façon d'utiliser syphon?
J'utilise ce sketch trouvé sur le net avec la lib siphon.jar et jsyphon.jar

import codeanticode.syphon.*;

PGraphics canvas;
SyphonServer syphon;

void setup() {
  size(400,400, P3D);
  canvas = createGraphics(400, 400, P3D); 
  syphon = new SyphonServer(this);
}

void draw() {
  canvas.beginDraw();
  canvas.background(127);
  canvas.lights();
  canvas.translate(width/2, height/2);
  canvas.rotateX(frameCount * 0.01);
  canvas.rotateY(frameCount * 0.01); 
  canvas.box(150);
  canvas.endDraw();
  image(canvas, 0, 0);
  syphon.sendImage(canvas);
}


je cherche a pouvoir modifier d'autres sketch pour pouvoir les envoyer sur syphon, qui me semble être le meilleur moyen pour récupérer le flux video dans isadora...
y en a d'autre?
merci
J

Hors ligne

 

#5 2012-01-22 23:29:46 Re : processing et syphon server

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: processing et syphon server



Et ce n'est pas un problème de définition, le premier programme crée une image de 925 sur 475, ce ne serait pas pour ça qu'il t'en manque un bout ?

djeizzy a écrit:

Ne connais tu pas une autre façon d'utiliser syphon?

Je n'ai jamais utilisé syphon, ça ne fonctionne que sur mac

djeizzy a écrit:

je cherche a pouvoir modifier d'autres sketch pour pouvoir les envoyer sur syphon, qui me semble être le meilleur moyen pour récupérer le flux video dans isadora...
y en a d'autre?

D'autres ? Vu le code que tu montres en exemple, on peut adapter tout programme processing à une diffusion via syphon, il suffit de reprendre la méthode de création de buffer + envoi du buffer à syphon, avec peut-être un bémol pour les sketchs en openGL

Si tu cherches des exemples processing tout faits, regarde sur http://openprocessing.org, il y en a des milliers, diffusés sous des licences qui permettent leur réutilisation smile

Hors ligne

 

#6 2012-01-23 00:19:47 Re : processing et syphon server

djeizzy
nouveau membre
Date d'inscription: 2012-01-20
Messages: 4

Re: processing et syphon server



Merci emoc,
Je continu mes investigations syphonesque...
J

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024