Les 8 - Synthese


Hieronder de presentatie van de les van vanmorgen over synthese in P5.js

Javascript-les-8.pdf


Hieronder ook de code van de les:

//maak variabelen aan voor de audio-objecten:
let osc;
let env;
let lpf;
let delay;

function setup() {
  createCanvas(800,600);
  background(255);

  //maak een nieuwe oscillator aan en bepaal de frequentie
  osc = new p5.Oscillator('sawtooth');
  osc.freq(432);

  //maak een envelope aan en bepaal de adsr-waarden
  env = new p5.Envelope();
  env.setADSR(0.005,0.01,0.6,0.5);

  //pas de envelope toe op de amplitude van de oscillator
  osc.amp(env);

  //maak een nieuw LowPass filter aan en kies de frequentie
  lpf = new p5.LowPass();
  lpf.freq(630);

  //ontkoppel de oscillator aan de speakers
  osc.disconnect();

  //koppel de oscillator aan het filter
  osc.connect(lpf);

  //maak een nieuwe delay aan
  delay = new p5.Delay();

  //pas de delay toe op het filter
  //met delaytijd(in seconden)
  //feedback en filterfreq.
  delay.process(lpf,0.5,0.8,5000);
}

function draw() {
  //plaats hier de code die continue herhaald moet worden.
}

function keyPressed() {
  if (key === ' ') {
    //start de oscillator, trigger de attach van de envelope
    osc.start();
    env.triggerAttack();  
  }
}

function keyReleased() {
  if (key === ' ') {
    //trigger de release van de envelope
    env.triggerRelease();
  }
}