SBTimbre Version 3.50                                   01-27-94
Copyright (c) 1992-1994 by Jamie O'Connell.
All rights reserved.

SBTimbre FM Editor

SBTimbre  is  a  Timbre editor -- it lets you create  and  modify
instrument  sounds  for the Sound Blaster  and  Adlib  FM  Cards.
You   can  audition  sounds  using  a  Sound  Blaster  or  MPU-401
compatible  MIDI  interface  and  a  MIDI  controller  (a   piano
keyboard   for  instance).   The  present  version  of   SBTimbre
operates  only  on IBK format bank files, but  you  can  use  the
SBANK utility to convert between IBK and BNK file formats.

Setting up SBTimbre

Copy  all  the  files  to a directory (You  may  want  to  create
another  directory  for  your  IBK bank  files),  change  to  the
directory   containing  SBTIMBRE.EXE,  and  type:   SBTIMBRE   to
load  and  start  the  program.  If your FM  Card  is  compatible
with   the  original  Adlib  Sound  Card,  you  should   hear   a
chordal  sequence  as  the About dialog  box  is  displayed  (the
chordal  sequence  can be disabled if you'd rather  not  hear  it
-- see Configuring SBTimbre).

General Information

SBTimbre   is  a  text  based  windowing  program.   You   select
options  by  pulling down menus with a mouse,  or  by  using  the
cursor  movement  and  function  keys.   The  top  line  on   the
screen  is  known  as  the  menu bar --  it  contains  drop  down
menus  from  which  items can be selected.  Any  option  that  is
followed  by  three  dots indicates that a  dialog  box  will  be
displayed  when  this  item  is  chosen.   The  bottom  line   is
called  the  status  bar  and  contains  it  options  which   are
generally  available.   You  may select  items  from  the  status
bar  by  either  clicking on them or pressing the  short-cut  key
associated  with  them. When the text of an item  is  grayed  out
it  means  the  item is not currently available.   Active  Dialog
box  windows  may  be closed by clicking on  the  little  box  in
the  upper  left  corner  of the dialog, selecting  Window/Close,
selecting Close from the status bar, or pressing Alt-F3.

Configuring SBTimbre

The first time you start SBTimbre,  the  configuration screen  is
automatically  presented.   After   you   adjust   card  specific 
parameters, and press the OK button, you are given an opportunity
to  save the  current  configuration.  Once  the  SBTMB.INI  file 
exists, the configuration screen is no longer presented at system
startup.

You  may  change  certain  program  parameters  at  any  time  by 
selecting the Options/Configure...  menu  choice.  The dialog box
presented contains the following items:

    MIDI OPTIONS
    None            No MIDI interface is installed.
    MPU-401          An MPU-401 compatible interface is installed.
    Sound Blaster   A Sound Blaster MIDI connector Box is installed.

    MIDI IRQ        The IRQ Number that the MIDI interface is 
                    installed on.
    MIDI I/O Port   The Hexadecimal based number of the I/O port 
                    that the MIDI interface is using.

    FM CARD OPTIONS
    1 OPL2          The card contains one Yamaha OPL2 chip.
                    The early Adlib, Sound Blaster, and Thunderboard
                    cards have this configuration.
    2 OPL2          The card contains two Yamaha OPL2  chips.    
                    The original Sound Blaster PRO and early Media 
                    Vision cards have this configuration.
    1 OPL3          The card contains one Yamaha OPL3 Chip.  
                    Most recent cards have this configuration.

    FM I/O Port     The hexadecimal based number of the I/O port 
                    that the FM Card is using.  All sound cards 
                    which are Adlib compatible can be addressed at  
                    388  Hex.  All Sound Blaster Pro cards can be 
                    addressed at 220 Hex or 240 Hex (it depends on
                    the jumpers on the card).

    VIDEO OPTIONS
    25 Lines        Uses a 25 line standard text mode display.
    43/50 Lines     Will display 43 lines on an EGA monitor or
                    50 lines on a VGA monitor.

    About Box       Unchecking this item will prevent the opening
                    chordal sequence.

There  are  several  versions of Sound Blaster  MIDI  Interfaces.
SBTimbre  should  operate  with any  of  them  with  one  caveat:
Sound  Blaster  cards  with  DSP ROM versions  earlier  than  2.0
only  support  MIDI  in  -- not MIDI  out  or  through.   If  you
have  one  of  these  earlier  ROMS,  the  Thru  on  and  Out  on
choices   will   not   be  available  from  the   Control   Panel
(described later).

To  setup  the  MIDI  interface, select the  type  of  card,  the
I/O  port  and  the IRQ setting.  If the interface  is installed,
the "[M]" symbol is  displayed in the  upper right  corner of the
Screen.

By  default,  the  FM  I/O  Port is  set  to  388  hex.  This  is 
because all Adlib compatible FM cards (including  Sound  Blaster)  
respond  to  this  address.  When  changing  the I/O port, choose 
the address of the actual FM chips -- this may be different  from  
the card's base address (For instance, the factory  base  address   
of the original Sound Blaster is 220 hex,  but  the  FM   Chip is
addressed  at  228  hex  --  check  your  User  Manual  for   the
card).   The  program  will determine that it  can  not  find  an
FM  card  at  startup, but will not alert you to that  fact  upon
changing  the  I/O  Port  address:   you  won't  hear  any  sound
though.   You  can verify this by opening the About  box  on  the
system  menu  --  if  a card is found, a brief  chordal  sequence
is  sounded.   The  program  supports 43/50  line  modes  on  EGA
and  VGA  graphics cards.  The higher resolution  allows  a  much
less  cluttered  view  when many IBK  files  are  open  at  once.
The  current  settings  may be saved  to  an  SBTMB.INI  file  by
selecting  Options/Save  Setup.   This  file  may  be  edited  by
hand,  but  is  overwritten by selecting the  Save  option.   The
INI file is written in the same directory as SBTIMBRE.EXE.

The  amount  of  remaining memory is displayed in the  About  box
--  you  may  want to monitor this if you have very many  (60  or
more) IBK files open at once.

Opening Files

IBK  files  are  located  via  the File/Open...  menu.   You  can
double  click  on  one to select and open it (for  those  without
a  rodent,  you  can  use the cursor keys -- then  press  enter).
The  program  prevents you from opening the same  file  twice  --
this  is  to  prevent  loss of data involved when  modifying  two
copies  of  the  same  file.  You can open a  copy  of  the  same
file,  by  first  saving  the file with a different  name  (using
File/Save  as...)  and then reopening the  original  file.   Once
a  file  is  opened,  you  will see  a  list  of  the  instrument
timbre names it contains.

Import and Export

Older,  Adlib  BNK  files  can  be imported  into  IBK  files  by
choosing   File/Import   BNK...   If  necessary,   several   IBK
windows are opened to contain all of the BNK  file.   Instruments  
can also be imported from CMF music files and exported to CMF and 
SBI instrument files.  Each  CMF  file  contains  the  instrument 
parameters within the file.  The number of instruments  contained  
depends  on  the  particular  song.  SBI files  contain  a single 
instrument timbre.

Locating Files

You   can  move  to  a  different  current  directory  using  the
File/Change  Dir  Menu selection, or you can  navigate  from  the
File/Open  menu  (by  double clicking  on  the  "\.."  item).   A
new  IBK  file  may  be  created by using  the  File/New  option.
When  you  create  a  new IBK, all the names  are  blank,  and  a
default Piano instrument is stored in each Timbre slot.

Saving Files

IBK  files  can  be saved either with the name they  were  opened
with  (File/Save),  or  with a new file name  (File/Save  as...).
When saving New files a name is always requested.

The Evaluation version of SBTimbre can only save to a file  named
EVALUATE.IBK: upon registration the restriction is removed.   You
can always exit SBTimbre and rename EVALUATE.IBK to another  bank
file name:  the  restriction is just a registration reminder, not
a real crippling mechanism.

Selecting Timbres

You   can  open  multiple  IBK  files  at  the  same  time.   The
current  window  and the current timbre are  highlighted.   If  a
MIDI  interface  is  installed  you  may  audition  a  timbre  by
simply  highlighting  its name in the IBK  file  window.   Sounds
can   also  be  auditioned  by  pushing  the  chord  buttons   or
pressing Play.

Copying Timbres

Timbres  may  be  copied from one IBK to  another,  or  within  a
single  IBK.   To  accomplish this, select Copy from  the  Timbre
menu,  select  Copy  from the status bar, or hold  the  Ctrl  key
and   press  Insert:  the  timbre  is  inserted  into  the   copy
buffer.  An  indication  of  this  is  presented  in  the   upper
right   corner   of   the  screen:   the  word  Paste:   appears,
followed  by  the  timbre name.  In order to  paste  the  timbre,
first  select  the  target IBK and position,  then  either  press
Shift-Ins  or  choose  Timbre/Paste from the  menu:   the  timbre
is  immediately  inserted into the target position.   If  a  non-
blank  Timbre  occupied the target position,  it  is  moved  into
the Clipboard buffer.

Clipboard

The  Clipboard  buffer  holds images of all  copied  timbres,  as
well   as   the  before  image  of  both  modified   and   pasted
timbres.   Once  the  clipboard contains a timbre  (evidenced  by
the  word  Paste:  followed  by the  timbre  name  in  the  upper
right  corner  of  the  screen), it may  be  opened  for  display
and   reordering  (choose  Timbre/Open  Clipboard).   There   are
several codes associated with clipboard items:

    Clipboard   Code Meaning
    [C]         The timbre was Copied to the Clipboard
    [B]         The timbre is the Before image of an edited timbre
    [D]         The timbre is the modified image of a Discarded
                edit timbre
    [P]         The timbre is the before image of a Pasted timbre

After  the  Clipboard is opened, the current  (the  next  paste:)
timbre  may  be  changed  by using the cursor  keys  or  clicking
on  an  item.   The  timbres in the Clipboard can  be  auditioned
in  the  same  fashion  as those in the  IBK  windows.   You  can
discard   the  current  Clipboard  timbre  by  pressing   Delete.
The  entire  Clipboard  can be emptied by  choosing  Timbre/Clear
Clipboard.  Whenever
the  Clipboard  becomes empty, the Clipboard  window  is  closed,
and becomes unavailable.

Editing Timbres

You  may  select  timbres  to  edit by  double  clicking  on  the
timbre  name, or  by  selecting  Timbre/Edit Timbre...  The  Edit  
dialog box is where all the different  parameters  that  comprise  
an FM timbre are displayed and edited. All  the  numbered  fields
have  Spin  controls:  clicking on the  up  arrow-head  increases
the  value  --  the  down  arrow-head decreases.   You  may  also
use  the   and   keys  to  achieve  the  same  effect.   You  may
audition  a  tone  at  any time, from the computer  keyboard,  by
pressing  the  short-cut  key corresponding  to  the  highlighted
letter   on  the  Note  or  Chordal  buttons.   In  other  words,
press  n  to  sound a note; m to sound a major chord.   When  the
cursor  is  positioned in the Timbre Name  field,  you  must  use
the  Alt  prefix  (Alt-n to sound a note).   The  timbre  may  be
altered  by  pressing  the Randomize button.   This  button  uses
the    current    Random   Configuration   when   changing    the
parameters.

Editing Percussion

You may edit any Timbre as a percussion instrument  by  selecting  
Timbre/Edit Percussion...  There  are  five  possible  percussion
base types: Bass Drum, Snare drum, Tom-tom, High-Hat  and Cymbal.
You can switch between any of  the  base  types  by pressing  the 
appropriate button shown at the bottom of the screen.

Only the Bass Drum sound uses 2 operators: the other drums sounds
each use a single operator.  When  toggling between  the  various
drum sound base types, only the operator in effect and associated
parameters are displayed.

The FM Sound chips automatically add white noise to  certain drum
sounds, and the percussion section instruments are turned on  and 
off in a different fashion from melodic instruments.  This is the
chief reason why the drum sounds are different from melodic ones.

We've added a new parameter to the IBK instrument definition  for
percussion sounds:  Pitch.  The parameter tells a driver the MIDI
note number to sound for a given drum timbre.

Once an instrument has been saved as a  percussion  instrument it
will open as a percussion instrument the next  time it is  opened.
You can  override  this  behavior  by  specifically  opening  the 
Timbre/Edit Timbre.. menu option.

Renaming Timbres

You  can  rename  the  timbre  by typing  into  the  Timbre  Name
field,  but  it  will  replace  the  original  timbre  when   you
press  OK.   If  you  like  your  changes,  but  don't  wish   to
overwrite  the  original  timbre, you  can  press  Cancel  within
the   Edit   dialog.    Rather  than  completely   discarding   a
canceled   timbre,  the  editor  saves  it  in   the   Clipboard
buffer  --  indicated  in the upper right corner  of  the  screen
by  the  word  Paste:  followed by  the  timbre  name.   You  may
also  rename  a  timbre  by selecting Timbre/Rename...  from  the
menu  bar.   You  can use any characters to name  a  Timbre,  but
imbedding  illegal  DOS  filename  characters  will  prevent  you
from  extracting  INS  and SBI files.   The  SBANK  utility  will
remove  embedded  spaces when creating an INS or  SBI  file  from
an IBK bank.

Randomizing Timbres

Randomizing  a  timbre  involves  applying  a  random  offset  to
each  of  the  sound  parameters,  thus  changing  the  sound  by
chance.    The   degree  of  randomness  can   be   adjusted   by
choosing   Options/Setup  Randomize...   Each   value   in   that
screen  may  be  adjusted  from  zero  (meaning  don't  randomize
this   parameter)  to  the  maximum  value  for   the   parameter
(meaning  pick  any  old value).  The best  results  seem  to  be
when  the  offset values are fairly small, but  you  can  be  the
judge  of  that.   An  entire IBK Bank  can  be  randomized  with
one  command  by  choosing  Timbre/Randomize  Bank...   A  dialog
box  is  presented  to confirm that's really  what  you  want  to
do, but as long as you
don't  save  the  file, it's not permanent anyway  (you  have  to
close the file without saving to reverse the effect).

A  useful  way  to generate new timbres is to first  open  a  new
window  and  copy  an  interesting timbre  to  it.   Next  choose
Timbre/Fill   Bank...  to  spread  the  timbre   throughout   the
window,  and  then  randomize the Bank.  You'll  find  that  some
of   the   results   are  useless,  but  others   have   distinct
possibilities.

Play Option

The   Play   option  is  a  unique  feature  in  SBTimbre:   when
running,   it  generates   melodies.  For  a  nice  description   of
1/f  music,  as  well  as  an algorithm for  generating  it,  see
"White,   Brown,   and  Fractal  Music."   Martin   Gardner,   in
Fractal   Music,   Hypercards  and  More...    W.   H.   Freeman,
1992..   Rather  than  completely random,  each  successive  note
is  related  to  the preceding one.  To start  it  at  any  time,
click  on  Play  in the status bar or press F9 -- the  word  Play
changes  to  Stop  and the melody starts.  To end  it,  click  on
Stop   or   press  F9  again.   You  can  perform  any  available
SBTimbre  action  while Play is running --  this  allows  you  to
audition  tones  while  editing, or auditioning  different  tones
in  the  IBK  list box.  Play is also available from  the  Timbre
menu, except when the editor is open.

Control Panel

The  Control  panel  is primarily for adjusting  MIDI  and  sound
card  options.   To  open it, select Options/Control  Panel  from
the  menu  bar  or  press F8.  Adjustments  do  not  take  effect
until   the   Send   button  is  pressed.   The   Volume   option
controls  only  the MIDI volume level sent to the  FM  Card,  and
not   the  Mixer  levels  available  on  the  Sound  Blaster  Pro
cards.   To  adjust  Mixer  levels,  use  the  software  supplied
with your card.

        CONTROL PANEL
        FM Card Options
        Volume          Controls the volume of sound sent to the 
                        FM Card
        Key Shift       Transposes the incoming MIDI note a
                        specified number of half-steps before 
                        sending to the card
        Bend Range      Adjusts the MIDI bend range response of
                        the FM Card by the specified number of 
                        half-steps

        Vibrato         Toggles the overall Vibrato level between
                        Light and Heavy.
        Tremolo         Toggles the overall Tremolo level on the
                        card between Light and Heavy.

        MIDI Options
        Play Channel    Changes the MIDI channel that the Play
                        option melodies are sent on.
        MIDI Note       The number of the MIDI note for auditioning
                        tones.

        Thru On         Controls whether MIDI input is copied to
                        MIDI output.  When this item is checked, the
                        "[MT]" symbol is displayed in the upper right
                        corner of the screen.
        Out  On         Controls whether generated notes and 
                        melodies are sent to MIDI out


Final Notes

To  use  your  IBK  files  with  Twelve  Tones  Systems  Cakewalk
Sequencer,  copy  your  IBK file to a  file  named  ADLIB.IBK  in
the  Cakewalk  program  directory --  it  will  automatically  be
loaded by the FM card driver when Cakewalk starts up.

To use an IBK file with the FM Synth MIDI Windows driver, use the
Browse button on the FM Synth Control Panel applet to select  the
IBK file.  You can now load percussion IBK banks into FM Synth as
well as melodic bank files.  The FM Synth Driver is available via 
CompuServe: GO SSFORUM and download FMSYN.ZIP

FM Card Parameters

The  FM  cards  supported  by  SBTimbre  use  two  operators   to
produce  a  voice.   Each  operator  is  the  equivalent   of   a
primitive   analog   synthesizer,   containing   a   sine    wave
oscillator,  an  envelope  generator,  and  an  amplifier.    The
operators   can   be  combined  to  perform   FM   Synthesis   or
connected in parallel resulting in additive synthesis.

During  FM  synthesis,  one operator  acts  as  a  carrier  while
the  other  functions  as  a  modulator.   Modulating  a  carrier
with  an  audio  source causes a timbre change  --  this  is  the
core   of   FM  synthesis.   The  degree  of  timbre  change   is
chiefly  a  function  of the tuning interval (or  ratio)  between
the   operator's   frequency  multiplier,  and   the   depth   of
modulation   (caused  by  the  modulator  output  level).    With
additive  synthesis,  both  operators function  as  carriers  and
their output summed to produced a single sound.

Oscillator

Each   operator   contains   a   sine   wave   oscillator.    The
frequency  multiplier  parameter  (FreqMult)  controls  the  base
frequency.   Each  successive  value  increases  the    frequency
by  that  number  of  octaves, except  for  the  value  0,  which
actually  results  in  a  multiplier of 0.5,  thus  lowering  the
base  frequency  by  an  octave.   The  ratio  of  the  frequency
multipliers  of  the  carrier and modulator controls  the  amount
of  sideband  overtones generated.  These overtones  add  to  the
complexity  of  the  sound.  The modulator  can  have  a  portion
of   the  output  signal  returned  to  the  input  (FB),   which
further  increases  wave  complexity.   In  addition,  the   wave
form  select  parameter (WaveForm) provides  varying  degrees  of
sine  wave  distortion -- a value of 0 results  in  a  pure  sine
wave.    Applying   low  frequency  pitch  modulation   (Vibrato)
causes a pitch wavering effect.

Envelope Generator

Any   instrument,  real  or  synthesized,  has  a  characteristic
sound  envelope  that  describes how quickly  the  sound  attains
peak  output  (Attack),  how quickly it  descends  to  a  sustain
level  (Decay),  and  how quickly the sound fades  after  a  note
is   released  (Release).   For  sustaining  sounds,  the   level
(Sustain)  is  maintained as long as a note  is  held  down,  for
momentary  sounds  the  sustain level  determines  the  point  at
which   the  decay  rate  changes  to  the  release  rate.    The
keyboard   rate   scaling  parameter  (Envelope   Scale)   causes
higher  notes  to  have a shorter envelope,  which  is  a  common
occurrence with real instruments.

Amplifier

While  the  ADSR  envelope controls the rate  of  change  in  the
operator  amplifier,  the  output  level  (Level)  controls   the
overall  output  of  the amplifier.  For an  operator  acting  as
a  carrier,  the  output level functions  as  a  volume  control;
for   modulators,  the  output  level  controls  the   depth   of
modulation.    The   keyboard  level  scaling   parameter   (KSL)
causes  a  gradual  reduction in output for  higher  notes.   Low
frequency  amplitude  modulation  (Tremolo)  may  be  applied  to
the signal to obtain a volume wavering effect.

     PARAMETER LIST

     Attack             the rate of the sound's initial onset.
                        Value:  0 - 15
     
     Decay              the rate at which the initial attack fades.
                        Value:  0 - 15
     
     Sustain            the level at which the sound sustains.  
                        Value: 0 - 15
     
     Release            the rate that the sound fades after a note
                        is released.  Value: 0 - 15
     
     Envelope Scale     if checked, higher notes have shorter
                        envelopes.
     
     Sustain Sound      if checked, a note sustains as long as it
                        is held.
     
     FreqMult           the frequency multiplier applied to the base
                        frequency.  Value: 0 = 0.5, 1 - 15
     
     Level              the overall output level for the operator.
                        Value: 0 - 63
     
     KSL                the keyboard scaling level.  Higher numbers 
                        cause more attenuation for higher notes.
                        Value: 0 - 3
     
     WaveForm           the amount of distortion applied to the sine
                        wave oscillator.  Value: 0 - 7  Note: cards
                        based on the OPL2 chip provide only 4 
                        waveforms -- the upper 4 wave forms sound the 
                        same as the lower 4.
     
     Vibrato            if checked, low frequency pitch modulation is
                        applied
     
     Tremolo            if checked, low frequency amplitude modulation
                        is applied
     
     FB                 for modulator only:  the amount of feedback 
                        returned to the operator input.
                        Value: 0 - 7
     
     FM - Addsyn        a radio button that controls the operator
                        connection:  FM synthesis or Additive 
                        synthesis.


DISCLAIMER

This program is provided without any warranty, expressed or implied,
including but not limited to fitness for a particular purpose.
