Différences entre les versions de « ERG::physicalcomputing »
Aller à la navigation
Aller à la recherche
Ligne 17 : | Ligne 17 : | ||
'''EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :''' | '''EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :''' | ||
+ | |||
+ | <syntaxhighlight lang="java"> | ||
/** | /** | ||
* Grab audio from the microphone input and draw a circle whose size | * Grab audio from the microphone input and draw a circle whose size | ||
Ligne 68 : | Ligne 70 : | ||
ellipse(width/2, height/2, size, size); | ellipse(width/2, height/2, size, size); | ||
} | } | ||
+ | |||
+ | </syntaxhighlight> |
Version du 15 octobre 2018 à 07:17
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);
}