/ p5.js / 21 / gestion du son / partie 2

… retour
6 / Il est possible de faire du bruit (noise) avec p5.js…
var noise;

function setup() {
 createCanvas(780, 300);
 noise = new p5.Noise(); 
 noise.start();
}

function draw() {
 background(236,36,94);
 
 var vol = map(mouseX, 0, width, 0, 1);
 noise.amp(vol);
 vol = constrain(vol, 0, 1);
 noStroke();
 fill(36,236,94);
 ellipse(mouseX, 150, 50, 50);
}
7 / Varier la fréquence d’un oscillateur
var osc;

function setup() {
 createCanvas(780, 300);

 osc = new p5.SinOsc();
 osc.start();
 osc.amp(1);
}

function draw() {
 background(255);
 var freq = map(mouseX, 0, width, 40, 1200);
 osc.freq(freq);
 noStroke();
 fill(236,36,94);
 ellipse(mouseX, 150, 60, 60);
}
8 / Une enveloppe est une série de fondus, définies comme paires temps / valeur. L’enveloppe est utilisée pour « lire » une note en contrôlant l’amplitude de sortie d’un oscillateur.
var osc;
var envelope;

var scaleArray = [60, 62, 64, 65, 67, 69, 71, 72];
var note = 0;

function setup() {
 createCanvas(780, 300);
 osc = new p5.SinOsc();
 envelope = new p5.Env(0.01, 0.5, 1, 0.5);
 
}

function draw() {
 background(236,36,94);
 cursor(HAND);
 if (frameCount % 60 == 0) {
 var midiValue = scaleArray[note];
 var freqValue = midiToFreq(midiValue);
 osc.freq(freqValue);

 envelope.play(osc);
 note = (note + 1) % scaleArray.length;
 }
}

function mousePressed(){
 osc.start();
}
suite…