; <c>   = Center line
; <hr>  % Horizontal line
; <h1>  [ Center and draw box around line
; <h2>  * White text
; <h3>  # Red text
; <fX>    Set text color (X=0..F)
; <bX>    Set background color (X=0..F)
; <#X>    Create anchor
; <@X>    Link to anchor or URL
;        Normal text (=Implemented in Propulse)
; ;     | Hidden text (=Unimplemented)
;============================================================================

<#Main><h1>Propulse Tracker Help

<c><f9>Last modified: 2019-06-17

<h2>Global Keys:

  Escape            Context menu
  F1                Help
  F2                Pattern editor
  F3                Sample list
  F5                Play song
  F6                Play current pattern
  Shift-F6          Play song from current order
  F7                Play from current row
  F8                Stop playback
  F9                Load module (also Ctrl-L, Ctrl-O)
  F10               Save module (also Ctrl-W)
  F11               Orderlist
  Ctrl-F11, F4      Message log
  F12               Program settings

  Ctrl-1..Ctrl-4    Mute/unmute channel 1-4

  Ctrl-N            New song
  Ctrl-P            Calculate approximate song length
  Ctrl-Shift-P      Jump to a time in song (by minutes and seconds)
  Ctrl-S            Save current module
  Ctrl-Shift-C      Cleanup module
  Shift-F10         Render selection/pattern to sample

  Ctrl-G            Go to order/pattern/row given time
  Alt-Enter         Toggle fullscreen mode
  Ctrl-M            Toggle mouse cursor
  Ctrl-Q            Quit Propulse Tracker

<h1>Table of contents

   <@Main=Global Keys>
   <@Editor=Pattern Editor>
   <@OrderList=Order List>
   <@SampleList=Sample List>
   <@File Requester>
   <@Configuration=Configuration Options>
   <@Splash=Credits>

;============================================================================

<#Editor><h1>Pattern Edit

<h2>Effects:

 PT   IT   Description
<hr>
 <@0=0xy>  Jxy  Arpeggio with halftones x and y (if nonzero parameters)
 <@1=1xx>  Fxx  Pitch slide up by xx
 <@2=2xx>  Exx  Pitch slide down by xx
 <@3=3xx>  Gxx  Slide to note with speed xx
 <@4=4xy>  Hxy  Vibrato with speed x, depth y
 <@5=5xy>  Lxy  Dual Command: 300 + Axy
 <@6=6xy>  Kxy  Dual Command: 400 + Axy
 <@7=7xy>  Rxy  Tremolo with speed x, depth y
 <@8=8xx>  Xxx  Unused (may be used for sync)
 <@9=9xx>  Oxx  Set sample offset
 <@A=Axy>  Dxy  Volume slide (x for slide up, y for slide down)
 <@B=Bxx>  Bxx  Jump to order (hex)
 <@C=Cxx>  ---  Volume (use the volume column)
 <@D=Dxx>  Cxx  Break to row xx of next pattern
 <@E=Exx>  Zxx  <@Exx=Extended effects>
 <@F=Fxx>  Axx  Set song speed/tempo (1-31 = speed, >31 = beats per minute)

<h2><#Exx>Extended effects:

 <@E0=E0x>  S0x  Set filter on (x=0) or off (x>0)
 <@E1=E1x>  FFx  Fine pitch slide up by x
 <@E2=E2x>  EFx  Fine pitch slide down by x
 <@E3=E3x>  S1x  Set glissando on (x=1) or off (x=0)
 <@E4=E4x>  S3x  Set vibrato waveform to type x (0=sine, 1=saw, 2=square)
 <@E5=E5x>  S2x  Set finetune value (F..8 = -1..-8, 7..1 = +7..+1)
 <@E6=E6x>  SBx  Set/Jump to loop (0=set loop point, >0=jump x times to loop point)
 <@E7=E7x>  S4x  Set tremolo waveform (0=sine, 1=saw, 2=square)
 <@E8=E8x>  S8x  Karplus-Strong (optional)
 <@E9=E9x>  Q0x  Retrigger note every x ticks
 <@EA=EAx>  DxF  Fine volume slide up by x
 <@EB=EBx>  DFx  Fine volume slide down by x
 <@EC=ECx>  SCx  Note cut after x ticks
 <@ED=EDx>  SDx  Note delay for x ticks
 <@EE=EEx>  S6x  Pattern delay for x ticks
 <@EF=EFx>  Z0x  Invert sample at speed x (requires loop, modifies sample data!)

<h2>Pattern Edit Keys:

    F1               Short help message for command under cursor
  2*F1               Show full help for command under cursor

    Numpad +,-       Next/Previous pattern  (*)
;   Ctrl +,-         Next/Previous order's pattern  (*)
    0-9              Change octave/volume/instrument
    0-9, A-F         Change effect value
    A-F              Change effect
    . (Period)       Clear field(s)
    Spacebar         Use last note/instrument/volume/effect/effect value
    Shift+Key        Preview note
 
    Enter            Get default note/instrument/volume/effect
    < or Ctrl-Up     Decrease instrument
    > or Ctrl-Down   Increase instrument
    Numpad /         Lower  octave
    Numpad *         Higher octave
    , (Comma)        Toggle edit mask for current field
 
    Ins/Del          Insert/Delete a row to/from current channel
    Alt-Ins/Del      Insert/Delete an entire row to/from pattern  (*)
 
    Up/Down          Move up/down by the skipvalue (set with Alt 0-9)
;   Ctrl-Home/End    Move up/down by 1 row
    Alt-Up/Down      Slide pattern up/down by 1 row
    Left/Right       Move cursor left/right
    Alt-Left/Right   Move forwards/backwards one channel
    Tab/Shift-Tab    Move forwards/backwards to note column
    PgUp/PgDn        Move up/down 16 lines
    Ctrl-PgUp/PgDn   Move to top/bottom of pattern
    Home             Move to first visible row/top row/first channel
                     or start of column/start of line/start of pattern
    End              Move to last visible row/bottom row
                     or end of column/end of line/end of pattern
;   Backspace        Move to previous position (accounts for Multichannel)
;
;   Alt-Enter        Store pattern data
;   Alt-Backspace    Revert pattern data (*)
;   Ctrl-Backspace   Undo - any function with (*) can be undone
;
;   Ctrl-C           Toggle centralise cursor
;   Ctrl-H           Toggle current row hilight

<h2>Block Functions:
 
    Shift-Arrows     Mark block
    Alt-B            Mark beginning of block
    Alt-E            Mark end of block
;   Alt-D            Quick mark n/2n/4n/... lines (n=Row Hilight Major)
    Alt-L            Mark entire column/pattern
    Alt-U            Unmark block
 
    Alt-Q            Raise notes by a semitone/Increase column values (*)
    Alt-A            Lower notes by a semitone/Decrease column values (*)
    Shift-Alt-Q      Raise notes by an octave  (*)
    Shift-Alt-A      Lower notes by an octave  (*)
    Alt-S            Set sample (*)
;   Alt-V            Set volume/panning  (*)
;   Alt-W            Wipe vol/pan not associated with a note/instrument (*)
;   Alt-K            Slide volume/panning column (*)
; 2*Alt-K            Wipe all volume/panning controls (*)
;   Alt-J            Volume amplifier (*) / Fast volume attenuate (*)
    Alt-Z            Cut block  (*)
    Alt-Y            Swap block (*)
    Alt-X            Slide effect value   (*)
    Shift-Alt-X      Wipe all effect data (*)
 
    Alt-C            Copy block into clipboard
;   Shift-L          Copy block to clipboard honoring current mute-settings
    Alt-P            Paste data from clipboard  (*)
    Alt-O            Overwrite with data from clipboard  (*)
    Alt-M            Mix each row from clipboard with pattern data  (*)
; 2*Alt-M            Mix each field from clipboard with pattern data
    Shift-Alt-P,O,M  Using the Shift key operates on current column only
 
    Alt-F            Double block length (*)
    Alt-G            Halve block length  (*)
 
<h2>Playback Functions:
 
    4                Play note under cursor
    8                Play row
 
    Alt-F9           Toggle current channel
    Alt-F10          Solo/unsolo current channel
;
;   Scroll Lock      Toggle playback tracing

;============================================================================

<#OrderList><h1>Order List

<h2>Order Keys:
 
    Space             Set order list length
    Enter             Edit pattern under cursor
;   N                 Insert next pattern
;   Shift-N           Copy current pattern to new pattern, and insert order
    Ins               Insert current pattern
    Del               Delete a pattern
    Tab/Shift-Tab     Move to Pattern Editor
;   Ctrl-F7           Play this Order next
;
;   Alt-Enter         Save order list
;   Alt-Backspace     Swap order list with saved order list
 
;============================================================================

<#SampleList><h1>Sample List

<h2>Sample List Keys:
 
    Enter        Load new sample
    Tab          Move between options
    PgUp/PgDn    Move up/down (when not on list)
 
;   Alt-A        Convert Signed to/from Unsigned samples
    Alt-B        Pre-Loop cut sample
    Alt-C        Clear Sample Name
    Alt-D        Delete Sample
    Alt-E        Resize Sample
    Alt-F        Resize Sample (using default settings)
    Alt-G        Reverse Sample
;   Alt-H        Centralise Sample
    Alt-I        Invert Sample
    Alt-L        Post-Loop cut sample
    Alt-M        Normalize/amplify sample
    Alt-Shift-M  Normalize/amplify all samples at once
    Alt-O/T/W    Save current sample to disk
    Alt-P        Copy sample
    Alt-R        Replace current sample in song
    Alt-S        Swap sample (in song also)
;   Alt-X        Exchange sample (only in Sample List)
 
    Alt-Ins      Insert sample slot (updates pattern data)
    Alt-Del      Remove sample slot (updates pattern data)
    Alt-Up/Down  Swap sample with previous/next
 
;   Alt-F9       Toggle current sample
;   Alt-F10      Solo current sample
;
;   < >          Decrease/Increase playback channel
;
    Numpad /     Lower  octave
    Numpad *     Higher octave

<h2>Sample Editor:
 
    Left mouse   Select sample data
    Right mouse  Draw into sample data
    Mouse wheel  Zoom in/out
 
    Ctrl-C       Copy sample/selection to clipboard
    Ctrl-V       Paste from clipboard
    Ctrl-X       Cut sample/selection to clipboard
    Ctrl-P       Mix paste from clipboard (blend clipboard with current data)
    Ctrl-Shift-P Mix paste without halving volumes

<h2>Sample Effects:

 TBD

;============================================================================

<#File Requester><h1>File operations
 
  Esc            Show context menu (in file list or bookmark/directory list)
  Shift-F2       Rename file/directory
  Shift-F5       Copy file
  Shift-F6       Move file
  Shift-F7       Create new directory
  Shift-F8       Delete file/directory (directory only on Windows)
 
  Other keys     Type a search term and jump to first matching file
                 In sample file requester: type with Shift to search,
                 otherwise play selected sample
 
;============================================================================

<#Configuration><h1>Configuration

 (* An asterisk indicates that Propulse Tracker needs to be restarted for
 changes to this setting to take effect.)

<#Audio Settings><h2>Audio settings

 <h3><#Audio.Device>Audio device: *
 The audio device to be used.

 <h3><#Audio.Frequency>Sampling rate: *
 Sets the desired sampling rate for the audio device.

 <h3><#Audio.Buffer>Audio buffer: *
 This is the audio buffer size in milliseconds (or samples if not using BASS
 for audio output). Too low values will cause dropouts and crackling, while
 large values increase audio latency.
 Defaults to the minimum recommended length for the selected audio device.

 <h3><#Audio.Amplification>Amplification:
 Sets the amplification level for the internal mixer of the module player
 engine. Too large values cause clipping, while too low values decrease the
 dynamic range of the audio output. Default: 6.00. During playback the VU
 meter in the pattern editor screen will flash red to indicate that clipping
 occurred.

 <h3><#Audio.StereoSeparation>Stereo separation:
 The percentage of stereo separation to apply. Real Amigas have 100% stereo
 separation, but a smaller amount is much more headphone friendly.

 <h3><#Audio.FilterLowPass>Lowpass filter:
 Propulse Tracker emulates the Amiga's lowpass filter. This setting specifies
 whether to set the filter on by default.

 <h3><#Audio.FilterHighPass>Highpass filter:
 Amigas also contain a slight highpass filter, which can be enabled here.

 <h3><#Audio.FilterLed>LED filter:
 TBD

 <h3><#Audio.CIAMode>Timing mode:
 Works like the CIA/VBL setting in original ProTracker; best left at CIA.

 <h3><#Audio.EditorInvertLoop>Play EFx (Invert Loop) like:
 The Invert Loop effect plays differently in the ProTracker editor as opposed
 to other programs that use the ProTracker module playback routines. You can
 choose either playback behavior here.

 <h3><#Audio.EnableKarplusStrong>Enable E8x (Karplus-Strong) effect:
 TBD


<#Display Settings><h2>Display settings

 <h3><#Display.Scaling>Maximum scale factor:
 Sets the largest wanted pixel scaling ratio for windowed mode. For example,
 set to 2 for a double-size window, unless that size would exceed the monitor
 resolution.

 <h3><#Display.Vsync>Vertical sync: *
 Enable or disable vertical sync. Visuals will look smoother with this
 enabled. "Auto" will enable vertical sync if the monitor's display frequency
 is between 50-60 Hz.

 <h3><#Display.Font>Font:
 Changes the font used.

 <h3><#Display.Mouse>Mouse pointer:
 Change between the system default mouse pointer, a custom mouse sprite as
 specified in mouse.pcx (or mouse2.pcx for large fonts), or none altogether.

 <h3><#Display.SampleAsBytes>Show sample sizes/offsets in:
 Sample data sizes and offsets can be shown as either bytes or words.

 <h3><#Display.SampleAsDecimal>Show sizes/offsets as:
 Sample sizes and offsets can be shown in either decimal or hexadecimal.

 <h3><#Display.RawFileSizes>Show filesizes as:
 Choose whether load/save module/sample dialogs should display file sizes as
 bytes (like "10752") or kilobytes (like "10.5K").

 <h3><#Display.ShowSplashScreen>Splash screen: *
 Determines whether to show the About screen at startup or to skip it and
 jump straight to the pattern editor.


<#Editor Settings><h2>Editor settings

 <h3><#Editor.AltHomeEndBehavior>Home and End keys behavior:
 Affects navigation in the pattern editor; either the traditional style or
 Propulse Tracker's own method.

 <h3><#Editor.ShowEmptyParamZeroes>Show empty command parameters as:
 Optionally hides the trailing zeroes in empty effect slots.

 <h3><#Editor.NoteB3AsInvalid>Consider note B-3 as invalid:
 Notes played at B-3 may sound odd on real Amigas; while Propulse Tracker does
 not emulate this behavior (nor does any other PC replayer that I know of),
 you can at least choose to colorize the notes differently.

 <h3><#Editor.RestoreSamples>Restore samples when playback stopped:
 Useful with effects that modify sample data (Invert Loop, Karplus-Strong).
 When enabled, a temporary copy of all sample data is created in memory when
 module playback is started, and original sample data is again restored once
 stopping playback.

 <h3><#Editor.ResetTempo>Reset tempo when playback stopped:
 If enabled, the module's speed and tempo are reset to default values upon
 stopping playback. The defaults can be changed by clicking on the Tempo
 value display on the Editor screen.


<#Program Settings><h2>Program settings

 <h3><#Program.HighPriority>Task priority: (Windows only) *
 You can choose to give a higher processing priority to Propulse to
 lessen the chance of audio dropouts. (On by default)


<#Resampling Settings><h2>Resampling settings

 TBD


<h2>Key bindings

 You can redefine most key bindings in Propulse to suit your needs.


<h2>Color palette

 Modify the color palette to your liking and optionally change which colors
 are used to draw various parts of the user interface. Color settings can
 be also saved as presets.

;============================================================================

<h1>Effect Descriptions

 <#0><fB>Cmd 0. Arpeggio [Range:$0-$F/$0-$F]
<f3><hr>
 Usage: $0 + 1st halfnote add
           + 2nd halfnote add

 Arpeggio is used to simulate chords. This is done by rapidly
 changing the pitch between 3 (or 2) different notes.
 Commonly used with very short looping samples in chiptunes.

 Example: C-3 00 047    C-major chord: (C+E+G  or C+4+7 halfnotes)
          C-3 00 037    C-minor chord: (C+D#+G or C+3+7 halfnotes)

 <#1><fB>Cmd 1. Pitch Slide Up [Speed:$00-$FF]
<f3><hr>
 Usage: $1 + slide speed

 Slides the sample pitch up. You can not slide higher than B-3.
 NOTE: The pitch slide will be called as many times as the speed
 of the song. This means that you'll sometimes have trouble
 sliding accurately. Take this into account when you change the
 song's speed.

 Example: C-3 00 103    1 is the command, 3 is the slide speed.

 <#2><fB>Cmd 2. Pitch Slide Down [Speed:$00-FF]
<f3><hr>
 Usage: $2 + slide speed

 Slides the sample pitch down. You can not slide lower than C-1.

 Example: C-3 00 203    2 is the command, 3 is the slide speed.

 <#3><fB>Cmd 3. Tone Portamento [Speed:$00-$FF]
<f3><hr>
 Usage: Dest-note + $3 + slidespeed

 Automatically slides from the old note to the new. You don't have
 to worry about which direction to slide, you need only set the
 slide speed. To keep sliding, just select the command $3 + 00.

 Example: A-2 00 000    First play a note.
          C-3 00 305    C-3=destination note, 3=command, 5=speed.

 <#4><fB>Cmd 4. Vibrato [Rate:$0-$F,Depth:$0-$F]
<f3><hr>
 Usage: $4 + vibratorate + vibratodepth
 
 Vibrates the sample pitch with a waveform (FM synthesis).
 To keep on vibrating, just select the command $4 + 00.
 To change the vibrato,  you can alter the rate, depth or both.
 Use command E4x to change the vibrato waveform.

 Example: C-3 00 481    4=command, 8=speed, 1=depth.

 <#5><fB>Cmd 5. Tone Portamento + Volume Slide [Speed:$0-$F/$0-$F]
<f3><hr>
 Usage: $5 + upspeed + downspeed
 
 Continues the current toneportamento while sliding the volume.

 Example: C-3 00 503    3 is the speed to turn the volume down.
          C-3 00 540    4 is the speed to slide it up.

 <#6><fB>Cmd 6. Vibrato + Volume Slide [Speed:$0-$F/$0-$F]
<f3><hr>
 Usage: $6 + upspeed + downspeed

 Continues the current vibrato while sliding the volume.

 Example: C-3 00 605    5 is the speed to turn the volume down.
          C-3 00 640    4 is the speed to slide it up.

 <#7><fB>Cmd 7. Tremolo [Rate:$0-$F,Depth:$0-$F]
<f3><hr>
 Usage: $7 + tremolorate + tremolodepth

 Tremolo will vibrate the volume with a waveform (AM synthesis).
 To keep on tremolo'ing, just select the command $7 + 00.
 To change the tremolo, you can alter the rate, depth or both.
 Use command E7- to change the tremolo waveform.

 Example: C-3 00 794    7=command, 9=speed, 4=depth.

 <#8><fB>Cmd 8. Unused
<f3><hr>
 Unused in ProTracker. Later versions of The Player 6.1A allow to
 use this for synchronization in demos/intros.

 <#9><fB>Cmd 9. Set Sample Offset [Offs:$00-$FF]
<f3><hr>
 Usage: $9 + sample offset

 Plays the sample starting from a chosen position instead of the
 beginning. The two numbers equal the two first numbers in the
 length of the sample.
 NOTE: Due to a bug in the ProTracker replayer, attempting to use
 this command on samples longer than 65534/$FFFF will result in
 no sound.

 Example: C-3 00 923    Play sample from offset $2300.

 <#A><fB>Cmd A. Volume Slide [Speed:$0-$F/$0-$F]
<f3><hr>
 Usage: $A + upspeed + downspeed

 Slides the volume.
 NOTE: The slide will be called as many times as the speed of
 the song. The slower the song, the more the volume will be
 changed on each note.

 Example: C-3 00 A05    5 is the speed to turn the volume down.
          C-3 00 A40    4 is the speed to slide it up.

 <#B><fB>Cmd B. Position Jump [Pos:$00-$7F]
<f3><hr>
 Usage: $B + position to continue at

 Immediately performs a <@D=pattern break> and jumps to another
 position in the orderlist.

 Example: C-3 00 B01    Restart song from pos 1 in the orderlist.

 <#C><fB>Cmd C. Set Volume [Volume:00-64]
<f3><hr>
 Usage: $C + volume

 Sets the volume for the current note.
 In Propulse Tracker, use the volume column instead.

 <#D><fB>Cmd D. Pattern Break [Row:00-63, decimal]
<f3><hr>
 Usage: $D + row

 Jumps to the next song position and continues playing from the
 row you specify.
                        Jump to next song position and...
 Example: C-3 00 D00    ...continue from top row.
      Or: C-3 00 D32    ...continue from row 32.

 <#F><fB>Cmd F. Set Speed [Speed:$00-$FF]
<f3><hr>
 Usage: $F + speed

 This command will set the speed of the song (ticks per row).

 Vblank: Range 01-FF - Normal timing  
   CIA:  Range 01-1F - Set vblank speeds with CIA timing.
   CIA:  Range 20-FF - Set BPM speeds, range 32-255.
  Both:  Range 00    - STOP song. 

<c><h3><#>Extended commands

 <#E0><fB>Cmd E0. Set LED Filter [Range:$0-$F]
<f3><hr>
 Usage: $E0 + value (0=on, anything else=off)

 Turns the LED filter on or off.

 Example: C-3 00 E01    Turns LED filter off
          C-3 00 E00    Turns LED filter on

 <#E1><fB>Cmd E1. Fine Pitch Slide Up [Range:$0-$F]
<f3><hr>
 Usage: $E1 + value

 Works just like the normal portamento up, but only slides up
 once. It does not continue sliding during the length of the note.
 Useful for creating chorus effects.

 Example: C-3 00 E11    Slide up 1 at the beginning of the note.

 <#E2><fB>Cmd E2. Fine Pitch Slide Down [Range:$0-$F]
<f3><hr>
 Usage: $E2 + value

 Works just like the normal portamento down, but only slides down
 once. It does not continue sliding during the length of the note.

 Example: C-3 00 E26    Slide up 6 at the beginning of the note.

 <#E3><fB>Cmd E3. Glissando Control [Range:$0-$1]
<f3><hr>
 Usage: $E3 + glissando control

 Glissando must be used with the tone portamento command.
 When glissando is activated, tone portamento will slide
 a halfnote at a time, instead of a straight slide.

 Example: C-3 00 E31    Turn Glissando on.
          C-3 00 E30    Turn Glissando off.

 <#E4><fB>Cmd E4. Set Vibrato Waveform [Range:$0-$3]
<f3><hr>
 Usage: $E4 + vibrato waveform

 Example: C-3 00 E40    Set sine (default)
                 E44    Don't retrig WF
          C-3 00 E41    Set Ramp Down
                 E45    Don't retrig WF
          C-3 00 E42    Set Squarewave
                 E46    Don't retrig WF

 <#E5><fB>Cmd E5. Set Finetune [Range:$0-$F]
<f3><hr>
 Usage: $E5 + finetune value

 Example: C-3 00 E5F    Set finetune to -1.

 Use these tables for the finetune value:

 Finetune: +7 +6 +5 +4 +3 +2 +1  0
    Value:  7  6  5  4  3  2  1  0

 Finetune: -1 -2 -3 -4 -5 -6 -7 -8
    Value:  F  E  D  C  B  A  9  8

 <#E6><fB>Cmd E6. Pattern Loop [Loops:$0-$F]
<f3><hr>
 Usage: $E6 + number of loops

 Loops a part of the pattern before continuing onwards.

 Example: C-3 00 E60    Set loop start.
          C-3 00 E63    Jump to loop 3 times before playing on.

 <#E7><fB>Cmd E7. Set Tremolo Waveform [Range:$0-$3]
<f3><hr>
 Usage: $E7 + tremolo waveform

 Example: C-3 00 E70    Set sine (default)
                 E74    Don't retrig WF
          C-3 00 E71    Set Ramp Down
                 E75    Don't retrig WF
          C-3 00 E72    Set Squarewave
                 E76    Don't retrig WF

 <#E8><fB>Cmd E8. Karplus-Strong
<f3><hr>
 Usage: $E8 + any number

 Rarely used for a Karplus-Strong effect. <@Audio.EnableKarplusStrong=Disabled by default.>
 The Player 6.1A allows to use this for syncing in demos/intros.

 <#E9><fB>Cmd E9. Note Retrig [Value:$0-$F]
<f3><hr>
 Usage: $E9 + tick to retrig note at

 Retriggers the same note before playing the next.
 Where to retrig depends on the speed of the song.
 If you retrig with 1 in speed 6 that note will be
 triggered 6 times in one note slot. Try on hi-hats!

 Example: C-3 00 F06    Set speed to 6.
          C-3 00 E93    Retrig at tick 3 out of 6.

 <#EA><fB>Cmd EA. Fine Volume Slide Up [Range:$0-$F]
<f3><hr>
 Usage: $EA + value

 This command works just like the normal volume slide up,
 but only slides up once. It does not continue sliding
 during the length of the note.

 Example: C-3 00 EA3    Slide volume up 1 at the
                        beginning of the note.

 <#EB><fB>Cmd EB. Fine Volume Slide Down [Range:$0-$F]
<f3><hr>
 Usage: $EB + value

 This command works just like the normal volume slide down,
 but only slides up once. It does not continue sliding during
 the length of the note.

 Example: C-3 00 EB6    Slide volume down 6 at the
                        beginning of the note.

 <#EC><fB>Cmd EC. Note Cut [Value:$0-$F]
<f3><hr>
 Usage: $EC + tick to cut note at

 Cuts the note at the selected tick, creating extremely
 short notes. Note that the note is not really cut, the
 volume is just turned down.

 Example: C-3 00 F06    Set speed to 6.
          C-3 00 EC3    Cut at tick 3 out of 6.

 <#ED><fB>Cmd ED. Note Delay [Value:$0-$F]
<f3><hr>
 Usage: $ED + ticks to delay note

 Delay the start of the note to the selected tick.
 Play the same note on two channels but delay one
 for a nice flanger effect.

 Example: C-3 00 F06    Set speed to 6.
          C-3 00 ED3    Play note at tick 3 out of 6.

 <#EE><fB>Cmd EE. Pattern Delay [Notes:$0-$F]
<f3><hr>
 Usage: $EE + notes to delay pattern for

 Pauses the playback of the pattern for the selected
 number of notes. All other effects are still active
 when the pattern is being delayed.

 Example: C-3 00 EE8    Pause for 8 notes before resuming.

 <#EF><fB>Cmd EF. Invert Loop [Speed:$0-$F]
<f3><hr>
 Usage: $EF + Invertspeed

 This command needs a short sample loop ($10,20,40 etc. bytes)
 to work. It will invert the loop byte by byte during playback.
 Good for chiptunes. To stop inverting, set invspeed to 0.

 NOTE: Modifies the sample data! To use this command safely,
 enable the option <@Editor.Restoresamples=Restore samples when playback stopped>.

 Example: C-3 00 EF8    Invert sample data at speed 8.

<#><hr>
;============================================================================

<#Splash><h1>Credits and acknowledgments

<c><fB>(C) 2016-2019 Joel Toivonen
<c><f2>(hukka of exec/void/svenonacid)

<c><@https://github.com/hukkax/Propulse>
<c><@http://hukka.ncn.fi/propulse>
<c>email: <@hukkax@gmail.com>


<c><f5>Playroutine based on
<c>pt2play.c by Olav Sorensen (8bitbubsy)
<c><@http://16-bits.org>


<c><f5>Additional contributions and testing:
<c>8bitbubsy
<c>muzzy
<c>wuffe
<c>Tempest
<c>Mark Knopper

<c><f5>Original BLEP and filter code:
<c>aciddose

<c><f5>BASS audio library by Ian Luck
<c><@http://un4seen.com>

<#EOF>
