VOGONS


Reply 160 of 201, by spiffythedog

User metadata
Rank Newbie
Rank
Newbie

Wasn't sure where to post this, but I've spent a fair bit of time over the last couple of years testing the MIDI soundtracks of old DOS games (plus a few Windows ones) for potential CTF issues, and I've identified some games that would pose problems (i.e., producing silence or selecting the wrong drum kit) when played using an original SC-55 regardless of control ROM version. Here's the list:

Games that send invalid drum kit program change messages within #65-127 (control ROM v1.xx) or #58-127 (control ROM v2.xx) range

  • Anvil of Dawn (1995) - 109
  • Aviation Adventure (1994) - 59
  • Captain Bible in Dome of Darkness (1994) - 127
  • Card Player's Paradise (1995) - 127
  • Duke: Nuclear Winter (1997) - 127
  • EF2000 (1995) - 61
  • Fade to Black (1995) - 02, 34, 85
  • Frontier: First Encounters (1995) - 48, 59, 89 + variation tone CTF ('QQESCAPE.HMP')
  • The Grandest Fleet (1994) - 127
  • Guilty (1995) - 22, 114, 120
  • H.U.R.L. (1995 - aka Slob Zone 3D) - 59, 60
  • HacX (1997) - 02 (Track 17/18), 94 (Track 12)
  • Hexen: Beyond Heretic (1995) - 114 (Track 11 - 'GROVE.MUS')
  • Island Peril (1995) - 119
  • Lode Runner: The Legend Returns (1994) - 106
  • MechWarrior 2: 31st Century Combat (1995) - 116 (Windows version only)
  • Menzoberranzan (1994) - 02, 63
  • Rex Blade: The Apocalypse (1996 - aka Dominator) - 02, 03, 06, 08, 15, 19, 21, 30, 32, 35, 48, 56, 93, 112
  • SerpentHead (1996) - 117, 118
  • SerpentHead Deluxe (1997) - 117, 118
  • Sfinx (1997) - 66
  • Sołtys (1995) - 66
  • Spycraft: The Great Game (1996) - 61
  • Super Samtong (1994) - 50, 51, 56, 59
  • Ten Nights of Killing and Mayhem at F.J.B. II (1996) - 02, 18, 127 + variation tone CTF ('TITLE.XMI')
  • Time Commando (1996) - 72 (Stage 6 - Wild West)
  • Total Meltdown: Tools & Software Arsenal for Duke Nukem 3D (1996) - 117 ('06E.MID')
  • Warhammer: Shadow of the Horned Rat (1995) - 59 + variation tone CTF
  • Xianjian Qixia Zhuan (1995 - aka Chinese Paladin/Extraordinary Heroes of the Immortal Sword/The Legend of Sword and Fairy - Windows version only ) - 92

As you can see, playing some of these games with an original SC-55 of either control ROM version would still cause issues. For example, playing EF2000 using an SC-55 with ROM v1.xx will incorrectly select the SFX drum kit during the intro sequence, while an SC-55 with ROM v2.xx will instead produce silence on the drum channel. Obviously, for a lot of these you'll encounter no problems if you just played them with a later model of Sound Canvas like the SC-55mkii or the SC-88. But then there are games like Rex Blade: The Apocalypse or Frontier: First Encounters that will sound incorrect regardless if played on an earlier or later model of Sound Canvas (you'll either get drum channel silence or incorrect drum kits on an original SC-55 regardless of control ROM version or incorrect drum kits and 'no instrument' errors on later Sound Canvas models). It makes me wonder if a few of these soundtracks were actually optimized for something else like the AWE32, although that didn't support CTF as far as I know turns out that it actually does (unofficially).

I've also identified a few more games that use CTF for invalid variation tone bank changes and thus will only play correctly on either an original Roland SC-55/SCC-1 synth, a Creative SB AWE32-compatible synth, a Yamaha XG-compatible synth, or virtually any other synth or soundfont when used in conjunction with Falcosoft's Soundfont MIDI Player's CTF function:

Games that use CTF for invalid variation tone bank change messages

  • 3-D Dinosaur Adventure (1993)
  • Age of Empires (1997 - add 'midimusic' parameter to shortcut for MIDI output)
  • Age of Empires: The Rise of Rome (1998 - add 'midimusic' parameter to shortcut for MIDI output)
  • America Adventure (1994)
  • Archibald Applebrook's Abenteuer (1995)
  • Bermuda Syndrome (1995)
  • Blood (1997)
  • BonBon Paradise (1997)
  • Claw (1997)
  • CyberMage: Darklight Awakening (1995)
  • Darkside Story (1995)
  • Dark Sun: Wake of the Ravager (1994 - floppy version only)
  • Dominus (1994)
  • Duckman: The Graphic Adventures of a Private Dick (1997)
  • Duke Nukem 3D (1996)
  • Extreme Assault (1997)
  • Fox Ranger II: Second Mission (1993)
  • Frontier: First Encounters (1995)
  • Heaven's Dawn (1995 - aka The Forsaken Land: Curse of the Gods/Juedi: Zhongshen zhi Zuzhou)
  • Hexen II (1997)
  • Jagged Alliance (1995)
  • Jagged Alliance: Deadly Games (1996)
  • Lands of Lore: The Throne of Chaos (1993 - sound effects only)
  • The Legend of Kyrandia: The Hand of Fate (1993 - sound effects only)
  • Might and Magic IV: Clouds of Xeen (1992 - sound effects only)
  • Might & Magic: Swords of Xeen (1995 - sound effects only)
  • Might and Magic V: Darkside of Xeen (1993 - sound effects only)
  • Might and Magic: World of Xeen (1994 - sound effects only)
  • Offensive (1996)
  • Plunder & Pillage (2002)
  • Rescue the Scientists (1994)
  • Screamer (1995)
  • Shuihu Yingxiong Zhuan: Huo Zhi Hun/Heroes in Heroes (1997 - aka Water Margin Heroes: Soul of Fire - apparently composed for Yamaha MU80/XG)
  • Skazki na Bereste: Hozhdenie za Tridevat Zemel (1997 - aka Tales on Birch Bark: Journey to Distant Lands)
  • Super 3D Noah's Ark (1995 - ECWolf port only)
  • Ten Nights of Killing and Mayhem at F.J.B. II (1996)
  • Tennis Elbow (1997)
  • Unnecessary Roughness '95 (1994)
  • Warhammer: Shadow of the Horned Rat (1995)

And just for completion's sake, here are a handful of games that use actual variation tones in their soundtracks:

Games that use variation tones

  • 3-D Dinosaur Adventure (1993)
  • 3-D Dinosaur Adventure: Anniversary Edition (1997)
  • 3D Movie Maker (1995)
  • The Adventures of Batman and Robin: Cartoon Maker (1995)
  • Age of Empires II: The Age of Kings (1999 - Roland SC-88Pro - demo only)
  • Age of Empires II: The Conquerors (2000 - Roland SC-88Pro - demo only)
  • Blood (1997)
  • Claw (1997)
  • Box Ranger (1992)
  • Brave Soul (2001- Roland SC-88Pro)
  • Death Gate (1994)
  • Delta V (1994)
  • Descent II (1996)
  • Die Hohlenwelt Saga: Der Leuchtende Kristall (1994 - aka The Cave World Saga: The Shining Crystal)
  • Dink Smallwood (1998 - Roland SC-88Pro)
  • Dominus (1994)
  • Duckman: The Graphic Adventures of a Private Dick (1997)
  • Duke Nukem 3D (1996)
  • Dune II: The Building of a Dynasty (1992)
  • Fox Ranger II: Second Mission (1993)
  • Hopmon (2002 - Roland SC-88Pro)
  • IAS (1994)
  • Inferno: The Odyssey Continues (1994)
  • Jagged Alliance (1995)
  • Jagged Alliance: Deadly Games (1996)
  • Jin Yong Qunxia Zhuan (1996 - aka Heroes of Jin Yong)
  • Kioh Gyoku (2001 - aka Rare Venerable Orb - Roland SC-88Pro)
  • La-Mulana (2006 - Roland SC-88Pro)
  • Lands of Lore: The Throne of Chaos (1992 - sound effects only)
  • The Legend of Kyrandia: The Hand of Fate (1993 - sound effects only)
  • Master of Magic (1994)
  • Mega Force 2 (1995)
  • Might & Magic IV: Clouds of Xeen (1992 - sound effects only)
  • Might & Magic: Swords of Xeen (1995 - sound effects only)
  • Might & Magic V: Darkside of Xeen (1993 - sound effects only)
  • Might & Magic: World of Xeen (1994 - sound effects only)
  • Perfect General II (1994 - SB AWE32 only)
  • Plunder & Pillage (2001)
  • Quest for Al-Qa'eda: The Hunt for Bin Laden (2001)
  • Quest for Hussein (2002)
  • Rags to Riches: The Financial Market Simulation (1993 - sound effects only)
  • Screamball! The Ultimate Pinball Experience (1996 - aka Ultimate Pinball - SB AWE32 only)
  • Shattered Steel (1996 - demo only)
  • Shuusou Gyoku (2000 - aka Autumn Frost Orb - Roland SC-88Pro)
  • SIGIL (2019)
  • SSN-21 Seawolf (1994)
  • StormFighter (1996)
  • Ten Nights of Killing and Mayhem at F.J.B. II (1996)
  • TFX (1993)
  • Torte le Magic (2001 - Roland SC-88Pro)
  • Touhou Eiyashou ~ Imperishable Night (2004 - aka Eastern Eternal Night Vignette - Roland SC-88Pro)
  • Touhou Koumakyou ~ The Embodiment of Scarlet Devil (2002 - aka Eastern Scarlet Devil Land - Roland SC-88Pro)
  • Warhammer: Shadow of the Horned Rat (1995)
  • William Shatner's TekWar (1995)
  • Wing Commander: Armada (1994)
  • Yumemizaka (1995)
  • Zone Raiders (1995)

As you'll no doubt see, they're mostly Windows games, and they tend to use the SC-88Pro soundset (strike that, found many, many more). There are probably more out there but I haven't gotten around to testing many Windows games that use MIDI music, which is something I intend to do eventually.

Last edited by spiffythedog on 2023-12-23, 00:08. Edited 22 times in total.

Reply 161 of 201, by Vanessaira

User metadata
Rank Newbie
Rank
Newbie

Wow, really makes me curious to test and look at these games with all the multiple SC-55 and 88 modules I have. Great work!

An Analog Girl in a Digital World

Reply 162 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
spiffythedog wrote on 2022-08-07, 07:00:

[*]Age of Empires II: The Age of Kings (1999 - Roland SC-88 - demo only)
[*]Age of Empires II: The Conquerors (2000 - Roland SC-88 - demo only)

Wow! I'm very glad you posted! I never knew MIDI files existed in the demo of these two, and I was introduced to the games with the Age of Kings demo in a library book! I'm happily exploiting the extra polyphony in my SC-8850 right now. 😀 Soon I may try to upgrade it (albeit with lower polyphony) on my INTEGRA-7, but I'm loving the SC-8850 for it so far. I know this music so well from the CD audio tracks. Thank you!

Reply 163 of 201, by spiffythedog

User metadata
Rank Newbie
Rank
Newbie
Vanessaira wrote on 2022-08-09, 12:51:

Wow, really makes me curious to test and look at these games with all the multiple SC-55 and 88 modules I have. Great work!

By all means do! I've only been working with my SC-55mkii module and Sound Canvas VA running through Falcosoft's Soundfont MIDI Player via loopMIDI, so any additional confirmation on other hardware is very much welcome.

As a bonus, here's a fairly comprehensive list of DOS games with CTF issues. Besides the handful of games I outlined in my previous post, you'll encounter almost no problems if you've got an original SC-55 or are using other means to circumvent the need for built-in hardware-based CTF (e.g., Falcosoft's Soundfont MIDI Player's CTF function or tikalat's sound driver patches).

  • 3-D Dinosaur Adventure (1993 - DRUM KIT + VT)
  • 3D Lemmings (1995 - aka Lemmings 3D - DRUM KIT)
  • 3D Lemmings Winterland (1995 - DRUM KIT)
  • Absolute Zero (1995 - DRUM KIT)
  • Al-Qadim: The Genie's Curse (1994- DRUM KIT)
  • Aliens: A Comic Book Adventure (1995 - DRUM KIT)
  • The Amazon Trail (1993- DRUM KIT)
  • America Adventure (1994 - VT)
  • Anvil of Dawn (1995- DRUM KIT)
  • Apachacha (1993 - DRUM KIT)
  • Archibald Applebrook's Abenteuer (1995 - DRUM KIT + VT)
  • Baoxiao Baolingqiu (1995 - aka Hilarious Bowling/Panda Bowling - DRUM KIT)
  • Battles in Time (1995 - DRUM KIT)
  • Blackthorne (1994 - DRUM KIT)
  • Blood (1997 - VT)
  • BonBon Paradise (1997 - VT)
  • Callahan's Crosstime Saloon (1997 - DRUM KIT)
  • Captain Bible in Dome of Darkness (1994 - DRUM KIT)
  • Card Player's Paradise (1995 - DRUM KIT)
  • Creature Shock (1994 - DRUM KIT)
  • Cyberbykes: Shadow Racer VR (1995 - DRUM KIT)
  • CyberMage: Darklight Awakening (1995 - DRUM KIT + VT)
  • Dallyeora Coba 2 (1995 - aka Coba on the Run 2 - DRUM KIT)
  • Dark Legions (1994 - DRUM KIT)
  • Dark Sun: Wake of the Ravager (1994 - VT - floppy version only)
  • Defcon 5 (1995 - DRUM KIT)
  • Dominus (1994 - VT)
  • Duke: Nuclear Winter (1997 - DRUM KIT)
  • Duke Nukem 3D (1996 - VT)
  • EF2000 (1995 - DRUM KIT)
  • The Elder Scrolls: Arena (1994 - DRUM KIT)
  • Empire II: The Art of War (1995 - DRUM KIT)
  • Extreme Assault (1997 - VT)
  • Fade to Black (1995 - DRUM KIT)
  • Fox Ranger II: Second Mission (1993 - VT)
  • Frontier: First Encounters (1995 - DRUM KIT + VT)
  • Geu Nal-i Omyeon 3: Dragon Force (1993 - aka The Day 3: Dragon Force - DRUM KIT)
  • The Grandest Fleet (1995 - DRUM KIT)
  • Guilty (1995 - DRUM KIT)
  • H.U.R.L. (1995 - aka Slob Zone 3D - DRUM KIT)
  • HacX (1997 - DRUM KIT)
  • Hanse: Die Expedition (1994 - DRUM KIT)
  • Heaven's Dawn (1995 - aka The Forsaken Land: Curse of the Gods/Juedi: Zhongshen zhi Zuzhou - DRUM KIT + VT)
  • Hell to Pay (1996 - DRUM KIT)
  • Heroes of Might and Magic II: The Succession Wars (1996 - DRUM KIT)
  • Hexen: Beyond Heretic (1995 - DRUM KIT)
  • Hexx: Heresy of the Wizard (1994 - DRUM KIT)
  • Hocus Pocus (1994 - DRUM KIT)
  • Huang Feihong zhi Tie Ji Dou Wugong (1995 - aka Last Hero in China/Wong Fei-hung's Iron Rooster vs. Centipede - DRUM KIT)
  • Inferno: The Odyssey Continues (1994 - DRUM KIT)
  • Island Peril (1995 - DRUM KIT)
  • Jagged Alliance (1995 - VT)
  • Jagged Alliance: Deadly Games (1996 - VT)
  • Jayu-ui Tusa (1992 - aka Defender of Freedom - DRUM KIT)
  • Jungledyret Hugo (1995 - aka Hugo the Jungle Animal/Jungle Jack - DRUM KIT)
  • Lands of Lore: Guardians of Destiny (1997 - DRUM KIT)
  • The Legend of Kyrandia: The Hand of Fate (1993 - DRUM KIT + VT)
  • Lode Runner: The Legend Returns (1994 - DRUM KIT)
  • The Lost Files of Sherlock Holmes: The Case of the Rose Tattoo (1996 - DRUM KIT)
  • Magic Carpet (1994 - DRUM KIT)
  • Man Enough (1994 - DRUM KIT)
  • Mars (1997 - aka Mars 3D/The Ultimate Fighter/Zhongji Zhanshi- DRUM KIT)
  • Master of Orion (1994 - DRUM KIT)
  • Mega Force 2 (1995 - DRUM KIT)
  • Menzoberranzan (1994 - DRUM KIT)
  • Metaltech: Battledrome (1994 - DRUM KIT)
  • Metaltech: EarthSiege (1994 - DRUM KIT)
  • Montezuma's Return (1997 - DRUM KIT)
  • Multimedia Kaleidosonics (1993 - DRUM KIT)
  • NFL Quarterback Club 96 (1995 - DRUM KIT)
  • Normality (1995 - DRUM KIT)
  • Offensive (1996 - DRUM KIT + VT)
  • Once Upon a Forest (1995 - DRUM KIT)
  • The Pandora Directive (1996 - DRUM KIT)
  • Pengzhuang Jingling (1994 - aka Bumping Warrior/Collision Sprites - DRUM KIT)
  • Perdition's Gate (1996 - DRUM KIT)
  • Perfect General II (1994 - DRUM KIT - VTs are contained in custom AWE32 'PG2.SBK' soundfont)
  • Plunder & Pillage (2002 - VT)
  • Power Drive (1994 - DRUM KIT)
  • Primal Rage (1995 - DRUM KIT)
  • Prince of Persia 2: The Shadow and the Flame (1993 - DRUM KIT)
  • Privateer 2: The Darkening (1996 - DRUM KIT)
  • Quest for Hussein (2002 - DRUM KIT)
  • Rally Championships (1994 - DRUM KIT)
  • Ravenloft: Strahd's Possession (1994 - DRUM KIT)
  • Rescue the Scientists (1994 - VT)
  • Retribution (1994 - DRUM KIT)
  • Return to Ringworld (1994 - DRUM KIT)
  • Rex Blade: The Apocalypse (1996 - aka Domination - DRUM KIT)
  • SerpentHead (1996 - DRUM KIT)
  • SerpentHead Deluxe (1997 - DRUM KIT)
  • The Settlers II: Veni, Vidi, Vici (1996 - DRUM KIT)
  • Sfinx (1997 - DRUM KIT)
  • ShadowCaster (1993 - DRUM KIT - CD version only)
  • SideLine (1996 - DRUM KIT)
  • Skazki na Bereste: Hozhdenie za Tridevat Zemel (1997 - aka Tales on Birch Bark: Journey to Distant Lands - DRUM KIT + VT)
  • Sołtys (1995 - DRUM KIT)
  • Space Adventure II (1995 - DRUM KIT)
  • Spycraft: The Great Game (1996 - DRUM KIT)
  • SSN-21 Seawolf (1994 - DRUM KIT)
  • StormFighter (1996 - DRUM KIT)
  • Strife: Quest for the Sigil (1996 - DRUM KIT)
  • Super Beemger (1994 - DRUM KIT)
  • Super Samtong (1994 - DRUM KIT)
  • System Shock (1994 - DRUM KIT)
  • Team F1 (1996 - aka Pole Position: Formel 1 Teamchef - DRUM KIT)
  • Ten Nights of Killing and Mayhem at F.J.B. II (1996 - DRUM KIT + VT)
  • Tennis Elbow (1997 - VT)
  • TFX (1993 - DRUM KIT)
  • Theme Park (1994 - DRUM KIT)
  • Time Gate: Knight's Chase (1995 - DRUM KIT)
  • Total Meltdown: Tools & Software Arsenal for Duke Nukem 3D (1996 - DRUM KIT)
  • Under a Killing Moon (1994 - DRUM KIT)
  • Undersea Adventure (1994 - DRUM KIT)
  • Unnecessary Roughness '95 (1994 - VT)
  • Wayne Gretzky and the NHLPA All-Stars (1995 - DRUM KIT)
  • Whizz (1994 - DRUM KIT)
  • William Shatner's TekWar (1995 - DRUM KIT)
  • Wing Commander: Privateer - Righteous Fire (1994 - DRUM KIT)
  • Wings of Glory (1995 - DRUM KIT)
  • Witchaven (1995 - DRUM KIT)
  • WWF Wrestlemania: The Arcade Game (1995 - DRUM KIT)
  • Zombieville (1997 - DRUM KIT)
  • Zone Raiders (1995 - DRUM KIT)
  • Zoop (1995 - DRUM KIT)

(EDIT: Me not know how sub-CTF work. Me better now. Nevermind)

Last edited by spiffythedog on 2023-12-21, 10:27. Edited 19 times in total.

Reply 164 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
spiffythedog wrote on 2022-08-11, 17:01:

(EDIT: Me not know how sub-CTF work. Me better now. Nevermind)

I've noticed vogons posts about sub-captial-tone-fallback too, lately. Oddly, my first guesses while programming solutions for fallback did choose the sub variations, but then I rethought it (due to the "Capital Tone Fallback" wording) and changed everything to literal capital tones. If I'd noticed them in the Roland manuals, I may have gotten it right, but until I really read them and have time to rebuild my qmidiroute patch maps they're still lacking with only literal capital tone fallback. Then again, Cloudschatze has made me aware in this post, that different modules apply different methods (for drums anyway), and I might just have to simply choose the earliest SC-55's method that seems most used as the composers' intentions: Re: Apparently not all GS-only sc-55s are the same, some are GM

Reply 165 of 201, by darry

User metadata
Rank l33t++
Rank
l33t++

Implementing the MIDI OX translation map that james-f made Re: Apparently not all GS-only sc-55s are the same, some are GM in something lightweight that can run on Linux on a Pi Zero or even something slower might allow for a cheap and simple to use "MIDI filter" installable in-line with a MIDI cable. This might also be adapted to implement all notes off emulation for the RA -50 to make it fully MT-32 compatible . @Dreamblaster or @Keropi & @Marmes or somebody else who also has the right skillset might be interested in turning this into an actual product (I would buy one).

Bonus points if the filtering behavior to use could be detected and activated automatically based on certain trigger conditions rathered than just toghled manually.

Reply 166 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2022-09-04, 04:20:

Implementing the MIDI OX translation map that james-f made Re: Apparently not all GS-only sc-55s are the same, some are GM in something lightweight that can run on Linux on a Pi Zero or even something slower might allow for a cheap and simple to use "MIDI filter" installable in-line with a MIDI cable. This might also be adapted to implement all notes off emulation for the RA -50 to make it fully MT-32 compatible . @Dreamblaster or @Keropi & @Marmes or somebody else who also has the right skillset might be interested in turning this into an actual product (I would buy one).

Bonus points if the filtering behavior to use could be detected and activated automatically based on certain trigger conditions rathered than just toghled manually.

Well qmidiroute runs on GNU/Linux (of course) and is pretty lightweight with the logging turned off. It could be what you're suggesting but I've not tried it on a raspberry pi at all, let alone a zero. I would have to add the all notes off (note-on tracking) translation that you mentioned for the RA-50, but it doesn't sound too hard, aside from it likely requiring a new field in the .qmr files' specification (breaking old .qmr files' version compatibility yet again). Like I said, maps would also need to be updated for sub-tone fallback, but at least they're user-definable as .qmr files. Here's the thread about my long history of patch attempts if you're unaware of it: https://www.midimusicadventures.com/phpbb/vie … php?f=4&t=17790. The current incarnation can be found in this post: https://www.midimusicadventures.com/phpbb/vie … &p=18655#p18655

Reply 167 of 201, by darry

User metadata
Rank l33t++
Rank
l33t++
jaffa225man wrote on 2022-09-04, 07:08:
darry wrote on 2022-09-04, 04:20:

Implementing the MIDI OX translation map that james-f made Re: Apparently not all GS-only sc-55s are the same, some are GM in something lightweight that can run on Linux on a Pi Zero or even something slower might allow for a cheap and simple to use "MIDI filter" installable in-line with a MIDI cable. This might also be adapted to implement all notes off emulation for the RA -50 to make it fully MT-32 compatible . @Dreamblaster or @Keropi & @Marmes or somebody else who also has the right skillset might be interested in turning this into an actual product (I would buy one).

Bonus points if the filtering behavior to use could be detected and activated automatically based on certain trigger conditions rathered than just toghled manually.

Well qmidiroute runs on GNU/Linux (of course) and is pretty lightweight with the logging turned off. It could be what you're suggesting but I've not tried it on a raspberry pi at all, let alone a zero. I would have to add the all notes off (note-on tracking) translation that you mentioned for the RA-50, but it doesn't sound too hard, aside from it likely requiring a new field in the .qmr files' specification (breaking old .qmr files' version compatibility yet again). Like I said, maps would also need to be updated for sub-tone fallback, but at least they're user-definable as .qmr files. Here's the thread about my long history of patch attempts if you're unaware of it: https://www.midimusicadventures.com/phpbb/vie … php?f=4&t=17790. The current incarnation can be found in this post: https://www.midimusicadventures.com/phpbb/vie … &p=18655#p18655

Thanks! I was not aware of that. I will give it a read-through .

Reply 168 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2022-09-04, 11:55:

Thanks! I was not aware of that. I will give it a read-through .

You're quite welcome! I hope it helps!

Cloudschatze wrote on 2016-05-29, 03:55:
Unfortunately, yes. It's referenced in one or two old USENET posts, as well as in Stanley Jungleib's, "General MIDI" book. […]
Show full quote
James-F wrote:

Can that be true?
Yamaha patented the Peanut-butter Jelly sandwich so no one can use that... 😵

Unfortunately, yes. It's referenced in one or two old USENET posts, as well as in Stanley Jungleib's, "General MIDI" book.

keropi wrote:

lacking...interest in these features 🤣 )

Boooo! 🤣 These are the types of detailed discussions that made the QuestStudios forum so great.

...but in games I always prefer how the mk1 sc-55 sounds...

Interesting. I actually prefer the additional clarity of the SC-55mkII, and find its soundstage to be much more natural than that of my SC-55s and compatibles.

James-F wrote:

There is no BANK to be selected here, only Patch, so there is no way to select a non-existent tone on channel 10.
The game either uses a certain drum-kit or not, no room for mistakes.

So, circling back to this, the problem is that the SC-55 does allow for the selection of non-existent drum sets. Not only that, but, having done some thorough testing, I've discovered that the program change behavior for the drum sets is different between the 1.xx and 2.xx SC-55s.

SC-55 1.00 - 1.21
------------------------
PC# 001-008: STANDARD
PC# 009-016: ROOM
PC# 017-024: POWER
PC# 025: ELECTRONIC
PC# 026: TR-808
PC# 027-032: ELECTRONIC
PC# 033-040: JAZZ
PC# 041-048: BRUSH
PC# 049-056: ORCHESTRA
PC# 057-064: SFX
PC# 065-127: <<silence>>
PC# 128: CM-64/32L

SC-55 2.00
------------------------
PC# 001-008: STANDARD
PC# 009-016: ROOM
PC# 017-024: POWER
PC# 025: ELECTRONIC
PC# 026: TR-808
PC# 027-032: ELECTRONIC
PC# 033-040: JAZZ
PC# 041-048: BRUSH
PC# 049: ORCHESTRA
PC# 050-056: <<silence>>
PC# 057: SFX
PC# 058-127: <<silence>>
PC# 128: CM-64/32L

Using my favorite Space Quest V example again, let's pretend for a moment that its retail driver actually passes the program change messages for channel 10 found in the original MIDI data. Wonderful! Except... the composer didn't RTFM and used PC# 51, which isn't a defined drum set in units prior to the SC-88, resulting in the following behavior:

  • SC-55 1.xx - The Orchestra set is selected as the composer intended.
  • SC-55 2.xx - Silence - no drums for you!
  • SC-55mkII - Use of the Standard set is maintained.
  • SC-88 and above - The Kick&Snare set is selected.

I just got my first Roland capital/sub tone fallback device yesterday, and have discovered some discrepencies with its drum fallback, among instrument variations. You hadn't specifically mentioned the CM-300 or CM-500 so that may be the difference, but in case it's undocumented, here's what I've found on my new CM-500's GS mode ("C"):

First, It's got the combination GS and General MIDI logo. It doesn't seem to be fully GM compliant, but I'll get to that later. For posterity, this CM-500 is labelled model DM-500N, and Serial Number ZD83743 (which I decoded to being Unit # 3743, manufactured in May of 1992).

I sent the SysEx request for the CM-32L ROM version while cold booted into mode "B" (CM-64 simulation mode) like so:
echo -n -e $(echo "F0 41 10 16 11 7E 00 00 00 00 20 62 F7" | sed 's/^/\\x/g' | sed 's/ /\\x/g') >/dev/snd/midiC4D0

And my computer's MIDI input received this from the CM-500's MIDI OUT port (with this command):
aseqdump -p 32:0
Waiting for data. Press Ctrl+C to end.
Source Event Ch Data
32:0 System exclusive F0 41 10 16 12 7E 00 00 52 6F 6C 61 6E 64 20 20 20 20 20 20 20 20 20 20 56 20 31 2E 30 30 20 39 31 2F 46 65 62 2F 30 37 51 F7

Which I ASCII decoded like so:
echo -n -e $(echo "F0 41 10 16 12 7E 00 00 52 6F 6C 61 6E 64 20 20 20 20 20 20 20 20 20 20 56 20 31 2E 30 30 20 39 31 2F 46 65 62 2F 30 37 51 F7" | sed 's/^/\\x/g' | sed 's/ /\\x/g') | hexdump -C
00000000 f0 41 10 16 12 7e 00 00 52 6f 6c 61 6e 64 20 20  |.A...~..Roland  |
00000010 20 20 20 20 20 20 20 20 56 20 31 2e 30 30 20 39  |        V 1.00 9|
00000020 31 2f 46 65 62 2f 30 37 51 f7                    |1/Feb/07Q.|
0000002a

So it's ROM version 1.00 from Feb 7th, 1991. It must be specific to third generation LA ROMs, because version 1.00 of the CM-32L was 89/March/24 according to Cloudschatze here: https://web.archive.org/web/20140910135651/ht … 4.html#msg30304. That link also has more said of the CM-32LN and CM-500 returning the same ROM information mine does. Next I tested for the clicking bug, and as expected, it isn't present on mine either. I plan to take Cloudschatze's excellent advise to fix the vibrato bug when I have the parts: Fixing the Roland CM-500 Vibrato Bug.

That's all well and good for the LA side of things, however with GS, I've encountered oddities:
Testing the GS/GM board in this CM-500 by setting mode "C" from a cold boot resulted in some undocumented capital/sub tone fallback behavior. According to Cloudschatze, firmware version 1.20 added the Sine Wave variation (8) at PC#81 and Breath Noise became the capital tone for PC#122, replacing Fl. Key Click (and moving that to variation 1) here: Re: Apparently not all GS-only sc-55s are the same, some are GM). While mine has Sine Wave, it only has Fl. Key Click without Breath Noise, so it has just half of the required change from "GS only" to make it GM compliant! Furthermore, while the CM-64 variations at 127 are fine with Castanets (PC#121), Orche Hit (PC#123), and Telephone (PC#124), with the Fl. Key Click (PC#122), which should become "Triangle" it isn't (as it doesn't change from Fl. Key Click)! Seeing all this difference, I believe if I had checked them all, many more CM-64 sounds would be missing in the GS/GM CM-500 mode "C". All this probably holds true for the CM-300 it's based on too. I don't know how to get the GS ROM information, but I've opened it and taken pictures, if that would help.

Edit 3/18/2023: I was able to hear Breath Noise at variation 0 of PC# 122, Fl. Key Click at its variation 1, and triange at variation 127, after testing again due to further assertions by Cloudschatze here: Re: Fixing the Roland CM-500 Vibrato Bug . I'm really sorry for misleading everyone! Since I can't repeat it now, I probably will never know the cause during the earlier test.

Now, the reason I thought this post belongs as a reply to the drum sub fallback post:
I listened to this CM-500 using my patched qmidiroute to quiet and homogenize the instruments (for just a frame of reference), while playing MIDI files and cycling through drum variations:
PC#1-16  : STANDARD through ROOM, probably at the normal spot, although I wasn't able to hear it
PC#17-24 : POWER
PC#25-32 : ELECTRONIC to TR-808 and again ELECTRONIC (but unable to hear the difference)
PC#33-48 : must be JAZZ through BRUSH (unable to hear their difference)
PC#49-56 : ORCHESTRA
PC#57    : SFX
PC#58-127: Likely STANDARD (not silent!) (and switching directly from SFX to any of this range switches to sounding STANDARD, so it's not the type of drum fallback I think I'm remembering on the SC-33, where the last valid drum PC# is still heard with a "NO DRUMSET" message displayed)
PC#128   : Likely STANDARD, but might be CM-64/32L if played on a differing drum note/sound

Filename
test-CM-500-fallback.7z
File size
282 Bytes
Downloads
45 downloads
File comment
The .qmr file I used with my patched qmidiroute to test fallback
File license
GPL-2.0-or-later

I hope none of this is actually news to you, but otherwise, perhaps I've got a very peculiar CM-500. 😉

Last edited by jaffa225man on 2023-03-18, 21:11. Edited 1 time in total.

Reply 169 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2022-09-04, 11:55:
jaffa225man wrote on 2022-09-04, 07:08:
darry wrote on 2022-09-04, 04:20:

Implementing the MIDI OX translation map that james-f made Re: Apparently not all GS-only sc-55s are the same, some are GM in something lightweight that can run on Linux on a Pi Zero or even something slower might allow for a cheap and simple to use "MIDI filter" installable in-line with a MIDI cable. This might also be adapted to implement all notes off emulation for the RA -50 to make it fully MT-32 compatible . @Dreamblaster or @Keropi & @Marmes or somebody else who also has the right skillset might be interested in turning this into an actual product (I would buy one).

Bonus points if the filtering behavior to use could be detected and activated automatically based on certain trigger conditions rathered than just toghled manually.

Well qmidiroute runs on GNU/Linux (of course) and is pretty lightweight with the logging turned off. It could be what you're suggesting but I've not tried it on a raspberry pi at all, let alone a zero. I would have to add the all notes off (note-on tracking) translation that you mentioned for the RA-50, but it doesn't sound too hard, aside from it likely requiring a new field in the .qmr files' specification (breaking old .qmr files' version compatibility yet again). Like I said, maps would also need to be updated for sub-tone fallback, but at least they're user-definable as .qmr files. Here's the thread about my long history of patch attempts if you're unaware of it: https://www.midimusicadventures.com/phpbb/vie … php?f=4&t=17790. The current incarnation can be found in this post: https://www.midimusicadventures.com/phpbb/vie … &p=18655#p18655

Thanks! I was not aware of that. I will give it a read-through .

I have finally finished updating my .qmr files for sub-tone fallback, and have added the RA-50 All Notes Off feature you requested: https://www.midimusicadventures.com/phpbb/vie … start=20#p18702

The new "Expand All Notes Off.." option diverges from the previous .qmr save format again, as I've said it would (the first line needs an extra number separated by a space), but I've updated all my previously released .qmr's for that too. The Unmatched rule/tab has a new check box to enable the expansion of the All Note Off messages.

My sub-tone edited fallback files have what I consider minor improvements:

I set up capital tone (variation 0) fallback for programs 1-120 on variations 64-126, and programs 121-127 on every unmatched variation because I wouldn't want silence for anything, although the SC-55 manual documenting it indicates they should be.

Also, drum programs 65-127 fallback to STANDARD (pc#1) to emulate my likely valid CM-500's drum fallback. Anyway, again, I wouldn't want silence for anything. 😀

I hope it's useful!

Last edited by jaffa225man on 2022-09-30, 04:48. Edited 1 time in total.

Reply 170 of 201, by darry

User metadata
Rank l33t++
Rank
l33t++
jaffa225man wrote on 2022-09-29, 04:49:
I have finally finished updating my .qmr files for sub-tone fallback, and have added the RA-50 All Notes Off feature you request […]
Show full quote
darry wrote on 2022-09-04, 11:55:
jaffa225man wrote on 2022-09-04, 07:08:

Well qmidiroute runs on GNU/Linux (of course) and is pretty lightweight with the logging turned off. It could be what you're suggesting but I've not tried it on a raspberry pi at all, let alone a zero. I would have to add the all notes off (note-on tracking) translation that you mentioned for the RA-50, but it doesn't sound too hard, aside from it likely requiring a new field in the .qmr files' specification (breaking old .qmr files' version compatibility yet again). Like I said, maps would also need to be updated for sub-tone fallback, but at least they're user-definable as .qmr files. Here's the thread about my long history of patch attempts if you're unaware of it: https://www.midimusicadventures.com/phpbb/vie … php?f=4&t=17790. The current incarnation can be found in this post: https://www.midimusicadventures.com/phpbb/vie … &p=18655#p18655

Thanks! I was not aware of that. I will give it a read-through .

I have finally finished updating my .qmr files for sub-tone fallback, and have added the RA-50 All Notes Off feature you requested: https://www.midimusicadventures.com/phpbb/vie … start=20#p18702

The new "Expand All Notes Off.." option breaks the .qmr save format again, as I've said it would (the first line needs an extra number separated by a space), but I've updated all my previously released .qmr's for that too. The Unmatched rule/tab has a new check box to enable the expansion of the All Note Off messages.

My sub-tone edited fallback files have what I consider minor improvements:

I set up capital tone (variation 0) fallback for programs 1-120 on variations 64-126, and programs 121-127 on every unmatched variation because I wouldn't want silence for anything, although the SC-55 manual documenting it indicates they should be.

Also, drum programs 65-127 fallback to STANDARD (pc#1) to emulate my likely valid CM-500's drum fallback. Anyway, again, I wouldn't want silence for anything. 😀

I hope it's useful!

Thank you! I will give that a spin when time allows.

Reply 171 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2022-09-30, 00:38:
jaffa225man wrote on 2022-09-29, 04:49:
I have finally finished updating my .qmr files for sub-tone fallback, and have added the RA-50 All Notes Off feature you request […]
Show full quote
darry wrote on 2022-09-04, 11:55:

Thanks! I was not aware of that. I will give it a read-through .

I have finally finished updating my .qmr files for sub-tone fallback, and have added the RA-50 All Notes Off feature you requested: https://www.midimusicadventures.com/phpbb/vie … start=20#p18702

The new "Expand All Notes Off.." option breaks the .qmr save format again, as I've said it would (the first line needs an extra number separated by a space), but I've updated all my previously released .qmr's for that too. The Unmatched rule/tab has a new check box to enable the expansion of the All Note Off messages.

My sub-tone edited fallback files have what I consider minor improvements:

I set up capital tone (variation 0) fallback for programs 1-120 on variations 64-126, and programs 121-127 on every unmatched variation because I wouldn't want silence for anything, although the SC-55 manual documenting it indicates they should be.

Also, drum programs 65-127 fallback to STANDARD (pc#1) to emulate my likely valid CM-500's drum fallback. Anyway, again, I wouldn't want silence for anything. 😀

I hope it's useful!

Thank you! I will give that a spin when time allows.

You're quite welcome, and I appreciate you'll be trying it! My fallback .qmr files also incorporate SysEx delays for the MT-32 (old), and since the RA-50 has been said to be a CM-32L without the sound effects so effectively an MT-32 (new), you probably will want to zero out the fields for those (in both the "Unmatched" rule/tab and SysEx Edit (Output section) rule/tab). Thanks!

Reply 172 of 201, by spiffythedog

User metadata
Rank Newbie
Rank
Newbie
jaffa225man wrote on 2022-09-08, 04:33:
That's all well and good for the LA side of things, however with GS, I've encountered oddities: Testing the GS/GM board in this […]
Show full quote

That's all well and good for the LA side of things, however with GS, I've encountered oddities:
Testing the GS/GM board in this CM-500 by setting mode "C" from a cold boot resulted in some undocumented capital/sub tone fallback behavior. According to Cloudschatze, firmware version 1.20 added the Sine Wave variation (8) at PC#81 and Breath Noise became the capital tone for PC#122, replacing Fl. Key Click (and moving that to variation 1) here: Re: Apparently not all GS-only sc-55s are the same, some are GM). While mine has Sine Wave, it only has Fl. Key Click without Breath Noise, so it has just half of the required change from "GS only" to make it GM compliant! Furthermore, while the CM-64 variations at 127 are fine with Castanets (PC#121), Orche Hit (PC#123), and Telephone (PC#124), with the Fl. Key Click (PC#122), which should become "Triangle" it isn't (as it doesn't change from Fl. Key Click)! Seeing all this difference, I believe if I had checked them all, many more CM-64 sounds would be missing in the GS/GM CM-500 mode "C". All this probably holds true for the CM-300 it's based on too. I don't know how to get the GS ROM information, but I've opened it and taken pictures, if that would help.

Now, the reason I thought this post belongs as a reply to the drum sub fallback post:
I listened to this CM-500 using my patched qmidiroute to quiet and homogenize the instruments (for just a frame of reference), while playing MIDI files and cycling through drum variations:
PC#1-16  : STANDARD through ROOM, probably at the normal spot, although I wasn't able to hear it
PC#17-24 : POWER
PC#25-32 : ELECTRONIC to TR-808 and again ELECTRONIC (but unable to hear the difference)
PC#33-48 : must be JAZZ through BRUSH (unable to hear their difference)
PC#49-56 : ORCHESTRA
PC#57    : SFX
PC#58-127: Likely STANDARD (not silent!) (and switching directly from SFX to any of this range switches to sounding STANDARD, so it's not the type of drum fallback I think I'm remembering on the SC-33, where the last valid drum PC# is still heard with a "NO DRUMSET" message displayed)
PC#128   : Likely STANDARD, but might be CM-64/32L if played on a differing drum note/sound

test-CM-500-fallback.7z

I hope none of this is actually news to you, but otherwise, perhaps I've got a very peculiar CM-500. 😉

This is pretty helpful. If this drum kit CTF behaviour holds true for all CM-500s or for even less widely documented Roland GS devices like the SCC-1 card, then those games in the first list I posted with the invalid drum kit PC messages were likely to be have been composed or programmed with those devices in mind. It's nothing definite (still need to test with an AWE32, which I don't have), but it's a very strong possibility at least. Thanks!

EDIT: Added Duke Nukem 3D to list of games that use variation tones

Reply 173 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
spiffythedog wrote on 2022-10-20, 09:22:

This is pretty helpful. If this drum kit CTF behaviour holds true for all CM-500s or for even less widely documented Roland GS devices like the SCC-1 card, then those games in the first list I posted with the invalid drum kit PC messages were likely to be have been composed or programmed with those devices in mind. It's nothing definite (still need to test with an AWE32, which I don't have), but it's a very strong possibility at least. Thanks!

EDIT: Added Duke Nukem 3D to list of games that use variation tones

That's great to hear! I'm glad it helps! I would have responded earlier, but figured I should check the AWE32 for you too.

I've done this testing in the pure DOS mode of windows 95 (with 95's GUI disabled at boot).

With the "aweutil /em:gs" TSR running (with the use of its default soundbank, synthgm.sbk), and GSPlay (with gsplay.cfg set to use the AWE32's MIDI port & IRQ, and the MIDI_INTERFACE parameter still set to "MPU401") I've been playing the Age Of Empires 2 demo files you revealed to me earlier. I also made sure it is sending GS resets between songs, in case a GM reset would disable variation use with the AWE32, by using this command: "gsplay gs music\aoe2\*.mid"

According to GSPlay's display (which is configured to show the SC-88's SC-88-MAP instrument names), nonexistant varations for the SC-88 (Shamburger's MIDI channel 3, "! 073 / 001") are indeed audible on the AWE32's GS emulation.

A surprise to me is that the AWE32's GS emulation is pretty good sounding, although may have a different pitch bend range than Roland's. (I noticed that in a few instances with these AOE2 demo files.)

I'm still hoping other early-GS device owners can corroborate my Sub-Tone Fallback findings.
Anyway, I hope this helps too!

Reply 174 of 201, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
jaffa225man wrote on 2022-10-25, 05:59:
... According to GSPlay's display (which is configured to show the SC-88's SC-88-MAP instrument names), nonexistant varations fo […]
Show full quote

...
According to GSPlay's display (which is configured to show the SC-88's SC-88-MAP instrument names), nonexistant varations for the SC-88 (Shamburger's MIDI channel 3, "! 073 / 001") are indeed audible on the AWE32's GS emulation.

A surprise to me is that the AWE32's GS emulation is pretty good sounding, although may have a different pitch bend range than Roland's. (I noticed that in a few instances with these AOE2 demo files.)
...

1. Sound Blaster HW Synth has built-in capital tone fallback support. This means that in case of non-existent variation tones in the soundfont file it plays the same numbered program from bank 0 (the GM bank). Synthgm.sbk (as its name suggests) is a pure GM soundfont without any variation tones. So when GS specific variations are played only the GM bank is used but all non-existing variations are audible thanks to built-in CTF mechanism.
2. Sound Blaster HW Synth supports RPN 0,0 that sets Pitch Bend range/sensitivity (it is part of the Midi 1.0 specification).
So in theory the same ranges are supported as on Roland gears. The default is also the same, namely +/- 2 semitones.
Different behavior most of the time can be attributed to badly programmed Midi files that assume that RPN 0,0 MSB/LSB can be omitted since 0 is the default. But in case of some synths after a reset the default is nil (RPN 127, 127).

@Edit
I have attached a package for testing Pitch Bend range implementation differences.
Sor-st1-orig.mid contains incomplete Pitch Bend Sensitivity (0,0) RPN messages.
It only sends the MSB (CC# 101) part of the address to Channels 4, 11, 12. So what happens depends on the actual state and implementation details of the synth. Sor-st1-fixed.mid is a patched version of the file that contains the missing RPN LSB parts on track 4, 11, 12.
BTW if pitch bend range setting is successful channel 4 uses 12 semitones and channel 11/12 uses 36 semitones so the difference is very obvious (compared to default 2 semitones).

Filename
sor-st1.zip
File size
10.66 KiB
Downloads
45 downloads
File license
Public domain

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 175 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2022-10-25, 07:09:
1. Sound Blaster HW Synth has built-in capital tone fallback support. This means that in case of non-existent variation tones […]
Show full quote

1. Sound Blaster HW Synth has built-in capital tone fallback support. This means that in case of non-existent variation tones in the soundfont file it plays the same numbered program from bank 0 (the GM bank). Synthgm.sbk (as its name suggests) is a pure GM soundfont without any variation tones. So when GS specific variations are played only the GM bank is used but all non-existing variations are audible thanks to built-in CTF mechanism.
2. Sound Blaster HW Synth supports RPN 0,0 that sets Pitch Bend range/sensitivity (it is part of the Midi 1.0 specification).
So in theory the same ranges are supported as on Roland gears. The default is also the same, namely +/- 2 semitones.
Different behavior most of the time can be attributed to badly programmed Midi files that assume that RPN 0,0 MSB/LSB can be omitted since 0 is the default. But in case of some synths after a reset the default is nil (RPN 127, 127).

@Edit
I have attached a package for testing Pitch Bend range implementation differences.
Sor-st1-orig.mid contains incomplete Pitch Bend Sensitivity (0,0) RPN messages.
It only sends the MSB (CC# 101) part of the address to Channels 4, 11, 12. So what happens depends on the actual state and implementation details of the synth. Sor-st1-fixed.mid is a patched version of the file that contains the missing RPN LSB parts on track 4, 11, 12.
BTW if pitch bend range setting is successful channel 4 uses 12 semitones and channel 11/12 uses 36 semitones so the difference is very obvious (compared to default 2 semitones).
sor-st1.zip

Thanks for making me aware there must be a synthgs.sbk file in exhistance! I downloaded it from philscomputerlab and am re-listening to AOE2's demo files as well as your sor-st1 pitch bend comparisons.

Using the synthgs.sbk file, obviously I still shouldn't hear any dropouts due to the AWE32's capital tone fallback you mentioned, and I haven't.

I am still hearing a weird bend at the end of certain Piccolo notes (channel 4) in the AOE2 demo's "Gyam Shorts" track, and the Santur on channel 12 of "Ride, Lawrence, Ride!".

The AWE32 plays both your sor-st1-orig.mid and sor-st1-fixed.mid with the exact same range. The CM-500 (mode C for GS), and the SC-8850 plays sor-st1-orig.mid without changing the pitch bend range (ignoring the partial NRPN), and the fixed version correctly.

If it's not pitch bend range, it just must be a difference in the Piccolo's and Santur's sound implementation on the AWE32 (which sounds wrong to me) compared to Roland's.

Otherwise, I suppose these two AOE2 demo tracks may be sending just part of the NRPN, as your sor-st1-0rig file does, and only the AWE32 is incorrectly honoring that (since these songs seem written for contemporary Roland synths such as the SC-88Pro, SC-8850, or SC-8820 with Shamburger using PC# 73, variation 1).

Thanks again!

Edit: I doubt it makes a difference, but my card is likely the "AWE64 value" variant, not a true AWE32, since I have a directory I named CT4500.

By the way, does anyone know how Creative sidestepped Yamaha's variation fallback patent? They'd cut ties with Yamaha before the AWE64, at least as far as OPL3 licensing goes when they cloned it with CQM. It irks me, (and it's too bad Roland won't be re-releasing old models, like they do their flagships, now that the patent has expired) but I suppose Roland fallback incompatibility is a fun topic for discussion. 😉

Last edited by jaffa225man on 2023-03-31, 04:59. Edited 1 time in total.

Reply 176 of 201, by spiffythedog

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2022-10-25, 07:09:

1. Sound Blaster HW Synth has built-in capital tone fallback support. This means that in case of non-existent variation tones in the soundfont file it plays the same numbered program from bank 0 (the GM bank). Synthgm.sbk (as its name suggests) is a pure GM soundfont without any variation tones. So when GS specific variations are played only the GM bank is used but all non-existing variations are audible thanks to built-in CTF mechanism.

I had my suspicions that this was the case, as Zone Raiders is an AWE32-optimised game with a soundtrack that also relies on drum kit CTF in order to be heard properly. So presumably Synthgs.sbk should have a similar drum fallback scheme to that used in early SC-55-based devices, unless it just uses the Standard kit when faced with an invalid PC message. Would I be correct in assuming this? This would also neatly line up with the timeline of my list of games that wouldn't sound correct on an original SC-55 (released between mid-1994-1997), as the AWE32 was released in March 1994 (though Captain Bible is the only game in that list without an AWE32 driver).

Reply 177 of 201, by Kahenraz

User metadata
Rank l33t
Rank
l33t
jaffa225man wrote on 2022-10-25, 20:02:

Edit: I doubt it makes a difference, but my card is likely the "AWE64 value" variant, not a true AWE32, since I have a directory I named CT4500.

By the way, does anyone know how Creative sidestepped Yamaha's variation fallback patent? They'd cut ties with Yamaha before the AWE64, at least as far as OPL3 licensing goes when they cloned it with CQM. It irks me, (and it's too bad Roland won't be re-releasing old models, like they do their flagships, now that the patent has expired) but I suppose Roland fallback incompatibility is a fun topic for discussion. 😉

The AWE64 should have the same hardware synthesizer as the AWE32, but in a single chip. There were a few revisions of the AWE64 EMU itself as a separate chip, but these were just minor hardware revisions.

I also thought that this CTF revelation was interesting. Maybe the parent didn't apply in the same way as it does with Yamaha's standalone synthesizers. Or maybe Creative got lucky and flew under the radar.

Reply 178 of 201, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

It seems all SB HW synths (AWE, SB Live!, Audigy etc.) use the same CTF mechanism.

1. Variation Tones:
In case of non-existent variations (Bank MSB 1-127) always Bank 0 (GM Bank) is used. So even if the last valid bank was different from 0 the next invalid request will fallback to 0 not to the last valid one.
An example: Bank 0 Program 127 is Gun Shot and Bank 3 Program 127 is Explosion. If you select Bank 3 Program 127 you will get the Explosion effect, and if you select Bank 4 Program 127 after this (which is invalid) you will get Bank 0 Program 127 Gun Shot and not Bank 3 Program 127 Explosion.
BTW Bank LSB is always ignored by SB HW synths.

2. Drums on channel 10
In case of non-existent Drum programs always the first valid program used counted from non-existent program number to 0. So Program 0-7 selects Program 0 Standard kit, Program 8-15 selects Program 8 Room kit, Program 16-23 selects Program 16 Power kit and so on (provided that the above GS standard Drum kits are implemented this way in the soundfont).

It's worth mentioning that Drums are always available on Channel 10 and no other channel can be a Drum channel (contrary to Roland GS). Internally in a soundfont the Drums always can be found at the special Bank 128. This means that you cannot have more than 1 Drum bank in a single soundfont. But you can stack multiple soundfonts with the help of Soundfont Manager and this way you can have different Drum banks at channel 10 Bank 0-127. And the variation tone CTF mechanism detailed above also works in case of Drums.

@Edit:
It's also worth mentioning that the above detailed CTF mechanism is very important for SB HW synths since unlike later Roland synths they do not have so called GM mode. Even in case of a GM reset these synths react to bank select messages (accept variation banks) and work the same way.
So without a working CTF there would be no chance to correct missing instrument problems.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 179 of 201, by jaffa225man

User metadata
Rank Newbie
Rank
Newbie
Kahenraz wrote on 2022-10-28, 03:20:

The AWE64 should have the same hardware synthesizer as the AWE32, but in a single chip. There were a few revisions of the AWE64 EMU itself as a separate chip, but these were just minor hardware revisions.

I also thought that this CTF revelation was interesting. Maybe the patent didn't apply in the same way as it does with Yamaha's standalone synthesizers. Or maybe Creative got lucky and flew under the radar.

It's good to know that the AWE64 value card is a close enough clone to the AWE32 for these tests.

As for the patent infringement, perhaps Creative thought they could just rewrite the software if/when threatened, and that never was necessary.

Falcosoft wrote on 2022-10-28, 08:30:
It seems all SB HW synths (AWE, SB Live!, Audigy etc.) use the same CTF mechanism. […]
Show full quote

It seems all SB HW synths (AWE, SB Live!, Audigy etc.) use the same CTF mechanism.

1. Variation Tones:
In case of non-existent variations (Bank MSB 1-127) always Bank 0 (GM Bank) is used. So even if the last valid bank was different from 0 the next invalid request will fallback to 0 not to the last valid one.
An example: Bank 0 Program 127 is Gun Shot and Bank 3 Program 127 is Explosion. If you select Bank 3 Program 127 you will get the Explosion effect, and if you select Bank 4 Program 127 after this (which is invalid) you will get Bank 0 Program 127 Gun Shot and not Bank 3 Program 127 Explosion.
BTW Bank LSB is always ignored by SB HW synths.

Roland's fallback on the original SC-55 should have silence for any "Special Effect" sound using an invalid variation (as in your example). According to their manual (page 43), programs 121-127 are excluded from their fallback algorithm.

And ignoring the GS Bank LSB (CC#32) on the Creative cards makes sense, since Roland was just using it to add sounds while keeping the compatible maps of older sound modules. I doubt Creative would have wanted the added effort (and RAM-ifications 😉) for SC-88 and higher sounds in a monolithic sound font. Instead they probably would have just provided a separate loadable sound font for each emulated sound module's updated bank.

Falcosoft wrote on 2022-10-28, 08:30:

@Edit:
It's also worth mentioning that the above detailed CTF mechanism is very important for SB HW synths since unlike later Roland synths they do not have so called GM mode. Even in case of a GM reset these synths react to bank select messages (accept variation banks) and work the same way.
So without a working CTF there would be no chance to correct missing instrument problems.

Creative, if forced, would probably have solved that by a software patch to correctly configure GM mode. It's really semantics, though, since internally a sort of basic fallback (not under Yamaha's patent) is probably how Roland handles GM mode.