pub enum Special {
Show 23 variants
SetGlissando(bool),
SetFinetune(RangedU8<0, 0x0F>),
SetVibratoWaveform(Waveform),
SetTremoloWaveform(Waveform),
SetPanbrelloWaveform(Waveform),
PatternTickDelay(RangedU8<0, 0x0F>),
PastNote(SetPastNote),
SetNewNoteAction(SetNewNoteAction),
SetVolumeEnvelope(bool),
SetPanningEnvelope(bool),
SetPitchEnvelope(bool),
SetPanning(RangedU8<0, 0x0F>),
SetSurround(bool),
SetReverb(bool),
SetSurroundMode(SurroundMode),
SetFilterMode(FilterMode),
SetDirection(PlayDirection),
SetLoopbackPoint,
LoopbackTimes(RangedU8<0x01, 0x0F>),
NoteCut(RangedU8<0, 0x0F>),
NoteDelay(RangedU8<0, 0x0F>),
PatternRowDelay(RangedU8<0, 0x0F>),
SetMidiParam(RangedU8<0, 0x0F>),
}Expand description
Effect Sxx Special commands
SAy is represented using SetSampleOffset::High in Rust.
All the Sxx commands share the same memory, this should include the SAy command.
Variants§
SetGlissando(bool)
S1x Set glissando on/off
Configures whether tone portamento effects slide by semitones or smoothly.
S10disables glissando, portamento slides smoothly.S11enables glissando, portamento behaves like glissando and snaps to semitones.
§Canonicalization
When the value y is more than 1 it gets converted to true.
SetFinetune(RangedU8<0, 0x0F>)
S2x Set finetune
Considered a legacy command.
Overrides the current sample’s C-5 frequency with a MOD finetune value.
TODO link to what is MOD finetune value
SetVibratoWaveform(Waveform)
S3x Set vibrato waveform to type x
Sets the waveform of future Vibrato effects.
SetTremoloWaveform(Waveform)
S4x Set tremolo waveform to type x
Sets the waveform of future Tremolo effects.
SetPanbrelloWaveform(Waveform)
S5x Set panbrello waveform to type x
Sets the waveform of future Panbrello effects.
PatternTickDelay(RangedU8<0, 0x0F>)
S6x Pattern delay for x ticks
Extends the current row by x ticks. If multiple S6x commands are on the same row, the
sum of their parameters is used.
PastNote(SetPastNote)
S70, S71, S72 Past note cut, off or fade
SetNewNoteAction(SetNewNoteAction)
S73, S74, S75, S76 - Set NNA to note cut, continue, off or fade
SetVolumeEnvelope(bool)
S77, S78 Turn off/on volume envelope
SetPanningEnvelope(bool)
S79, S7A Turn off/on panning envelope
SetPitchEnvelope(bool)
S7B, S7C Turn off/on pitch envelope
SetPanning(RangedU8<0, 0x0F>)
S8x Set panning position to x
SetSurround(bool)
S90, S91 Turn off/on surround sound
Only S91 (Set::Surround(true)) is supported in the original Impulse Tracker,
other S9x commands are MPTM extensions.
SetReverb(bool)
S98, S99 Turn off/on reverb
MPTM extension
SetSurroundMode(SurroundMode)
S9A, S9B Set Surround mode to Center or Quad
MPTM extension
SetFilterMode(FilterMode)
S9C, S9D Set filter mode to Global or Local
MPTM extension
SetDirection(PlayDirection)
S9E, S9F Play Forward or Backward
MPTM extension
SetLoopbackPoint
SB0 Set loopback point
LoopbackTimes(RangedU8<0x01, 0x0F>)
SBx Loop x times to loopback point
NoteCut(RangedU8<0, 0x0F>)
SCx Note cut after x ticks
NoteDelay(RangedU8<0, 0x0F>)
SDx Note delay for x ticks
PatternRowDelay(RangedU8<0, 0x0F>)
SEx Pattern delay for x rows
SetMidiParam(RangedU8<0, 0x0F>)
SFx Set parameterised MIDI Macro