Class FMHarmonicSquareWave

java.lang.Object
toxi.math.waves.AbstractWave
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 Details

    • fmod

      public AbstractWave fmod
    • maxHarmonics

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

    • 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 Details

    • 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:
    • 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: