com.softsynth.jsyn.circuits
Class MultiTapDelay

java.lang.Object
  extended by java.util.Observable
      extended by com.softsynth.jsyn.SynthObject
          extended by com.softsynth.jsyn.SynthSound
              extended by com.softsynth.jsyn.SynthCircuit
                  extended by com.softsynth.jsyn.circuits.MultiTapDelay

public class MultiTapDelay
extends SynthCircuit


Field Summary
 SynthInput feedback
          Determines the amount of low pass filtered output that is fed back into the input.
 SynthInput input
           
 SynthOutput output
           
 
Constructor Summary
MultiTapDelay(double[] tapDelays, double[] tapGains)
          Multitap delays are constructed by passing an array of delay times and gains.
 
Method Summary
 
Methods inherited from class com.softsynth.jsyn.SynthCircuit
add, compile, delete, getPeer, loadByName
 
Methods inherited from class com.softsynth.jsyn.SynthSound
addPort, addPort, findNamedPort, getName, getNumPorts, getPortAt, getPriority, setPriority, setStage, setStage, start, start, stop, stop
 
Methods inherited from class com.softsynth.jsyn.SynthObject
deleteAll, enableDeletionByGarbageCollector, enableTracking, getSynthContext, isTrackingEnabled, toString, track
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

input

public SynthInput input

feedback

public SynthInput feedback
Determines the amount of low pass filtered output that is fed back into the input. This can cause the sound to decay more slowly. Feedback may cause clipping if set too high. Ranges from -1.0 to 1.0.


output

public SynthOutput output
Constructor Detail

MultiTapDelay

public MultiTapDelay(double[] tapDelays,
                     double[] tapGains)
              throws SynthException
Multitap delays are constructed by passing an array of delay times and gains. A tap will be built for each element of the delay array. The taps amplitude will be set to the valus in the gain array. For example, to set up a delay with 5 taps:

                double[] delays = { 0.457, 0.719, 0.901, 1.0, 1.17 };
                double[] gains = {0.1, -0.3, -0.2, 0.1, 0.3};
                myReverb = new MultiTapDelay( delays, gains );
When sound reflects off of a wall, the waveforms are inverted. So you can think of taps with negative gains as signals that have reflected an odd number of times.

In order to prevent a DC (zero frequency) offset from building up in the circuit, the gains should add up to zero.

In order to prevent clipping, the absolute value of the gains should add up to a number less than 1.0.

Throws:
SynthException