Gus2xi v0.5 -------------- THIS SOFTWARE IS FREE. NO WARRANTIES OF ANY KIND. The version number indicates that this is alpha/beta/gamma software and there are still less warranties. Although: it works for me. Introduction/Purpose: --------------------- Gus2xi is a converter of patches for the Gravis Ultrasound (GUS) into the Fasttracker 2 (FT2) extended instrument format (XI). FT2 itself can load GUS-patches, but the resulting envelopes and some pitches often seem wrong to me, so a more correct conversion of both was the first reason to do this program. The second reason is to get a complete GM-patchset for another program by me: m2buzz, which lets you convert MIDI-files (and MOD,XM) to BUZZ songs, but you need the patches in XI-format. So it would be nice to have at least a batch converter or still better if the converter could deal with the ultrasnd.ini, where the GUS-patches are assigned to the program numbers. Other programs, like Awave, which should let you do this, again don't deal with the envelopes correctly. The final aim is to let MIDI-files directly after the conversion to BUZZ sound almost as played with the GUS or the Cubic-Player (for limitations see below), which would be a good base for further work in BUZZ. Usage: ------ So here is a first version, which still lacks some features, but does the basic work it was intended for: You can convert a single patch file with something like gus2xi acpiano.pat and get a file acpiano.xi in the current directory (no overwrite test!). Or you can use a copy your ultrasnd.ini with gus2xi ultrasnd.ini which converts all patches in the melodic and drum banks number 0. Be sure the have the correct paths to your GUS patches in your ultrasnd.ini. The resulting files are hexadecimal numbered as needed for m2buzz: melodic instruments gmp_01.xi...gmp_80.xi (=program numbers 0...127) and drums in the range gmp_81.xi...gmp_ff.xi, but only the assigned ones (remember to check the "single drum XI" option in m2buzz). Again there is no test for overwriting done! Converted Features: ------------------- Assumed are single layered patches as usual with GUS (the PAT format allows 4 layers, but they were never used as the GUS software doesn't support this). Multi-sampled patches are allowed of course, the samples will be sorted so that lower samples come first, this is needed for m2buzz. Correctly converted should be: -all sample-data (8 or 16 bit, signed or unsigned) -loops (but no fractional loop-points) -panning -note ranges (there may be a small problem for drums, look below) -transposing (although there may be an octave problem, look below) Problematic Features: --------------------- -The finetune should be o.k. now, I'm right if I play the samples with FT2, but with m2buzz I'm one octave wrong. I can simply transpose everything an octave down (here or with m2buzz), but than the drums are too low :( Have to dig into this. -The envelope times should be more or less correct, compared with patch (the patcheditor from the GUS-SDK), but they look a bit strange, the release often seems very long. Currently I only use the first 4 envelope points, not sure about a solution for the "sampled/clamped release" and the last 2 points. At least they sound kind of correct now, better than those by FT2 ;) Missing Features: ----------------- -Vibrato isn't done yet (at least not correctly), because it's not supported by BUZZ. -The fadeout value is always set to a default of 0x080, maybe there are better possibilities? Some things generally aren't used in .PAT files, so I see no reason to support them: -multiple layers or instruments -the finetune value (tuning is done with the root-frequency) -backward-loops (look below) -The scale_frequency value isn't used, the default (60) should always be o.k. -The scale_factor normally only determines the difference between melodic (1024) and percussive patches (0), other values I've never seen. As XI's don't support this there may be a problem with percussive patches, I can get it right with m2buzz, but should find a solution, where the XI is correct, too. Not supported by target format: ------------------------------- Not possible are -backward loops (without mirroring sample data, but I've never seen one PAT with backloops), -tremolo -fractional loop-points Also the PAT envelopes are defined for every single sample, while there is only one envelope for the whole XI instrument, but usually PAT files seem to have the same envelope for all samples. I guess the possible vibrato ranges are different for both formats, the amount in .PAT may be one octave, but the rate only 6Hz, in .XI the range seems smaller, but with a higher possible rate. Plans/Future: ------------- These things may happen or not: -support of GUS-PnP patch format (FFF), they are already decoded, but not converted yet -integration of PAT format support directly into m2buzz Author: vII ------- current contact (1998): muehle@theory.phy.tu-dresden.de http://rcswww.urz.tu-dresden.de/~vmuehle/