net.beadsproject.beads.ugens
Class CrossFade

java.lang.Object
  extended by net.beadsproject.beads.core.Bead
      extended by net.beadsproject.beads.core.UGen
          extended by net.beadsproject.beads.ugens.CrossFade

public class CrossFade
extends UGen

CrossFade is used to quickly crossfade between elements. Add it to the signal chain and simply call fadeTo(UGen, float) to fade to a new UGen over a given duration. Note that UGen has it's own simpler crossFade method. TODO: non-linear fades.

Author:
ollie

Nested Class Summary
 
Nested classes/interfaces inherited from class net.beadsproject.beads.core.UGen
UGen.OutputInitializationRegime, UGen.OutputPauseRegime
 
Field Summary
 
Fields inherited from class net.beadsproject.beads.core.UGen
bufferSize, bufIn, bufOut, context, ins, outputInitializationRegime, outputPauseRegime, outs
 
Constructor Summary
CrossFade(AudioContext context, int channels)
          Create a new CrossFade with given number of channels.
CrossFade(AudioContext context, UGen start)
          Create a new CrossFade with given start UGen.
 
Method Summary
 void calculateBuffer()
          Called by the signal chain to update this UGen's ouput data.
 boolean doesPauseAfterComplete()
          True if this CrossFade is set to pause outgoing UGens once they have been faded out.
 void fadeTo(UGen target, float crossfadeTimeMS)
          Cross fades from the current UGen to the specified UGen the specified number of milliseconds.
 void setPauseAfterComplete(boolean pauseAfterComplete)
          Set whether this CrossFade is set to pause outgoing UGens once they have been faded out.
 
Methods inherited from class net.beadsproject.beads.core.UGen
addDependent, addInput, addInput, clearDependents, clearInputConnections, containsInput, crossfadeInput, getConnectedInputs, getContext, getEnvelopes, getIns, getNumberOfConnectedUGens, getNumberOfDependents, getOutBuffer, getOuts, getTimeTakenLastUpdate, getValue, getValue, getValueDouble, getValueDouble, initializeOuts, isTimerMode, isUpdated, noInputs, pause, printInBuffers, printInputList, printOutBuffers, removeAllConnections, removeConnection, removeDependent, setOutsToPause, setTimerMode, setValue, update, zeroIns, zeroOuts
 
Methods inherited from class net.beadsproject.beads.core.Bead
getKillListener, getName, isDeleted, isPaused, kill, message, messageReceived, setKillListener, setName, start, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CrossFade

public CrossFade(AudioContext context,
                 int channels)
Create a new CrossFade with given number of channels. The CrossFade has no inputs since the input UGens are assigned in the method fadeTo(UGen, float).

Parameters:
context - the AudioContext.
channels - the number of output channels.

CrossFade

public CrossFade(AudioContext context,
                 UGen start)
Create a new CrossFade with given start UGen.

Parameters:
context - the AudioContext.
start - the UGen to start on.
Method Detail

fadeTo

public void fadeTo(UGen target,
                   float crossfadeTimeMS)
Cross fades from the current UGen to the specified UGen the specified number of milliseconds.

Parameters:
target - the new target UGen.
crossfadeTimeMS - the cross fade time in milliseconds.

doesPauseAfterComplete

public boolean doesPauseAfterComplete()
True if this CrossFade is set to pause outgoing UGens once they have been faded out.

Returns:
true if it is true, false otherwise.

setPauseAfterComplete

public void setPauseAfterComplete(boolean pauseAfterComplete)
Set whether this CrossFade is set to pause outgoing UGens once they have been faded out.

Parameters:
pauseAfterComplete - true means that outgoing UGens will be paused once they have been faded out.

calculateBuffer

public void calculateBuffer()
Description copied from class: UGen
Called by the signal chain to update this UGen's ouput data. Subclassses of UGen should implement the UGen's DSP perform routine here. In general this involves grabbing data from UGen.bufIn and putting data into UGen.bufOut in some way. UGen.bufIn and UGen.bufOut are 2D arrays of floats of the form float[numChannels][bufferSize]. The length of the buffers is given by UGen.bufferSize, and the number of channels of the input and output buffers are given by UGen.ins and UGen.outs respectively.

Specified by:
calculateBuffer in class UGen