Fixed_MSGS.sf2 - now with proper GS-compatible bank mappings!
BotB Academy Bulletins
 
 
158701
Level 11 Mixist
Lint_Huffer
 
 
post #158701 :: 2022.07.25 6:14pm :: edit 2022.07.26 1:59pm
  
  BinkNSmacker, now_its_dark, Luigi64, father, hanna, fusoxide, A64 and DefenseMechanism liēkd this
So, the MSGS soundfont commonly floating around the net and linked on the Lyceum has some issues with bank layout. As such, it won't work correctly with GS-enabled MIDI files, and MIDI files which sound fine using the soundfont won't sound right on actual "vintage hardware", so to speak.

Ergo, it's irritating composing "direct" MIDI in a DAW with the unavoidable DAW > GS Wavetable Synth lag, and it's equally irritating composing "indirect" MIDI in a DAW using the BASSMIDI VSTi and the MSGS.sf2 file and having to constantly change bank settings before exporting the "actual" MIDI.

But this is not a thread for griping - no! Instead, it is an exciting thread for announcements, as I went ahead and fixed up the bank assignments (and also - most importantly, perhaps? - corrected the missing "w" in Pianos 1-3 and Honky-Tonk on bank #8).

DefenseMechanism is graciously providing hosting:
MSGS_Fixed.sf2
'
MSGS_Fixed.reabank
' (.reabank file for REAPER - allows you to select programs from dropdowns rather than memorizing Bank/Program numbers. Loosely based on joel Sampson's "Roland_SC55.reabank")

To be more specific, the issue with the original MSGS.sf2 is that - for whatever reason (backwards-compatibility with older Roland devices, I imagine) - in the actual GS spec, most of the programs/patches below #121 (Guitar Fret Noise) use banks 0 (default), then 8, 16, 24, and 32. Programs/patches between #121 and #127, on the other hand, use banks 0, then 1-9 (busy, busy program #126!). Sorta. Kinda. Except it gets a bit sloppy here and there. Exceptions are the spice that make rulebooks delicious!

The MSGS.sf2 file, on the other hand, simply maps everything to banks 0-9 as needed. So a program with four alternate sounds to choose from, like for instance, Program #5, E. Piano, has the alternate stuff mapped on banks 1, 2, 3, and 4, plus the original on bank 0. I mean, makes sense, and it's probably how I'd do it if I was creating everything from scratch. Unfortunately, this isn't how it was done when designing the GS spec, and it's not how the mighty Microsoft GS Wavetable Synth works.

Anyway, I moved everything to the appropriate banks, and verified everything with the Roland SC-55 owner's manual and my own Microsoft GS Wavetable Synth.

And just to make sure I kept my irritation levels at peak even as I slowly chipped away at the root cause of said irritation, I created all the necessary verification files in REAPER, whose default method of inputting MIDI control messages is not exactly un-cumbersome!

A few notes:
Patch #14 (Program #15: Carillon) belongs on bank 9, despite being non-SFX, with banks 1-7 skipped

Patch #17 (Program #18: Organ 5) belongs on bank 32, despite banks 16/24 both being empty

Patch #24 (Program #25: Nylon Gt.2) belongs on bank 32, despit bank 24 being empty

Patch #38 (Program #39: Synth Bass 101) belongs on bank 1, despite being non-SFX

Patch #52 (Program #53: Choir Aahs 2) belongs on bank 32, despite banks 8/16/24 all being empty

Patch #57 (Program #58: Trombone 2) belongs on bank 1, despite being non-SFX

Patch #60 (Program #61: Fr. Horn) belongs on bank 1, despite being non-SFX

Patch #80 (Program #81: Square) belongs on bank 1, despite being non-SFX

Patch #81 (Program #82: Saw) belongs on bank 1, despite being non-SFX

Patch #98 (Program #99: Syn Mallet) belongs on bank 1, despite being non-SFX

Patch #102 (Program #103: Echo Bell) belongs on bank 1, despite being non-SFX

Patch #104 (Program #105: Sitar 2) belongs on bank 1, despite being non-SFX


Anyway, grab the above file and rejoice in MIDIs sounding the same in foobar/BASSMIDI as they would on your uncle's badass Pentium 90 back in the day. (well, almost the same - if you're using the soundfont, it'll intelligently fall back to the default bank if the MIDI file tries to change to a bank without a patch. Real MSGSWS would just remain silent)

If anyone finds any remaining incorrect mappings, let me know and I'll fix it up.
 
 
158702
Level 18 Chipist
DefenseMechanism
 
 
 
post #158702 :: 2022.07.25 6:22pm :: edit 2022.07.25 6:23pm
  
  Lint_Huffer liēkd this
could you do a proper solid and specify the ACTUAL banks for each patch? i'd REALLY like to update my reaper template so that it avoids screwy patch export once and for all! i can also edit the lyceum article, and i'm happy to host the updated .sf2 on my site. if you take a look at GM.reabank that comes with reaper by default in the Data folder, it doesn't work with MSGS at all - it would be great to create a .reabank file that actually works...
 
 
158705
Level 11 Mixist
Lint_Huffer
 
 
post #158705 :: 2022.07.25 7:07pm :: edit 2022.07.26 1:45pm
  
  DefenseMechanism liēkd this
Yeah, GM.reabank seems geared towards GM2 (which isn't really backwards-compatible with GM-GS), and nothing really uses GM2. At least nothing in my wheelhouse.

Here's a REAPER .reabank file that should go along nicely with the fixed SF2. Drum patches are a little bit of a headache, I'll admit I haven't tested them, but they should maybe work? Let me know if there's something wrong with those.

MSGS_Fixed.reabank

(superseded, see OP or below)

And I can get you a raw list of the patch names themselves / banks therein if you still want that, for whatever reason.
 
 
158715
Level 18 Chipist
DefenseMechanism
 
 
 
post #158715 :: 2022.07.26 9:44am
  
  Lint_Huffer liēkd this
this is great - thank you so much!!
 
 
158722
Level 18 Chipist
DefenseMechanism
 
 
 
post #158722 :: 2022.07.26 1:00pm
  
  Lint_Huffer and kilowatt64 liēkd this
 
 
158724
Level 11 Mixist
Lint_Huffer
 
 
post #158724 :: 2022.07.26 1:44pm :: edit 2022.07.26 1:59pm
  
  DefenseMechanism liēkd this
Nice, updated the OP!

Here's an updated version of the .reabank - functionally identical, just has the "about" text cleaned up and a few stray lines of gibberish removed. Should hopefully be the last update for a while!

MSGS_Fixed.reabank
 
 
158747
Level 18 Chipist
DefenseMechanism
 
 
 
post #158747 :: 2022.07.27 8:12am
  
  Lint_Huffer liēkd this
awesome! updated the file on my site as well
 
 
158853
Level 18 Chipist
DefenseMechanism
 
 
 
post #158853 :: 2022.07.30 1:46pm
  
  Lint_Huffer liēkd this
FYI the drum bank seems to be wrong - Bank 128 seems to not be valid since that byte should be 0 through 127. once changing to Bank 127 REAPER is happy though - is that the correct change that needs to be made?
 
 
158876
Level 11 Mixist
Lint_Huffer
 
 
post #158876 :: 2022.07.31 9:41am
It may be correct, yes - the drums were something I just straight copy-pasted from joel Sampson's SC55 bank.

If you want to send a sample MIDI that swaps between the drum banks I can verify it on real hardware.

I also added an MT-32 bank (from what I can gather, Munt just ignores the bank entirely, so you can stuff these anywhere convenient - I picked #126).

Here's MSGS_Fixed with MT-32 and the drums on #127.
MSGS_Fixed.reabank
 
 
158911
Level 18 Chipist
DefenseMechanism
 
 
 
post #158911 :: 2022.07.31 7:44pm :: edit 2022.08.01 10:19am
another issue while i'm at it - i think some of the hi hats need to be in choke groups so that playing a closed hat after open hat mutes the open hat. i'm not sure of all the perc instruments which are in groups but it is maybe worth finding out?
edit: yeah in polyphone it's called "exclusive class" - i will try to find out which others are in such classes. my thoughts are that triangle open/mute should also be in a class. i'll try to find out more info on this too.
 
 

LOGIN or REGISTER to add your own comments!