VOGONS

Common searches


Sound Driver Enhancement Hacks - General MIDI

Topic actions

Reply 60 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Here's one from that mirsoft site (Evryoff.mid). Uses different instruments compared to Shadow Warrior shareware E1M1.

Checked it against the shareware rip. Mid files are exactly identical. When you play it in normal MIDI player, you're playing all 3 soundtracks at same time.

ingame recordings are needed to properly represent MIDI music playback in these particular games.

#######################################
#######################################

Shadow Warrior (shareware)
- 3 soundtracks
1) FM = Sound Blaster, Adlib, Media Vision, Logitech
2) MIDI = General, Sound Canvas, Wave Blaster, Ensoniq, GUS
3) AWE32

- FM pan-pot (soundtrack supports this)

- RVB, CRS
- PERC [sticks = E1L01, E1L02, E1L04]
- DRUM [POWER = E1L03, THEME]

Game auto-resets controllers - chorus, expression, volume, pan. Reverb is always set every track so no errors.

Reply 61 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Gone through Duke3D tracks (both versions). Lot to write up later - NR, PERC, RVB, CRS, DRUM, BANK.

4 soundtracks - GUS, SC + WB + Ensoniq, GM + AWE32, FM.

Also track errors:
- XPLASMA.MID (RPN 64h / 64h controller error)
- STALAG.MID (silent FM error)

Possible errors:
- SUBWAY.MID (bank N/A error) (+ bank LSB)
- PIZZED.MID (bank N/A error) (+ bank LSB)
- INHIDING.MID (bank N/A error)
- MISSIMP.MID (bank N/A error)
- ALFREDH.MID (drum possible error)

About N/A bank error

Hey tikalat, could you check out this one? Seems to be some interesting bank change going on at CH#1 around the 13 sec mark. Shows it as PC #074 BNK #015, which does not exist on a SC-55, so I wonder what that's about. It just keeps playing back the Flute though.

Maybe meant for FM tracks. Sound engineers could've forgot to take them out (SC-55 CTF = not detected). Also BANK LSB use possibly FM.

Note that _most_ bank controller switches happen --after-- program is set for Duke3D track. So no effect actually. Can cause problem when next MIDI program plays.

ex.
(good)
B0 00 08
C0 02 --> Piano 2w

(bad)
MIDI #1
C0 02 --> Piano 2
B0 00 08 --> no effect

MIDI #2
C0 07 --> Coupled Harps. (not normal Harpsichord)

Same for ALFREDH.MID - non-SC track has DRUMKIT 01 = STANDARD2. This more likely meant for FM drum program = GM drumkit error. Like Sierra soundtracks sometimes (NewRisingSun).

Still need to check some more before fixing drivers.

Reply 62 of 91, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

Guess you didn't find find any variation tones in Duke that'd be of actual use (i.e. it would play back extra stuff on a compatible synth) - just those "driver" ones? That's what I'm still kinda struggling with. So far it really seems that most games follow the "128 GM instruments + GS drums" formula. Very understandable to settle for this as a common denominator.

What I meant by "it plays back the flute" is the following (Tested both ingame w/ DOSBox and standalone MIDI file):

SC-88 GS, MISSIMP.MID: MIDI Player shows a missing instrument at Channel #1, SC display shows the Flute and plays it. No errors.
SC-88 GS, INHIDING.MID: Channel #3 plays the Fretless Bs., Channel #4 shows "No INSTRUMENT" after notes start playing and stays silent. After restarting the level #3 shows the error too. Of course due to the GS reset in the standalone file #3 is fine here.

Internet lore has it that CTF was omitted starting with the SC-55 MkII, so there must be some difference between these cases I listed. I'm not too versed in the technical details, so sorry if my explanations may sound a bit amateur-ish 😉

Now: S-YXG50 plays Channel #4! Same goes for SC-88 set in GM mode. But this is expected, Roland GM mode only plays back capital tones+GS drums. To my understanding they designed this as a foolproof method to play back any kind of unknown material. And perhaps to see how your produced GS stuff would sound on GM devices, heh.

So to sum it up, so far it seems like this particular issue could be resolved by sending a GM reset for SC-55 MkII and up (which take POWER etc. drums) and a GS reset for Yamaha devices (which seem to play back that stupid channel anyway). Confused yet?! 🙄 Also, I find it rather weird that some of those standalone MIDI files have GS resets while the game doesn't have any.

Well, guess at least checking out Windows titles will be a bit more straightforward. If those games just send the MIDI data to Microsoft's MIDI Mapper there is probably not much game driver magic involved.

Edit: Okay, wait... so you found that there ARE different soundtracks for SC/GM here?! 😳 This could render everything I said null and void... can you sketch the differences between those two particular modes after you are done testing? I honestly did my testing here and found them to be identical, so the differences can't be huge. Just AWE vs. GM sounded differently.

Edit 2: It looks like SC mode still doesn't send GS resets. And I still get No INSTRUMENT here as described above. Can confirm the ALFREDH.MID issue though, they fucked it up. It's out of question that STANDARD 2 is intended because this was introduced on the SC-88. Which was out at that time but for obvious reasons I doubt this was the target device. So ironically it'd only fuck up SC-88+, because on earlier devices it'd just default to STANDARD.

A question that occurs to me here is how all of this is handled by source ports. 😀

Also, not entirely topic related, but I had big troubles with GS resets on the S-YXG50 softsynth. Most of the times it doesn't seem to register it. So it can be hard to get correct playback in games such as Duke.

Last edited by d1stortion on 2013-06-19, 15:19. Edited 1 time in total.

Reply 63 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Guess you didn't find find any variation tones in Duke that'd be of actual use

Dug deep. Found just 1: ALFREDH.MID
- Ch4: BANK 8, PROG 51 = Syn. Strings 3

So far it really seems that most games follow the "128 GM instruments + GS drums" formula.

Duke3D - Atomic Edition
BRIEFING.MID - DRUM = orchestra
CF.MID - PERC = sticks
FLOGHORN.MID - PERC = belltree
LEMCHILL.MID - PERC = shaker
MISSIMP.MID - BANK = B0 00 0F (Adlib error?)
RESTRICT.MID - DRUM = orchestra

Duke3D
AHGEEZ.MID - DRUM = orchestra
ALFREDH.MID (LJ) - BANK 8, 51 = Syn. Strings 3, PERC = belltree
ALIENZ.MID (RP) - DRUM = power

INHIDING.MID (RP)
- BANK = 28 (1st -after- program change)
- BANK = 28 (2nd -after- program change)
--- INSTR = 52 (Syn. Strings 2)
--- INSTR = 19 (Organ 3)
- PERC = shaker, castanets

LORDOFLA.MID - DRUM = power
PIZZED.MID - DRUM = power, BANK LOW = B9 00 00 / B9 20 0E (...? no program change)

SNAKE1.MID - DRUM = power
SPOOK.MID - PERC = metronome click
SUBWAY.MID - BANK = 27 (no program change), BANK = B9 00 04 / B9 20 7D (no program change)

FUTURMIL.MID - DRUM = orchestra
GLOOMY.MID - GUS track, DRUM = orchestra
GRABBAG.MID - DRUM = power
STALAG.MID - DRUM = room, FM silent error (track 3)
STALKER.MID - GUS track, DRUM = room, PERC = shaker
URBAN.MID - GUS track
WHOMP.MID - GUS track
XPLASMA.MID - RPN error

(RP) tracks
- sysex = GS reset
- sysex = SC-55 only: device text screen [Music Copr. 1996, Robt. Prince]

What I meant by "it plays back the flute" is the following (Tested both ingame w/ DOSBox and standalone MIDI file):

I should experiment more ingame.

SC-88 GS, INHIDING.MID: Channel #3 plays the Fretless Bs., Channel #4 shows "No INSTRUMENT" after notes start playing and stays silent. After restarting the level #3 shows the error too. Of course due to the GS reset in the standalone file #3 is fine here.

Curious. :unsure:

So to sum it up, so far it seems like this particular issue could be resolved by sending a GM reset for SC-55 MkII and up (which take POWER etc. drums) and a GS reset for Yamaha devices (which seem to play back that stupid channel anyway).

Game driver probably isn't that flexible. Thinking of editing the MID files and separating the adlib cases. Adding manual bank reset also. GRP look expandable easily.

Now: S-YXG50 plays Channel #4! Same goes for SC-88 set in GM mode.

iirc, Yamaha (*) have bank CTF in GM / GS.

Also, I find it rather weird that some of those standalone MIDI files have GS resets while the game doesn't have any.

Probably driver ignoring F0.

This could render everything I said null and void... can you sketch the differences between those two particular modes after you are done testing?

Duke is popular. Will go through and inspect.

Which was out at that time but for obvious reasons I doubt this was the target device.

Depends whether Lee Jackson used SC-55 also?? LJ used the Apogee controllers (track device separation) while RP did not do this - one track for all devices.

Reply 64 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Duke3D track differences

ALFREDH.MID (LJ)

GM / AWE / GUS
- ch2 = Metal Pad (LJ track: GS Crystal)
- ch4 = Syn Strings (BANK 08)

FM + GM / AWE / GUS
- ch10 = STANDARD2 problem (LJ track: GS Effects)

SC
- ch3 = Bowed Glass (Crystal)
- ch4 = Syn Strings (BANK 08)
- ch10 = STANDARD (Effects)

NOTE: Only ch10 difference is drum program....?? Same notes. Which device??

GLOOMY.MID (LJ)

GM / SC / AWE
- ch2 = Synth Brass1
- ch3 = Choir Aahs
- ch6 = Music Box
- ch7 = Music Box (Echo)

GUS
- ch2 = GUS Synth Brass
- ch3 = GUS Choir
- ch6 = GUS Music Box
- ch7 = GUS Music Box (Echo)

INHIDING.MID (RP)
- check BANK 1C (FM)

PIZZED.MID (RP)
- check BANK LSB 0E (FM)

STALKER.MID (LJ)

GM / SC / AWE
- ch2 = Fretless Bass
- ch4 = Strings (LW)

GUS
- ch2 = GUS Bass
- ch4 = Strings (LG)
- ch11 = GUS Strings

SUBWAY.MID (RP)
- check BANK 1B
- check BANK MSB,LSB 04,7D

URBAN.MID (LJ)

GM / SC / AWE
- ch4 = Synth Drum

GUS
- ch4 = GUS Synth Drum

WHOMP.MID (LJ)

GM / SC / AWE
- ch2 = Mid Strings
- ch6 = Harp

GUS
- ch3 = GUS Mid - Vox
- ch7 = Celeste (GUS Only)

Atomic - MISSIMP.MID (LJ)
- check BANK 0F (FM)

About ALFREDH.MID BANK 08. Tip got to re-read EMIDI.txt:

EMIDI 11 devices 0 - General MIDI 1 - Roland Sound Canvas (GM only) 2 - Sound Blaster AWE32 […]
Show full quote

EMIDI 11 devices
0 - General MIDI
1 - Roland Sound Canvas (GM only)
2 - Sound Blaster AWE32
3 - Wave Blaster and Compatibles (SCD-10, etc.)
4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
5 - Media Vision Pro Audio series
6 - Logitech Sound Man 16
7 - Adlib and Compatibles
8 - Ensoniq Soundscape
9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
127 - All (see Controller Definitions)

Note: Although the Roland Sound Canvas is supported, it is
only supported in GM mode. The Apogee Sound System does not
support the direct sending of System Exclusive messages required
for GS mode support.

ROTT EMIDI 10 […]
Show full quote

ROTT EMIDI 10

0 - General MIDI
1 - Roland Sound Canvas (GM and GS)
2 - Sound Blaster AWE32
3 - Wave Blaster and Compatibles (SCD-10, etc.)
4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
5 - Media Vision Pro Audio series
6 - Logitech Sound Man 16
7 - Adlib and Compatibles
8 - Ensoniq Soundscape
9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
127 - All (see Controller Definitions)

FM Midi :
On OPL2 cards 9 voices are available. OPL3 cards have 18 voices. Melodic
mode is used for music. For percussion (channel 10), each key is assigned
a timbre to play at a pitch specified by the patch. This method was chosen
based on the advice of Bobby Prince, Rob Wallace, George Sanger, and Lee
Jackson, all of whom felt the 11 voice mode was too restricting for
musicians.

Side-note, Duke soundtrack supports FM pan.

(hearsay) The guess is that Lee Jackson used a SC-55 as the 'target' device. In Roland GM1 mode only.

Roland:
GM1 = no bank 00/20 controller, no NRPN controller
GS = bank 00/20 controller
GM2 = bank 00/20 controller

(assumption) So all the banks are for FM only. No BANK CTF problem.

....Hmm..

Reply 65 of 91, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

Blood menu/E1M1 gives issues on my DB60XG clone when set to TG300B mode. Plays the piano on either some or all channels, but only ingame (setup test seems to be fine). Most likely same Apogee driver.

Warcraft II (DOS version) uses instrument changes and extra drums, but no variation tones as far as I could tell.

Reply 66 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Thanks, will update later.

SC-88 GS, MISSIMP.MID: MIDI Player shows a missing instrument at Channel #1, SC display shows the Flute and plays it. No errors.

- MIDI player changes instrument immediately after BANK sent. Error.
- Roland waits for PROGRAM message before using BANK value. Okay until new PROGRAM sent.

SC-88 GS, INHIDING.MID: Channel #3 plays the Fretless Bs., Channel #4 shows "No INSTRUMENT" after notes start playing and stays silent. After restarting the level #3 shows the error too. Of course due to the GS reset in the standalone file #3 is fine here.

- Both CTF problem. Way MIDI tracks written. No BANK reset sent.
- SERIOUS in-game bug. Depends order of tracks played.
--- Anything played after ALFREDH.MID could affect even normal SC-55 (bank aliasing error)
--- ex. E1M1 = Strings (BANK 0)*** vs Orchestra (BANK 8) (bad)

Must rewrite driver though exe. And rewrite different EXE versions.

Also, not entirely topic related, but I had big troubles with GS resets on the S-YXG50 softsynth. Most of the times it doesn't seem to register it. So it can be hard to get correct playback in games such as Duke.

Could be sysex timing - VSC uses 50ms wait period. Try this one - ~1000ms wait.

Attachments

  • Filename
    gs_reset.7z
    File size
    166 Bytes
    Downloads
    136 downloads
    File comment
    long sysex wait - gs reset
    File license
    Fair use/fair dealing exception

Reply 67 of 91, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

Thanks. Will check how this works and post back. Do you have the Yamaha synth yourself? If not I could provide you with it. Could prove useful.

The Duke issue seems like a PITA. Perhaps I'll test it with a source port and see if they fixed it.

Edit: Nope, no difference with the new reset.

Reply 68 of 91, by Stefan_L

User metadata
Rank Member
Rank
Member

Many games have General MIDI soundtracks. But which ones take advantage of the Roland GS?

Thats an quote from the first post and maybe it is better to actually list games that have true GM instead of listing those that have GS as probably 95% of all GM soundtracks are made with SC55, so there will always be some system exclusive data in them 😀

Also most other GM devices do have the drumkits introduced with SC55 and having reverb/chorus control.

Reply 69 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Sam & Max Hit the Road (floppy)

(note: rough midi #s used based on order. may be off.)

PERC
- belltree = 10-2, 14, 22-2, 37-1, 40-1, 43-2, 48-1, 48-3, 51, 79
- castanets = 40-1
- jingle bell = 12-1, 14, 37-1, 48-1, 48-3, 79
- open surdo = 15-3, 37-1, 48-3, 55-2
- scratch push = 30
- shaker = 40-1, 43-2, 48-1, 79

Fake BANK?
- 48-1 - B9,00,05 (no program change?)(false alarm?)

9+ melodic (GM-only)
- 3 = 15 channel (intro - scientist)
- 47 = 9 channel (savage jungle inn)

Don't recall drum program ever being sent. Won't count as an error to fix.

#################################
#################################
#################################

probably 95% of all GM soundtracks are made with SC55, so there will always be some system exclusive data in them

Also most other GM devices do have the drumkits introduced with SC55 and having reverb/chorus control.

Likely true. And true.

it is better to actually list games that have true GM instead of listing those that have GS

#1 goal is to provide driver fixes (important)
#2 goal is to document GS behavior (somewhat popular niche)

Add true GM on top? Maybe could do that.

Suggestions on what to recall the thread? Teaser descriptions?

#################################
#################################
#################################

Not-so-funny story.

Fixed Duke3D tracks + driver now sends bank resets (all devices).
Fixed error in MIDI parser. Now detects RP tracks:
- cc 76h, 77h (Apogee controller??)
- ch10 - NRPN..?!! Pitch + Pan-Pot

Yes. NRPN. Needs in-game GS reset to fix this. 😐

edit:
Should have Yamaha softsynth - if I can find my FF7 PC CD.. ^^

Reply 70 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Thanks to Stefan_L, took quick peek at ShadowCaster (1993).
http://www.ym2149.com/shadowcaster_at.zip

sc sysex

0) F0 41 10 42 12
Roland GS

1) 40 00 7F 00
GS reset

2) 40 01 30 04
Reverb = Hall 2 (default)

3) 40 01 38 03
Chorus = Chorus 4 (chorus 3 = default)
(****)

4) 50 F7
End sysex

Something new again. Going to finish looking later.

-- Found out Sam & Max sends reverb controller 91. Added.
-- Added new game entries mentioned earlier.
-- Going to add regular GM games too.
-- Shadow Warrior (shareware) doesn't send 2 chorus resets on E1L3. Fix driver later (Duke3D mid file method doesn't work).
-- Duke3D NRPN shouldn't mess up AWE soundtrack anymore. Yamaha may/not be affected - shares similar NRPN controllers.

Reply 71 of 91, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

I have absolutely no idea what you're talking about in the rest of this thread, but let me offer one comment regarding that b.s. Shadow Caster sysex: Roland's system exclusive message format doesn't allow putting three addresses in one message. All bytes after the three address bytes invariably are treated as data, if the parameter address map actually provides for data fields at subsequent addresses. Hence, the reverb and chorus parts of that sysex have no effect, which I verified both with the SCC-1 and CM-500.

Reply 73 of 91, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

I sort of hoped you would explain what the rest of the thread is all about. It seemed to start out as some form of thread documenting which games use GS features, some of it was then moved to a Wiki, but the initial post with the tags also gets regularly updated, and now you're fixing... something. It's all very confusing.

As for Shadow Caster, I separated that broken system exclusive message into three separate ones to find out how the music would sound with that different chorus setting. The original floppy version's XMIDI files do not sound much different, but the additional files from the CD-ROM version sound downright horrible.

Reply 74 of 91, by tikalat

User metadata
Rank Member
Rank
Member

I sort of hoped you would explain what the rest of the thread is all about. It seemed to start out as some form of thread documenting which games use GS features, some of it was then moved to a Wiki, but the initial post with the tags also gets regularly updated, and now you're fixing... something. It's all very confusing.

That's the problem. I don't deeply know anymore.
1) thread documenting which games use GS features -- true. original purpose.
2) some of it was then moved to a Wiki -- true, non-GS games were moved out
-- 3) (tikalat) Started supplying driver fix links as 2nd priority
4) initial post with the tags also gets regularly updated -- true, found out sound modules handle GM mode differently causing problems, added more info, muddying up (*)
5) now you're fixing... something -- true, mostly updating tags + timeline
-- 6) (tikalat) adding pure GM games -- recent decision to just add them anyway for completeness
-- 7) (tikalat) focus changed to just GM sound drivers in general as super umbrella
8) It's all very confusing. -- true

I don't know anymore. All somehow feels mistaken, unimportant - most games are GS-related somehow. Too big focus. Lost.

As for Shadow Caster, I separated that broken system exclusive message into three separate ones to find out how the music would sound with that different chorus setting. The original floppy version's XMIDI files do not sound much different, but the additional files from the CD-ROM version sound downright horrible.

Disappointing but important to know. For me, driver '''fixing''' is now fully questionable. Don't feel comfortable changing things knowing it could be a disaster mistake. Many '''bugs''' could be intentional - not ripped out for various reason.

'''Correcting''' them may be wrong choice (Shadow Caster). Duke3D sounds '''better''' but is that right?? Blackthorne doesn't cut BGM anymore but did I just kill SC polyphony limits (unrealistic 40-90 counts)?? What if the tone variation / drum kit / modulation was never intended to be heard??

Thanks. I'd better stop. I'm just bummed out now.

Reply 75 of 91, by keropi

User metadata
Rank l33t++
Rank
l33t++

Hey don't stop with the fixes! I find them amazing an tbh someone can test them and if they brake things or does not like the result , one can revert to the original version.... back then most games had little quality control, I really thing that many things are unoptimized but left as is because they "worked" ...

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 76 of 91, by tikalat

User metadata
Rank Member
Rank
Member

Thread rebooted.
- Main post changed. Cleanup.
- Lots tags updated
- Focus changed to sound enhancement hacks
- New entries: Hocus Pocus, Ultima VIII
- New links: Hocus Pocus, Blood, Duke Nukem 3D, Shadow Warrior, Rise of the Triad

Reply 77 of 91, by d1stortion

User metadata
Rank Oldbie
Rank
Oldbie

Nice work on the list!

If you get a chance, could you please take a closer look at the Sound Canvas portion of Dune 2 (relevant thread)? I couldn't verify the actual issues due to lack of save file, but there might be something going on here nevertheless. Not sure for which SC-55 revision this was designed; I spotted both Breath Noise and Fl. Keyclick.