toxi.math.waves
Class FMHarmonicSquareWave

java.lang.Object
  extended by toxi.math.waves.AbstractWave
      extended by toxi.math.waves.FMHarmonicSquareWave

public class FMHarmonicSquareWave
extends AbstractWave

Frequency modulated bandwidth-limited square wave using a fourier series of harmonics. Also uses a secondary wave to modulate the frequency of the main wave.

Note: You must NEVER call the update() method on the modulating wave.


Field Summary
 AbstractWave fmod
           
 int maxHarmonics
          Maximum harmonics to add (make sure you stay under Nyquist freq), default = 9
 
Fields inherited from class toxi.math.waves.AbstractWave
amp, frequency, offset, phase, PI, TWO_PI, value
 
Constructor Summary
FMHarmonicSquareWave(float phase, float freq, AbstractWave fmod)
           
FMHarmonicSquareWave(float phase, float freq, float amp, float offset)
          Convenience constructor to create a non frequency modulated square wave
FMHarmonicSquareWave(float phase, float freq, float amp, float offset, AbstractWave fmod)
           
 
Method Summary
 void pop()
           
 void push()
           
 void reset()
          Resets this wave and its modulating wave as well.
 float update()
          Progresses the wave and updates the result value.
 
Methods inherited from class toxi.math.waves.AbstractWave
cyclePhase, cyclePhase, hertzToRadians, radiansToHertz, setPhase, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fmod

public AbstractWave fmod

maxHarmonics

public int maxHarmonics
Maximum harmonics to add (make sure you stay under Nyquist freq), default = 9

Constructor Detail

FMHarmonicSquareWave

public FMHarmonicSquareWave(float phase,
                            float freq,
                            AbstractWave fmod)

FMHarmonicSquareWave

public FMHarmonicSquareWave(float phase,
                            float freq,
                            float amp,
                            float offset)
Convenience constructor to create a non frequency modulated square wave

Parameters:
phase -
freq - base frequency (in radians)
amp -
offset -

FMHarmonicSquareWave

public FMHarmonicSquareWave(float phase,
                            float freq,
                            float amp,
                            float offset,
                            AbstractWave fmod)
Method Detail

pop

public void pop()
Overrides:
pop in class AbstractWave

push

public void push()
Overrides:
push in class AbstractWave

reset

public void reset()
Resets this wave and its modulating wave as well.

Overrides:
reset in class AbstractWave
See Also:
AbstractWave.reset()

update

public float update()
Progresses the wave and updates the result value. You must NEVER call the update() method on the modulating wave since this is handled automatically by this method.

Specified by:
update in class AbstractWave
Returns:
current (newly calculated) wave value
See Also:
AbstractWave.update()