Date: 27 Dec 86 19:39:59 GMT From: ucsfcgl!pett@ucbvax.Berkeley.EDU (Eric Pettersen%CGL) Organization: UCSF Computer Graphics Lab Subject: Patch Librarians/Generators Due to the response to my query about interest in ST voice librarians/generators for the Yamaha DX100 and Casio CZ-101 (more than 40 responses), I have decided to post to the net. The three postings which follow contain ARCed versions of the executables for each program (one archive = CZ-101, one archive = DX100) as well as the combined souce (third archive). There was a lot of interest in the source because many people wanted to attempt conversions to various other synthesizers (conversion to other DX series synths should be very easy [thank you Yamaha!] while CZ conversions will be a bit [read - a lot] tougher. These programs should work without conversion (although I haven't *tested* them) on the DX27 and CZ-1000 and CZ-5000 because their patch formats are identical to one of the above synths. If anyone converts these programs to other synths, or otherwise enhances them, please post! Also, if you come up with any great patches, let the net know! With these programs available generally around the net, it suddenly becomes extremely easy to distribute patches. Just write the patches of interest to disk, upload and uuencode them and post. Everyone with the program can then just grab the article, transform it back to file form, load it into the program and then into the synth (no laborous patch entry!). Patch files are relatively short as well. As a starting point, all the patches my friends and I have come up with are included in the appropiate archive. Check them out and use them if you like them. What these programs do: --> Store patches so that the ST can send them back and forth to your synth and you can therefore have a large library of patches easily available. --> Allow you to give long descriptive names to your patches. --> Generate new patches in a semi-random fashion that you can try out easily and keep or discard as appropiate. The parameters that control the generation of voices are external to the program (in an ASCII control file) and can therefore be altered or fine-tuned as you see fit. --> Allow you to rearrange the voices in your library into the order you desire. --> Work in any resolution. What these programs don't do: --> Edit the voice *using the ST*, the (I know, painful) editing facilities of the synth must be used. --> Store the voices in a hierarchical manner. This would be good in that it would allow a voices of similar function to be grouped or accessed together. --> Use GEM (although they are easy to use and *are* menu driven, you'll see -:)). ----- The archives contain: Archive 1 (PATCHSRC.ARC) ------------------------ PATCH.C Source to both CZPATCH.PRG and DXPATCH.PRG (by using #ifdefs) CONVERT.DOC Pointers for converting the code for use by other synths, as well as some explanations of the functioning of various parts of the source code. CURSES.C Don't get your hopes up. This is the sources to the routines that I use commonly throughout all my programs. Includes a routine to do screen addressing functions [scr_func()] and one to get a character string from the user, allowing common editing functions [get_str()] as well as a few other goodies. CURSES.H My handy-dandy do-all include file. Used particularly in conjunction with the above. COMPILE.DOC Describes what is necessary for compilation (this is Alcyon C code, by the way). CONVERT.PRG Utility that converts binary files to ASCII hex and vice versa. Was invaluable when creating the data files that CZPATCH.PRG needed due to details of the CZ101 MIDI system exclusive implementation. Archive 2 (DXPATCH.ARC) ----------------------- DXPATCH.PRG Executable patch program for the DX100 (which will also presumably work with the DX27). PATCH.DOC File detailing the operation of the program, as well as the contents of the files below. DX100.DTA ASCII file containing the parameters controlling random voice generation. DXVOICES.DTA File containing the actual patches (starts out with the ones that I'm distributing). KEYTAB.DTA Data file used internally by DXPATCH.PRG . Archive 3 (CZPATCH.ARC) ----------------------- CZPATCH.PRG Executable program. Should work with CZ-1000 and 5000 as well as CZ-101. PATCH.DOC Same as PATCH.DOC above. Can be discarded if you are keeping both archives. CZ101.DTA Similar to DX100.DTA . CZ101.DOC File detailing parameters being set by CZ101.DTA. CZVOICES.DTA Similar to DXVOICES.DTA . CZMIDI.DTA Contains tables (in binary) for converting parameter settings to the hex code necessary to transmit to the synth [why are these so strange, Casio?]. KEYTAB.DTA As in archive 2. One can be discarded if keeping both archives. I recommend that you transfer the archives to your ST and then uudecode and de-ARC. This seems to be the most reliable method of avoiding errors. If for some reason you need the source code in clear form (not ARCed, not uuencoded) E-mail me and I will send you a copy (ucbvax!pett@socrates.ucsf.edu). I will also be trying to upload these onto several bulletin boards [Ataribase, MIDIworld network (in LA), STrategic Command (in SF), and The Club II (in Detroit)]. Eric Pettersen UCSF Computer Graphics Lab