shazware.com - ditty ...Deal with it!

intro
download
did
do
design
tut_Config
tut_Play
tut_View
tut_Metronome
tut_Record
tut_Edit
tut_Print
tut_SFont
ref_MidiPath
ref_MidiCfg
ref_Ditty
ref_Tinker
ref_DrumTrak
ref_Txt2Trak
ref_SF2Lst
ref_SF2SFont <=
ref_SFontBank
ref_PsetEdit
ref_EdiSn
SF2SFont - rips a .sf2 file into a set of .pset and .wav files
           in the SFont directory

Ok.  Here's the background.

I like the idea of a synth on a card.  The Creative Live and Audigy cards ROCK!
   I mean, what's not to like about losing midi cables (except for midiins) and
   putting the synth on a computer card with zero latency that'll load new
   presets and samples straight from hard disk to memory to the card to speakers

What I don't like is the exact .SF2 file format.
   (A set of presets and assoc'd samples glommed into one file for the card)

   Don't get me wrong - I'm glad there's a ton of SF2 files out there on the web
   many of which are EXTREMELY high quality and FREE.
   That part rocks!

   But the exact format is a little clunky.
   I want to be able to load in ANY preset from ANY SF2 at ANY time.
   And I -don't- want ALL of the crappy presets taking up space on my disk
   or taking up memory when I only need ONE preset out of the whole SF2.

Soooo
   - The crappy presets (and assoc'd WAVs) have got to go.
   - ALL the good presets from ALL SF2s need to be accessible ALL the time.

So I built a ripper that will store
   - each preset individually as a text file with the extension .pset
     holding preset and instrument level information that reference
   - individual .WAV files stored in a dir per SF2 file

Ditty can
   - knit together these presets and wav files into a single SF2 per song
     Ok, well, technically, an SF2 per sound used by the song and one for drums.

   - feed em to your card on the fly before each song starts
     and whenever you want to change sounds for a track
________________________________________________________________________________

right click a .sf2 file and pick Convert_to_SFont      or
                                 Convert_to_SFont(GM)  or
                                 Convert_to_SFont(GMDefault)

Make SURE you run SFontBank after ripping (and file renaming, etc)
   or else Ditty won't know about any of the new .pset files you have.
I could make sf2SFont kick off SFontBank automatically,
   EXCEPT that SFontBank can take a whiiiile.
   and sometimes you want to rip several SF2s at a time.


Each sf2SFont option names the presets a little differently when ripping.

Samples are ALWAYS put into the SFont\_WAV directory with filenames of
   {MidiPath}\SFont\_WAV\{SF2bank}\{SF2sample}.WAV

- Convert_to_SFont(GMDefault)
     Use this option when you want a GM format SF2 to be used for
     the general midi default sounds.

     Only 1 (or a few overlapping) SF2s can be used as the default.
     (existing .pset files of the same names will be overwritten)

     non-drum (melodic) presets will be stored as
        SFont\{gmgroup}\{gminst}.pset files.
     drum presets will be stored as
        SFont\Drum\{drumgroup}\{drumnote}.pset


- Convert_to_SFont(GM)
     Use this option when you have a SF2 with presets in GM numbering system
     (where #0 is Piano\AcousticGrand, for example)
     but that you'll use as non standard sounds.
     (Which are just as good as standard ones, if not better :)
     You'll be storing the sound in a dir similar to the standard ones
     so it'll be pretty easy to map back to standard later.  If needed :)

     Presets will be put in the SFont\_\ dir so you don't MESS UP the
     nice neat categorized sounds that you've already got.
     Ditty will let you easily delete or move/rename/rate the sound back
     into the standard dirs in SFont

     non-drum (melodic) presets will be stored as
        SFont\_\{gmgroup}\{gminst}.pset files.
     drum presets will be stored as
        SFont\Drum\_\{drumgroup}\{drumnote}\{drumnote}_{SF2bank}.pset


- Convert_to_SFont
     Use this option when you have a SF2 that's just a bunch of presets
     (not numbered per GM.)

     Like Convert_to_SFont(GM), presets will be put in the SFont\_\ dir
     so your NICE NEAT SFont presets STAY that way.  (read above)

     non-drum (melodic) presets will be stored as
        SFont\_\{SF2bank}\{SF2presetname}.pset files.
     drum presets will be stored as
        SFont\Drum\_\{drumgroup}\{drumnote}\{drumnote}_{SF2bank}.pset
        ...same as Convert_to_SFont(GM)
________________________________________________________________________________

Note that .pset files are just text files.

See PSetEdit docs for some flimsy docs about the .pset file format.

Updated: ; stephen.hazel over at gmail.com