com.jsyn.unitgen
Class GrainFarm

java.lang.Object
  extended by com.jsyn.unitgen.UnitGenerator
      extended by com.jsyn.unitgen.GrainFarm
All Implemented Interfaces:
UnitSource
Direct Known Subclasses:
SampleGrainFarm

public class GrainFarm
extends UnitGenerator
implements UnitSource

A unit generator that generates a could of sound using multiple Grains. Special thanks to my friend Ross Bencina for his excellent article on Granular Synthesis. Several of his ideas are reflected in this architecture. "Implementing Real-Time Granular Synthesis" by Ross Bencina, Audio Anecdotes III, 2001

See Also:
Grain, GrainSourceSine, RaisedCosineEnvelope

Field Summary
 UnitInputPort amplitude
           
 UnitInputPort amplitudeRange
           
 UnitInputPort density
           
 UnitInputPort duration
           
 UnitInputPort durationRange
           
 UnitOutputPort output
           
 UnitInputPort rate
          A scaler for playback rate.
 UnitInputPort rateRange
           
 
Fields inherited from class com.jsyn.unitgen.UnitGenerator
FALSE, TRUE
 
Constructor Summary
GrainFarm()
           
 
Method Summary
 void allocate(int numGrains)
           
 void generate(int start, int limit)
          Perform essential synthesis function.
 UnitOutputPort getOutput()
           
 void setGrainArray(Grain[] grains)
           
 void setupGrain(Grain grain, int i)
           
 
Methods inherited from class com.jsyn.unitgen.UnitGenerator
addPort, convertHalfLifeToMultiplier, flattenOutputs, generate, getFramePeriod, getFrameRate, getPortByName, getPorts, getSynthesisEngine, isEnabled, pullData, setCircuit, setFrameRate, setSynthesisEngine, start, stop
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rate

public UnitInputPort rate
A scaler for playback rate. Nominally 1.0.


rateRange

public UnitInputPort rateRange

amplitude

public UnitInputPort amplitude

amplitudeRange

public UnitInputPort amplitudeRange

density

public UnitInputPort density

duration

public UnitInputPort duration

durationRange

public UnitInputPort durationRange

output

public UnitOutputPort output
Constructor Detail

GrainFarm

public GrainFarm()
Method Detail

setGrainArray

public void setGrainArray(Grain[] grains)

setupGrain

public void setupGrain(Grain grain,
                       int i)

allocate

public void allocate(int numGrains)

getOutput

public UnitOutputPort getOutput()
Specified by:
getOutput in interface UnitSource

generate

public void generate(int start,
                     int limit)
Description copied from class: UnitGenerator
Perform essential synthesis function.

Specified by:
generate in class UnitGenerator
Parameters:
start - offset into port buffers
limit - limit offset into port buffers for loop