158701
Level 19 Mixist
Lint_Huffer
post #158701 ::
2022.07.25 6:14pm :: edit 2022.07.26 1:59pm
Jangler, Lincent, blockblockblock, ArchiButtsqueak, mirageofher, BinkNSmacker, now_its_dark, Luigi64, father, hanna, fusoxide, A64 and DefenseMechanism liēkd this
Jangler, Lincent, blockblockblock, ArchiButtsqueak, mirageofher, 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.
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.