PATCHIS (C)1993 Cornel Huth. All Rights Reserved. PATCHIS v1.01 Documentation, 11-Aug-93. This document may only be distributed with PATCHIS.EXE and PATCHIS.EXE may only be distributed with this document. For latest updates, call the RUCKUS support BBS: BBS support telephone: 1(210)684-8065. V.32bis (1200-14.4k bps) Hours: Monday through Friday, 5pm to 9am next morning Weekend hours are 1pm to 9am next morning. All times USA Central Time, about UTCtime-5. FIXES: (and commentary) 11-Aug-93 v1.01 Archive name: PATCHIS2.ZIP Couple things done. First, waveform modes: the SIGNED/unsigned data was reversed. Second, provided for overriding of PATDIR= if drive letter or any subdirectory name used. An interesting note. All Gravis/Forte documentation that I have seen regarding the patch file makeup has the waveform mode for the signed/unsigned bit meaning incorrect (not just inverted, either -- the Forte SDK beta says 1=signed & 0=two's-comp). Pretty much follows, though, since patch data information is seriously lacking from Gravis. After spending many, many hours getting needed modules for the GUS, I can see why the GUS libs are referred to as the "OS". Instead of an "OS", though, perhaps one should call it the "SOS". And while one can get results from the GUS with only a little work, to reap the benefits of the GUS takes some serious work and know-how. It is, though, oh-so rewarding to work with such a fine-sounding board (plus blowing away the limitations of the current SDK feels great). And RUCKUS 2.0 has/may not been released to the shareware crowd, though you may find RUCKUS 1.0 enticing enough. OVERVIEW: PATCHIS is for quickly looking at the information in a GUS patch data file. The following documentation describes its limitations, use, and features. LIMITATIONS: PATCHIS.EXE v1.0 can currently handle single-instrument, single- layer patch files. Multiple-waveforms are handled. USE: PATCHIS looks for the DOS environment variable called PATDIR to locate the patch files (for example, SET PATDIR=c:\snd\gus\midi). The patch filename is specified on the command-line (for example, C>patchis acpiano.pat accesses c:\snd\gus\midi\acpiano.pat, if PATDIR is set as above). The patch file is opened for READ-ONLY. If more information is available than can fit on one screen a prompt appears. Press ENTER to continue or Ctrl-C to abort. PATCHIS was not designed to tell you how to use the patch data-- it is simply a patch browser for informational use. For additional information see my RUCKUS v2.0 sound card toolkit. Filenames are RUKC10.ZIP for DOS C compilers, and RUKQ10.ZIP for QB45/BASIC7/VBDOS. These versions are available on SIMTEL20, PDN, and my BBS listed above. FEATURES: The patch's filename starts out the information, followed on the next line by the patch header, MIDI SysEx ID#, and copyright. Line 3 displays global information on the patch file, including number of instruments; count of GF1 voices for which the patch was designed; in-sync audio channels (GF1 OS use); waveforms in the patch, in total; master volume; and data size. After the global data is information for each instrument in the patch (typically just 1) and information for each layer of the instrument. Instrument information includes instrument number, (0 to header instruments-1); instrument name (or null); number of layers for this instrument; and instrument data size. Note that some versions of PATCH.EXE, the GUS patch editor, overwrites the instrument data size with a value of 1. Layer information follows. Multiple layers allow for a multi- timbral instrument where a separate voice plays one of the layers. There can be 1 to 4 layers per instrument. Layer information includes the layer number (0-3); layer-duplicated flag; samples (or waveforms) in the layer (see next); and the layer size. For each sample in the layer is a complete description of the waveform for use on the GUS. PATCHIS displays several lines of information for each waveform. After the wave number (1 to number of waves in the layer) is the file offset to the start of the sample; then the sample name (often NoName); the sample size; the low frequency usable by the sample, the root frequency, and the highest frequency that the sample should be used for. Multiple samples are used (in a layer) to offer a good sound across a frequency spectrum. Some instruments need many samples, say, one per octave, while some instruments may use/need only one or two samples. Generally, wider-sounding instruments need more samples to sound realistic (or good). The next line is the sample rate of the waveform; its loop start offset; fractional start point; loop end offset; fractional end point; tuning constant (-512 to 512); and balance. You may find that the balance of one sample for a layer plays mostly left, while a higher-frequency sample plays mostly right. You may want to override this and perform yout own balance. Next line contains the 6 envelope rates and 6 envelope volumes. Then, for AM and FM LFO (tremelo & vibrato) are the sweep, rate, and depth values. If either rate or depth=0, then LFO should be considered disabled. The last line for each waveform is the scale frequency; scale factor; and wave mode. The wave mode is a bit-mapped value with this makeup: modes are: bit 0 1=16-bit data 0=8-bit data 1 1=unsigned 0=signed data (this is correct) 2 1=looping enabled 0=looping off 3 1=bi-directional loop 0=uni-directional looping 4 1=looping backward 0=looping forward 5 1=sustaining on 0=sustaining off (3 envelope pts) 6 1=enable envelopes 0=disable envelopes *7 1=enable clamped release 0=disable (bit 7 stuff uses last env release rate) *bit 7 is not documented in SDK 2.01 but is in the beta release SDK. *bit 1 has been incorrectly documented (if at all) in all docs to date.