PATTERN SCREEN. (F2)
(for global keys, look at the bottom)

Here you write the contents of your song. Every "pattern" is 
written individually and then the song is created by selecting 
the order in which the patterns are played. The default amount of columns 
per track is 1, but you can add more. 

COLUMNS

A column looks like this:

... .. .00 ...-00
each "field" or "subcolumn" represents

1-Note/Noteoff  (...)

Use the letters/numbers in your keyboard to set
a note. 

2-Volume (0-64)

Normally, it sets volume(velocity) if specified together with a note.
If alone, will change the channel volume. If this field is blank
and a note exists, the default volume of the instrument
is used.

3-Command/Parameter (.00)

Setting a letter instead of "." here will invoke
a "Command", with the next hexadecimal number (byte)
as parameter. Commands Are described as Xxx
where X == command and xx == parameter.
I must remark that the parameter is in HEXADECIMAL. (base 16).

Possible commands are:

Axx - Set RPQ where xx=RPQ 
Bxx - Jump to pattern xx
Cxx - Ends current pattern and jumps to row xx of the the next one (in orderlist)
D0x - Channel volume slide down by x (0-0xF) (*)
Dx0 - Channel volume slide up by x (0-0xF) (*)
DFx - Fine channel volume slide down by x (0-0xF) (*)
DxF - Fine channel volume slide up by x (0-0xF) (*)
Exx - Pitch slide down by xx (*)
Fxx - Pitch slide down by xx (*)
Gxx - Portamento to note at speed xx (*)
Hxy - vibrato with speed x and depth y (*)
Ixx - Tremor with ontime x and offtime y (*)
Jxy - Arpeggio (C64 like) with halftones (up) x,y (*)
Kxx - H00 + Dxx (*)
Lxx - G00 + Dxx (*)
Mxx - Set global channel volume (controller 07)
Nxx - Global volume channel slide (works like Dxx but for controleler 07) (*)
Oxx - Change aftertouch to xx  (0-0xFF mapped to 0-127 internally) 
Pxx - Panning Slide (affects controller 10, xx works like Dxx too) (*) 
Qxy - retriggers a note  with y interval and x volume modifier (x as 0-7 is negative and 7-F positive i think..) (*)
Rxx - Tremolo with x speed and y depth (like a vibrato but for volume) (*)
S1x - move the pitch down by x semitones (*)
S2x - move the pitch up by x semitones (*)
SDx - delay note by x time , (x=1 == 1/12 of a row., x=3 is 1/4, x=4 is 1/3, x=6 is 1/2, C(12) is a row, and so on) (*)
SCx - note off after x time (same timeframe as SDx) (*)
Txx - (xx>=20) set tempo
T1x - tempo slide up by x units per row (*)
T0x - tempo slide down by x units per row (*)
Uxx - Aftertouch vibrato with speed x and depth y (*)
Vxx - reserved
Wxx - Set default controller in controller column to.. xx (in hex,0-80)
Xxx - set panning to xx (0-0xFF , 0 = left, FF = right)
Yxy - Panbrello (panning vibrato) with speed x and depth y (*)
Zxx - reserved

remarks:

(*) = if you write this command again with 00 as parameter, will repeat
the command with the last parameter >0 used.  For example:

D09 - channel volume slide down by 9
D00 - keeps doing volume slide by 9
D00 - and it keeps doing volume slide by 9!

Also, commands involving pitch (vibrato, pitch slide,etc) use the pitch bender,
which is reset each time a new note is played. You cant control
the pitch bender value directly. Commands involving pitch and channel volume
get their values back to normal when a note is played. If you want to 
change the global volume of the channel use Mxx/Nxx commands.
Vibratos return the volume/pan/pitch to their original position just after the command
finishes.

4-Controller (...-00)

Set the value of a controller (... is the controller number, in decimal),
and 00 is the parameter in hexadecimal. Parameters (0-0xFF are
mapped back to 0-127 internally)

ShakeTracker supports specifying controller command too in that
column, but at the time i'm writing this, they're not implemented.


KEY BINDINGS 

Basic editing:

alt+] - Add a column to the track
alt+ { - remove a column from the track (i need to find a nicer way to do this)
` = note off (keyboard mapping would be nice)
ZSXDCVGBHNJM - lower octave C-B
Q2W3ER5T6YU8I9OP- upper octaves (C-E)
4 - play note under cursor
8 - play row under cursor
cursor keys - move
tab - jump to next column
backtab - jump to previous column
home - jump to first column
end - jump to last column
page up - move the same amout of rows up as the row major highlighting
page up - move the same amout of rows down as the row major highlighting
insert - insert an empty note
delete - delete a note
. - (period) - delete field under cursor
, - (comma) toggle editing mask for field
numpad / (slash) - decrease editing octave
numpad * (asterisk) - increase editing octave
numpad - (minus) - jump to previous pattern
numpad + (add) - jump to next pattern

Shorcuts

Basic selection

Alt-B - begin selection
Alt-E - end selection
Alt-C - copy selection
Alt-P - paste selection (inserts)
Alt-O - paste selection (overwrite)
Alt-M - paste selection (mix)
Alt-Z - cut selection
Alt-U - deactivate selection

Operating inside the selection

Alt-Q - raise notes by a semitone (if selection is not active, raises note under cursor)
Alt-A - lower notes by a semitone
Alt-S - ramp controller values (if at the begining you have 60, at the end 00, will interpolate 
the intermediate rows  from 0 to 60)
Alt-X - Interpolate parameters
Alt-X-X wipe command/paramers
Alt-W wipe volumes not associated with a note 
Alt-V set all volumes to the volume mask (last volume used) - very handy if used together with Alt-W
Alt-J scale volumes

Other

Alt-1/9 - set cursor stepping 
Scroll Lock - toggle song follow mode
F4 - toggle pattern lock / song lock
F2 - Pattern properties
F9 - Mute/Unmute a channel
F10 - Solo a channel / Unmute all

---------

GLOBAL KEYS



ESC - file menu
F1- section help
F2- pattern screen
F3- instrument screen
F5 - play song
F6 - play current pattern
F7 - play song from cursor
F8 - stop
shift-F8 - panic

F11 - Order list
F12 - Global variables

numpad / (slash) - decrease editing octave
numpad * (asterisk) - increase editing octave

--
For more help, questions, requests,  etc - mail me at - coding@reduz.com.ar
