micromod
Class Modulator

java.lang.Object
  extended bymicromod.Modulator

public class Modulator
extends java.lang.Object

The Modulator is intended to "modulate" the pitch/volume of a Channel over time. It can be configured to perform arpeggios, vibratos, tremolos, portamentos etc.


Field Summary
protected  int[] arpeggio
           
protected  Channel channel
           
protected  int currentFXCommand
           
protected  int currentFXCounter
           
protected  int currentFXPeriod
           
protected  int currentFXValue
           
static int FX_ARPEGGIO
           
static int FX_EXTPAN
           
static int FX_FINESLIDEDOWN
           
static int FX_FINESLIDEUP
           
static int FX_FINEVOLDOWN
           
static int FX_FINEVOLUP
           
static int FX_INVERTLOOP
           
static int FX_LOWPASS
           
static int FX_NOTECUT
           
static int FX_NOTEDELAY
           
static int FX_PANNING
           
static int FX_RETRIG
           
static int FX_SETFINETUNE
           
static int FX_SETGLISSANDO
           
static int FX_SETSAMPLEOFFSET
           
static int FX_SETTREMOLOWAVE
           
static int FX_SETVIBRATOWAVE
           
static int FX_SETVOLUME
           
static int FX_SLIDEDOWN
           
static int FX_SLIDEUP
           
static int FX_TONEPORTA
           
static int FX_TONEPORTAVOLSLIDE
           
static int FX_TREMOLO
           
static int FX_VIBRATO
           
static int FX_VIBRATOVOLSLIDE
           
static int FX_VOLSLIDE
           
protected  int fxSubValue1
           
protected  int fxSubValue2
           
protected static int[] periodTable
           
protected  int sampleOffset
           
protected static int[] sinTable
           
protected  boolean supportsPanning
           
protected  int tonePortaDestination
           
protected  int tonePortaSpeed
           
protected  int tremDepth
           
protected  ProTrackerLFO tremoloLFO
           
protected  int tremSpeed
           
protected  int vibDepth
           
protected  ProTrackerLFO vibratoLFO
           
protected  int vibSpeed
           
 
Constructor Summary
Modulator(Channel chan, boolean supportsPanning)
           
 
Method Summary
protected  void adjustFineTune()
           
protected  void getFXSubValues()
           
protected  void initialiseArpeggio()
           
 void initialiseFX(int fxPeriod, Instrument fxInstrument, int fxCommand, int fxValue)
          Initialise both this object and the channel associated with it with the data from a row in a ProTracker-style sequence.
protected  void initialiseTremolo(boolean newNote)
           
protected  void initialiseVibrato(boolean newNote)
           
 void reset()
          Reset the modulator to "power on" defaults.
protected  void setTremoloWave(int waveform)
           
protected  void setVibratoWave(int waveform)
           
protected  void updateArpeggio()
           
 void updateFX()
          Update the pitch/volume for a CIA tick of the tracker.
protected  void updateNoteCut()
           
protected  void updateNoteDelay()
           
protected  void updateTonePorta()
           
protected  void updateTremolo(boolean trig)
           
protected  void updateVibrato(boolean trig)
           
protected  void updateVolSlide()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FX_ARPEGGIO

public static final int FX_ARPEGGIO
See Also:
Constant Field Values

FX_SLIDEUP

public static final int FX_SLIDEUP
See Also:
Constant Field Values

FX_SLIDEDOWN

public static final int FX_SLIDEDOWN
See Also:
Constant Field Values

FX_TONEPORTA

public static final int FX_TONEPORTA
See Also:
Constant Field Values

FX_VIBRATO

public static final int FX_VIBRATO
See Also:
Constant Field Values

FX_TONEPORTAVOLSLIDE

public static final int FX_TONEPORTAVOLSLIDE
See Also:
Constant Field Values

FX_VIBRATOVOLSLIDE

public static final int FX_VIBRATOVOLSLIDE
See Also:
Constant Field Values

FX_TREMOLO

public static final int FX_TREMOLO
See Also:
Constant Field Values

FX_PANNING

public static final int FX_PANNING
See Also:
Constant Field Values

FX_SETSAMPLEOFFSET

public static final int FX_SETSAMPLEOFFSET
See Also:
Constant Field Values

FX_VOLSLIDE

public static final int FX_VOLSLIDE
See Also:
Constant Field Values

FX_SETVOLUME

public static final int FX_SETVOLUME
See Also:
Constant Field Values

FX_LOWPASS

public static final int FX_LOWPASS
See Also:
Constant Field Values

FX_FINESLIDEUP

public static final int FX_FINESLIDEUP
See Also:
Constant Field Values

FX_FINESLIDEDOWN

public static final int FX_FINESLIDEDOWN
See Also:
Constant Field Values

FX_SETGLISSANDO

public static final int FX_SETGLISSANDO
See Also:
Constant Field Values

FX_SETVIBRATOWAVE

public static final int FX_SETVIBRATOWAVE
See Also:
Constant Field Values

FX_SETFINETUNE

public static final int FX_SETFINETUNE
See Also:
Constant Field Values

FX_SETTREMOLOWAVE

public static final int FX_SETTREMOLOWAVE
See Also:
Constant Field Values

FX_EXTPAN

public static final int FX_EXTPAN
See Also:
Constant Field Values

FX_RETRIG

public static final int FX_RETRIG
See Also:
Constant Field Values

FX_FINEVOLUP

public static final int FX_FINEVOLUP
See Also:
Constant Field Values

FX_FINEVOLDOWN

public static final int FX_FINEVOLDOWN
See Also:
Constant Field Values

FX_NOTECUT

public static final int FX_NOTECUT
See Also:
Constant Field Values

FX_NOTEDELAY

public static final int FX_NOTEDELAY
See Also:
Constant Field Values

FX_INVERTLOOP

public static final int FX_INVERTLOOP
See Also:
Constant Field Values

channel

protected Channel channel

supportsPanning

protected boolean supportsPanning

vibratoLFO

protected ProTrackerLFO vibratoLFO

tremoloLFO

protected ProTrackerLFO tremoloLFO

currentFXCommand

protected int currentFXCommand

currentFXValue

protected int currentFXValue

fxSubValue1

protected int fxSubValue1

fxSubValue2

protected int fxSubValue2

currentFXPeriod

protected int currentFXPeriod

currentFXCounter

protected int currentFXCounter

tonePortaDestination

protected int tonePortaDestination

tonePortaSpeed

protected int tonePortaSpeed

sampleOffset

protected int sampleOffset

vibSpeed

protected int vibSpeed

vibDepth

protected int vibDepth

tremSpeed

protected int tremSpeed

tremDepth

protected int tremDepth

arpeggio

protected int[] arpeggio

sinTable

protected static int[] sinTable

periodTable

protected static int[] periodTable
Constructor Detail

Modulator

public Modulator(Channel chan,
                 boolean supportsPanning)
Parameters:
chan - the channel to be associated with this Modulator
supportsPanning - If false, will ignore extended panning commands. Old Protracker modules do not have panning, but may still issue the panning commands.
Method Detail

reset

public void reset()
Reset the modulator to "power on" defaults.


initialiseFX

public void initialiseFX(int fxPeriod,
                         Instrument fxInstrument,
                         int fxCommand,
                         int fxValue)
Initialise both this object and the channel associated with it with the data from a row in a ProTracker-style sequence.


updateFX

public void updateFX()
Update the pitch/volume for a CIA tick of the tracker.


getFXSubValues

protected void getFXSubValues()

initialiseArpeggio

protected void initialiseArpeggio()

updateArpeggio

protected void updateArpeggio()

updateTonePorta

protected void updateTonePorta()

updateVolSlide

protected void updateVolSlide()

initialiseVibrato

protected void initialiseVibrato(boolean newNote)

updateVibrato

protected void updateVibrato(boolean trig)

setVibratoWave

protected void setVibratoWave(int waveform)

initialiseTremolo

protected void initialiseTremolo(boolean newNote)

updateTremolo

protected void updateTremolo(boolean trig)

setTremoloWave

protected void setTremoloWave(int waveform)

updateNoteCut

protected void updateNoteCut()

updateNoteDelay

protected void updateNoteDelay()

adjustFineTune

protected void adjustFineTune()