This is a  TX81Z/DX11  voice  archive.  It  includes  over two  thousand
voices and some tools to help humans organize these voices.


Copyright
---------

I'm not a lawyer.

My  intent is that  having  put a lot of hours of my own time  into this
project, I'll be really mad if someone takes it and sells it for profit.
Therefore, the following restrictions apply to my stuff:

As far as I know, the voices in this archive are public domain.  (I have
checked this as far as I was able.)  I make no  copyright  claims on the
voices  themselves,  and  people can do what they want with  them.  If a
copyright  owner finds a copyrighted  voice in this  collection,  please
tell me and I'll remove it.

This  "collection of voices" and the shell and C tools mentioned in this
document are Copyright 1991, by Bryan Sutula.

I am entitled to copyright protection on the "collection of voices", and
the  tools  I have  provided  with  this  archive.  The  tools  and  the
"collection of voices" may be be freely copied and used, provided  that:

1) this   copyright   notice   continues  to  accompany  the  tools  and
   "collection of voices", and

2) no fee (other than actual distribution costs) is charged for the sale
   or distribution  of the tools,  "collection of voices", or derivative
   works.

If you need to charge  someone $10 to mail copy and mail a disk,  that's
fine with me.  I am only trying to guard against  someone  making profit
from my work.  (Having  donated my time, I'm asking you to donate  yours
as well.)


Contents
--------

The contents include:

arch_x.x        The actual archive  containing voice data.  This is BIG.
                The "x.x" refers to the revision  number of the archive.
                Sometimes,  there are two or more voices in the  archive
                with the same name.  In these  cases,  the actual  voice
                data is different  (probably someone edited the voice to
                suite their own tastes) and I didn't feel  qualified  to
                decide  which to keep.  Generally  speaking,  the voices
                which came to me from  Duane  Bowker's  collection  have
                less controller sensitivity than those from Rod Lemcke's
                collection.

summ_x.x        A summary of the voices in the archive  data file.  This
                is not as big.

format.doc      A text file describing the layout of the archive file.

In  addition  to the above  three  files, a number of  "perhaps  useful"
utilities have been developed which may aid the user in getting all this
voice data into his synth, and in adding  other  voices to the  archive.
These  are  in the  tools.shar  file,  which  is a  shell  archive.  The
programs include:

asc2tx.c        A C program which  converts from archive ASCII format to
                binary or GLIB  library  format.  The  binary  format is
                suitable for sending directly to the synth.

tx2asc.c        A C program  which  converts from binary or GLIB library
                format to archive ASCII format.

gen_controls    A shell  script  which  looks  at an  archive  file  and
                generates a list of active controllers for each voice in
                the file.  This is only used if you want to put your own
                voices into an archive file.

merge_controls  A shell script which merges the output of "gen_controls"
                into an existing archive file.  This is only used if you
                want to put your own voices into an archive file.

patch_split     A  shell  script  which  splits  a  voice  archive  into
                separate  files,  each new file  containing  32  voices.
                Since the synth can only take 32 user-defined  voices at
                a time,  this can be used to  break  up the big  archive
                file into  synth-sized  pieces.  Output options  include
                archive  ASCII  format,  binary  (suitable  for  sending
                directly to the synth), and GLIB library format.

select_voice    A shell script which takes a line number and returns the
                voice  starting  at that line  number.  This  might be a
                good starting point for users who want to develop custom
                voice selection stuff.

select_voices   A shell  script  which  takes a list of  voices  (in the
                format provided by "summary") and produces a new archive
                file  containing  only those voices.  This is similar to
                doing  "select_voice"  in a loop.  The usual usage would
                be to make a copy of the summary file (summ_1.0), delete
                those  voices  which  are not of  interest,  and run the
                resulting  list through this script.  The result will be
                an archive of only the voices which were of interest.

summary         A shell  script which  produces the summary  file for an
                archive  file.  The summary file  contains one voice per
                line, making it easier for humans to edit,  review, etc.
                Besides the name of the voice, the summary file contains
                the  line  number  of the  start  of the  voice,  active
                controller  information, and any description  found with
                the voice.

MS-DOS  executables for the "asc2tx" and "tx2asc" tools are also in this
directory.


Typical Usage
-------------

Note that the files  mentioned  above are stored in the ftp directory in
compressed  format (.Z  suffix).  You need to run  "uncompress"  on each
file before you can use it.

Case 1:  User  wants all voices  out of this weird  format  and into his
         DX11.

a) You lose.  Only 32 voices fit at one time.

b) Anyway, run "patch_split" on the archive to produce a bunch of little
   voice files, which are about 4k apiece:

        mkdir archive
        patch_split -g arch_1.0 archive/ar

c) You now have a directory called "archive" containing many voice files
   which you can load into your  synth  with GLIB.  Use the "-b"  option
   instead of "-g" if you want raw system  exclusive files which you can
   load with MIDIEX.EXE or equivalent.


Case 2:  User wants some of the voices from the archive into his TX81Z.

a) Copy "summ_1.0" to another file, say "my_summ".

b) Edit  "my_summ"  with a plain  ASCII text  editor.  Delete  lines for
   voices which you don't want.  Quit editing after saving new file.

c) Run "select_voices" to produce a new archive:

        select_voices arch_1.0 <my_summ >my_arch

d) Run  "patch_split"  to  produce  the files you can  download  to your
   TX81Z:

        patch_split -b my_arch ar               # For raw binary files

                or

        patch_split -g my_arch ar               # For GLIB format files

   This will produce a bunch of files  starting  with "ar", like "ar00",
   "ar01",  "ar02", etc.  Make sure files with these names don't already
   exist.

e) Send one of the files to the synth with GLIB, MIDIEX.EXE, or whatever
   you use.


Case 3:  User wants to make an archive out of his own voices.

The tools are here to do this.  The procedure  you use will be different
depending  on your type of  computer  and the source of your  voices.  A
procedure  will not be  specified,  but you will use  tx2asc  to get the
voices into archive  ASCII  format, and you may use  "gen_controls"  and
"merge_controls" to add the "** Controls:"  comment to each voice.


Case 4:  You want to exchange voices with your friends.

a) Get your  voices out of the synth  into a raw binary  file, or a GLIB
   library file.

b) Run "tx2asc" on the file:

        tx2asc <your_file >asc_file

   (Use the "-g" option if you're  coming from GLIB, or the -r option if
   your librarian already stripped off the system exclusive header.)

c) You can now use  email to send  your  friends  selected  voices  from
   "asc_file".  They can use "asc2tx" to convert back to binary format.


New Voices
----------

If you have  non-copyrighted  voices, please put them in this directory.
You  didn't  tell me how to post  these, so I won't tell you how to post
yours.  I would  encourage  you to use the same format as I did, so that
users of these voices can simply  collect the ones they want in a single
file,  and deal with them the same  way.  Feel free to use my tools  for
this purpose.

I want  to  discourage  you  from  trying  to add  your  voices  to  the
"arch_x.x" file and put it back in this directory.  For starters, we run
the risk of corrupting the collection  with all the transfers.  Also, if
new files  appear, users will be able to spot them and just grab the new
file,  rather than having to transfer the whole  archive  again.  A user
can  always  tack the new file  onto his own  copy of  "arch_x.x"  if he
wants.


Acknowledgments
----------------

Art Hitzeman suggested the format of the archive itself, and has offered
suggestions  and done alpha  testing.  He also  contributed a few of his
patches.

Steve Michelson  provided many of the patches in the archive, by sending
me a copy of his  dx11lib  program  (which  included  a patch  library).
Steve got most of these  patches  from  Duane  Bowker,  who (I  believe)
collected  them  from  the  internet.  Many  thanks  to both  for  their
previous work.

Rod Lemcke sent me a bunch of patches he had  collected.  Although  many
were patches which were also in the Steve/Duane patch library, there was
also a lot of new material, and even those with duplicate names had been
edited by someone so that they really were distinct voices.

In  early  July,  1991, I got a bunch of  voices  from the  TX81Z  patch
directory at ucsd.edu.  Most were  duplicates of what I already had, but
I've included 51 voices from this collection which were new, or were not
exactly  the same bits as those  already  in the  archive.  There was no
information  in the ucsd.edu  directory  which  pointed to the source of
these voices.

I don't know how to acknowledge the real  contributors.  All the authors
of these voices have contributed a great deal, but I don't even know who
they are.  I will be glad to change the source line to reflect  the real
author's name, based on input I receive.


Bugs, etc.
----------

Send  bugs,  comments,  or  other  change   requests  to  Bryan  Sutula,
sutula@hplvla.lvld.hp.com.  I do not promise  any level of support,  but
will do what I can.
