Minim |
|
Delay Fields Methods
channelCount ( ) |
The Delay UGen is used to create delayed repetitions of the input audio.
One can control the delay time and amplification of the repetition.
One can also choose whether the repetition is fed back and/or the input is passed through.
Constructors Constructs a Delay. Maximum delay time will be 0.25 seconds, amplitude will be 0.5, and feedback will be off. Delay() Constructs a Delay. Amplitude will be 0.5 and feedback will be off. Delay(float maxDelayTime) Constructs a Delay. Feedback will be off. Delay(float maxDelayTime, float amplitudeFactor) Constructs a Delay. Delay(float maxDelayTime, float amplitudeFactor, boolean feedBackOn) Delay(float maxDelayTime, float amplitudeFactor, boolean feedBackOn, boolean passAudioOn) Parameters maxDelayTime — float: is the maximum delay time for any one echo and the default echo time.amplitudeFactor — float: is the amplification factor for feedback and should generally be from 0 to 1. feedBackOn — float: is a boolean flag specifying if the repetition continue to feed back. passAudioOn — float: is a boolean value specifying whether to pass the input audio to the output as well. Related Example /* delayExample<br/> * is an example of using the Delay UGen in a continuous sound example. * <p> * For more information about Minim and additional features, * visit http://code.compartmental.net/minim/ * <p> * author: Anderson Mills<br/> * Anderson Mills's work was supported by numediart (www.numediart.org) */ // import everything necessary to make sound. import ddf.minim.*; import ddf.minim.ugens.*; // create all of the variables that will need to be accessed in // more than one methods (setup(), draw(), stop()). Minim minim; AudioOutput out; Delay myDelay; // setup is run once at the beginning void setup() { // initialize the drawing window size( 512, 200 ); // initialize the minim and out objects minim = new Minim(this); out = minim.getLineOut(); // initialize myDelay with continual feedback and audio passthrough myDelay = new Delay( 0.4, 0.5, true, true ); // sawh will create a Sawtooth wave with the requested number of harmonics. // like with Waves.randomNHarms for sine waves, // you can create a richer sounding sawtooth this way. Waveform saw = Waves.sawh( 15 ); // create the Blip that will be used Oscil myBlip = new Oscil( 245.0, 0.3, saw ); // Waves.square will create a square wave with an uneven duty-cycle, // also known as a pulse wave. a square wave has only two values, // either -1 or 1 and the duty cycle indicates how much of the wave // should -1 and how much 1. in this case, we are asking for a square // wave that is -1 90% of the time, and 1 10% of the time. Waveform square = Waves.square( 0.9 ); // create an LFO to be used for an amplitude envelope Oscil myLFO = new Oscil( 1, 0.3, square ); // offset the center value of the LFO so that it outputs 0 // for the long portion of the duty cycle myLFO.offset.setLastValue( 0.3 ); myLFO.patch( myBlip.amplitude ); // and the Blip is patched through the delay into the output myBlip.patch( myDelay ).patch( out ); } // draw is run many times void draw() { // erase the window to dark grey background( 64 ); // draw using a light gray stroke stroke( 192 ); // draw the waveforms for( int i = 0; i < out.bufferSize() - 1; i++ ) { // find the x position of each buffer value float x1 = map( i, 0, out.bufferSize(), 0, width ); float x2 = map( i+1, 0, out.bufferSize(), 0, width ); // draw a line from one buffer position to the next for both channels line( x1, 50 + out.left.get(i)*50, x2, 50 + out.left.get(i+1)*50); line( x1, 150 + out.right.get(i)*50, x2, 150 + out.right.get(i+1)*50); } text( "Delay time is " + myDelay.delTime.getLastValue(), 5, 15 ); text( "Delay amplitude (feedback) is " + myDelay.delAmp.getLastValue(), 5, 30 ); } // when the mouse is moved, change the delay parameters void mouseMoved() { // set the delay time by the horizontal location float delayTime = map( mouseX, 0, width, 0.0001, 0.5 ); myDelay.setDelTime( delayTime ); // set the feedback factor by the vertical location float feedbackFactor = map( mouseY, 0, height, 0.99, 0.0 ); myDelay.setDelAmp( feedbackFactor ); } Usage Web & Application |