FM-Kingtracker v1.06
Copyright (c) 1998,1999 Sami Wilenius.



Manual.

Contents :
0.9......First Words
0.9.1....License
1.0......Introduction
1.0.1....Hardware requirements
1.1......Features
1.1.1....FMKSIG, FIBEDIT, BNK2FIB, FMFONT and FMPAL
1.2......About Trackers
1.3......FM-basics
2.0......Interface & commands
2.1......Order list and parameters
2.2......Pattern editor
2.2.1....4op-tracks
2.2.2....Tracker effects
2.3......Instrument screen
2.4......Player screen
2.5......Global keys
3........Bugs and other things good to know
4........End





0.99  First Words.

THERE ARE NO WARRANTY, USE WITH YOUR OWN RISK.

FM-Kingtracker is copyrighted software, consult next chapter for instructions.

To make your own FM-Kingtracker player, look at the FMKTECH.TXT-file.


0.9.1 License 

FM-Kingtracker is copyrighted software released as freeware.

FM-Kingtracker is freeware, so you don't have to pay for using it,
and you can freely distribute it, but if you really want pay me for
this program, then pay! ;)


1.0   Introduction.

FM-Kingtracker is "Scream Tracker 3"-like tracker for producing high
quality FM-music for sound cards using OPL2 or OPL3 synthesizer chip.
All of the common "tracker"-effects are included.
Almost all the goods what OPL3-synthesizer chip has to provide, are included.
Support for old OPL2 (9 melodic channels in mono) is also there.



1.0.1 Hardware requirements

At least you must have these : 
- OPL2 or OPL3-chip (adlib, sb or sb pro-compatible sound card)
- 386-prosessor.
- About 590 kilobytes of conventional memory.
- VGA-compatible display and controller (for 80x50 textmode)
- Dos.
- keyboard.

Headphones or loudspeakers are highly recommended.

Running FM-Kingtracker under some graphic user interface or windowed operating
system could cause problems with timing and initializations, so do not
run this program under these kind of systems if you want hear the music
right, at least use dos-mode.


1.1   Features :

-Easy interface
-OPL2 / OPL3 - support
-2OP and 4OP instruments
-Max. 18 stereo channels
-Max. 99 instruments
-64 patterns
-Song length of 255 patterns




1.1.1 FMKSIG, FIBEDIT, BNK2FIB, FMFONT and FMPAL

These five programs came with FM-Kingtracker :

FMKSIG is located in SONG-directory it shows some information about the
       song file.

FIBEDIT is in INST-directory, with this tool you can insert and replace
       instruments in .FIB-files and also create new FIBs
       (FM-Kingtracker Instrument Banks).

BNK2FIB is also in INST-directory, use this program to convert your
       .bnk-instrument banks to the .fib-fileformat.

FMFONT is the main directory and with this tool you can create/modify the
       fonts used in the tracker. You can also convert Impulse Tracker
       ITF-fonts to FMF-format.
       Remember to take backup from the original font file (fmking.fmf).
       To take the new character set to use you must rename it to 'fmking.fmf'.
       One extra character set is included, 'supita.fmk' this is
       italics variation of the normal FM-Kingtracker character set.

FMPAL is also in the main directory and with this you can change the
      colors of tracker. Remember to backup the original palette
      file (fmking.pal) in case you want to return to the 'old' colors.
      There is one extra palette included, called 'coldday.pal'.

Both FMFONT and FMPAL leaves the modified fonts/palette to the use of
dos, if you want to get standard colors/fonts back, give 'mode co80'
command to the dos.


1.2   About Trackers :

Tracker is a musical composing program designed for easy, fast and 
inexpensive music production.
Most of the trackers produce digital music using samples.
There are also some trackers for FM-synthesis, FM-Kingtracker now being one 
of them.

       
1.3   FM-Basics :

FM-sounds are created by giving certain parameters to the synthesizer chip. 
There are two 'parts' in one sound with have their own set of parameters, 
the modulator and the carrier, this is the power of Frequency Modulation. 

The most important parameter group is ADSR (Attack, Decay, Sustain, Release),
this is the volume envelope.
These define the :
  - speed of attack 
  - speed of decay 
  - sustain level 
  - speed of release 

Other parameters :

Connection - There are two choices, FM or AM, in AM both operators forms   
          their own sound, in FM the modulator modulates the carrier to
          produce one but more complex sound.
Tremolo - The volume vibrato, this is on or off.
Vibrato - Well, this one vibrates the frequency, yes or no.
Sustain - Sustaining Sound, if set, the sound will continue playing at
          sustain level until it is cut.
Feedback Strength - Values 0-7, this value orders the amount of feedback.
Key Scaling - If this is on, it decreases the volume when playing high notes.
Scaling Level - from 0 - 3, this also attenuates the volume of operator,
         depending the pitch of sound :
         0 - no attenuation, 2 = 1.5dB,  1 = 3dB  and  3 = 6dB.
Volume - Sound volume 0-63, special thing is that this is logarithmic value, 
         not linear like it would normally be.
Waveform - In OPL2 mode there are four different waveforms (0-3), and in OPL3 
           there's four more.
           High quality presentation :

                 0 - SINE.

                     
                       
                 ------------------------
                                   
                                 

                 1 - HALF SINE
                     
                       
                 -------------------------

                 2 - ABS SINE
                            
                             
                 ------------------------

                 3 - PULSE SINE
                              
                            
                 -----------------------
 
                 3 - DOUBLE SINE (opl3)
                    
                     
                 ----------------  
                             
                            

                 4 - DOUBLE ABS SINE (opl3)

                         
                         
                 ----------------

                 5 - SQUARE (opl3)
                 
                            
                 ------------------------
                                        
                                        
                             

                 6 - DERIVED SQUARE (opl3)
                 
                   
                     
                 -------------------
                                
                                      
                                       




2.0   Interface

There are 4 different screens :
 F1 - Order list and Global variables.
 F2 - Pattern editor
 F3 - Instrument editor
 F5 - Player screen

2.1 - Order list and parameters.

In order list-screen there are these following items :
Order list : defines the playing order of the patterns.
Channels   : defines the positions and initial stereo settings of the
             channels, there are 18 channels.
             You can change the initial stereo position by going to the
             desired channel and press 'S', to form 4-op channel, press 'T'.
Song name  :
Composer Name :
Song message : To this field you can write (or read) the composer's note
             about something.
Initial Spd : Startup speed
OPL3        : Set OPL3-extensions on/off.
Stereo      : On/off, if you have stereo-controls in your song, this will
              disable them and play everything in mono.
4.8 dB trem  : Selects between 1dB and 4.8dB opl-tremolo
14 cent vib  : Selects between 7 cent and 14 cent opl-vibrato.

You can jump between these pressing tabulator key.
Look for on-line instructions.



2.2  Pattern editor.

Pattern editor keys :

Arrows, Page up/down, tab and shift+tab - Move around.
 Alt+[B] - Defines first row of area.
 Alt+[E] - Defines last row of area.
 Alt+[C] - Copies marked area to clipboard.
 Alt+[P] - Paste area from clipboard to current cursor position,
           if whole pattern marked pattern is marked then cursor position
           does not have meaning.
 Alt+[L] - Mark whole track / mark whole pattern (toggle).
 Alt+[U] - Unmark area.
Shft+[F9] - Disable/enable current channel.
Shft+[F10]- Disable/enable all channels.

   [Ins] - Insert empty line to track.
   [Del] - Delete line in track.
Most keys- Create note when in note-part of track.
[>] and [<] - Change instrument.
[*] and [/] - Change baseoctave.
[+] and [-] - Change pattern.
 [Enter] - Take instrument/volume/command and infobyte under cursor and
           make them default values.
     [,] - Edit mask.
     [.] - Delete something under cursor.
     [1] - Create cut-sound note.
Ctrl+[R] - Retrieve song.
Ctrl+[N] - New song.
Ctrl+[W] - Save song.

One pattern consist of 18 tracks and 64 rows, looks like :
     Track 1       Track 2       Track 3       ... Track 18   
Row1... .. .. .00... .. .. .00... .. .. .00    ... .. .. .00
Row2... .. .. .00... .. .. .00... .. .. .00    ... .. .. .00
   3... .. .. .00... .. .. .00... .. .. .00    ... .. .. .00
 ...
  64

Five tracks are visible at time.

  Track header :
 TxxO yyyyyyyy
  xx is track number
  O is special character displaying the initial pan position.
  yyyyyyyy is the track use, can be :
  "2OP x", normal melodic channel number x.
  "4OP x/y", 4OP melodic channel x and part y. Part 1 is the main part
                 where you your notes.

 C-3 02 50 E11 - This would play instrument 2 at C, octave 3 with volume
   ^  ^   ^ ^ ^    50 and start sliding the note down using speed 11.
          
 Note      
Instrument  
      VolumeInfobyte
       Command


You can move around using cursors and enter note going to the note-part and
pressing some following keys :
                    
 C#D#  F#G#A#          C#D#  F#G#A#
                        
 S D   G H J           2 3   5 6 7
Z X C V B N M         Q W E R T Y U I
                      
C-D-E-F-G-A-B-        C-D-E-F-G-A-B-C
Baseoctave -1         Baseoctave

Pressing '.', will clear the note, also important key for the note-part is
'1', it will create the sound cut mark, use it to cut the sustaining sounds.


Next is command, it is a character from 'A' to 'U', also after that is
the infobyte for the command, you can also leave the infobyte to 00 to use
prior value.
E#5 02 .. E01 (Play sound at E#5 and start to slide it down with speed 1)
... .. .. E00 (Continue sliding)
... .. .. E02 (Change sliding speed to 2)
... .. .. F00 (Start sliding note up with speed of 2)
... .. .. HF2 (Stop sliding and start vibrato with speed 15 and depth 2)
... .. .. F00 (Stop vibrato and start fine note slide down with value 2)
... .. .. F00 (continue sliding)


You can jump fast between the tracks using Tab-key, tab jumps one
track right while shift+tab will jump one track to the left.

With edit mask you can allow changes to different parts of track
(instrument / volume / command and infobyte) when writing notes,
also note zapping [.] targets are chosen by this mask, edit the mask
pressing [,]-key.



2.2.1 4op-tracks.

Special thing with 4op-tracks are that two tracks forms one channel.
You must define some instrument to both tracks, the sound will be made
using parameters of these two instruments. Write all the notes to the
first 4op track (?/1), notes on the other track does not have any meaning,
but volumes on both channels affect to the sound, you may also use Rxx,
Mxy, Cxy, Txx and Uxx effects in the second track, also important thing
is the stereo control command: stereo control works in both channels,
if you've used some AM-connection in some instrument, you can for
example play some operators to left channel and others to right one.
Here is some kind of table for connections :

FM FM   mo1-ca1-mo2-ca2--

AM FM   op1--------------
        ca1-mo2-ca2------

FM AM   mo1-ca1---------- 
        mo2-ca2---------- 

AM AM   op1--------------
        ca1-mo2----------
        op4--------------


2.2.2 Tracker effects :

Here are the effects :
All values are in hexadecimal :
                   

  Axx - Set speed to value xx, 01 is fastest and FF is slowest value,
        the usable values can be found between 03-0f, 06 being the default.
                                                      
  Bxx - Jump to order xx. Remember, xx is hexadecimal.

  Pxx - Break pattern to row xx. 

  D0y - Volume slide down, y of 0-e.
        Volume slides will be made in every fifth tick.

  DFy - Fine volume slide down, with speed of y, this lowers the volume
        only once in a row.
        The volume will be lowered with amount of y on every row.

  Dy0 - Volume slide up, y is 0-e.

  DyF - Fine volume slide down, with speed of x.

  Exx - Note slide down, xx is 0-ef, value 01 will lower the
        the 10bit frequency value by amount of ticks during one second,
        this is not relative the playing speed (Axx - command).

  EFy - Fine note slide down, y is 0-f.
        This lowers the note frequency with value of y in every row.

  Fxx - Note slide up.

  FFy - Note slide down.

  Gxx - Tone portamento, xx is slide speed 0-ff.

  Hxy - Vibrato, with depth of x and speed of y.

  Ixx - Retrig, plays the voice many times in one row, the xx is the
        time to pause between on/off, so when playing at speed 06 and
        you want trigger the sound on every row once, set tremor speed -> 06.
        Speed FF is the slowest and 01 is the fastest.
        The sound is really triggered again, so to create 'spaces' for
        long lasting sounds use tremolo with square-waveform instead. 

  Jxy - Arpeggio, adds two halfnotes, note+x and note+y, changes the
        note (original, note+x and note+y) 50 times / second.

  N0x - Set Vibrato and Tremolo waveform to x on this channel
        x = 1 --> Normal sine
        x = 2 --> Ramp down
        x = 3 --> Square wave
        x = 4 --> ABS-sine
        x = 5 --> Pulse-sine

  Rxy - Tremolo, with depth of x and speed of y,

  S0x - Stereo control, sets the channel to the left (x=1), right (x=3) or
        to the both speakers (x=2).

  Txx - Set modulator volume to xx (hex), it will be normalized when
        next volume change occurs.
  Uxx - Set carrier volume to xx
  Mxy - Modulator parameter, you can change modulator's parameters during
        play!
        x = 1 --> set multiplier to y    (y = 0 to F (15))
        x = 2 --> set key scaling to y   (y = 0 to 3)
        x = 3 --> set attack rate to y   (y = 0 to F)
        x = 4 --> set decay rate to y    (y = 0 to F)
        x = 5 --> set sustain level to y (y = 0 to F)
        x = 6 --> set release rate to y  (y = 0 to F)
        x = 7 --> set waveform to y      (y = 0 to 7)
        x = 8 --> set feedback strength to y  (y = 0 to 7)

        Note : The original values will be restored when you play
        some other instrument on same channel.

  Cxy - Carrier parameter, same as above but changes carrier's parameters.


2.3 Instrument screen

Here you can load, save and edit instruments.
Read online-help.
Hint : When creating new instruments write some notes with the instrument and
       disable any other channels if they contain any notedata, start
       pattern-play and go to the instrument screen and alter the parameters
       to hear in real time how parameter is changing the sound.


2.4 Player screen
You can change between 'modes' pressing Pgup and Pgdn-keys, currently
there are three modes included: notedots, values and trackview-18.



2.5 Global keys

     [F1] - Go to the Order and Global parameters screen.
     [F2] - Go to the Pattern editor.
     [F3] - Go to the Instrument screen.
     [F5] - Start playing the song and enter to the player-screen.
            If song is all ready playing, just enters to the player.
Shift[F5] - Start playing the song.
     [F6] - Play the pattern you are in.
Shift[F6] - Start playing the song from current order.
     [F8] - Stop playing the song.
     [F10]- Help screen.
     [ESC]- Exit to dos.



3.0  Bugs & other things good to know.

-This program is tested in machines with OPL3-chip only, so it's possible
 that this does not work with older sound cards.

-At least with 386sx-portable, the pattern editor is little sluggish when
 scrolling the screen up/down.

-This program uses normal system functions to access keyboard, so you can
 change the keyboard typematic rate with 'mode'-command or from BIOS.

-In the player-screen, the note will not 'follow' when using for example
 tone portamento-effect.

-Currently you can not save instrument from FMKt directly to bank-file,
 save it normally and then insert it to some FIB, after that you can
 delete the instrument from your hard drive.

-There are no manual override for the sound card detection,
 so multiple sound card user must use SET BLASTER=Axxx to choose sound card.

-The .fmk-fileformat differs between versions 1.00-1.03 and 1.06.
 Version 1.06 can read old fmk-files, but does not take any data from
 tracks 19 and 20.


4.0   :  End


If you have something to tell or ask :

 sami.wilenius@kolumbus.fi
 -------------------------


 Visit FM-Kingtracker homepage :

 http://www.kolumbus.fi/sami.wilenius/
 -------------------------------------



