You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
999 B

/**
* Play a sound sample and pass it through a tape delay, changing the delay
* parameters based on the mouse position.
*/
import processing.sound.*;
SoundFile soundfile;
Delay delay;
void setup() {
size(640, 360);
background(255);
// Load a soundfile
soundfile = new SoundFile(this, "vibraphon.aiff");
// Create the delay effect
delay = new Delay(this);
// Play the file in a loop
soundfile.loop();
// Connect the soundfile to the delay unit, which is initiated with a
// five second "tape"
delay.process(soundfile, 5.0);
}
void draw() {
// Map mouseX from -1.0 to 1.0 for left to right panning
float position = map(mouseX, 0, width, -1.0, 1.0);
soundfile.pan(position);
// Map mouseX from 0 to 0.8 for the amount of delay feedback
float fb = map(mouseX, 0, width, 0.0, 0.8);
delay.feedback(fb);
// Map mouseY from 0.001 to 2.0 seconds for the length of the delay
float delayTime = map(mouseY, 0, height, 0.001, 2.0);
delay.time(delayTime);
}