net.beadsproject.beads.ugens
Class Drain

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

public class Drain
extends UGen

Drain mixes grains of audio. Inspired by FTM's Gabor Drain. Send chunks of windowed audio data and it will play them, mix them and dispose of them when done. Drain may not be very efficient in the sense that you may be allocating large arrays of floats. This is left to the user to work out. Call add(float[][]) to add a new bit of audio data. Beware that the float will then be in use for a while as the audio data gets accessed and spat out.


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
Drain(AudioContext context, int outs)
          Instantiates a new Drain.
 
Method Summary
 void add(float[][] audioData)
          Adds a new grain of audio data.
 void calculateBuffer()
          Called by the signal chain to update this UGen's ouput data.
 
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

Drain

public Drain(AudioContext context,
             int outs)
Instantiates a new Drain.

Parameters:
context - the AudioContext.
outs - the number of output channels.
Method Detail

add

public void add(float[][] audioData)
Adds a new grain of audio data.

Parameters:
audioData - the audio data.

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