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