ALT+152
matrixTRK pattern format description


A pattern entry has the following format:

	| &12 | &01 | &40 | &1802 |

&12 - note &00 .. &5F, &08 octaves * &0C notes = &60, &00 is C-0, &5F is B-7,
      an emty note has a value of &FF, &FE means sample off

&01 - sample number the note will be played with, &FE samples are possible,
      an emty sample number has a value of &00

&40 - volume entry for specified note, &00 .. &40 is possible, values above
      &40 are ignored. an emty volume entry has a value of &FF

&18 - effect number (described below), an emty effect number has a value of
      &00

&02 - effect parameter depending on effect number (described below), an emty
      effect parameter has a value of &00

a pattern row consists of pattern entries for 1 to a maximum of 32 voices. a
pattern consists of 1 to a maximum of 64 pattern rows.

for further details on how the whole thing works see the ScreamTracker3
documentation and technical documentation.


matrixTRK sound effect description



pitch manipulation effects


&001x	set fine tune

that command was implemented to retain PROTracker compatibility. it changes
the instrument record frequency to a desired value. so you can correct the
instrument pitch. effect parameters are:

	8	- 7895 Hz
	9	- 7941 Hz
	A	- 7985 Hz
	B	- 8046 Hz
	C	- 8107 Hz
	D	- 8169 Hz
	E	- 8232 Hz
	F	- 8280 Hz
	0	- 8363 Hz (No finetune)
	1	- 8413 Hz
	2	- 8463 Hz
	3	- 8529 Hz
	4	- 8581 Hz
	5	- 8651 Hz
	6	- 8723 Hz
	7	- 8757 Hz

&002x	pitch fine slide up
&003x	pitch extra fine slide up

increases the pitch by x on the first frame of the note only. in case of x=0
the previous 'pitch fine slide' parameter will be used. if the note exceeds
the limit specified by the Amiga compatibility the slide operation will be
stopped.

&02xx	pitch slide up

slides up the pitch of the note as specified by xx (speed-1 times). in case
of xx=0 the previous 'pitch slide' parameter will be used. if the note
exceeds the limit specified by the Amiga compatibility the slide operation
will be stopped.

&004x	pitch fine slide down
&005x	pitch extra fine slide down

decreases the pitch by x on the first frame of the note only. in case of x=0
the previous 'pitch fine slide' parameter will be used. if the note exceeds
the limit specified by the Amiga compatibility the slide operation will be
stopped.

&03xx	pitch slide down

slides down the pitch of the note as specified by xx (speed-1 times). in case
of xx=0 the previous 'pitch slide' parameter will be used. if the note
exceeds the limit specified by the Amiga compatibility the slide operation
will be stopped.

&04xy	tone arpeggio

changes the playing note between the note, the note + x halfnotes and the
note + y halfnotes. in case of xy=0 the previous 'arpeggio' parameter is
used. if the note + halfnotes exeeds the limit specified by the Amiga
compatibility the note will be muted.

&006x	tone glissando control

setting x=0 (default) makes 'tone portamento' act normally (continous
sliding). setting x=1 makes 'tone portamento' slide from halfnote to halfnote
on the given channel.

&05xx	tone portamento

starts changing the current pitch to match the note given with this command.
following 'tone portamento' will continue sliding the pitch until the note is
reached. the portamento will then be stopped. in case of xx=0 the previous
'tone portamento' parameter will be used.

&06xy	tone portamento volume

requires the previous use of a 'tone portamento'. it will continue the 'tone
portamento' and slides the volume like a normal volume slide with the value
xy. in case of xy=0 the previous 'volume slide' parameter will be used. You
cannot use fine volume sliding.

&007x	vibrato set waveform

sets the waveform of the vibrato. the options x are:
 - 0	sine waveform (default),
 - 1	ramp down,
 - 2,3  square waveform.
if bit 2 of x is clear the vibrato counter restarts every note.

&07xy	vibrato

vibrates the note by changing the pitch with speed x and depth y. in case of
x=0 the previous 'vibrato speed' parameter will be used else if y=0 the
previous 'vibrato depth' parameter will be used.

&08xy	vibrato fine

vibrates the note by changing the pitch with speed x and depth y just like
normal vibrato, but is four times more accurate. if a note is played with a
very high frequency, a normal vibrato might sound too strong, so a fine
vibrato can be used. in case of x=0 the previous 'vibrato speed' parameter
will be used else if y=0 the previous 'vibrato depth' parameter will be used.

&09xy	vibrato volume

requires the previous use of a 'vibrato'. it will continue the 'vibrato' and
slides the volume like a normal volume slide with the value xy. in case of
xy=0 the previous 'volume slide' parameter will be used. you cannot use fine
volume sliding.


volume manipulation effects


&10xx	volume set global

changes the global volume the whole song is played with. accepted values
for xx are &00..&40.

&11xx	volume slide global

slides the global volume the whole song is played with. accepted values
for xx are &80(-128)..&FF(-1)..&00(0)..&7F(127).

&00Ax	volume fine slide up

increases the volume by x on the first frame of the note only. in case of x=0
the previous 'volume fine slide' parameter will be used.

&00Bx	volume fine slide down

decreases the volume by x on the first frame of the note only. in case of x=0
the previous 'volume fine slide' parameter will be used.

&12xy	volume slide

slides up the volume with the value of x (y must be 0) or down with the value
of y (x must be 0). the amount of the slide will be (speed-1)*x or
(speed-1)*y. the volume can't be higher than &40. in case of xy=0 the
previous 'volume slide' parameter will be used.

&00Ax	tremolo set waveform

sets the waveform of the tremolo. the options x are:
 - 0	sine waveform (default),
 - 1	ramp down,
 - 2,3  square waveform.
if bit 2 of x is clear the tremolo counter restarts every note.

&13xy	tremolo

vibrates the note volume with speed x and depth y. all volumes higher &40
will be clipped at &40. in case of x=0 the previous 'tremolo speed' parameter
will be used. in case of y=0 the previous 'tremolo depth' parameter will be
used.


note manipulation effects


&18xx	note set speed

determines the NUMBER OF FRAMES one note is played until the next note can
start (i.e. song speed). the range of xx is
&00(ignored)..&01(fast)..&06(default)..&FF(slow).

&19xx	note set speed

determines the TIME OF ONE FRAME. one frame is 1/50 second by default. the
range of xx is &00(ignored)..&01(slow)..&7D(default)..&FF(fast).

&1Axx	note delay

delays the playing of the new note x frames. during the delay time the
previous note will be played.

&1Bxx	note cut

cuts the note after x frames (i.e. sets volume to 0).

&1Cxy	note retrig and volume slide

triggers the sample many times in one row. the y value specifies the number
of frames between the retrigs. there are <speed> frames in one row. the x
value specifies if there should be a 'volume slide' between the retrigs. in
case of xy=0 the previous 'retrig' parameter will be used. the amount the
volume will be changed every retrig is shown in the following table:

	0:  &00	(No volume slide)
	1: -&01
	2: -&02
	3: -&04
	4: -&08
	5: -&10
	6:  2/3 times the previous volume
	7:  1/2 times the previous volume
	8:  &00 (No volume slide)
	9: +&01
	A: +&02
	B: +&04
	C: +&08
	D: +&10
	E:  3/2 times the previous volume
	F:  2	times the previous volume

&1Dxy	note tremor

turns the note on for x frames and off for y frames. in case of xy=0 the
previous 'tremor' parameter will be used. if one part of the parameter is 0
the note will be played continously.


pattern manipulation effects


&20xx	pattern loop

is used for looping inside the pattern. first, you must use a 'pattern loop'
command with parameter xx=0 to set the loop start. then use 'pattern loop'
command with parameter xx<>0 to return to the loop start xx times. it is not
possible to loop back to a loop start in another pattern! if you try that or
if you don't enter an x=00 parameter, the loop start is equal to pattern
start. (not coded yet)

&21xx	pattern delay

repeats the current row xx times without triggering the notes again but
applying the effects.

&13xx	pattern break

leaves the pattern after playing the current row. it will jump to row xx in
the next pattern according to the song sequence (decimal because of Amiga
compatibility, example: &12 means 12 decimal).


sequence manipulation effects


&24xx	sequence position jump relative

jumps relative to the sequence entry specified by the xx parameter. The
current row is still played, but the next row will be the first one of the
pattern at sequence entry: current sequence position + xx. the range of xx is
&80(-128)..&FF(-1)..&00(0)..&7F(127).

&4xxx	sequence position jump absolute

jumps absolute to the sequence entry specified by the xxx parameter. The
current row is still played, but the next row will be the first one of the
pattern at sequence entry xxx.


sample manipulation effects


&3xxx	sample set offset

starts playing the sample at offset 256 times xxx. if the sample offset is
used in a looped sample and the offset given exceeds the loop end value, the
loop is taken into consideration and the offset will be calculated as if the
sample had looped. in case of xxx=0 the previous 'sample offset' parameter
will be used.


channel manipulation effects


&00Dx	channel set stereo

sets the balance of the current channel to x, where &00 is left and &07
right.



edited by Lord of the earwigs Wed 27th March 1996
