

                             yam77 (Version 1.1)



     The  program is written in Turbo C and has been tested on an  Elonex
     486  running  DOS 5.0.  I use a TG77 so this has not been tested  on
     the SY77 but as far as I know the midi implementation is pretty much
     the  same except for the individual output selects on the TG77 so  I
     would expect the program to work.

     The program requires an MPU compatible midi interface card.  I use a
     Voyetra  V22m  and  the  MPU is used in dumb  (UART)  mode  by  this
     program.

     Acknowledgements  to  Jim  Conger for the ideas I used from  his  "c
     Programming for MIDI", and Sam Herrington for hacking assistance.





     YAM77.EXE

     Firstly,  the program is not yet complete but I could use some  user
     type  feedback before continuing.  Because of the sometimes  obscure
     ways  that Yamaha store their data there are probably a few features
     in the program which need fixing.



     The program is designed to allow the automatic downloading of single
     voices,  banks of 16 voices, or memories (i.e.  64 voices) from your
     TG77  or  SY77.  You can also download and edit the  program  change
     table.   You can then inspect all of the parameter settings for  any
     voice.  (The idea I have is to eventually turn this in to an editor)

     The  program  also  allows you to upload any of  the  aforementioned
     automatically.

     BEWARE!!   -  when you do an automatic bulk dump the memory type  is
     ignored.   Although  this  means that you can  easily  dump  voices,
     banks,or  complete  memories  from either the internal  or  the  two
     preset memories, when you upload, the voice(s) will always be stored
     in INTERNAL memory at the corresponding voice position.  Thus Preset
     1  bank  A voice 1 when uploaded would be stored in Internal  memory
     bank A voice 1.  NOT IN THE EDITOR BUFFER!

     BASIC OPERATING INSTRUCTIONS.

     On  the top line of the display there is a ring menu which shows all
     of  the available options.  Either use the cursor keys to  highlight
     the option you require and then press enter, or alternatively double
     click the mouse on any of the options in the ring menu.  The program
     automatically  looks  for  a directory on the current  drive  called
     \voice and will create it if it does not exist.  You are not obliged
     to use this directory but it is the default.









     "Chg_Dir"

     This  permits  you  to change from the default directory  \voice  to
     another directory of your choice.

     "Select"

     Before  displaying a voice file or a program change table file it is
     first necessary to select the required file.  The Select option will
     list  all files contained in the current directory whether they  are
     legitimate  midi files or not.  Either use the arrow keys and  enter
     to  select  the required file or alternatively double click  on  the
     name  of  the file you wish to work with. If there are more than  80
     files  in your directory you can use the 5 key on the numeric pad to
     advance  you  to the next screen or double click the double  chevron
     character  displayed in the bottom right hand corner of the  screen.
     If the file is a valid voice file a window will open which shows the
     basic  characteristics of the voice. If the file is a program change
     table file, a message to that effect will appear in the window.  Any
     other  file  will produce a message to the effect that the  selected
     file contains no midi data.

     "Display"

     This  function  will display the selected file.  The usage  of  this
     option  is  pretty straightforward.  You may either use the function
     keys  or double the click the button character next to the  function
     key display.


     "Get_Bulk"

     This  option  permits  the automatic downloading of  data  from  the
     synth.   You  may  download a single voice, a bank of 16  voices,  a
     complete memory of 64 voices, or the program change table.  You will
     be  prompted  for the location of the data to download  i.e.   voice
     number,  bank,  or  memory and be asked to supply a  file  name  for
     storage.  If the file already exists you will be asked if it is o.k.
     to  overwrite  it.  The program simply sends a bulk data request  to
     the synth formatted according to the responses entered earlier. When
     data  is  being downloaded, a running count of the number  of  bytes
     being  transferred  will  be displayed.  When  the  download  window
     opens,  if no data appears to be transferring initiate a manual bulk
     dump  from  the synth.  I mention this because I had  some  problems
     trying  to  get  the  timing right and whilst  the  program  behaves
     properly  on my system it is not impossible that problems may  arise
     on a slower (or faster) machine.

     "Put_Bulk"

     Before  using  this  option, make sure that the bulk  data  transfer
     protect switch is off.

     This  option will upload a selected voice, bank, memory, or  program
     change  table file to the synth.  Remember that the INTERNAL  memory
     in your synth will always be overwritten.











     "SplitBnk"

     This  option  takes a previously downloaded bank or memory file  and
     breaks it down into individual voice files.  The files are given dos
     style  names which means some apparent changes to the voice name  as
     illegal  dos file name characters can be used on the synth.  However
     the internal voice name in the downloaded file remains intact.

     Things  like  spaces  or  asterisks are  generally  replaced  by  an
     underscore or something legal.

     The Program Change Table

     It  is  possible  to  download  the  program  change  table  and  to
     subsequently  edit it and re upload.  Because there is no way that I
     know  of to get a hold of the voice names using midi sysex  requests
     the  following  procedure should be adopted to enable you to  get  a
     voice  list  of  each  of the preset banks and  the  internal  bank.
     Download  all three banks using the Get_Bulk command.  Then use  the
     SplitBnk  option  to  break the banks down into  individual  voices.
     While  this  is being done, a file will be written which contains  a
     list  of  all  the voices in the bank.  This file will be  named  as
     follows:-

     Preset   Bank 1 will be called preset1.
     Preset   Bank 2 will be called preset2.
     Internal Bank   will be called internal.

     A  file is also supplied with this program called "card".  As it  is
     not  possible  to download card based voices, this file  contains  a
     list  of names in the form "card 1" to "card 64".  NB!  All 4 files,
     preset1, preset2, internal, and card must be present in order to run
     the edit option.

     To  edit the program change table, first download the program change
     table.   Then Select that file.  Display it using the Display option
     and then select the edit option.  The table is displayed in banks of
     16.   Whilst in edit mode double click either the mode or the  voice
     name  you  wish  to  change.  A window will  open  up  which  either
     displays  the available modes or the list of voice names appropriate
     to  the  memory  location  specified  in  the  mode  selected.   The
     exception to this is card based voices which will be listed as card1
     through  card64.   Simply double click your selection from the  list
     displayed.   (You can double click anywhere within the name  field).
     When  you  are  satisfied with the block you are editing  close  the
     window  by double clicking the button contained in the window border
     and  you will be returned to the previous menu where you may  select
     another  block  of 16.  When you finally exit from this  screen  you
     will  be  prompted  for a file name in which to store  the  modified
     program change table.  You may either overwrite the existing file or
     create  another  one.  This file may then be uploaded to  the  synth
     using  the Put_Bulk option.  When you upload this file to the  synth
     you will probably (make that definitely!) get a midi checksum error.
     This  has no adverse effect and may be ignored.  (If anyone can tell
     me  exactly  how  yamaha calculate their checksums I would  be  very
     grateful!).


     The  other  functions are self explanatory.  Options called  proc???
     are currently spare and do nothing.





     The ESC key will always take you back up a level (and ultimately out
     of the program)


     If you are using a rodent double clicks are always required.  On the
     ring menu double click anywhere in the option you want.  In the file
     select  screen double click anywhere in the required file name.   In
     general  double  clicking the square box contained in the [  ]  will
     exit  that  screen or if associated with a lower level  screen  will
     take you there.



     This  version of the program is freeware.  Do whatever you like with
     it.


     FEEDBACK WELCOMED (even negative ;-))


     Mark Smyth (nomad@cix) (100042,1054 on Compuserve)
