Différences entre les versions de « ERG::physicalcomputing »
		
		
		
		
		
		Aller à la navigation
		Aller à la recherche
		
				
		
		
	
| Ligne 16 : | Ligne 16 : | ||
  '''EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :'''  |   '''EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :'''  | ||
| + | |||
| + | /**  | ||
| + |  * Grab audio from the microphone input and draw a circle whose size  | ||
| + |  * is determined by how loud the audio input is.  | ||
| + |  */  | ||
| + | |||
| + | import processing.sound.*;  | ||
| + | |||
| + | AudioIn input;  | ||
| + | Amplitude loudness;  | ||
| + | |||
| + | void setup() {  | ||
| + |   size(640, 360);  | ||
| + |   background(255);  | ||
| + | |||
| + |   // Create an Audio input and grab the 1st channel  | ||
| + |   input = new AudioIn(this, 0);  | ||
| + | |||
| + |   // Begin capturing the audio input  | ||
| + |   input.start();  | ||
| + |   // start() activates audio capture so that you can use it as  | ||
| + |   // the input to live sound analysis, but it does NOT cause the  | ||
| + |   // captured audio to be played back to you. if you also want the  | ||
| + |   // microphone input to be played back to you, call  | ||
| + |   //    input.play();  | ||
| + |   // instead (be careful with your speaker volume, you might produce  | ||
| + |   // painful audio feedback. best to first try it out wearing headphones!)  | ||
| + | |||
| + |   // Create a new Amplitude analyzer  | ||
| + |   loudness = new Amplitude(this);  | ||
| + | |||
| + |   // Patch the input to the volume analyzer  | ||
| + |   loudness.input(input);  | ||
| + | }  | ||
| + | |||
| + | |||
| + | void draw() {  | ||
| + |   // Adjust the volume of the audio input based on mouse position  | ||
| + |   float inputLevel = map(mouseY, 0, height, 1.0, 0.0);  | ||
| + |   input.amp(inputLevel);  | ||
| + | |||
| + |   // loudness.analyze() return a value between 0 and 1. To adjust  | ||
| + |   // the scaling and mapping of an ellipse we scale from 0 to 0.5  | ||
| + |   float volume = loudness.analyze();  | ||
| + |   int size = int(map(volume, 0, 0.5, 1, 350));  | ||
| + | |||
| + |   background(125, 255, 125);  | ||
| + |   noStroke();  | ||
| + |   fill(255, 0, 150);  | ||
| + |   // We draw a circle whose size is coupled to the audio analysis  | ||
| + |   ellipse(width/2, height/2, size, size);  | ||
| + | }  | ||
Version du 15 octobre 2018 à 07:06
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...
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 :
/**
* Grab audio from the microphone input and draw a circle whose size * is determined by how loud the audio input is. */
import processing.sound.*;
AudioIn input; Amplitude loudness;
void setup() {
size(640, 360); background(255);
// Create an Audio input and grab the 1st channel input = new AudioIn(this, 0);
// Begin capturing the audio input input.start(); // start() activates audio capture so that you can use it as // the input to live sound analysis, but it does NOT cause the // captured audio to be played back to you. if you also want the // microphone input to be played back to you, call // input.play(); // instead (be careful with your speaker volume, you might produce // painful audio feedback. best to first try it out wearing headphones!)
// Create a new Amplitude analyzer loudness = new Amplitude(this);
// Patch the input to the volume analyzer loudness.input(input);
}
void draw() {
// Adjust the volume of the audio input based on mouse position float inputLevel = map(mouseY, 0, height, 1.0, 0.0); input.amp(inputLevel);
// loudness.analyze() return a value between 0 and 1. To adjust // the scaling and mapping of an ellipse we scale from 0 to 0.5 float volume = loudness.analyze(); int size = int(map(volume, 0, 0.5, 1, 350));
background(125, 255, 125); noStroke(); fill(255, 0, 150); // We draw a circle whose size is coupled to the audio analysis ellipse(width/2, height/2, size, size);
}

