Annonce

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


#1 2017-04-06 11:53:20 Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Processing + beads



Bonjour à tous,

Je suis actuellement en Terminale S, et j'ai un projet à faire. Celui-ci est d'importer du son via la prise Jack microphone, puis grâce à la librairie Beads c'est de modifier ce son, créer un delay, modifier le gain et d'autres effets. J'ai essayé de faire un programme mais sans succès.

Des personnes qui seraient résoudre voir m'écrire un programme pourraient m'aider s'il vous plait ?

J'ai vraiment besoin d'aide, merci.

Hors ligne

 

#2 2017-04-06 15:46:00 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



salut a toi
bead n'est pas vraiment compliqué d'utilisation mais pour quelqu’un qui commence ça peut être la galère
je t'invite donc a faire une petite recherche Google il y a un pdf qui existe "Sonifying Processing: The Beads Tutorial"

cela répondra surement a tes questions et il est très bien expliqué
a+

Hors ligne

 

#3 2017-04-10 11:06:32 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Bonjour Imdidi,
Merci pour ta réponse, j'ai déjà ce PDF, mais j'ai quand même un peu de mal à finaliser mon code processing, notamment pour l'entrée du son et la sortie du son modifiée. Je vous mets mon programme, qui ne fonctionne pas d'ailleurs, est-il possible que vous le regardiez pour moi s'il vous plait ?
Merci



import beads.*;
import ddf.minim.*;
Minim minim;
AudioInput in;
AudioContext ac;
WavePlayer modulator;
WavePlayer carrier;
Envelope gainEnvelope;
Gain synthGain;
TapIn delayIn;
TapOut delayOut;
Gain delayGain;
void draw() {
  background (in.mix.level()*2550);
}
void setup()
{
minim = new Minim(this);
in = minim.getLineIn(Minim.STEREO,512);
ac = new AudioContext();
synthGain = new Gain(ac, 1, gainEnvelope);
delayIn = new TapIn(ac, 500);
delayIn.addInput(synthGain);
delayOut = new TapOut(ac, delayIn, 500.01);
delayGain = new Gain(ac, 1, 0.50);
delayGain.addInput(delayOut);
ac.out.addInput(synthGain);
ac.out.addInput(delayGain);
}
void stop () {
  in.close();
  minim.stop();
  super.stop();
}

Hors ligne

 

#4 2017-04-10 13:51:23 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



salut a toi je ne sais pas pourquoi tu mélange minim et bead voila un bout de code pris dans le fichier pdf
c'est deja un bon debut apres tu ajoute leffet desiré

// Audio_Input_01.pde
import beads.*;
AudioContext ac;
void setup() {
size(800,800);
ac = new AudioContext();
// get an AudioInput UGen from the AudioContext
// this will setup an input from whatever input is your 
// default audio input (usually the microphone in)
// changing audio inputs in beads is a little bit janky (as
// of this writing)
// so it's best to change your default input temporarily, 
// if you want to use a different input
UGen microphoneIn = ac.getAudioInput();
// set up our usual master gain object
Gain g = new Gain(ac, 1, 0.5);
g.addInput(microphoneIn);
ac.out.addInput(g);
ac.start();
}
// draw the input waveform on screen
// this code is based on code from the Beads tutorials 
// written by Ollie Brown
void draw()
{
loadPixels();
//set the background
Arrays.fill(pixels, color(0));
//scan across the pixels
for(int i = 0; i < width; i++)
{
// for each pixel, work out where in the current audio 
// buffer we are
int buffIndex = i * ac.getBufferSize() / width;
// then work out the pixel height of the audio data at 
// that point
int vOffset = (int)((1 + ac.out.getValue(0, buffIndex)) *
height / 2);
//draw into Processing's convenient 1-D array of pixels
pixels[vOffset * height + i] = color(255);
}
// paint the new pixel array to the screen
updatePixels();
}

Dernière modification par imdidi (2017-04-10 13:52:00)

Hors ligne

 

#5 2017-04-10 14:37:52 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Merci de votre réponse, j'ai modifié le programme pour essayé notamment de rajouter le delay mais aussi retiré une ligne parce que processing trouvait qu'il y avait une erreur avec le Arrays

cela donne :

import beads.*;
AudioContext ac;
Gain synthGain;
TapIn delayIn;
TapOut delayOut;
void setup() {
size(800,800);
ac = new AudioContext();
UGen microphoneIn = ac.getAudioInput();
Gain g = new Gain(ac, 1, 20);
g.addInput(microphoneIn);
ac.out.addInput(g);
delayIn = new TapIn(ac, 2000);
delayIn.addInput(synthGain);
ac.start();
}
void draw()
{
loadPixels();

for(int i = 0; i < width; i++)
{
int buffIndex = i * ac.getBufferSize() / width;
int vOffset = (int)((1 + ac.out.getValue(0, buffIndex)) *
height / 2);
pixels[vOffset * height + i] = color(255);
}
updatePixels();
}

Dernière modification par midell5 (2017-04-10 14:49:29)

Hors ligne

 

#6 2017-04-10 18:01:22 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



ok et cela fonctionne t-il ?

Hors ligne

 

#7 2017-04-11 11:29:20 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Non pas du tout, cela ne veut pas marcher.
Processing m'affiche : "NulPointerException" à la ligne 14

Hors ligne

 

#8 2017-04-11 14:26:14 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



tu as une erreur car tu a mis un delayIn mais pas de delayOut voila qui devrait faire laffaire

import beads.*;
AudioContext ac;

TapIn delayIn;
TapOut delayOut;
Gain delayGain;

void setup() {
  size(800,800);
  ac = new AudioContext();
  UGen microphoneIn = ac.getAudioInput();
  Gain g = new Gain(ac, 1, 20);
  delayGain = new Gain(ac, 1, 0.50);
  delayIn = new TapIn(ac, 2000);
  delayOut = new TapOut(ac, delayIn, 500.0);
  
  g.addInput(microphoneIn);
  ac.out.addInput(g);
  delayIn.addInput(g);
  delayGain.addInput(delayOut);
  ac.out.addInput(delayGain);
  ac.start();
}
void draw() {
  background(0);
  loadPixels();

  for(int i = 0; i < width; i++){
    int buffIndex = i * ac.getBufferSize() / width;
    int vOffset = (int)((1 + ac.out.getValue(0, buffIndex)) *
    height / 2);
    pixels[vOffset * height + i] = color(255);
  }
  updatePixels();
}

Dernière modification par imdidi (2017-04-11 14:26:45)

Hors ligne

 

#9 2017-04-12 11:31:35 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Merci infiniment, mais en essayant il y a des petits bugs, à mon avis c'est parce qu'il n'y a pas de casque branché au pc et ni de microphone, j'essaierai en rentrant chez moi, je vous tiens au jus sur le bon fonctionnement du programme. Encore merci à demain

Hors ligne

 

#10 2017-04-17 19:02:49 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Bonsoir,
je reviens vers vous après plusieurs essaie, et le programme a l'air de marcher, mais il saccade on entends pas si bien, le delay et le gain ont l'air de marché mais le son saccade vraiment, et sur plusieurs pcs j'ai le même problème.
Autre chose, dans le void draw, la ligne 32 "pixels[vOffset * height + i] = color(255);" a un problème, Processing la surligne et du coup la fenêtre java bug et les lignes blanches saccades elles aussi puis bug, savez-vous pourquoi ?
Merci

Hors ligne

 

#11 2017-04-19 18:26:00 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



UP

Hors ligne

 

#12 2017-04-19 22:12:50 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



ok pour le problème avec les pixels c'est du a un trop gros gain dans ton setup tu a la ligne suivante

Gain g = new Gain(ac, 1, 20);

remplace la par

Gain g = new Gain(ac, 1, 1);

pour le saccadage je ne pourrais pas t'aider je ne connais pas la source de mon coter je suis sous linux ubuntu et ça fonctionne très bien
par contre mon autre pc sous Windows saccade comme tu dit j'ai tenter de le démarrer en mode administrateur mais sans succès
a voir ...

Hors ligne

 

#13 2017-04-20 10:08:49 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Bonjour,
encore merci pour la réponse. Mon problème de gain est réglé au moins c'est top. J'ai beau chercher, je ne trouve pas non plus le problème des coupures, même en essayant sur deux pcs différents et trois avec le votre du coup.
Bizarre bizarre tout ça quand même aha

Hors ligne

 

#14 2017-04-20 19:44:39 Re : Processing + beads

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Processing + beads



aurais tu la derniere version de processing, de java jdk, et les dernier driver son ?

Hors ligne

 

#15 2017-04-20 20:56:50 Re : Processing + beads

midell5
membre
Date d'inscription: 2017-04-06
Messages: 22

Re: Processing + beads



Bonsoir,
Oui tout est à jour ainsi que les dernières versions de Java et Processing, je ne sais vraiment pas quel est le problème du coup, j'ai beau chercher... aha

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024