- 1 0xy - Arpeggio
- 2 1xy - Portamento up
- 3 2xy - Portamento down
- 4 3xy - Tone Portamento
- 5 4xy - Vibrato
- 6 5xy - Tone Portamento + Volume Slide
- 7 6xy - Vibrato + Volume Slide
- 8 7xy - <unused>
- 9 8xy - PSG HW Envelope Multiplier
- 10 9xy - Macro offset
- 11 Axy - Volume slide
- 12 Bxy - SCC commands
- 13 Bxy - FM commands
- 14 Cxy - SCC morph
- 15 Cxy - FM drum commands
- 16 D00 - Pattern end
- 17 Exy - Extended commands
- 17.1 E0y - Short arpeggio
- 17.2 E1y - Fine slide up
- 17.3 E2y - Fine slide down
- 17.4 E4y - Vibrato control
- 17.5 E50 - Note link
- 17.6 E6y - Track detune
- 17.7 E7y - Sustain FM ONLY
- 17.8 E8y - Global transpose
- 17.9 E8y - Tone panning
- 17.10 E9y - Noise panning
- 17.11 ECy - Note cut delay
- 17.12 EDy - Note delay
- 17.13 EEy - Envelope
- 17.14 EFy - Trigger
- 18 Fxy - Replay Speed
0xy - Arpeggio
Cycles between note, note+x halftones, note+y halftones. Example:
C-4 1. 047 - Set arpeggio ... .. ... - Arpeggio continues ... .. 100 - Arpeggio stops.
This will play C-4, C-4+4 semitones and C-4+7 semitones (C-4, E-4 and G-4) Note: if both x and y are zero, this command is ignored (and displayed as "..."). You can stop the arpeggio with 100, 200, 300, 400, etc.
See also command E0y Short Arpeggio for details for using 2 tone arpeggios.
1xy - Portamento up
This will slide up the pitch of the current note being played by the given step size (in xy) each tic. 100 will continue the previous portamento values, even after a new note or effect. The slide will wrap around when it has reached the limit of the tone register. The slide is not delimited.
C#4 .. ... Play a note ... .. 106 Portamento up in steps of 6 on each tic. ... .. 100 Continue slide G-4 .. ... New note ... .. 100 Slide the new note in steps of 6 again.
In next release: This will slide up the pitch of the current note being played by the given step size (in xy) each tic. Values for x and y range between 1 and 255 ($1-$FF). 100 will stop the portamento. The slide will wrap around when it has reached the limit of the tone register. The slide is not delimited.
C#4 .. ... Play a note ... .. 106 Portamento up in steps of 6 on each tic. ... .. ... Continue slide ... .. 100 Stop the slide
2xy - Portamento down
Same as portamento up bit his will slide up the pitch of the current note being played by the given step size (in xy) each tic.
3xy - Tone Portamento
This command is used together with a note, and will bend the current pitch at the given step size ,on each tic, towards the specified note. Example:
C-4 1. ... F-4 .. 305 (bend the note up towards F-4) ... .. 300 (continue to slide up, until F-4 is reached)
In next release: This command is used together with a note, and will bend the current pitch at the given step size, on each tic, towards the specified note. Use 300 to stop the portamento when needed. Example:
C-4 1. ... F-4 .. 305 (bend the note up towards F-4) ... .. ... (continue to slide up, until F-4 is reached)
4xy - Vibrato
Vibrato with speed x and depth y. This command will oscillate the frequency of the current note with a sine wave. (You can change the vibrato waveform to a triangle wave, a square wave, or a random table by using the E4x command). the depth value ranges from 0 to 7.
Next release: Vibrato with speed x and depth y. This command will oscillate the frequency of the current note with a sine wave. The depth value ranges from 1 to 13 ($1 - $D). Higher values are ignored. The speed x set the speed in number of tics from 1 to 15 ($1 - $F). The vibrato can be updated during the effect by using 40y (set new depth) or 4x0 (set new speed). 400 will stop the effect. Example:
C-4 .. ... ... .. 442 Start vibrato with depth 2 and speed 4 ... .. ... ... .. 404 Update the vibrato depth to 4 and keep speed the same.
5xy - Tone Portamento + Volume Slide
This command is equivalent to Tone-Portamento and Volume Slide. (3xy + Axy). First set the Tone-Portamento.
6xy - Vibrato + Volume Slide
This command is equivalent to Vibrato and Volume Slide. (400 + Axy).
7xy - <unused>
8xy - PSG HW Envelope Multiplier
[ PSG ][ [
SCC] ][ FM]
This command sets the frequency of the hardware envelope registers. The value of xy is multiplied with 8 to set the frequency value(0-2040). The frequency value sets the speed of the envelope steps. The default frequency is always set to 0. Value set using this command will stay in effect until changed and/or end of playback.
This command only sets the envelope frequency and can be used in any track (even non-PSG tracks). To use the HW envelope playback command EEy is used.
... .. 801 Set the frequency to 8. Step speed is: (8*1024)/4000000 = 0,002 seconds
9xy - Macro offset
This command, when used together with a note, will start playing the sample at the position xy (instead of position 0). If xy is 00 (900), the previous value will be used. Be sure not to use xy values outside the instrument macro.
Axy - Volume slide
Slide up or down the current volume. ... .. A20 Slides up the current volume each 2 ticks by one. ... .. A08 Slides down the current volume each 8 ticks by one.
Note!: Until TT v0.9 there is a bug in the volume slide.
Bxy - SCC commands
PSG][ SCC ][ FM]
B00 - Reset
- Resets the waveform to the waveform related to the current instrument.
B1y - Duty Cycle
- Generates a square waveform for the current track. The value ($0 - $f) in y defines the shape (0-50%) of the waveform to generate in steps of 3,125%.
... .. B10 Waveform 3,1%: ________ ... .. B17 25% : ¯¯______
B2y - Waveform cut
- Cuts the current waveform (related to instrument) at position y to 0 (no amplitude). The value in y ($0-$f) defines size of the waveform in steps of 6.5%. The rest is cut to center.
... .. B20 Waveform 6,5%: /------- ... .. B2F 100%: /\//////
B4y - Waveform compress
Next release: Removed
- Compresses the current waveform (related to instrument). Parameter y contains the value ($0..$7) of the compression rate in steps of 4%. ($0=4%, $7=32%).
BBy - Set waveform
- Changes the current waveform into the waveform specified in y. Only waveforms $0..$F can be used.
BCy - Set waveform+16.
- Changes the current waveform into the waveform+16 specified in y. Only waveforms $0..$F can be used. With this command it is possible to set the upper 16 waveforms.
Bxy - FM commands
[ PSG ][
SCC][ FM ]
B0y - Change channel setup
- Set the channel set-uo used to replay the song.
... .. B00 Use 2 PSG and 6 FM channels ... .. B01 Use 3 PSG and 5 FM channels
Cxy - SCC morph
PSG][ SCC ][ FM]
Waveform morphing will morph between 2 waveforms. The morphing is done in 16 steps using variable intervals. Only 1 morph at the same time is possible. Multiple tracks can use the same morphing waveform by using the 'morph-slave' command. A morph will always complete in the background (except for morph change Cx0 and Cxy). Even after a track stops acting in 'morph-slave' mode. 'Morph-slave' mode is cancelled in a track by a note, rest (-R-), instrument or Bxy effect.
C-4 3FC14 ... ..... morph each 4 tics current instrument waveform to waveform 1 ... ..... C-4 3DC00 this track will follow any morph updates. ... ..... ... ..412 normal effects still work as normal C-3 ..... ... ..400 morph stops in the track with a note E-4 ..C00 ... ..C00 morph is not restarted but continued in both tracks. 'slave' ... ..... ... ..C60 morph stops and current morphed waveform is morphed into waveform 6 ... ..... ... ..C44 morph restarts with original instrument waveform to waveform 4 ... ..... ... 3.... morph stops in the track with the instrument.
- Set this track to 'morph-slave' mode. Any morph updates are automatically updated in this track.
- Start a new morph into waveform x using the current morph waveform values. Only useful after a Cxy command. The current morph speed is maintained (x values between 1-F). Sets track into 'morph-slave' mode.
- Start a new morph into waveform x (0-F) starting from the original instrument waveform. The update interval, in tics, is set using y (1-F). Sets track into 'morph-slave' mode.
Cxy - FM drum commands
PSG][ SCC][ FM ]
At default the drum macros are initialized as follows:
- drum preset layout
preset |1|2|3|4|5|6|7|8|9|A|B|C|D|E|F| | | | | | | | | | | | | | | | | bass-drum |x| |x| | |x| |x| |x|x| |x|x| | snare-drum | |x|x| | | |x|x| | | |x|x| | | hi-hat | | | |x| | | | | | |x|x|x| |x| cymbal | | | | |x|x|x|x| | | | | |x|x| tom | | | | | | | | |x|x| | | |x| |
- Reset all percussion registers to default.
- Play the corresponding drum macro (1-20)
D00 - Pattern end
Stops playing the current pattern and continues to the next pattern.
Exy - Extended commands
E0y - Short arpeggio
- y value sets the number of halve tones to alternate every tic (note+0.note+y). Use E00 to continue the sort arpeggio on the next step.
E1y - Fine slide up
- y value sets the value to slide up. This is only done once. This command is useful on higher notes for portamento or as note detune.
E2y - Fine slide down
- y value sets the value to slide down. This is only done once. This command is useful on higher notes for portamento or as note detune.
E4y - Vibrato control
Next release: This effect will be removed.
- y value sets the form used on vibrato (0=sine,1=triangle,2=pulse). This setting will affect all channels.
- Links the note next to this command with the previous note. The instrument macro is not restarted.
E6y - Track detune
- y value sets the track detune for all notes played till set differently. Values $0..$7 are positive values and values $8..$F are negative values (-1..-7)
E7y - Sustain FM ONLY
- y value set the sustain of the current note (0 is off, 1-f is on).
E8y - Global transpose
- y value sets the global transpose for all notes in halve notes. Values $0..$7 are positive (0..7) values and values $8..$F are negative values (-1..-7)
---.. E82 Will add 2 halve notes to all notes played. ---.. ... ---.. E80 Global transpose is set back to original (reset).
E8y - Tone panning
TTSMS Sets the Game Gear Panning of the current channel.
0 = Silent 1 = Left 2 = Left+Right 3 = Right
For Noise use E9y
TTFM No function
E9y - Noise panning
TTSMS Sets the Game Gear Panning of the noise channel.Can be used in any PSG channel.
0 = Silent 1 = Left 2 = Left+Right 3 = Right
ECy - Note cut delay
- y value sets the delay in ticks to wait before stopping the current note.
EDy - Note delay
- y value sets the delay in ticks to wait before starting the note.
EEy - Envelope
- y value sets the envelope shape to use. Value EE0 will continue the current envelope command. Values $1-$f sets the envelope shape. The envelope shape is executed in 15 steps. Step speed depends on the envelope frequency (see command 8xy). Envelope shapes are restart at every EEy command (except EE0). The following envelope shapes are available:
8 \\\\\\\\\\ 1-3,9 \_________ A \/\/\/\/\/ B \¯¯¯¯¯¯¯¯¯ C ////////// D /¯¯¯¯¯¯¯¯¯ E /\/\/\/\/\ 4-7,F /_________
EFy - Trigger
- y value is set in the trigger variable. The trigger can be used to sync programs to the music.
Fxy - Replay Speed
Set the speed (values 2-63) to play the music data. The xy value sets the delay in ‘halve’ ticks to wait between each pattern row.