control playback speed
@author
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
import controlP5.*;
Minim minim;
AudioOutput out;
Sampler kick;
Sampler snare;
Sampler hihat;
ControlP5 cp5;
void setup(){
size(600, 300);
minim = new Minim(this);
out = minim.getLineOut();
kick = new Sampler("kick.wav", 4, minim);
kick.rate.setLastValue(10.0);
kick.patch(out);
snare = new Sampler("snare.wav", 4, minim);
snare.rate.setLastValue(0.3);
snare.patch(out);
hihat = new Sampler("hihat.wav", 4, minim);
hihat.rate.setLastValue(10.0);
hihat.patch(out);
float knobRadius = 40;
cp5 = new ControlP5(this);
cp5.addKnob("setKickRate")
.setLabel("kick rate")
.setRange(-2.0, 2.0)
.setValue(0.0)
.setPosition(width / 4.0 * 1.0 - knobRadius, height / 2.0 - knobRadius)
.setRadius(knobRadius);
cp5.addKnob("setSnareRate")
.setLabel("snare rate")
.setRange(-2.0, 2.0)
.setValue(0.0)
.setPosition(width / 4.0 * 2.0 - knobRadius, height / 2.0 - knobRadius)
.setRadius(knobRadius);
cp5.addKnob("setHihatRate")
.setLabel("hihat rate")
.setRange(-2.0, 2.0)
.setValue(0.0)
.setPosition(width / 4.0 * 3.0 - knobRadius, height / 2.0 - knobRadius)
.setRadius(knobRadius);
}
void setKickRate(float value){
kick.rate.setLastValue(pow(10.0, value));
}
void setSnareRate(float value){
snare.rate.setLastValue(pow(10.0, value));
}
void setHihatRate(float value){
hihat.rate.setLastValue(pow(10.0, value));
}
void draw(){
}
void keyPressed(){
switch(key){
case 'z':
kick.trigger();
break;
case 'x':
snare.trigger();
break;
case 'c':
hihat.trigger();
break;
}
}