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.

46 lines
1.3 KiB

/**
* Play a sound sample and apply a reverb filter to it, changing the effect
* parameters based on the mouse position.
*
* With the mouse pointer at the top of the sketch you'll only hear the "dry"
* (unprocessed) signal, move the mouse downwards to add more of the "wet"
* reverb signal to the mix. The left-right position of the mouse controls the
* "room size" and damping of the effect, with a smaller room (and more refraction)
* at the left, and a bigger (but more dampened) room towards the right.
*/
import processing.sound.*;
SoundFile soundfile;
Reverb reverb;
void setup() {
size(640, 360);
background(255);
// Load a soundfile
soundfile = new SoundFile(this, "vibraphon.aiff");
// Create the effect object
reverb = new Reverb(this);
// Play the file in a loop
soundfile.loop();
// Set soundfile as input to the reverb
reverb.process(soundfile);
}
void draw() {
// Change the roomsize of the reverb
float roomSize = map(mouseX, 0, width, 0, 1.0);
reverb.room(roomSize);
// Change the high frequency dampening parameter
float damping = map(mouseX, 0, width, 0, 1.0);
reverb.damp(damping);
// Change the wet/dry relation of the effect
float effectStrength = map(mouseY, 0, height, 0, 1.0);
reverb.wet(effectStrength);
}