Les 9 - Samples afspelen
Bekijk hieronder de presentatie van de les over samples afspelen:
Hieronder de code uit de les
EÊn samples inladen en met muis loopen
//maak een lege variabele waar de sample in kan
let sample;
function preload() {
//bepaal het soundformat dat ingeladen mag worden
soundFormats('wav');
//laad de sample in de boven aangemaakte variabele
sample = loadSound('samples/boomdood.wav');
}
function setup() {
createCanvas(800,600);
background(255);
}
function draw() {
//maak een variabele waarin je de
//x positie van de muis schaalt naar 0 tot 2
let rate = map(mouseX,0,width,0,2);
//pas de afspeelsnelheid van de sample aan
sample.rate(rate);
}
//pas de startpositie en duur aan bij een druk op de spatie
function keyPressed() {
if (key === ' ') {
// bepaal een random startpositie
let startPos = random(0,sample.duration());
//spring naar de startpositie tot startpositie + 0.01 seconde
sample.jump(startPos,startPos+0.01);
}
}
//start loopen van de sample bij een muisklik
function mousePressed() {
sample.loop();
}
//pauzeer het loopen als je de muis loslaat
function mouseReleased() {
sample.pause();
}
meerdere samples inladen en met toetsenbord afspelen
//maak een lege array waar de samples in kunnen worden opgeslagen
let drums = [];
//maak een array met de samplenamen
let sampleNames = ['BD.wav','SD.wav','CY.wav'];
//maak een array met key-triggers waarmee je de samples wil afspelen
let triggers = ['b','s','c'];
function preload() {
//geef aan welke soundformats er mogelijk zijn
soundFormats('wav');
//maak een for-loop waarmee je door de samplenamen loopt
//laad de samples in de voorafgemaakte array drums
for (let i = 0; i < sampleNames.length;i++) {
drums[i] = loadSound('samples/'+sampleNames[i]);
}
}
function setup() {
createCanvas(800,600);
background(255);
}
function draw() {
}
function keyPressed() {
//maak een for-loop waarmee je per trigger in de
//bovenstaande array een sample afspeelt.
for (let i = 0; i < triggers.length;i++) {
if (key === triggers[i]) {
drums[i].play();
}
}
}