Part III of the KCS docs....

PLAY IMMEDIATE and PLAY AFTER CURRENT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These  features allow you to alter the order in which segments as a song is
playing.   When PLAY is active, pressing the segment key for any segment tn
the  song  will  cause  the program to immediately stop playing the current
segment  and  start  the new segment.  The song will then continue normally
from that segment.

PLAY  AFTER CURRENT differs from PLAY IMMEDIATE in that the current segment
is  allowed  to  finish  its  current  repetition before the new segment is
started.   This  is especially useful when altering the structure of a song
in real time with Song mode's interactive control features.

Song Mode Loops  
~~~~~~~~~~~~~~~
Song  mode  allows you to set a starting and ending loop point, and to loop
the  song  between  these  points.  The loop points are defined in terms of
segment numbers, not measures.  The SET LOOP START and SET LOOP END Segment
options  allow  you  to  set the starting and ending segments for the loop.
The letters B and E will appear in the REP column next to the beginning and
end segments of the loop as they are set.  Pressing the SLASH (/) key turns
looping  on  and  off.   The  word  LOOP appears on the left end of the top
status line when looping is active.

The  followng  example  shows  the Song mode play screen after a song has been
started, and loop points set:

In  this  example,  a loop has been set up between segments 3 and 5.  Since
looping is actiwe, segments 3, 4, and 5 will play repeatedly until the loop
as  turned off with the / key.  The red musical note indicates that segment
5 is currently playing.

Channels 3 and 5 have been muted.  MIDI events on these channels other than
program  changes  will  be  ignored.   The  segment/channel  option is PLAY
IMMEDIATE.   Pressing  any key in the range 1 - 6 will cause the program to
immediately jump to the beginning of the corresponding segment.

Song Pointer in Song Mode
~~~~~~~~~~~~~~~~~~~~~~~~~
If the MIDI W SONG POINTER clock option has been selected on the SET
OPTIONS screen, and a song pointer message is received, the program will
start playing the current song from the point specified by the song pointer
message.

Exit 
~~~~
Press Fl or the left mouse button to exit to the Song mode edit screen.

                            Chapter 9
                            ~~~~~~~~~
                       STEP TIME RECORDING
                       ~~~~~~~~~~~~~~~~~~~
The  step  time  recording  features  of  the  KCS allow you to record note
information  from  your  synthesizer  keyboard,  while  using  the computer
keyboard  or  mouse  to  specify  tuning information.  Note velocity can be
specified  from  either  keyboard.  This can be a faster and more intuitive
way  of  precisely  entering  rhythmically regular passages than the typing
method  described  in  Chapter  4.   It is particularly convenient in Track
mode,  as  the  new  passage  can  be  played  along  with tracks that were
previously recorded.

The  step  time  recording  screen contains fifteen choices fOf note times,
fifteen  choices for note durations and six choices for note velocity.  The
current  choices are indicated by a red asterisk.  As you play notes on the
synth  keyboard  they  are  recorded  with  the current time, duration, and
velocity  values.   Each  choice  is  assigned  to  one  of  the numeric or
alphabitic  keys  shown to the left of the possible values.  You can make a
new  choice  for time, velocity or duration by pressing the appropriate key
on the computer keyboard, or by clicking the mouse on your choice.  The red
asterisk  will  move to display your choice.  If you select a zero velocity
which  is  norally assigned to the Z key the program will record the actual
velocity with which each note is played on your synth.

A new Open mode sequence can be recorded in step time by selecting the STEP
TIME  option  from  the  record dialog box.  A new track can be recorded in
step  time  by  selecting  the  STEP  TIME  TRACK option.  If you pick this
option,  the program will allow you to select the measure at which you will
start  recording.   You can also extend an existing sequence or track using
step  time  record by selecting the STEP TIME APPEND option.  The step time
recording procedure is the same in any case.

The step time record screen is shown below:

The  choices  for  time, duration and velocity are listed in columns, along
with the keys used to select the choices.

The  bottom  line  shows  the  current  measure and step, which will be the
MST-ST  value  for  the  next  note  entered.   The box directly aboxe this
contains  buttons  for  a number of step time recording options, as well as
two edit buttons.

Recording in Step Time
~~~~~~~~~~~~~~~~~~~~~~
Once  the  various  record parameters are set up, recording in step time is
simply  a  matter  of  entering  the  notes  for each step from the synth's
keyboard.   Pressing  and releasing a single key puts a single note at that
step; pressing more than one key before any key is released puts a chord at
that  step.   All  notes  played  will  be assigned the chosen duration and
velocity  values.   The  first  note  or  chord will get a time of 0, while
subsequent  notes  get  the  selected  time  value.   The  measure and step
counters will be updated as each note is played.

While recording you can select a new time, duration, or velocity value from
any  of the choices displayed by pressing the key shown next to the desired
value,  or by clicking on the new value with the mouse.  The asterisk moves
next to your choice, and subsequent notes will use the new choice.

If  the  DUR  FOLLOW feature is active, selecting a new time will cause the
program to select a new, proportional duration as well.  This is convenient
when  entering  data with a lot of different time values.  The durations of
the  last  note  or chord entered will also be adjusted to the new value if
DUR FOLLOW is on.  This prevents the previous note from overlapping the new
one  if  the  time  is reduced.  DUR FOLLOW is on when the step time record
screen is first entered, and can be turned on or off with the F4 key.

Changing the Time, Duration and Velocity Values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can easily enter time, duration, or velocity values other than the ones
initially  supplied by the program.  While holding the SHIFT key, press the
key  for  the time, duration, or velocity value you vwsh to alter; or place
the  mouse  pointer  on the value to be changed at click both mouse buttons
together.   A  red  !  will appear next to the selected value at the top of
the  screen and the message line will prompt you for a new step time value.
You  may enter up to a three digit number.  If you enter a one or two digit
number  press RETURN.  The new value will appear on the screen, and will be
selected as the current value.

The  fifteen  time  and  duration  values,  as well as the five preset
velocity
levels,   are   stored  along  with  other  sequencer  parameters  in  .ENV
(environment) files, which are described in more detail in the next two
chapters.

Time Chg Delay
~~~~~~~~~~~~~~
Normally,  selecting a new time value when entering a step time sequence or
track causes the next note played to get the new time value.  Enabling TIME
CHG  DELAY  causes  the  new  time  value  to  be assigned to the next note
entered, rather than the current note.  This is more naturl when entering a
score from sheet music.  TIME CHG DELAY can be activated with the mouse, or
by  presswing  the  SLASH (/) key.  The default setting for this switch i#s
offF but intuatively obvious.

Rest, Tie, and Delete
~~~~~~~~~~~~~~~~~~~~~
Click  on REST or press the F3 key to insert a rest in your recording.  The
measure and step counters will be increased, and the time value of the next
note  will  be increased by the current time value.  Click on TIE, or press
RETURN  to  enter  a  tie.   This  will  increase the time and also add the
current  time  value  to the duration of the most recently recorded note or
chord.   Clicking  on  DELETE or pressing UNDO will delete the last note or
chord entered.

Play Options  
~~~~~~~~~~~~
The  PLAY  OPTIONS  allow  you  to play back part or all of the sequence or
track  being  entered.   Each  option  can  be selected by clicking on that
option, or by pressing a key on the computer's keyboard.

SEQ/TRACK  plays  the  current sequence or track from the beginning and can
also be selected by pressing F6.  24 NOTES and 8 NOTES cause the last 24 or
eight  notes  entered  to  be  played;  the  associated keys are F7 and F8,
respectively.  Play can be stopped with the F1 key or left mouse button, or
restarted with FlO or the right mouse button.

8  BARSS  and 2 BARS, or the F9and FlO keys, let you hear the last eight or
two  bars  of  your recording.  In Open mode, you will hear the sequence in
isolation;  but  in  Track mode, all previously recorded and unmuted tracks
will  also  be  heard.   The  cue point will also be reset if you use these
options in Track mode.  In Open mode, LAST CUE or the TAB key will play the
current  cue sequence from its cue point.  If the current CUE sequence is a
control sequence that plays the sequence being recorded, this allows you to
hear  your  recording  in  context.   In Track mode, LAST CUE will play all
tracks  from  the  current cue point.  You can interrupt or restart play as
described earlier.

Audition Velocity  
~~~~~~~~~~~~~~~~~~
If  you are not sure of the dynamics you wish to use for your recording you
can  use  the  AUDITION  VELOCITY  feature to try different note velocities
until  you  find  the  one that sounds best.  Use the mouse, or press F5 to
activate  AUDITION  VELOCITY.   New notes will not be recorded; instead the
current  velocity selection will be changed to the velocity of each note as
it  is played.  When you decide that you like the velocity of the last note
played,  press  F5  again.   Recording  will  resume using the new velocity
value.

Note  that  if  you're  using  a  keyboard  that sends release velocity the
current  velocity  selection  will change when you release a key as well as
when a key is pressed.  In this case, be sure to turn AUDITION VELOCITY off
before releasing the key.

Duration Adjust  
~~~~~~~~~~~~~~~
Clicking  on  one of the four DURATION ADJUST values or pressing one of the
four  cursor  control  keys  allows  you  to  make small adjustments to the
current  duration  selection,  and to hear the result in the context of the
current time value.  Press the CURSOR RIGHT key to increase the duration by
one,  the CURSOR LEFT key to decrease by one, the CURSOR UP key to increase
by  four,  or  the  CURSOR DOWN key to decrease by four.  The most recently
recorded  note  will  be  played  eight times with the new durataon and the
current  time  and  velocity values.  If no notes have been recorded yet, a
middle C will be played.

Pause  
~~~~~~
If  you  want to play some notes without recording, press the ESC key.  The
word  PAUSE  will  appear,  and the program will stop recording.  Press ESC
again to resume recording.

ECHO and MIDI MERGE
~~~~~~~~~~~~~~~~~~~
Iaf  you are using a master keyboard and an external synth module, you will
need to activate either ECHO or MIDI MERGE, just as you do on the other
screens. These functions can be selected and the echo channel changed with
the BACKSPACE, SEMICOLON (;), > (SHIFT-PERIOD), and < (SHIFT-COMMA) keys,
as described in Chapters 6 and 7, or the mouse can be used.

If ECHO or MIDI MERGE is on while in step time record, the velocity of all
notes received from MIDI will be reset to the currently selected velocity
before the notes are transmitted to the MIDI out jack.

Exit from Step Time
~~~~~~~~~~~~~~~~~~~
Click on EXIT or press Fl to go to the edit screen, or use EXIT TO PLAY or
F2 to go to the play screen.

                          Chapter 10
                          ~~~~~~~~~~
                          LOAD/SAVE
                          ~~~~~~~~~
The  Atari ST and Amiga vergions of the KCS use six different types of disk
files  to  store  the  data  used  by  the program.  Each file has a unique
extension.  When you select LOAD/SAVE from one of the edit screens a dialog
box  or  edit window will ask whether you want to load or save a file, which
disk drive to use, and what file type is to be accessed.

After  selecting  a  drive (on the ST only) and file type, click on LOAD or
SAVE.   Another  dialog  box  will  display  a  directory of files with the
selected  extension  on  the current disk.  In the Atari version, files are
selected  in  the  window using the GEM protocols that are discussed in the
STs  docuentation.   In  the  Amiga version, a fairly self explanatory file
select window will appear.  After selecting a file name, click on CANCEL to
exit or OK to load or save the file.  You do not have to specify .ALL,.SEQ,
.ENV, etc.  as these extensions will be added by the program.

In  the  ST  version of the program, clicking on FORMAT will format a blank
disk  for  data  storage.   The  file  type  selected  is  irrelevant  when
formatting  a disk.  Dialog bexes will confirm your choice, and ask for the
disk  type.   (In  the  Amiga  version of the program, you may format disks
directly  from  the  WorkBench.)  Clicking  on  CANCEL  exits the LOAD/SAVE
screen.

File Types 
~~~~~~~~~~
.ALL files contain all songs, sequences and tracks, plus the status of each
individual  track  and the contents of the text area, in memory at the time
the  file was saved.  ..  dtLL files can only be loaded or saved from Track
or  Open modes.  Loading a .ALL file will erase all data in the sequencer's
memory.

.SEQ files hold a single track or sequence.  These files can only be loaded
or  saved  from  Track  or Open mode.  The file saved will be the currently
selected  track  or sequence; when loaded, the file will be put in the next
available track or sequence, depending on the mode selected.

.TRK  files  hold all 48 tracks, plus their statuses.  Savng all tracks can
be done from any mode, but loading tracks can only be done from Track mode.

.SNG  files  hold a single song as wel1 as the sequences used in that song.
When  a .SNG file is loaded, each sequence is put in its original location,
unless  that  slot is already occupied, in which case the sequence is moved
to  the  first  empty  slot  and  the  song  is  changed to reflect the new
location.   This  allows  merging  multiple  songs into a single .ALL file.
Songs  can  only  be loaded or saved from Song mode, and the song loaded or
saved   is  the  currently  selected  song  or  the  next  available  song,
respectively.

A set of Open mode sequences that are not otherwise used in a song can be
saved and loaded as a group by creating a dummy song made up from a list of
the desired sequences. In this case, though, PRIMARY and ST events
contained in Open mode sequences will not be reassigned if that sequence is
already in use, so you will need to be careful to avoid such conflicts if
you use the dummy song method.

.ENV  files  are  environment  files,  and  contain  most of the parameters
diplayed in the SET OPTIONS edit window, as well as the time, duration, and
velocity  values  used in step time recording.  If a file named DEFAULT.ENV
is saved on the KCS program disk, this file will be loaded when the program
boots.

.ENV  files  are  also created automatical@y whenever you save a .ALL file.
When  a .ALL file is saved, the searches for a .ENV file with the same name
and loads that file as well.

MIDI Files and File Formats  
~~~~~~~~~~~~~~~~~~~~~~~~~~~
For Atari ST owners who would like to use KCS 
sequence files  with  other  sequencers  that support the MIDI sequence
file
format, we  have  written a utility program entitled CONVERT.PRG,    which
will convert KCS  sequence  files to MIDI standard files, and vice versa.
(An
Amiga  version  will  be  available shortly.) The MIDI sequence file
fornhat is an emerging standard, which has been unofficially adopted by
many music software publishers, including Dr. T's, Opcode, Intelligent
Music, Passport, and others. Instructions for the use of this program are
contained in a README file, which is included with the program. CONVERT.PRG
may be found on many MIDI related bulletin boards, or it may be obtained
directly from Dr. T's for a nominal fee.

For advanced computer musicians who would like to write programs that can
exchange files with the KCS, the file formats for the .ALL, .SEQ, .SNG, and
.TRK file types are available for a nominal charge to cover printing and
shipping. Contact us for more information.

Caveats  
~~~~~~~
One  point  to  be  aware of when saving ,ALL or other long files is that a
computer with 1 meg or more of memory can hold many more notes than can fit
on  a  single disk.  A double sided disk can hold about 120000 notes, and a
single  sided  disk (on the ST only) only holds about half this number.  If
you  somehow  find yourself with more notes than will fit on a single disk,
you  will  have to save some individual sequences or songs then delete them
and save the remaining data in a .ALL file.

CAUTION:  With the exception of the DEFAULT.ENV file mentioned earlier, you
should  NEVER  save  your  data  files on the KCS program disk!  This could
cause  conflicts  with  the  program,'s copy protection, which will make it
impossible  to  load  the  program.   The  write protect tab on the program
diskette  should be left open at all times except when saving a DEFAULT.ENV
file.

                           Chapter 11
                           ~~~~~~~~~~
                           SET OPTIONS
                           ~~~~~~~~~~~
The  SET  OPTIONS  edit  window  allows  you  to  set a number of important
parameters used by the prog@am.  The SET OPTIONS screen can be reached from
any  edit  screen  by  clicking  on SET OPTIONS, or from any play screen by
pressing the 0 (ZERO) key.

The  SET  OPTIONS  screen  is divided into six areas, each of which contain
buttons  and  numeric  data  fields  for  a  group  of  related parameters.
Settings  for  the  different  parameters  are  changed as described in the
section on edit window in Chapter 1.  Most of the parameters on this screen
can also be loaded from or saved to disk in a .ENV file, which is described
later in this chapter.

MIDI  
~~~~
MIDI MERGE causes the program, to transmit all data received at its MIDI in
to  the  MIDI  out  jack.   MIDI  merge  can be turned on and off from this
screen, or with the SEMICOLON (;) key on any of the play screens.  You will
need MIDI merge if you are using a master keyboard and remote modules.

MIDI  merge  functions when the program is on one of the play/record
screens, though not on the edit 
screens, and MIDI merging is overridden when ECHO is on.  Also
note  that  if  a system exclusive message being received by the program is
interrupted  for  some reason, the program will hang up until you press Fl.

START IS 1ST CLOCK allows you to tell the program whether it should
respond  to  a  MIDI  start or continue command as though it were the first
MIDI  clock, or simply as an instruction to start listening
for MIDI clocks.  If you are syncing to an external MIDI clock source, pick
the setting which seems to sync better with your other equipment. In
particular, if you are transferring sequences from another instrument using
the techniques outlined in chapter 13 and the time of the first event recorded
is always off by one clock step, yu should change this setting. This option
has no effect if the internal clock is being used.

NO  MIDI  START lets the program respond to MIDI clock even if a MIDI start
command  is not received.  This is sometimes needed for certain specialized
applications  involving  recording from other sequencers, and has no effect
when the internal clock is selected.

SONG  POINTER SEND activates the transmission of MIDI song pointer messages
by  the  KCS.   When  this  option  is  turned on, the program will send an
apropriate  song  pointer  message  whenever  a song, sequence, or track is
started  from  a cue point, or when a track loops to the beginning of a cue
loop.   The DLY button, to the left of SONG POINTER SEND, adds a one second
delay  between  the  MIDI  Song  Pointer and Continue messages after CUE is
selected on any play screen.  This allows the external instruments to catch
up to the sequencer before it starts.

MIDI  CLOCK  OUT tells the program to enable or disable the sending of MIDI
clock.   If  you  are not syncing a drum machine to the KCS via MIDI clock,
you  may  want to turn this off to reduce the amount of data sent via MIDI.
For  some  specialized  applicaions,  you  may  want  to  send  MIDI  clock
selectively   from   your  sequences  using  *  events,  and  not  send  it
automatically with every clock step.

RUNNING  STATUS  reduces the amount of MIDI data transmitted by eliminating
redundant  status  bytes,  which  can  help reduce timing or other problems
caused  by  MIDI  data  overload.   Use with caution, especially if you are
using a MIDI switch box.

MIDI  SLOW  adds  a  slight delay after each byte sent out over MIDI.  Some
MIDI  instruments  cannot  respond  to  MIDI  data  when transmitted at the
standard  MIDI  transmission  rate  (the baud rate to you techies).  Yamaha
instruments  are the most notorious for this, but it is also a problem with
some  MIDIed  Drumulators.   If  your instruments randomly miss or stick on
some notes, try setting MIDI SLOW to a value in the 60's.  Use the smallest
value  that  you  can for MIDI SLOW, as increasing it causes the program to
spend time waiting around when it could be working.

MIDI  instruments  can also miss data because too much is being sent at one
time.   This sounds like the problem described above, but is acutally quite
different.   The  instruments get so much MIDI data that they have no place
to  put it while they are doing their other work, and some gets lost.  MIDI
SLOW  will  probably not help this problem.  You will have to get some MIDI
channel filters, so instruments only receive data intended for them, or you
will  have  to record less data.  Continuous controllers (mod wheels, pitch
wheels, aftertouch, etc.) are a likely cause of this problem

RECORDING  
~~~~~~~~~
The  options  in  this  portion  SET OPTIONS screen are used to set certain
parameters  which  affect  recording  in  Track  and  Open modes.  With the
exception  of  MUTE NEW TRACKS, all recording options affect both Track and
Open  mode  recording.   Many of these options can also be changed from the
record  screens  as  well,  and  further  information can be found in those
chapters.

CONTROLLERS,  AFTERTOUCH,  and  NOTE  OFF  VELOCITY  are  used to enable or
disable  the  recording  of  MIDI controllers (coninuous controllers, pitch
bend, and program changes), aftertouch, and note off, or release, velocity.
The PAUSE switch, next to CONTROLLERS, allows recording controller settings
when  the sequences is paused.  When this switch is on, the last value only
of  any  controller  that  is adjusted when the sequencer is paused will be
recorded.   This  could  be  used,  for  example,  to enter a single volume
control  message  in a previously recorded part, by playing the sequence to
the point of the insertion, pressing PAUSE, and then playing a few notes on
the  keyboard  while  adjusting  the  volume.  Once you've found the proper
setting,  restart  the  sequencer  by  pressing  PAUSE again, and the final
volume  setting  will  be  recorded.  (Of course, the RECORD switch must be
turned on, as well, and the sequence or track containing the newly recorded
data  will  need  to  be  merged  with  the  original track or sequence, as
always).

SYSEX enables the recording of system exclusive messages.  When this switch
is  on,  sysex  messages of up to 5000 bytes can be recorded as single byte
events.   This  is  less  memory  efficient  than  storing  sysex data in a
librarian program, but it may be more convenient in some instances.

ALIGN  is  used to force tracks or sequences to "line up" with the start of
each  measure,  when  recording  or  playing.  If ALIGN is on while you are
playing  sequences  from  the Open mode play screen, sequence playback will
not  start  as soon as the sequence key is pressed, but at the beginning of
the  next  measure.  If ALIGN is on while recording in either Track or Open
modes, recording will not stop immediately when the F10 key is pressed, but
will continue until the start of the next measure.

MUTE  NEW  TRACKS  causes  tracks to be muted as soon as they are recorded.
This  is  convenient, for instance, when recording multiple takes of a long
solo  over a track, since earlier takes of the solo will not be played back
as the sequencer loops.  It is also handy when looping over a short cue, to
give you a chance to play a short riff many times while you work on getting
it right.

QUANTIZE  toggles real time auto-correction.  When QUANTIZE is on, the time
values  and durations of all events recorded will be rounded to the nearest
multiple  of  the  number to the right of QUANTIZE.  Unlike auto-correction
from  the  edit screens, quantization cannot be undone.  Another difference
is  that  all event types, including controller events and program changes,
will  be  rounded  when  QUANTIZe  is  on,  whereas  only note messages are
affected by autocorrection.

ECHO  is  similar  to  MIDI  merging,  except  that  all  data  received is
rechannelized  before  recording or transmission to the MIDI out jack.  The
number to the right of ECHO is the echo channel.

FILTER  forces the sequencer to only receive data on a single MIDI channel,
called  the  filter  channel.   Data on all other channels is filtered out.
This  is  especially useful when recording data from another sequencer into
the  KCS,  or  when "expanding" a single channel's data from many sequences
into  a single sequence using the loopback recording technique described in
Chapter 13.  The number to the right of FILTER is the filter channel.

COUNTIN allows you to select the number of "free" steps that you get before
recording  starts  in  real  time.  The metronome will sound and MIDI clock
will  be sent during the countin, but the program's clock will be held at 0
until  the  count  is  over.  Remember, this is set in steps, not metronome
beats,  so  to  get a one measure countin at 96 steps per measure, you must
enter 96.  The maximum value for COUNTIN is 255 steps.

OTHER
~~~~~
SILENT  PUNCH  only  affects  the operation of the sequencer in Track mode.
When  SILENT  PUNCH  is  on, notes that are being punched out will be muted
while  punch  points  are  being  set.   Once the punch points are set, the
punched  portion  of  the  track will be muted regardless of the setting of
this  switch.   SILENT  PUNCH also affects notes that are deleted when LIVE
EDIT  is active - if SILENT PUNCH is off, notes that are being deleted will
still sound when LIVE EDIT is on.

ACTIVITY  DISPLAY  enables  the  musical  icons which appear next to active
tracks  in  the  track status display.  You might want to turn the activity
display  off when recording or playing very dense musical passages, or when
using high clock resolutions.

STEP DISPLAY enables the step portion of the measure/step counter.  Turning
the  step display off reduces the computer's work load slightly, and allows
the program to concentrate on more important tasks.

MIN:SEC  DISPLAY  enables the real time clock, which displays the amount of
time  elapsed  since  the  sequencer was started.  As with the STEP DISPLAY
switch,   turning   this  switch  off  may  help  in  hypercritical  timing
applications.  See Chapter 13 for details on the real time clock.

RE-RECORD  STOP  affects the operation of the UNDO key and RE-RECORD button
in  Track  mode  only.   When this switch is highlighted, pressing the UNDO
will   erase   the  current  recording,  stop  the  clock,  and  reset  the
measure/step counter.  When Re-RECORD STOP is off, pressing UNDO will erase
the current recording, but the sequencer will continue to play.

TRACK  MODE LOOP, suprisingly enough, controls looping in Track mode.  When
this  switch  is  off,  all trakcs will play through only once.  It is also
possible to play or record past the end of track 1 (which normally sets the
loop  point  for Track mode) by turning TRACK MODE LOOP off.  You should be
careful  about  recording on tracks other than track 1 when TRACK MODE LOOP
is turned off, since any data recorded past the end of track 1 will be lost
when  a DOUBLE, APPEND, or ALL TRACKS TO SEQ operation is performed, unless
the  length  of track 1 is extended by changing the TIME value of track 1's
final DE event.

TEMPO  CHG  BY  RATIO  changes the amount of tempo change which occurs when
tempo  is  changed  from the Track mode control panel, or from the computer
keyboard.  When this switch is off, the tempo will change by 1 BPM when any
of  the  tempo  controls is pressed; when this switch is on, the tempo will
change by about 2.5% for each button press.

MIDI  KEYS  is  a  convenience  feature for advanced KCS users, that allows
controlling  certain  sequencer  functions from an external MIDI footswitch
controller.   When  this switch is on, MIDI controllers 64, 65, and 66 (the
sustain,  portamento,  and  sustenuto  pedals,  respectively) duplicate the
functions of certain keys on the computer's keyboard on the program's Track
mode,  Open  mode,  and  step  time  record  screens.   The  sustain  pedal
duplicates  the F10 key and right mouse button on all three screens, but is
especially  useful  in Track mode, since this allows you to start recording
and  set the track loop point with no hands.  In Track mode, the portamento
pedal  is  equivalent  to  the  RE-RECORD  button,  and the sustenuto pedal
controls  the  STOP  button.   In  Open  mode, the portamento and sustenuto
pedals  are  used to start real time recording, and duplicate the functions
of  the  RETURN  (record  on next event) and ENTER (record immediate) keys,
respectively.  On the step time record screen, the portamento pedal inserts
a  rest,  and  the  sustenuto  pedal  deletes  the  previous  note.   These
controllers  are  recognized  on  all  MIDI channels, and are not merged or
recorded when MIDI KEYS is active.

DRUM  CHANNEL  selects  one channel which will not be affected by any pitch
transpositions,  either  as  part  of  a  song or control sequence, or when
editing  a  sequence  or  track.   This  is intended for use with MIDI drum
machines.   Since  drum  machines assign each drum to a separate MIDI note,
transposing  a  drum  part  will  cause the wrong drums to be played by the
sequencer; hence the need for a drum channel.

DEBOUNCE sets the amount of time a mouse button must be held down before it
will  repeat  on  the  Open  or  Track  mode play screens, in 5 millisecond
increments.   A  value of 100 corresponds to 1/2 second.  You may find that
different values of debounce are needed for different applications.

CUE  MOVE  AMOUNT  sets the amount that the cue point(s) will move when the
cue  move  buttons  are  pressed.   This  will toggle between one and eight
measures  when the INSERT key is pressed on any play screen, but can be set
to any value from 1 to 99 on the SET OPTIONS screen.

VELOCITY PEDAL
~~~~~~~~~~~~~~
The  switches  in  the VELOCITY PEDAL section are used to choose one of the
three  velocity pedal options, as well as the velocity pedal channel, which
are  used to affect note velocities during Open or Track mode recording, or
when  LIVE  EDIT  is active in Track mode.  Velocity pedal in Open mode can
only  be selected from this screen.  See the chapters on the Open and Track
mode play/record screens for details on velocity pedal functions.

TIMING
~~~~~~
The  parameters in the TIMING section of the SET OPTIONS window are used to
select  the  clock  source  and set the timing resolution of the sequencer.
Chapter 13 has more information on timing resolution.

INTERNAL CLK selects the program's internal timer as the clock source.  The
number  to  the right of the switch is the tempo, in beats per minute.  The
tenths  of  BPM  digit is treated as a separate field by the program, which
means  you  will  need  to use the mouse to place the cursor on this digit.
Remember  that the internal clock is always used when playing a sequence or
track  from  the  edit  screen, so the setting of the clock source selector
switches will have no effect when working on the edit screen.

MIDI  CLOCK  selects  an  external  MIDI  clock  as  the clock source.  The
sequencer  will  wait  for a MIDI start or continue message before starting
any tracks or sequences unless the NO MIDI START button is turned on.

MIDI  W SONG POINTER selects the external MIDI clock source and enables the
reception  of  MIDI  song pointer messages.  When a song pointer message is
received,  the  sequencer  will  move to that point in the current song cue
sequence, or track, and play from that point.

STEPS/MEASURE sets the number of steps in a measure, which only affects
the  measure/step counter on the play and edit screens, and the event list
on the
edit screen.  This value will change whenever an SM event is encountered by
a sequence or track.  The followng table shows the correct STEPS/MEASURE
setting for the most common time signatures and STEPS/BEAT values.

   Time               Steps/Beat
Signature               24              48              96  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3/8             36              72              144 
2/4                     48              96              192 
5/8                     60              120             240 
3/4                     72              144             288 
7/8                     84              168             336 
4/4                     96              192             384 
9/8                     108             216     432  
5/4                     120             240             480  
6/4                     144             288             576
7/4                     168             336             672 

STEPS/BEAT  sets  the  overall  timing  resolution  of  the sequencer.  The
standard  value for STEPS/BEAT is 24.  Higher values allow for more precise
timing,  but  also  make editing more difficult and put a greater strain on
the  computer,  by  giving  it  less  time between steps in which to do its
"housekeeping" chores.

If STEPS/BEAT is changed during a SET OPTIONS session, the program will ask
if  you  want  to  "Adjust all event times?" when you @eave the SET OPTIONS
screen.   Answering  "Y" to this question will compress or expand all event
times and durations to match the new resolution.  The program will also ask
of  you  wish  to  adjust  the related parameters.  A "Y"$ answer here will
change   the   STEPS/MEASURE,  STEPS/MIDI  CLK,  and  STEPS/METRO  settings
proportionally, or "N" will leave the settings unchanged.

STEPS/MIDI  CLK sets the number of sequencer steps between each MIDI clock.
This  should  normally  be  set  to  1  when STEPS/BEAT is 24, and adjusted
proportionally  when  STEPS/BEAT  is  increased.   The  sequencer  uses the
current  tempo  setting to interpolate between MIDI clocks when an external
MIDI  clock  is used and STEPS/BEAT is greater than 24, so there will be an
improvement in resolution when STEPS/BEAT and STEPS/MIDI CLK are increased,
even if an enternl clock is in use.

METRONOME  
~~~~~~~~~
STEPS/METRO  sets the interval between metronome ticks.  The default is for
the  metronome  to occur every 24 steps.  If you want the metronome more or
less  often,  or you change the STEPS/BEAT setting, you will want to change
the number of steps per metronome.

AUDIBLE  METRONOME  enables  or  disables  the  metronome  "click"  that is
produced by the monitor speaker.

VISIBLE  METRONOME  enables  or disables the musical icon metronome that is
shown on the Track mode and Open mode play/record screens.

PLAY  METRONOME  turns  the metronome on when the sequencer is in play.  If
this  switch  is  off,  the  metronome  will only occur when the program is
recording.

Environment Files
~~~~~~~~~~~~~~~~~
Most  of  the parameters shown on the SET OPTIONS screen can be saved in an
environment  file.   This  allows  you to quickly and accurately change the
recording  and  playback  parameters  when  you  move  to  a  new recording
situation.  Environment files have a .ENV extension.

Environment  files contain the values for time, duration, and velocity used
on  the  Step  time  record  screen,  as  well as the following SET OPTIONS
parameters.  All the parameters from the MIDI and METRONOME sections of the
SET  OPTIONS  screen  (except  the DLY switch) are saved, and in the TIMING
section,   all  parameters  are  saved.   In  the  RECORDING  section,  the
CONTROLLERS,  AFTERTOUCH,  and NOTE OFF VELOCITY record switches are saved,
as  well  as  the  ECHO  status  and  channel.   In  the OTHER section, all
parameters  except  TRACK MODE LOOP, MIDI KEYS, and the CUE MOVE AMOUNT are
saved,  and  in  the VELOCITY PEDAL section, only the CHANNEL is saved.  In
the Amiga version of the program, the screen colors are also saved.

If  a  file  named  DEFAULT.ENV  exists on the KCS program disk, it will be
automatically loaded when the program boots up.  .ENV files are also loaded
and saved automatically with .ALL files, under the same file name.

If  the  STEPS/BEAT  setting  in the environment file is different than the
current  setting  when you are loading a .ENV file, the program will ask if
you  want  to  adjust  all event times.  See the LOAD/SAVE chapter for more
information on .ENV files.

                             Chapter 12
                             ~~~~~~~~~~
                               MIDI
                               ~~~~
While  it is possible to make good use of the Keyboard Controlled Sequencer
wdthout  detailed  knowedge  of MIDI, you will undoubtedly find that as you
start  to  realize  some  of  the  enormous potential inherent in most MIDI
instruments;  an  understanding  of  the nuts and bolts of MIDI can be very
helpful.   This  chapter  contains  information  on  a  number  of subjects
pertinent  to  the  KCS,  but  is  by  no  means  a complete guide to MIDI.
Fortunately, a number of well written books on the subject have appeared on
the  market;  we  recommend  tracking  one  down  if you need more detailed
information.

MIDI Connections
~~~~~~~~~~~~~~~~
A MIDI cord consists of a twisted and shielded pair of wires, with the body
of the plug isolated from the shield.  At the MIDI out jack, the MIDI cable
plugs  directly  into the synth or computer's circuitry; but at the MIDI in
of  the  receiving  instrument,  the  cable connects to an "opto isolator",
which  uses  light,  rather  than  electrons, to couple the signal into the
instrument.   This  means that there is no electrical conductor between the
MIDI  in  of  one  machine  and  the MIDI out of another, so you can't blow
something by incorrect patching.

Although  MIDI  cables look the same as standard DIN or Roland sync cables,
the  grounding  of  the  two  cables  is  different.  DIN cables can create
"ground  loops",  which  will cause hum and other nasty sounds to appear at
the output of your synthesizer(s).

As  mentioned  in  the  first  chapter  of this manual, the Atari ST uses a
nonstandard  method  for  creating a MIDI thru connection with its MIDI out
jack.   This causes a conflict with some types of (nonstandard) MIDI cables
which have the two normally unused pins (1 and 3) shorted to the pins which
carry  MIDI data (4 and 5).  The best solution to this situation is to have
the ST permanently modified to meet the MIDI spec; a less drastic s9olution
is  to  check  your cables with an ohm meter, preferably before leaving the
store with them.

MIDI Modes
~~~~~~~~~~
MIDI  modes determing how an instrument will respond to incoming MIDI data.
MIDI  modes  can  be  a  source  of confusion to beginners and pro's alike,
primarily  because  one MIDI manufacturer mininterpreted the meaning of one
of  the modes when they introduced their first MIDI synthesizer.  The three
original  modes were broken into four modes to allow for this.  Since then,
other  manufacturers  have  created  new modes to take advantave of various
types  of  multi-timbral implementations.  The original four MIDI modes can
be selected on any synth that implements them through a control change (CC)
event  called  a  mode  message;  any  other  modes must be selected at the
instrument  or  with  a  sysex  message.   The section below on USEFUL MIDI
COMMANDS  gives  an example of how to select one of the four standard modes
from the KCS.

The  four  standard  modes  are  called  Omni  On/Poly,  Omni On/Mono, Omni
Off/Poly,  and  Omni  Off/Mono;  they  are  also  known  as  modes  1  - 4,
respectively.  The two Omni On modes cause the synth to receive data on all
16  MIDI  channels  at  once; this is good for keyboards that are connected
together  in  a  layering  arrangement,  but  not  so  hot  for  sequencing
applications.   Many  earlier  synths  and drum machines power up in mode 1
(Omni On/Poly), and must be changed to one of the other modes to be used in
a  multi  instrument  sequencing  environment.   Mode  2  (Omni On/Mono) is
virtually  useless  in  all  situations, as it causes an instrument to play
ponly  one voice monophonically, from all MIDI channels.  This is the extra
mode that was accidentally created in the early days of MIDI.

The  two  Omni  Off  modes,  modes 3 and 4, are more useful in a sequencing
environment.   Mode 3 (Omni Off/Poly) causes a synth to play all its voices
polyphonically  on one MIDI channel, while Mode 4 (Omni Off/Mono) puts each
voice  on a separate MIDI channel for monophonic operation.  The CZ-101 and
Sixtrak  both  use  Mode 4 to implement their multi-timbral features, while
more  advanced  synths  like  the Oberheim Xpander, Ensoniq ESQ1 and Yamaha
FB01  use  non-standard  MIDI  modes  to allow assigning some voices to one
channel, and some to others.

Other MIDI Messages
~~~~~~~~~~~~~~~~~~~
Some  synthesizers  can  be  placed  in an operating condition called Local
Control Off.  In this mode, they will respond only to signals coming in via
MIDI,  while ignoring their keyboards.  They will continue to send keyboard
information via MIDI OUT.  Local Control On will return the synth to normal
operation.    Local   control   messages   are  subset  of  the  continuous
controllers, and are sent from the sequencer with CC events.

System  real time messages are used to synchronize MIDI instruments in real
time.   The  timing clock message will advance drum machines and sequencers
to  move  in  time  with  the  sequencer.   Other system real time messages
include  the start, stop and continue commands.  Normally, these events are
sent  by  the  KCS at the appropriate times, but they can be sent as single
byte  messages  for  specialized applications.  Other less useful real time
messages include the reset and active sense messages.

System  common  messages  are  miscellaneous  messages which can be sent to
instruments,  regardless  of  what  channel they are on.  These include the
song select command, the tune command (which initiates oscillator tuning on
analog  synthesizers),  and  the  much  ballyhooed  song  position  pointer
message.

System  exclusive  (sysex) messages are used by individual manufacturers to
do  whatever  they want to do with their instruments that is not covered in
the normal MIDI spec.  This includes, but is not limited to, functions such
as  patch  dumps, remote button pushing, and even displaying messages on an
instrument's  display.   You  can  use  single  byte  events  to send sysex
information,  but  it  is  your responsibility to determine the response of
your  instruments  to  the  information  sent.   The  March  1987  issue of
Electronic  Musician has an article on using system exclusive data with the
KCS.

Some Useful MIDI Commands
~~~~~~~~~~~~~~~~~~~~~~~~~
All  of  the message types described above can be sent from the KCS, either
as   CC   events,  or  with  single  byte  messages.   While  many  earlier
synthesizers,  such  as the Sixtrak, have their own controller assignments,
the  assignments  of  all MIDI controllers are now standardized by the MIDI
Manufacturers Association, and are listed on the next page.

Many instruments also have assignable controls, which can be set to send or
recognize  any  MIDI  controller.   This  allows  you  to  use  any  of the
unassigned  or  less  common  controllers  for whatever purpose you'd like.
Examples  of  such  instruments are the Oberheim Xpander, Matrix 12, and XK
keyboard  the  Yamaha  KX76 and KX88 keyboard controllers, and the Kurzweil
MIDIBoard.


Controller Name                 Number          Range
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Modulation Wheel                        1               0 - 127 
Breath Controller                       2               0 - 127  
Early DX7 Aftertouch            3               0 - 127  
Foot Controller                         4               0 - 127
Portamento  Time                        5               0 - 127 
Data Slider                             6               0 - 127 
Main Volume                             7               0 - 127 
Balance                                         8               0 - 127
Pan                                     10              0 - 127 
Expression                              11              0 - 127 
General Purpose #1                      16              0 - 127 
General Purpose #2                      17              0 - 127 
General Purpose #3                      18              0 - 127 
General Purpose #4                      19              0 - 127 
LSB's for #'s 0 - 31            32 - 63         0 - 127 
Sustain Pedal                           64              0 or 127 
Portamento On/Off                       65              0 or 127
Sustenuto  Pedal                        66              0 or 127  
Soft Pedal                              67              0 or 127 
Hold 2                                  69              0 or 127
General  Purpose  #5            80      0 or 327 
General Purpose #6                      81              0 or 127 
General Purpose #7                      82              0 or 127 
General Purpose #8            83        0 or 127
Tremolo Depth                           92              0 - 127
Chorus  Depth                   93              0 - 127 
Celeste Depth                           94              0 - 127 
Phase Depth                             95              0 - 127
Data  Increment                         96d     0 or 127 
Data Decrement                  97              0 or 127 
Non Reg.  Parameter MSB         98              0 - 127 
Non Reg.  Parameter LSB                 99              0 - 127 
Reg.  Parameter MSB             100             0 - 127 
Reg.  Parameter LSB             101             0 - 127  
Local Control On/Off            122             0 or 127
All Notes Off                   123             0 
Omni Off                                        124             0  
Omni On                                         125             0  
Mono On (0 =  Omni Off)                 126             0 - 16  
Poly On                                         127             0 

As  an  example  of how these might be used, here is a sequence that sets a
CZ-101  on  Channel  5  to MIDI mode 4 (Omni Off/Mono) and then turns Local
Control Off on channels 6 and 7:

MSR- ST EVNT     TIME   CH   TYP        NOTE     VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1         0             5       CC      126       0             
1-      1       2         0             6       CC      122       0      
1-      1       3         0             7       CC      122       0      


The  other  three  modes  require  two  mode  change  messages  to select a
particular  mode,  for instance, control changes on controllers 124 and 127
to select Omni Off/Poly On.

The  numbers to be entered in single byte events for the other messge types
are given below:


Message Name            1st Byte                2nd Byte                3rd Byte
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sysex Start             240                     ID #  
Song Pointer            242             LSB             MSB 
Song Select             243            Song #
Time Request        246
Sysex End               247 
Timing Clock            248 
Start                   250 
Continue                        251 
Stop                    252 
Axtive Sense            254 
System Reset            255

The  values used for the second and third bytes in the first three messages
must  be  in  the  range  of  0 - 127.  If is you are using the song select
message  to  select a song on an external drum machine or sequencer, you'll
need  to  send  a  stop  message just before the song select message, and a
start  message  immediately  thereafter.   The  form  of  system  exclusive
messages  varies  from  one  instrument to another; consult your manual for
details.

Program Changes  
~~~~~~~~~~~~~~~
The  program  numbers  assigned  to MIDI program change
numbers  can  vary quite  a  bit from one manufacturer to the next.
Generally
speaking, sending  a program change to a Sequential of Oberheim synthesizer
will cause that patch number to be selected, while sending the same program
change to a Yamaha or Ensoniq instrument will select that patch number
minus one. Casio uses a strange overlapping system which is described in
the APPLICATIONS chapter, while Korg, Roland, and others use a "bank
system" in which programs are selected via a modified octal numbering
system.

The following table shows which numbers to enter in a PG event to select a
program on instruments that use the bank system. The Group A and Group B
columns respect another level of program selection used on some Roland
instruments. Use the values in the Group A column for synths without this
feature.

Program                 Group A                         Group B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 - 18                 0 - 7                   64 - 71 
21 - 28                 8 - 15                  72 - 79
31 - 38                 16 - 23                         80 - 87  
41 - 48                 24 - 31                         88 - 95 
51 - 58                 32 - 39                 96 - 103
61 - 68                 40 - 47                         104 - 111
71 - 78                 48 - 55                         112 - 119 
81 - 88                 56 - 62                         120 - 127

The  MIDI  implementation  chart  which  comes  with each instrument should
describe the program numbering scheme for that machine:  if not, REXMAN!

MIDI Note Numbers 
~~~~~~~~~~~~~~~~~
MIDI note numbering is also handled differently by different manufacturers.
The  note  numbering  system  used by Dr.  T's is shown in the chart below,
where  th  keyboard  represents  a five octave keyboard like those found on
most instruments today.  Note that the system we use does not coincide with
that  used  by Yamaha.  Yamaha designates the lowest key on the five octave
keyboard C1, whereas we call that key C2.

MIDI Drums 
~~~~~~~~~~
When drum machines are played through MIDI, each drum is asigned to one or
more notes on the MIDI keyboard. While newer machines allow you to assign
each drum to a specific note (and possibly to a specific channel as well),
there is sort of a quasi-standard in effect regarding drum machine note
assignments. These assignments, which are also used in our Copyist
transcription program, are listed below.

Drum                            Note #'s                        Notes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bass                    35, 36                  B1, C2
Snare                   38, 40                  D2, E2
Rim                             37                              C#2
Claps                   39                              D#2
Floor Tom               41, 43                  F2, G2
Low Tomm,               45, 47                  A2, B2
Mid Tom                         49 50                   C3, D3
Hi Tom                  52, 53                  E3, F3
Open Hi Hat             46                              A#2
Closed Hi Hat           42, 44                  F#2, G#2
Crash cymbal            49                              C#3
Ride Cymbal             51                              D#3
Tamb/Crash 2            54                              F#3
Cowbell                         56                      G#3
Shaker                  58                              A#3

Most  drum  machines  only allow one note number to be assigned to a single
drum.   In  this  case,  use the higher note for any drums which are listed
with two numbers.

                             Chapter 13
                             ~~~~~~~~~~
                       TIPS FOR ADVANCED USERS
                       ~~~~~~~~~~~~~~~~~~~~~~~
In the four years since the release of Version 1.0 of the Commodore 64 KCS,
the  thousands  or  musicians  who use the program have undoubtably come up
with  many  thousands of useful techniques, tricks, and shortcuts.  Much as
we  would  like  to,  space does not permit us to present all of them here.
This  chapter  discusses  many fundmental KCS techniques which might not be
obvious  at  first,  and  will  hopefully  serve  as a catalyst for further
experimentation.

Control Sequences in Open Mode  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A sequence shich consists of sequence control events (PRIMARY, ST, XX, XL,
MS, US, PT, or VT) is called a control sequence. You may find it beneficial
to record individual sequences or parts of songs and then use control
sequences to start them up. This example will start three sequences
together and end four measures later.

MSR-    ST      EVNT     TIME   CH TYP  NOTE    VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1         0                     A        0        0      1
1-      1       2         0                     7        0        0      1
1-      1       3         0                     2       -4        0      1
5-      1       4       384                 DE                  

When  the  control  sequence  which  follows  is started, sequences A and B
immediately start and will play four times.  One measure later, sequence 15
(which  is  a  secondary sequence) starts playing for two repetitions.  Two
measures  later, sequence B is forced to shut off, and another two measures
later, the TM event will change the tempo to 100 beats/minute.

MSR-    ST      EVNT       TIME CH  TYP NOTE     VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1           0           B       0         0       4
1-      1       2           0           A       0         0       4
1-      1       3          96       ST  15        0       2
1-      1       4         192       XX  B                 
1-      1       5         192       TM  100     

Creating Songs with Control Sequences
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are two techniques that we recommend for using control sequences to
combine Open mode sequences into songs. The first technique involves
creating a control sequence that starts other control sequences and waits
for each sequence. This sequence controls the segueing of the sections of
the piece. The sequences started by this sequence each start the sequences
required by their section. In the following example, the song consists of
sequence 1, followed by 2, 3 and then 1 again.

MSR-    ST      EVNT    TIME            CH TYP  NOTE    VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1       0                       1       0         0     1W
1-      1       2       0                       2       0         0     1W
1-      1       3       0                       3       0         0     1W
1-      1       4       0                       1       0         0     1W

MSR-ST  EVNT    TIME            CH TYP  NOTE    VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1       0                       A       0         0     1
1-      1       2       0                       B       0         0     2
1-      1       3       0                       C       0         0     1W
1-      1       4       0                   DE

The sccond sequence above is sequence 1.  Sequences A, B, and C are started
together,  and  sequence  1 waits for sequence C to complcte before ending.
Sequence  B is played tiwce.  When using a structure such as this, you will
probably  want  all  parts to play for the same Control amount of time.  In
the  case, sequence B would be half the length of sequences A and C.  The W
(Wait)  for  sequence  C  prevents  the song from, continuing to sequence 2
until  sequence C has completed.  The DE event may look superfluous, but it
is  necessary  to  keep sequence 1 from ending after sequence C is started,
causing the main control sequence to continue.  If you always end a control
sequence  that will be started by another control sequence with a DE event,
you  will  prevent such problems without having to think about what goes on
inside the program.

The  other  technique  is to use a single control sequence without waits to
"schedule"  the  starting of other sequences.  This has the disadvantage of
requiring  you  to  compute and enter the times necessary to get all of the
parts  to  start  exactly  when  you want them to.  It has the advantage of
comptete  flexibility.   Parts  can  be started while other parts are still
playing,  and  XX  or  XL  events can be used to stop looping parts without
calculating their normal stop points.

MSR-    ST      EVNT    TIME            CH TYP  NOTE    VEL     DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1         0                     A       0         0  1
1-      1       2         0                     B       0         0     2
1-      1       3         0                     C       0         0     1
9-      1       4       768                     B       0         0     2
9-      1       5         0                     D       0         0     99
9-      1       6         0                     E       0         0  1
13-     1       7       384                     F       0         0     1
13-     1       8         0                 XX    D

This  example  might  be used to play a song with the same beginning as the
one  in  the  previous  example.   Eight bars into the piece, sequence B is
started  for  two more plays.  Sequence D, perhaps just a sixteenth note hi
hat,  is started indefinitely, and sequence E is started for a single play.
Four bars after that, sequence D is stopped and sequence F is started.  The
second  method is the one Dr.  T usually prefers when he is composing music
instead of writing software.

Control Sequences as Real Time Controllers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many  of the KCS's event types which modify the playback of other sequences
can  be  used  as  real  time  controllers  themselves, by creating control
sequences  which  perform  specific  operations  on  other  sequences.  For
example,  suppose that you find that, when creating songs in Open mode, you
often  have a need to mute every part EXCEPT your drum sequences.  Assuming
that  you use channel 16 for your drum parts, enter the following sequences
in sequences 91 and 92.

MSR- ST EVNT     TIME  CH  TYP   NOTE  VEL   DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1         0               MS      *
1-      1       2         0               US   *16

MSR-    ST      EVNT     TIME  CH  TYP   NOTE  VEL  DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-      1       1       0                 US    *

Now  typing  91 on the nuberic keyboard will mute all active sequences, and
immediately unmute all active sequences that start with an event on channel
16.   This  is  effectively  the  same as muting all sequences but those on
channel  16.   Sequence  92  will  return  all sequences to their original,
unmuted status.

Note  that,  as  with  all  applications  which  involve starting Open mode
sequences  from  the  keyboard,  the  number of repeats programmed for each
control  sequence  will have a profound effect on the operation of any real
time  control  sequences.  In the preceeding example, if sequence 91 is set
to  loop  indefinitely,  then all subsequent sequences on that start with a
channel  other  than  16  will be muted each time sequence 91 loops, and if
sequence  91  is  set  to  loop  only once, then sequences that start after
sequence  91  is  played  will not be muted.  Generally speaking, real time
control sequences should be set to repeat only once, if predictable effects
are to be obtained.

Real time control sequences can perform more exciting functions than simply
muting  tracks,  though.   Suppose  that,  for  some  reason, you'd like to
simulate  the  effect  of playing a 33 RPM record at 45 RPM.  In this case,
you'd  need  to  speed  up  the  sequencer's  tempo,  while  simultaneously
transposing each part up by a corresponding amount.  The following sequence
does just that:

MSR-  ST         EVNT  TIME  CH  TYP  NOTE  VEL  DUR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1-       1        1         0      AC   372
1-       1        1         0      PT     *   5

If  you're  picky  about details, you could program a sequence in which the
tempo  and  pitch  transposition  are  gradually increased, to simulate the
flywheel  effect  caused  by  the inertia of the turntable.  Of course, you
will  probably  want to create a corresponding sequence to return the speed
to normal, unless you really enjoy listening to records at the wrong speed.

If you have created a series of real time control sequences that are useful
in  a  number of applications, it may be convenient to save these sequences
in  a  group, so they can be loaded for use with other sequences.  This can
be done by simply creating a song, in Song mode, which contains all of your
real  time  control  sequences.  Such a song would never be played as other
songs are, of course, but this technique allows these sequences to be saved
and loaded as a group.  See Chapter 10 for details.

Additional Control Sequence Techniques
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You may wish to create a separate control sequence that contains all of the
program changes needed for your song.  You might want to put a few steps of
rest  in this sequence if using the first technique, or start this sequence
slightly  ahead  of the others.  The extra time gives the program changes a
chance to "settle" before any notes are played.

You may wish to set up the basic structure of your song using either of the
above  techniques,  and  then  use  the  RECORD  WITH  CUE  feature  to add
additional  parts  which  can start at any point in the sequence.  You must
then  add  a sequence start event (without a WAIT) for each new sequence at
the  beginning  of  the main control sequence.  Dr.  T frequently uses this
technique  to  overdub  continuous  controller  information after the basic
piece is completed.

Suggestions on Timing Resolution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The   Keyboard   Controlled  Sequencer  defaults  to  a  resolution  of  24
steps/beat.   This  corresponds  to  clocks  that are separated by about 20
milliseconds  (ms)  at a tempo of 120 beats/minute.  The program allows you
to  increase  the steps/beat value up to 384, but there are several reasons
that we recommend a value no higher than 96.

Given  that  it  takes  1  ms  to  send  most  MIDI  messages,  and that no
instruments will respond instantly, setting the time between clock steps to
1  or  2  ms  does  not  give you as much increased resolution as you might
think.   A  higher resolution creates larger time and duration values which
are more difficult to edit.

Other  disadvantages  stem  from  the  design  of the KCS.  The program was
designed  to  use  the time between clock steps to do work to get ready for
the  next time step.  If the time steps are too close together, the program
will  not always be able to do this work.  The program was also designed to
play  the  lower  numbered  tracks or sequences before the higher numbered.
This order is preserved even when tracks are copied to a sequence.  You can
thus  improve  timing  of  critical  parts  by  putting  them on the lowest
numbered  tracks  or  sequences.   If the time steps are so close toghether
that  the program has not finished with the previous time step before it is
supposed to start the next, this advantage will be lost.

When  in  Track  mode,  timing  accuracy  may be affected slightly by mouse
movement  and  placement.   Generally speaking, if you have critical timing
requirements,  you  should avoid moving the mouse while in Track mode, and,
on the ST, keep the mouse away from any active display areas on the screen,
such  as  the measure/step counter or the activity displays.  We have never
found  a  need  to  do this, but if you are a perfectionist and are working
with a high resolution clock, these steps may be helpful.

The real time clock is derived from the same clock used to step through the
sequencer.   Thus,  when  an  external  clock is in use, the program has no
direct  knowledge  of  the tempo - so the calculations used to maintain the
real  time  clock  are based on the TM, AC and DC events within a sequence.
This  might  seem to be an inherently inaccurate method for calculating the
time,  but  as long as the external clock source is a SMPTE or similar sync
signal  (such  as that generated by our Model S synchronizer) that was laid
down  using  the  same  tempo  changes,  the results are excellent.  In our
measurements,  we  have  found  the  accuracy of this method to be around 1
second  in  4  hours using the same computer as the clock source, though in
real  life the accuracy of the clock will be limited by the accuracy of the
tape deck's motors.  The tempo events in a piece are also used to calculate
the real time clock value when chasing a cue point, either in response to a
MIDI  song pointer message or to selecting a "play from cue" operation, and
to  interpolate  between  MIDI  clocks when synchronizing to an external 24
PPQN  clock  (for instance) while using a higher internal clock resolution.
Since MIDI song pointer messages are quantized in units of six clock steps,
the  time and tempo calculation routines used for these purposes by the KCS
expect  to  see  TM,  AC,  and DC events auto-corrected to a six step grid.
Otherwise, timing inaccuracies will result.

The  longest  single  rest  (DE event) that the program can record is 65535
steps, which corresponds to about 683 bars at 96 steps/measure.  If you are
recording  a  part that begins more than this number of steps into a track,
the  part  will play 65536 steps earlier than you expect, and you will have
to put extra rests in from the edit screen.

Syncing to Tape
~~~~~~~~~~~~~~~
If  you  are  using  a  sync  to tape box such as our Model S or the Roland
SBX80, we suggest that you mute all tracks, sequences, or channels when you
lay down the sync tone.  The reason for this is that, when the sequences is
playing  a full set of sequences, the MIDI data st5ream is pretty busy, and
the  timing  of  individual  clock  messages  may be affected slightly.  By
muting  all  sequences, we allow the computer tofunction strictly as a very
expensive  but  deadly  accurate  MIDI  clock  source, which is all that is
needed  when  laying  down  a  sync tone.  However, be sure NOT to mute the
conductor  track in Track mode, or any Open mode sequences that contain TM,
AC,  or  DC  events, as this will eliminate all your tempo changes from the
sync track!

The exact procedure for recording a sync tone will depend on your sync box,
but  the  basic  method  is  as  follows.   First,  set up the sequencer as
described above, then start the tape recorder.  After it has run for a bit,
start  the  sequencer.   When  the song has finished, stop the recorder and
rewind the tape.  (You might want to let the clock run on for a while after
the  song  ends, in case you decide to lengthen the song later.) Now unmute
all  the  previously  muted  tracks or sequences, set the sequencer's clock
source  to  MIDI  (or  MIDI W SONG POINTER.  if your sync box supports this
feature)  on  the  SET OPTIONS screen, and patch the MIDI clock output from
the  sync  box  into  the  computer's MIDI input.  From here on, everything
should function as described in your sync box manual.

Sending System Exclusive Messages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System  exclusive  messages,  which most MIDI hardware manufacturers use to
communicate  patch  data  and  other non-standard message types, can be set
from the KCS using single byte events.

For many shorter messages, the single byte events can be simply inserted in
the  sequence without any adjustments to the remainder of the sequence, but
for  longer messages such as data dumps, it may be necessary to add time to
the sequence after the message, to allow the KCS to "settle".  For example,
it  takes  about  1 second to send a 3000 byte sysex message.  This message
should  all  be  sent  on one time step (that is, each event in the message
should  have a TIME value of zero) since the receiving instrument may react
strangely  if  delays  are inserted into the message.  While the message is
being  sent, the sequencer is accumulating a "backlog" of other messages to
be  sent  (MIDI  clocks,  note  messages,  etc.)  which  will  all  be sent
immediately after the sysex message as the sequencer tries to catch up with
itself.   For  this  reason,  it's a good idea to put a dead space, with no
activity  in  eiher the sequence itself or any synchronized instruments, in
the song immediately following any large sysex messages.

The  KCS  can directly record system exclusive messages of up to 5000 bytes
if  the  SYSEX  button  on  the SET OPTIONS page is active.  Sometimes bulk
dumps  (which  may  be  longer  than this limit) may consist of a series of
shorter sysex messages.  These will be recorded properly if each individual
message does not exceed this limit.  For larger messages, the public domain
program  DRTSYSEX.PRG  (ST  only),  which  can be found on a number of MIDI
related  bulletin  boards, can be used to converert sysex messages of up to
32K bytes into sequence files.

To  record  a  sysex  data  dump  from a MIDI instrument, turn on the SYSEX
button  on  the  SET  OPTIONS  screen, and select an Open mode sequence for
recording.    Following  the  instructions  in  your  instrument's  manual,
initiate  a data dump forom the instrument's front panel.  If everything is
working  properly,  the sequencer will start to record immediately, and the
word  SYSEX  will  appear on the screen as the name for that sequence.  The
sequencer's  clock  may  pause  momentarily while long data dumps are being
recorded.

If  you  have  an  instrument  that does not allow sending sysex data dumps
directly  from  its front panel, it may be possible to initiate a data dump
by  sending  a  "dump request" message to the instrument from the Open mode
record  screen, while recording the data dump in an Open mode sequence.  Be
sure  that  your dump request sequence is set to play only once; otherwise,
strange  behavior  will certainly result.  Synths which require handshaking
during sysex dumps, such as Casio and some Roland instruments, will need to
have  delays  inserted  a  certain  points  in  the dump request.  See your
owner's  manuals for details on dump requests, and please don't call us for
help with specific instruments!

Transferring Sequences from Other Sequencers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If  you  are  upgrading  to  the  Keyboard Controlled Sequencer from a less
powerful hardware or software sequencer, you might be wondering if you will
have  to  redo  all the work you've done on your old sequencer, to play the
same  music  on  the KCS.  Fortunately, transferring sequences into the KCS
from  another  instrument is quite simple.  Essentially, we treat the older
sequencer  as a keyboard player with a built in MIDI clock, and let it play
into the KCS while we record.

First,  set the external sequencer to send MIDI clock, and disable looping,
if possible.  If you can't turn looping off on the external sequencer, make
sure you have a blank sequence available in that machine.  The tempo of the
external  sequences  can  usually  be  set  to  its  maximum  value with no
problems, which is handy if you have a lot of sequences to transfer; but be
careful  when  transferring  dense  music, since minor timing discrepancies
might occur due to MIDI data logjams.

On  the  KCS,  set  the  clock  source  to  MIDI,  enable  the recording of
controllers  and  aftertouch,  and turn MIDI MERGE on.  ECHO should be off,
and  you will probably want to leave FILTER off as well, unless you want to
record  one channel at a time.  QUANTIZE should be off, and ALIGN should be
on.

Now  go to the Track or Open mode record screen, as you prefer, and you are
ready  to  record  material  from  the original sequencer.  If recording in
Track  mode,  be  sure not to set the length of all tracks.  You can either
record  a  single  sequence,  pattern, segment, whatever, from the external
device,  or  an  entire song.  We usually prefer to record single sequences
from  the external device in Open mode, and then string them together using
control  sequences or Song mode.  Once a sequence is recorded in Open mode,
it  is  a simple matter to bread it into individual channels by copying the
sequence to Track mode.

When  you  enter  the  record  screen, ensure that recording is enabled and
press  F10  or  the  SPACE bar to start recording.  The KCS will wait for a
start  signal  from the external sequencer.  Start your song or sequence on
the  external  sequencer, and data on all 16 MIDI channels will be recorded
by  the  KCS.   If  looping is disabled on the older sequencer, then a stop
signal  will  be  sent at the end of the sequence and recording will cease.
If  looping  is turned on, then select the blank sequence mentioned earlier
after  starting  the external sequencer.  On most machines, this will cause
the  blank  sequence  to  start  as soon as the first sequence is finished.
Stop  both  sequencers  after the blank sequence starts.  In this case, you
will  undoubtedly  need  to  remove  some time from the end of the recorded
sequence  or track, to compensate for recording part of the blank sequence.
In  either case, you may also need to make slight adjustments to the timing
of the first event of the track or sequence.

Since  drum machines are nothing but stripped down sequencers with built in
sounds,  drum patterns can be transferred to the sequencer in the same way.
This allows you to keep all of your drum parts on the same disk as the rest
of a song.

For more information on transferring sequences between two instruments, see
the December 1986 issue of Music Technology.

Loopback Recording
~~~~~~~~~~~~~~~~~~~
Loopback  recording  is  an extension of the idea of transferring sequences
from  another  sequencer; but in this case, the external device is replaced
by  a  previously recorded track or sequence in the KCS itself.  This might
seem like a strange notion at first, but there are a number of applications
for  this technique.  For example, loopback recording can be used to reduce
a  complex  control sequence to a single sequence for use within a song, or
for capturing a performance using the interactive play features of Track or
Open modes.

To  set  up  for loopback recording, connect the computer's MIDI in jack to
its  own  MIDI  out,  either  directly  or through a merger.  Set the clock
source to INTERNAL CLK.  ECHO and MIDI MERGE must very definitely be turned
off,  and  MUTE  NEW TRACKS should be on of you're in Track mode.  You will
need  to  turn  FILTER  on  if you want to record on only one channel while
listening to all channels.

From  here,  the procedure is the same as recording from a keyboard, except
that  the  KCS is providing th ekeyboard player.  Simply turn RECORD on and
start  the  sequencer.   One  way  to use this technique would be to bounce
portions of several tracks down to one trakc, while muting and unmuting the
individual  tracks  as  needed.   The  result would be a single track which
contains  only the portions of the other tracks that you want to keep.  You
could  double  portions  of  a track using loopback recording by muting the
track  in  the  appropriate places, and then merging the new track with the
original.   In  Open mode, loopback recording can be used to reduce a song,
which  may  have  evolved  from  a  few  simple  sequences  to  an ungainly
collection  of  looped and unlooped control sequences interspersed with XX,
XL,  and other events, to a more manageable single sequence.  If you prefer
to  create  songs  in real time by starting and stopping sequences from the
keyboard, loopback recording can be used to capture such a performance.

The   velocity   pedal  feature  of  Open  and  Track  modes  was  designed
specifically  for  use  with  this  technique.   As  a sequence or track is
played, it is re-recorded in another sequence or track with velocity values
processed by the velocity pedal.  When doing this, you will need to set the
filter  channel  to  the  channel  of  the  sequence or track that is being
processed with the velocity pedal, so that only that channel is recorded.

End of Part 3 .... Ahemm, we had intended this to be the final part to this 
doc,  but  unfortunately we ran out of disk space,  so you'll just have  to 
wait for Doc Disk 21 to get part 4 (another 30K).