Le son dans Processing

Voici un exemple de la biblio­thèque de son ‘Minim’ per­met­tant de récu­pé­rer le son du micro interne de votre ordinateur.

Après cette impor­ta­tion, les lignes sui­vantes appa­raissent (sans les com­men­taires) dans votre skecth :

//importation des différents éléments de la bibliothèque minim
// importation de la base de la bibliothèque
import ddf.minim.*;
// importation du module de traitement de signal de la bibliothèque
import ddf.minim.signals.*;
// importation du module d'analyse de signal de la bibliothèque
import ddf.minim.analysis.*;
// importation du module d'effets sonores de la bibliothèque
import ddf.minim.effects.*;

Vous pou­vez regar­der les dif­fé­rents exemples de la biblio­thèques, pour voir com­ment ça marche.

Voici un sketch simple qui per­met de récu­pé­rer la variable de volume du son d’entrée du micro­phone interne de votre ordi­na­teur pour chan­ger l’épaisseur d’une ligne :

//importation des différents éléments de la bibliothèque minim
// importation de la base de la bibliothèque
import ddf.minim.*;
// importation du module de traitement de signal de la bibliothèque
import ddf.minim.signals.*;
// importation du module d'analyse de signal de la bibliothèque
import ddf.minim.analysis.*;
// importation du module d'effets sonores de la bibliothèque
import ddf.minim.effects.*;

// je créé le nom de mon objet son
Minim monObjetSon;
// je créée le nom d'un objet entrée son
AudioInput entreeSon;
// je crée une variable qui me permettra de sortir la valeur du volume hors de la boucle d'itération (voir plus bas)
float monVolumeSon;

void setup() {
  size (200, 200);
  //je crée mon objet son
  monObjetSon = new Minim(this);
  // je précise les caractéristiques de mon objet entreeSon : stereo, avec une memoire tampon (buffer) de 512 ko
  entreeSon = monObjetSon.getLineIn(Minim.STEREO, 512);
}

void draw() {
  background(255);
  // Nous avons besopin d'une iteration pour récpérer tous les échantillons sonores présents dans la mémoire tampon
  for (int i = 0; i < entreeSon.bufferSize() - 1; i++)
  {
    // Je donne à ma variable monVolumeSon la somme des valeurs d'entrées gauche et droite du microphone que je multiplie par 50 pour la valeur soit exploitable
    monVolumeSon =   (entreeSon.left.get(i)+entreeSon.right.get(i)/2)*50;
  }
  // je donne à mon épaisseur de ligne la valeur de la variable monVolumeSon définie juste au-dessus. Avec la fonction 'abs()' je transforme les valeurs de ma varibla à être positives
  strokeWeight(abs(monVolumeSon));
  // je donne à ma ligne la couleur rouge
  stroke(255, 0, 0);
  // je dessine ma ligne
  line(width/4, height/2, width*3/4, height/2);
  // maintenant, quand je fais du bruit l'épaisseur de ma ligne rouge varie en fonction du volume ambiant
}

void stop()
{
  // Je ferme l'entree son et arrete l'objet son quand je quitte mon sketch afin de ne pas continuer à stocker les valeurs dans la memoire tampon quand j'ai fini
  entreeSon.close();
  monObjetSon.stop();

  super.stop();
}
0