Différences entre les versions de « ERG::physicalcomputing »

De {}
Aller à la navigation Aller à la recherche
Ligne 11 : Ligne 11 :
 
   
 
   
 
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.
 
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.
 +
 +
'''EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :'''
 +
 +
//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();
 +
}

Version du 8 octobre 2018 à 09:45

projet : Assigner un programme différent à chaque octave de la voix. Donc avec un système de détection des notes et des hauteurs. Chacune des notes seraient assignée à un effet de type stéréo, réverbe, granulator...

Capture d’écran 2018-10-01 à 12.01.14.png

Capture d’écran 2018-10-08 à 09.35.54.png

Utilisation de processing.

- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données.

Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.

EXEMPLE DE CODE À COMPRENDRE ET REUTILISER : 

//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();

}