<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://curlybraces.be/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjaminhuynh</id>
	<title>{} - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://curlybraces.be/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjaminhuynh"/>
	<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/Sp%C3%A9cial:Contributions/Benjaminhuynh"/>
	<updated>2026-04-04T05:35:01Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.35.10</generator>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:5bis.png&amp;diff=3247</id>
		<title>Fichier:5bis.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:5bis.png&amp;diff=3247"/>
		<updated>2019-05-12T15:23:41Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:6bis.png&amp;diff=3246</id>
		<title>Fichier:6bis.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:6bis.png&amp;diff=3246"/>
		<updated>2019-05-12T15:23:12Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3245</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3245"/>
		<updated>2019-05-12T15:22:33Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine. &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
Kerlax de Remy Dury&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=UMTjXffup6Q&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Effets codés, qui s&amp;#039;actionnent en fonction des bandes obtenues par la transformé de Fourier : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
Pulse pulse;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  // fenêtre de visualisation (largeur,hauteur)&lt;br /&gt;
  background(255);&lt;br /&gt;
  // couleur du fond&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play( );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    // somme = somme + nombres [i]&lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }  &lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      delay = new Delay(this);&lt;br /&gt;
      delay.process(in, 5);&lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  else if(currentBand &amp;lt; 20){   &lt;br /&gt;
    if(currentEffect != &amp;quot;reverb&amp;quot;){&lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
      reverb.wet(0.5);&lt;br /&gt;
      background(255, 204, 51);&lt;br /&gt;
      currentEffect = &amp;quot;reverb&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }   &lt;br /&gt;
&lt;br /&gt;
  else if(currentBand &amp;lt; 30){&lt;br /&gt;
    if(currentEffect != &amp;quot;pulse&amp;quot;){&lt;br /&gt;
      pulse = new Pulse (this);&lt;br /&gt;
       pulse.play();&lt;br /&gt;
       background(0, 0, 255);&lt;br /&gt;
       currentEffect = &amp;quot;pulse&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Les effets se superposent, car le nombre de bandes est élevé et le son en changement constant. L&amp;#039;arlgorythme ne laisse donc pas le temps d&amp;#039;enttendre les effets appliqués.&lt;br /&gt;
&lt;br /&gt;
Nous allons donc mettre en place un système de timer. Ainsi pour chaque effet sera assigné une &amp;quot;durée&amp;quot; en frame, et dés lorsqu&amp;#039;un effet est lancé les autres devront être bloqués. &lt;br /&gt;
&lt;br /&gt;
Principe : &lt;br /&gt;
&lt;br /&gt;
if timer = 0 &lt;br /&gt;
else if -&amp;gt; bande audio ftt comprise entre tel et tel valeur &lt;br /&gt;
-&amp;gt; on applique le timer, par exemple sur 10 frames, et on bloque les autres effets. &lt;br /&gt;
&lt;br /&gt;
Rq : il va aussi falloir réflichir à peut être attendre le nombre de bandes de la FFT pour être plus précis dans la captation des voix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
CHANGEMENT DE PROJET : &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Fichier:1.png]]&lt;br /&gt;
[[Fichier:2bis.png]]&lt;br /&gt;
[[Fichier:3bis.png]]&lt;br /&gt;
[[Fichier:4bis.png]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
PROBLÈME RÉSOLU : &lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
[[Fichier:5bis.png]]&lt;br /&gt;
[[Fichier:6bis.png]]&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3229</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3229"/>
		<updated>2019-05-11T11:45:21Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine. &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
Kerlax de Remy Dury&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=UMTjXffup6Q&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Effets codés, qui s&amp;#039;actionnent en fonction des bandes obtenues par la transformé de Fourier : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
Pulse pulse;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  // fenêtre de visualisation (largeur,hauteur)&lt;br /&gt;
  background(255);&lt;br /&gt;
  // couleur du fond&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play( );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    // somme = somme + nombres [i]&lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }  &lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      delay = new Delay(this);&lt;br /&gt;
      delay.process(in, 5);&lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  else if(currentBand &amp;lt; 20){   &lt;br /&gt;
    if(currentEffect != &amp;quot;reverb&amp;quot;){&lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
      reverb.wet(0.5);&lt;br /&gt;
      background(255, 204, 51);&lt;br /&gt;
      currentEffect = &amp;quot;reverb&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }   &lt;br /&gt;
&lt;br /&gt;
  else if(currentBand &amp;lt; 30){&lt;br /&gt;
    if(currentEffect != &amp;quot;pulse&amp;quot;){&lt;br /&gt;
      pulse = new Pulse (this);&lt;br /&gt;
       pulse.play();&lt;br /&gt;
       background(0, 0, 255);&lt;br /&gt;
       currentEffect = &amp;quot;pulse&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Les effets se superposent, car le nombre de bandes est élevé et le son en changement constant. L&amp;#039;arlgorythme ne laisse donc pas le temps d&amp;#039;enttendre les effets appliqués.&lt;br /&gt;
&lt;br /&gt;
Nous allons donc mettre en place un système de timer. Ainsi pour chaque effet sera assigné une &amp;quot;durée&amp;quot; en frame, et dés lorsqu&amp;#039;un effet est lancé les autres devront être bloqués. &lt;br /&gt;
&lt;br /&gt;
Principe : &lt;br /&gt;
&lt;br /&gt;
if timer = 0 &lt;br /&gt;
else if -&amp;gt; bande audio ftt comprise entre tel et tel valeur &lt;br /&gt;
-&amp;gt; on applique le timer, par exemple sur 10 frames, et on bloque les autres effets. &lt;br /&gt;
&lt;br /&gt;
Rq : il va aussi falloir réflichir à peut être attendre le nombre de bandes de la FFT pour être plus précis dans la captation des voix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
CHANGEMENT DE PROJET &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Fichier:1.png]]&lt;br /&gt;
[[Fichier:2bis.png]]&lt;br /&gt;
[[Fichier:3bis.png]]&lt;br /&gt;
[[Fichier:4bis.png]]&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:4bis.png&amp;diff=3228</id>
		<title>Fichier:4bis.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:4bis.png&amp;diff=3228"/>
		<updated>2019-05-11T11:42:32Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:3bis.png&amp;diff=3227</id>
		<title>Fichier:3bis.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:3bis.png&amp;diff=3227"/>
		<updated>2019-05-11T11:42:16Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:2bis.png&amp;diff=3226</id>
		<title>Fichier:2bis.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:2bis.png&amp;diff=3226"/>
		<updated>2019-05-11T11:41:49Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:1.png&amp;diff=3225</id>
		<title>Fichier:1.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:1.png&amp;diff=3225"/>
		<updated>2019-05-11T11:40:54Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : Benjaminhuynh a téléversé une nouvelle version de Fichier:1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3164</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=3164"/>
		<updated>2019-03-04T09:03:28Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine. &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
Kerlax de Remy Dury&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=UMTjXffup6Q&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Effets codés, qui s&amp;#039;actionnent en fonction des bandes obtenues par la transformé de Fourier : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
Pulse pulse;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  // fenêtre de visualisation (largeur,hauteur)&lt;br /&gt;
  background(255);&lt;br /&gt;
  // couleur du fond&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play( );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    // somme = somme + nombres [i]&lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }  &lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      delay = new Delay(this);&lt;br /&gt;
      delay.process(in, 5);&lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  else if(currentBand &amp;lt; 20){   &lt;br /&gt;
    if(currentEffect != &amp;quot;reverb&amp;quot;){&lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
      reverb.wet(0.5);&lt;br /&gt;
      background(255, 204, 51);&lt;br /&gt;
      currentEffect = &amp;quot;reverb&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }   &lt;br /&gt;
&lt;br /&gt;
  else if(currentBand &amp;lt; 30){&lt;br /&gt;
    if(currentEffect != &amp;quot;pulse&amp;quot;){&lt;br /&gt;
      pulse = new Pulse (this);&lt;br /&gt;
       pulse.play();&lt;br /&gt;
       background(0, 0, 255);&lt;br /&gt;
       currentEffect = &amp;quot;pulse&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Les effets se superposent, car le nombre de bandes est élevé et le son en changement constant. L&amp;#039;arlgorythme ne laisse donc pas le temps d&amp;#039;enttendre les effets appliqués.&lt;br /&gt;
&lt;br /&gt;
Nous allons donc mettre en place un système de timer. Ainsi pour chaque effet sera assigné une &amp;quot;durée&amp;quot; en frame, et dés lorsqu&amp;#039;un effet est lancé les autres devront être bloqués. &lt;br /&gt;
&lt;br /&gt;
Principe : &lt;br /&gt;
&lt;br /&gt;
if timer = 0 &lt;br /&gt;
else if -&amp;gt; bande audio ftt comprise entre tel et tel valeur &lt;br /&gt;
-&amp;gt; on applique le timer, par exemple sur 10 frames, et on bloque les autres effets. &lt;br /&gt;
&lt;br /&gt;
Rq : il va aussi falloir réflichir à peut être attendre le nombre de bandes de la FFT pour être plus précis dans la captation des voix.&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2926</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2926"/>
		<updated>2018-12-17T08:30:34Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine. &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
Kerlax de Remy Dury&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=UMTjXffup6Q&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2891</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2891"/>
		<updated>2018-12-16T14:21:08Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine qui emmet un son qui ne change de hauteur que par palier (beaucoup plus simple pour le traitement par le programme). &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
Kerlax de Remy Dury&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=UMTjXffup6Q&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2890</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2890"/>
		<updated>2018-12-16T13:45:17Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tentative de mise en pause de la transformation de Fourier, car sinon le programme applique un effet sur chaque bandes qui son trop proches, les effets ne s&amp;#039;entendent donc pas, ou il se passes un bug. &lt;br /&gt;
&lt;br /&gt;
A faire, coder les effets qui s&amp;#039;appliquent sur une ou plusieurs bandes distinctes, avec une pause entre chaque effet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Le but de ce projet est de réaliser une sorte d&amp;#039;instrument de musique. Un micro pour enregistrement live, qui détecte la hauteur de la voix, de la musique, ou du bruit et qui lui applique des effets en fonction de celle-ci. &lt;br /&gt;
&lt;br /&gt;
Le projet serait donc, d&amp;#039;organiser un live par exemple, ou l&amp;#039;instrument serait utilisé notamment pour déformer un opéra, ou d&amp;#039;un thérémine qui emmet un son qui ne change de hauteur que par palier (beaucoup plus simple pour le traitement par le programme). &lt;br /&gt;
&lt;br /&gt;
La problématique étant alors, de faire attention dans le code sur quelles hauteurs vont être utilisées. &lt;br /&gt;
Ainsi que définir si ce qui est mis en place est en vu d&amp;#039;une installation, ou d&amp;#039;un enregistrement à but radiophonique. &lt;br /&gt;
&lt;br /&gt;
Référence :&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2691</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2691"/>
		<updated>2018-12-03T08:51:44Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code,  Retard appliqué à une hauteur + reverb pas encore active==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
String currentEffect;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
  currentEffect = &amp;quot;rien&amp;quot;;&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  in.amp(1);&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
  delay = new Delay(this);&lt;br /&gt;
  delay.process(in, 5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  print(currentBand+&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 5){&lt;br /&gt;
    if(currentEffect != &amp;quot;fondnoir&amp;quot;){&lt;br /&gt;
      background(0);&lt;br /&gt;
      delay.time(0);&lt;br /&gt;
      delay.feedback(0);&lt;br /&gt;
      currentEffect = &amp;quot;fondnoir&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }else if(currentBand &amp;lt; 10){&lt;br /&gt;
    if(currentEffect != &amp;quot;delai&amp;quot;){&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      delay.time(0.5);&lt;br /&gt;
      delay.feedback(0.1);&lt;br /&gt;
      background(255);&lt;br /&gt;
      currentEffect = &amp;quot;delai&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2664</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2664"/>
		<updated>2018-11-26T10:00:02Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code, Reverb et Retard appliqué chacun à une hauteur différente==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 13){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else if(currentBand &amp;gt; 10){&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2662</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2662"/>
		<updated>2018-11-26T09:12:45Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Code, Reverb et Echo appliqué chacun à une hauteur différente==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
Reverb reverb;&lt;br /&gt;
&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
int scale = 5;&lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 13){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else if(currentBand &amp;gt; 10){&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;lt; 10){ &lt;br /&gt;
  }else if(currentBand &amp;gt; 5){   &lt;br /&gt;
     reverb = new Reverb(this);&lt;br /&gt;
      reverb.process(in);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2634</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2634"/>
		<updated>2018-11-19T08:43:49Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple code avec ajout d&amp;#039;un effet à une hauteur donnée :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
Delay delay;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    delay = new Delay(this);&lt;br /&gt;
    delay.process(in, 5);&lt;br /&gt;
    delay.time(0.5);&lt;br /&gt;
  &lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2633</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2633"/>
		<updated>2018-11-19T08:39:12Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2632</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2632"/>
		<updated>2018-11-19T08:38:57Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2631</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2631"/>
		<updated>2018-11-19T08:38:33Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Effets vocaux : ==&lt;br /&gt;
Dispo dans les exemple de la librairie Sound : https://processing.org/reference/libraries/sound/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Il reste à les coder pour les appliqués à des paliers de hauteur.&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2611</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2611"/>
		<updated>2018-11-05T08:12:20Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
&lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction d&amp;#039;une hauteur&lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2607</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2607"/>
		<updated>2018-10-22T09:31:49Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
Modifications réalisées sur le code : &lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
-Changement de couleur du fond en fonction plus le son est aigu  &lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2606</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2606"/>
		<updated>2018-10-22T09:28:10Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
Modifications réalisées sur le code : &lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
  int currentBand = 0;&lt;br /&gt;
  float maxVal = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    &lt;br /&gt;
    if(fft.spectrum[i] &amp;gt; maxVal){&lt;br /&gt;
      currentBand = i;&lt;br /&gt;
      maxVal = fft.spectrum[i];&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if(currentBand &amp;gt; 10){&lt;br /&gt;
    background(0);&lt;br /&gt;
  }else{&lt;br /&gt;
    background(255);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2597</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2597"/>
		<updated>2018-10-15T10:02:57Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Code utilisé : &lt;br /&gt;
Modifications réalisées sur le code : &lt;br /&gt;
-FFT à partir d&amp;#039;un enregistrement micro input &lt;br /&gt;
-Retour Micro &lt;br /&gt;
&lt;br /&gt;
== ATTENTION UTILISER CASQUE AUDIO SINON LARSEN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This sketch shows how to use the FFT class to analyze a stream&lt;br /&gt;
 * of sound. Change the number of bands to get more spectral bands&lt;br /&gt;
 * (at the expense of more coarse-grained time resolution of the spectrum).&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
// Declare the sound source and FFT analyzer variables&lt;br /&gt;
FFT fft;&lt;br /&gt;
AudioIn in;&lt;br /&gt;
&lt;br /&gt;
// Define how many FFT bands to use (this needs to be a power of two)&lt;br /&gt;
int bands = 128;&lt;br /&gt;
&lt;br /&gt;
// Define a smoothing factor which determines how much the spectrums of consecutive&lt;br /&gt;
// points in time should be combined to create a smoother visualisation of the spectrum.&lt;br /&gt;
// A smoothing factor of 1.0 means no smoothing (only the data from the newest analysis&lt;br /&gt;
// is rendered), decrease the factor down towards 0.0 to have the visualisation update&lt;br /&gt;
// more slowly, which is easier on the eye.&lt;br /&gt;
float smoothingFactor = 0.2;&lt;br /&gt;
&lt;br /&gt;
// Create a vector to store the smoothed spectrum data in&lt;br /&gt;
float[] sum = new float[bands];&lt;br /&gt;
&lt;br /&gt;
// Variables for drawing the spectrum:&lt;br /&gt;
// Declare a scaling factor for adjusting the height of the rectangles&lt;br /&gt;
int scale = 5;&lt;br /&gt;
// Declare a drawing variable for calculating the width of the &lt;br /&gt;
float barWidth;&lt;br /&gt;
&lt;br /&gt;
public void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Calculate the width of the rects depending on how many bands we have&lt;br /&gt;
  barWidth = width/float(bands);&lt;br /&gt;
&lt;br /&gt;
  // Load and play a soundfile and loop it.&lt;br /&gt;
  fft = new FFT(this, bands);&lt;br /&gt;
  in = new AudioIn(this, 0);&lt;br /&gt;
  &lt;br /&gt;
  // Create the FFT analyzer and connect the playing soundfile to it.&lt;br /&gt;
  in.start();&lt;br /&gt;
  fft.input(in);&lt;br /&gt;
  //retour micro&lt;br /&gt;
  in.play();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void draw() {&lt;br /&gt;
  // Set background color, noStroke and fill color&lt;br /&gt;
  background(125, 255, 125);&lt;br /&gt;
  fill(255, 0, 150);&lt;br /&gt;
  noStroke();&lt;br /&gt;
&lt;br /&gt;
  // Perform the analysis&lt;br /&gt;
  fft.analyze();&lt;br /&gt;
&lt;br /&gt;
  for (int i = 0; i &amp;lt; bands; i++) {&lt;br /&gt;
    // Smooth the FFT spectrum data by smoothing factor&lt;br /&gt;
    sum[i] += (fft.spectrum[i] - sum[i]) * smoothingFactor;&lt;br /&gt;
&lt;br /&gt;
    // Draw the rectangles, adjust their height using the scale factor&lt;br /&gt;
    rect(i*barWidth, height, barWidth, -sum[i]*height*scale);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2584</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2584"/>
		<updated>2018-10-15T07:06:02Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Grab audio from the microphone input and draw a circle whose size&lt;br /&gt;
 * is determined by how loud the audio input is.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.sound.*;&lt;br /&gt;
&lt;br /&gt;
AudioIn input;&lt;br /&gt;
Amplitude loudness;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(640, 360);&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  // Create an Audio input and grab the 1st channel&lt;br /&gt;
  input = new AudioIn(this, 0);&lt;br /&gt;
&lt;br /&gt;
  // Begin capturing the audio input&lt;br /&gt;
  input.start();&lt;br /&gt;
  // start() activates audio capture so that you can use it as&lt;br /&gt;
  // the input to live sound analysis, but it does NOT cause the&lt;br /&gt;
  // captured audio to be played back to you. if you also want the&lt;br /&gt;
  // microphone input to be played back to you, call&lt;br /&gt;
  //    input.play();&lt;br /&gt;
  // instead (be careful with your speaker volume, you might produce&lt;br /&gt;
  // painful audio feedback. best to first try it out wearing headphones!)&lt;br /&gt;
&lt;br /&gt;
  // Create a new Amplitude analyzer&lt;br /&gt;
  loudness = new Amplitude(this);&lt;br /&gt;
&lt;br /&gt;
  // Patch the input to the volume analyzer&lt;br /&gt;
  loudness.input(input);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  // Adjust the volume of the audio input based on mouse position&lt;br /&gt;
  float inputLevel = map(mouseY, 0, height, 1.0, 0.0);&lt;br /&gt;
  input.amp(inputLevel);&lt;br /&gt;
&lt;br /&gt;
  // loudness.analyze() return a value between 0 and 1. To adjust&lt;br /&gt;
  // the scaling and mapping of an ellipse we scale from 0 to 0.5&lt;br /&gt;
  float volume = loudness.analyze();&lt;br /&gt;
  int size = int(map(volume, 0, 0.5, 1, 350));&lt;br /&gt;
&lt;br /&gt;
  background(125, 255, 125);&lt;br /&gt;
  noStroke();&lt;br /&gt;
  fill(255, 0, 150);&lt;br /&gt;
  // We draw a circle whose size is coupled to the audio analysis&lt;br /&gt;
  ellipse(width/2, height/2, size, size);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2583</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2583"/>
		<updated>2018-10-15T07:04:33Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2569</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2569"/>
		<updated>2018-10-08T09:48:22Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
//importation des différents éléments de la bibliothèque minim&lt;br /&gt;
// importation de la base de la bibliothèque&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
// importation du module de traitement de signal de la bibliothèque&lt;br /&gt;
import ddf.minim.signals.*;&lt;br /&gt;
// importation du module d&amp;#039;analyse de signal de la bibliothèque&lt;br /&gt;
import ddf.minim.analysis.*;&lt;br /&gt;
// importation du module d&amp;#039;effets sonores de la bibliothèque&lt;br /&gt;
import ddf.minim.effects.*;&lt;br /&gt;
&lt;br /&gt;
// je créé le nom de mon objet son&lt;br /&gt;
Minim monObjetSon;&lt;br /&gt;
// je créée le nom d&amp;#039;un objet entrée son&lt;br /&gt;
AudioInput entreeSon;&lt;br /&gt;
// je crée une variable qui me permettra de sortir la valeur du volume hors de la boucle d&amp;#039;itération (voir plus bas)&lt;br /&gt;
float monVolumeSon;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size (200, 200);&lt;br /&gt;
  //je crée mon objet son&lt;br /&gt;
  monObjetSon = new Minim(this);&lt;br /&gt;
  // je précise les caractéristiques de mon objet entreeSon : stereo, avec une memoire tampon (buffer) de 512 ko&lt;br /&gt;
  entreeSon = monObjetSon.getLineIn(Minim.STEREO, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  background(255);&lt;br /&gt;
  // Nous avons besopin d&amp;#039;une iteration pour récpérer tous les échantillons sonores présents dans la mémoire tampon&lt;br /&gt;
  for (int i = 0; i &amp;lt; entreeSon.bufferSize() - 1; i++)&lt;br /&gt;
  {&lt;br /&gt;
    // Je donne à ma variable monVolumeSon la somme des valeurs d&amp;#039;entrées gauche et droite du microphone que je multiplie par 50 pour la valeur soit exploitable&lt;br /&gt;
    monVolumeSon =   (entreeSon.left.get(i)+entreeSon.right.get(i)/2)*50;&lt;br /&gt;
  }&lt;br /&gt;
  // je donne à mon épaisseur de ligne la valeur de la variable monVolumeSon définie juste au-dessus. Avec la fonction &amp;#039;abs()&amp;#039; je transforme les valeurs de ma varibla à être positives&lt;br /&gt;
  strokeWeight(abs(monVolumeSon));&lt;br /&gt;
  // je donne à ma ligne la couleur rouge&lt;br /&gt;
  stroke(255, 0, 0);&lt;br /&gt;
  // je dessine ma ligne&lt;br /&gt;
  line(width/4, height/2, width*3/4, height/2);&lt;br /&gt;
  // maintenant, quand je fais du bruit l&amp;#039;épaisseur de ma ligne rouge varie en fonction du volume ambiant&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void stop()&lt;br /&gt;
{&lt;br /&gt;
  // Je ferme l&amp;#039;entree son et arrete l&amp;#039;objet son quand je quitte mon sketch afin de ne pas continuer à stocker les valeurs dans la memoire tampon quand j&amp;#039;ai fini&lt;br /&gt;
  entreeSon.close();&lt;br /&gt;
  monObjetSon.stop();&lt;br /&gt;
&lt;br /&gt;
  super.stop();&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2568</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2568"/>
		<updated>2018-10-08T09:45:25Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;EXEMPLE DE CODE À COMPRENDRE ET REUTILISER :&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
//importation des différents éléments de la bibliothèque minim&lt;br /&gt;
// importation de la base de la bibliothèque&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
// importation du module de traitement de signal de la bibliothèque&lt;br /&gt;
import ddf.minim.signals.*;&lt;br /&gt;
// importation du module d&amp;#039;analyse de signal de la bibliothèque&lt;br /&gt;
import ddf.minim.analysis.*;&lt;br /&gt;
// importation du module d&amp;#039;effets sonores de la bibliothèque&lt;br /&gt;
import ddf.minim.effects.*;&lt;br /&gt;
&lt;br /&gt;
// je créé le nom de mon objet son&lt;br /&gt;
Minim monObjetSon;&lt;br /&gt;
// je créée le nom d&amp;#039;un objet entrée son&lt;br /&gt;
AudioInput entreeSon;&lt;br /&gt;
// je crée une variable qui me permettra de sortir la valeur du volume hors de la boucle d&amp;#039;itération (voir plus bas)&lt;br /&gt;
float monVolumeSon;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  size (200, 200);&lt;br /&gt;
  //je crée mon objet son&lt;br /&gt;
  monObjetSon = new Minim(this);&lt;br /&gt;
  // je précise les caractéristiques de mon objet entreeSon : stereo, avec une memoire tampon (buffer) de 512 ko&lt;br /&gt;
  entreeSon = monObjetSon.getLineIn(Minim.STEREO, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  background(255);&lt;br /&gt;
  // Nous avons besopin d&amp;#039;une iteration pour récpérer tous les échantillons sonores présents dans la mémoire tampon&lt;br /&gt;
  for (int i = 0; i &amp;lt; entreeSon.bufferSize() - 1; i++)&lt;br /&gt;
  {&lt;br /&gt;
    // Je donne à ma variable monVolumeSon la somme des valeurs d&amp;#039;entrées gauche et droite du microphone que je multiplie par 50 pour la valeur soit exploitable&lt;br /&gt;
    monVolumeSon =   (entreeSon.left.get(i)+entreeSon.right.get(i)/2)*50;&lt;br /&gt;
  }&lt;br /&gt;
  // je donne à mon épaisseur de ligne la valeur de la variable monVolumeSon définie juste au-dessus. Avec la fonction &amp;#039;abs()&amp;#039; je transforme les valeurs de ma varibla à être positives&lt;br /&gt;
  strokeWeight(abs(monVolumeSon));&lt;br /&gt;
  // je donne à ma ligne la couleur rouge&lt;br /&gt;
  stroke(255, 0, 0);&lt;br /&gt;
  // je dessine ma ligne&lt;br /&gt;
  line(width/4, height/2, width*3/4, height/2);&lt;br /&gt;
  // maintenant, quand je fais du bruit l&amp;#039;épaisseur de ma ligne rouge varie en fonction du volume ambiant&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void stop()&lt;br /&gt;
{&lt;br /&gt;
  // Je ferme l&amp;#039;entree son et arrete l&amp;#039;objet son quand je quitte mon sketch afin de ne pas continuer à stocker les valeurs dans la memoire tampon quand j&amp;#039;ai fini&lt;br /&gt;
  entreeSon.close();&lt;br /&gt;
  monObjetSon.stop();&lt;br /&gt;
&lt;br /&gt;
  super.stop();&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2551</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2551"/>
		<updated>2018-10-08T08:39:04Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;br /&gt;
&lt;br /&gt;
Utilisation de processing. &lt;br /&gt;
&lt;br /&gt;
- Réaliser du code qui récupère les données enregistrées par un Micro externe, analyser ces données. &lt;br /&gt;
 &lt;br /&gt;
Exo 1 : traduire par une couleur des paliers sur la hauteur du son enregistré.&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2540</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2540"/>
		<updated>2018-10-08T07:39:18Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
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... &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-08 à 09.35.54.png]]&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2018-10-08_%C3%A0_09.35.54.png&amp;diff=2539</id>
		<title>Fichier:Capture d’écran 2018-10-08 à 09.35.54.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2018-10-08_%C3%A0_09.35.54.png&amp;diff=2539"/>
		<updated>2018-10-08T07:37:21Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2394</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2394"/>
		<updated>2018-10-01T18:51:43Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
projet : Assigner un programme différent (algorithmes) à chaque octave de la voix. Donc système de détection des hauteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2018-10-01 à 12.01.14.png]]&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2018-10-01_%C3%A0_12.01.14.png&amp;diff=2393</id>
		<title>Fichier:Capture d’écran 2018-10-01 à 12.01.14.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2018-10-01_%C3%A0_12.01.14.png&amp;diff=2393"/>
		<updated>2018-10-01T18:51:17Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2390</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2390"/>
		<updated>2018-10-01T10:07:43Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
projet : Assigner un programme différent (algorithmes) à chaque octave de la voix. Donc système de détection des hauteurs.&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2371</id>
		<title>ERG::physicalcomputing</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::physicalcomputing&amp;diff=2371"/>
		<updated>2018-10-01T09:47:58Z</updated>

		<summary type="html">&lt;p&gt;Benjaminhuynh : Page créée avec «  Comprendre, et utiliser une carte arduino / utilisation de Kinect / bouton Niu.   1 - Relier un bouton Niu à un ordinateur, pour déclencher un programme sur l&amp;#039;ordinateu... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Comprendre, et utiliser une carte arduino / utilisation de Kinect / bouton Niu. &lt;br /&gt;
&lt;br /&gt;
1 - Relier un bouton Niu à un ordinateur, pour déclencher un programme sur l&amp;#039;ordinateur.&lt;br /&gt;
2 - Créer un programme qui déforme aléatoirement un enregistrement sonore.&lt;br /&gt;
3 - Lancer ce programme avec le bouton. &lt;br /&gt;
4 - Créer de nouveaux algorithmes de déformation sonore, afin d&amp;#039;avoir une palette d&amp;#039;effets. &lt;br /&gt;
5 -  Lancer ces programme aléatoirement avec le bouton.&lt;br /&gt;
&lt;br /&gt;
6 - Ajouter un micro, pour déformer à l&amp;#039;aide des algorithmes les voix en live, qui en fonction des hauteurs de la voix, une hauteur correspondrai à un programme. &lt;br /&gt;
6 (bis) - Connecter le bouton pour qu&amp;#039;à chaque pression cela change d&amp;#039;effet sonore. &lt;br /&gt;
&lt;br /&gt;
Références : &lt;br /&gt;
- Karlax : la fête enchantée (Rémi Dury)&lt;br /&gt;
&lt;br /&gt;
Le bouton : &lt;br /&gt;
- https://www.myniu.fr&lt;/div&gt;</summary>
		<author><name>Benjaminhuynh</name></author>
	</entry>
</feed>