Project 1999

Go Back   Project 1999 > General Community > Technical Discussion

Reply
 
Thread Tools Display Modes
  #91  
Old 07-08-2020, 11:21 PM
norova norova is offline
Sarnak

norova's Avatar

Join Date: Jun 2012
Location: Enceladus
Posts: 272
Default

Awesome work Maestrobob!! Updated the reverb/chorus to 127 and loaded your updated soundfont and things are sounding better than ever. Much appreciate the time and effort put into this!
__________________

Fizzlelina Fizzlezalot <Castle> :: Gnome Necromancer :: Green
Welgrim Stoutslammer <Dawn Believers> :: Dwarf Cleric :: Blue
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
Welgrim's Project 1999 files: https://p99.yourfirefly.com
Reply With Quote
  #92  
Old 07-09-2020, 12:19 PM
System Shock System Shock is offline
Orc

System Shock's Avatar

Join Date: Apr 2015
Posts: 34
Default

Quote:
Originally Posted by Maestrobob [You must be logged in to view images. Log in or Register.]
Hi Guys,

I posted this over at TAKP today, I figured I would post it here as well. It seems like Lilcea was down the same path as I was.

Just stumbled across this thread and thought I would share some thoughts and findings on this topic, as I have been researching it for a while.

A little history first - I played EQ in 2000 on a Win98 box with an AWE32 and remember how great the music sounded with this hardware. For years I've looked for ways to get the music sounding as I remember.

SO in the case of the EQ client itself - As mentioned previously; about the time when PoP came out, they removed the clients ability to dynamically switch the soundfont banks into EMU8000 cards. This had to do with them trying to fix the compatibility issue with Windows XP/NT and Creative drivers no longer allowing access to bank switching directly by applications. Windows 9x/DOS allowed for much lower level access to the hardware through the drivers. If you tried to use any period EQ client on a Windows XP/NT/2000 machine, soundfont bank switching would NOT work. Using a Trilogy or Luclin era client on a Win9x box with an AWE32 card and correct drivers should dynamically switch in the proper banks automatically.

Now let's dive into the meat and potatoes of what I've found. Using VirtualMIDISynth, Timidity++ etc. and loading the banks 1mgm.sf2 and synthusr.sf2 in the appropriate manner gets us CLOSE to what it sounded like, but it's not exact. This is because of how synthusr.sf2 relies on the onboard AWE32 ROM (in this case 1mgm.sf2) to patch in missing wavetables. This can be verified by opening synthusr.sf2 into a soundfont editor like Viena.

[You must be logged in to view images. Log in or Register.]

Here you can see synthusr.sf2 loaded into Viena. Notice on the left side under "samples" we see a list of !ROM: samples. These are the samples that synthusr.sf2 is expecting to import from the AWE32 ROM. If we click on one, we get an error that it isn't found.

Now let's load up 1mgm.sf2 into Viena - and what do we find? All of the samples synthusr.sf2 is looking for, of course.

[You must be logged in to view images. Log in or Register.]

Back to synthusr.sf2 - Now let's look at the instrument presets, and we'll notice that not only do many of the presets use a combination of wavetables - some from synthusr.sf2 and some from 1mgm.sf2, but synthusr.sf2 applies specific parameters to the wavetables from 1mgm.sf2 that cannot be reproduced by loading the soundfonts into a software emulation.

For this example, let's take Brass 1 from synthusr.sf2

[You must be logged in to view images. Log in or Register.]

We can see that this instrument preset combines BrassSectC3 from 1mgm.sf2 4 different times to create a unique sound that's different from just using the preset from 1mgm.sf2 by itself. Every single preset in synthusr.sf2 uses the AWE32 ROM samples in this function. This is also true for all of the drum presets. The limitations of software like VirtualMIDISynth doesn't allow individual wavetable samples to be imported in these cases.

Now what we can do is import and reassign every instrument preset in synthusr.sf2 to use the correct samples, then save the resulting .sf2 out and in this case load it into XMPlay with an original EQ .xmi file. (note: This new .sf2 removes the need to load 1mgm.sf2 at all)

The results speak for themselves - Here are a few tracks using the new .sf2 with correct samples:

Akanon track 1:
https://sndup.net/2kts

Qeynos tracks 2 and 6:
https://sndup.net/5wfj
https://sndup.net/9gn5

West Karana (qey2hh1.xmi track 3)
https://sndup.net/853w

Kaladim tracks 5 and 6 (notorious for sounding terrible with the wrong soundfont)
https://sndup.net/536w
https://sndup.net/59m3

I think you'll notice the extra layers to instruments you'd normally be missing along with the correct percussion sounds. The pieces now sound as close as to what I can remember and how Mr. Jay Barbeau originally intended.

If you want to give it a try, the new .sf2 file is here (I highly recommend XMPlay, as it has built-in soundfont support and you can load up the original EQ .xmi's with all of the subsongs).

As a last note - There is one other variable not taken into account - The EMU8000 on the AWE32 also allowed for hardware effects processing through EAX, which could be applied to soundfonts. I am not 100% sure about how the EQ client went about this, but if someone does get a Win9X box running with a Trilogy or Luclin client and AWE32, it would be interesting to compare results.

Edit: I have dumped all of the .xmi subtracks to .mp3 using this new soundfont. You can find the .zip of them all here. (633 MB)
This is literally the holy grail of what i was looking for, Thanks Maestrobob.

At this point if the off key/pitch problems that arise after a few midi tracks play/repeat can be fixed along with the Infinitely looping tracks and multiple tracks not triggering from the same .xmi (e.g. the 3 combat tracks but we only hear 1 or the underwater track), the music will be flawless. Although i fear some of those may require rewriting code for the way titanium client handles xmi files vs the original/trilogy clients.
__________________
Reply With Quote
  #93  
Old 07-09-2020, 12:34 PM
Scoojitsu Scoojitsu is offline
Sarnak


Join Date: Nov 2013
Posts: 246
Default

Quote:
Originally Posted by Maestrobob [You must be logged in to view images. Log in or Register.]
XMPlay is only if you want to listen to the MIDI files outside of the game.

The easiest and quickest method for getting the in game music to sound like this is to use BASSMIDI or VirtualMIDISynth, as outlined by the OP of this thread. Then, instead of using 1mgm.sf2, synthusr.sf2, or a combination of both, load my soundfont I posted earlier and all the in-game music should sound like the mp3s.

As a quick note, VirtualMIDISynth limits the max MIDI reverb and chorus to 64 by default. You will need to go into options and change both to 127.

There is one other way - which involves making the client use mp3 files instead of the .xmi. It's much more complex as you have to edit a ton of .emt files in the EQ folder, but you can see the details of what's involved on this post.
Thank you very much! [You must be logged in to view images. Log in or Register.]
Reply With Quote
  #94  
Old 07-09-2020, 02:35 PM
Maestrobob Maestrobob is offline
Skeleton


Join Date: Aug 2013
Posts: 17
Default

Quote:
Originally Posted by System Shock [You must be logged in to view images. Log in or Register.]
This is literally the holy grail of what i was looking for, Thanks Maestrobob.

At this point if the off key/pitch problems that arise after a few midi tracks play/repeat can be fixed along with the Infinitely looping tracks and multiple tracks not triggering from the same .xmi (e.g. the 3 combat tracks but we only hear 1 or the underwater track), the music will be flawless. Although i fear some of those may require rewriting code for the way titanium client handles xmi files vs the original/trilogy clients.
Yes, unfortunately ever since around the time of DX8 patch/PoP, they completely borked the way the client handles some of the .xmi's events. The global MIDI file (gl.xmi) is barely used at all now. This includes the different combat music (gl(1)-(3)), all of the bard instruments (gl(10-17)), underwater music, etc.

My next task is to test out the new .sf2 with the Trilogy client, and I'm expecting all of those to work/sound perfectly.
Reply With Quote
  #95  
Old 07-09-2020, 09:49 PM
torusnc torusnc is offline
Scrawny Gnoll

torusnc's Avatar

Join Date: May 2015
Posts: 22
Default

Windows 10, running WinEQ. I seem to be having problems getting P99 to pick up the OmniMIDI configuration. I have this list directly assigned to the P99 eqgame.exe.



Here is my current setup, very simple:


[You must be logged in to view images. Log in or Register.]




I've tried the flags as 1 1 0 0 over 0 0 1 1, and 0 0 1 1 over 1 1 0 0 in addition to the settings in the picture above. I haven't heard any difference whatsoever. Also have tried the creative 8MBGM soundfont.


Any ideas/input? Thank you.
Reply With Quote
  #96  
Old 07-11-2020, 02:24 AM
Lilcea Lilcea is offline
Orc


Join Date: Aug 2015
Posts: 31
Default

Quote:
Originally Posted by loramin [You must be logged in to view images. Log in or Register.]
How big is this file? The wiki could probably host it (if it doesn't limit files by extension ... I'd have to check), and really the wiki is a better (more permanent) host for the instructions and such than a forum post also.

EDIT: It looks like you just have to use the syntax: [[Media:File.ogg]] (and presumably .zip, or .midi, or whatever would work also).

We already have an https://wiki.project1999.com/Audio_Enhancements page (although it could clearly use some love), and it would be the perfect place to add it. Alternatively you could also add it on its own page, and link to that page from there.

Feel free to PM me if you have questions.
Sorry for the slow reply I've been in hospital again [You must be logged in to view images. Log in or Register.]

I have the file on my google drive, it's 3 years old but still works, as you can see from the Youtube video's I did last month. Other than those vids I've not touched it since I last tested it against the real hardware. Feel free to put it onto the wiki.

It's a standard sound font, I'm not going to explain how to use it as i'd just be going over info already posted at the beginning of this this thread.

https://drive.google.com/drive/folde...9b?usp=sharing
Reply With Quote
  #97  
Old 07-11-2020, 07:02 AM
Maestrobob Maestrobob is offline
Skeleton


Join Date: Aug 2013
Posts: 17
Default

Quote:
Originally Posted by Lilcea [You must be logged in to view images. Log in or Register.]
Sorry for the slow reply I've been in hospital again [You must be logged in to view images. Log in or Register.]

I have the file on my google drive, it's 3 years old but still works, as you can see from the Youtube video's I did last month. Other than those vids I've not touched it since I last tested it against the real hardware. Feel free to put it onto the wiki.

It's a standard sound font, I'm not going to explain how to use it as i'd just be going over info already posted at the beginning of this this thread.

https://drive.google.com/drive/folde...9b?usp=sharing
Wow, you beat me to the fix by 3 years! [You must be logged in to view images. Log in or Register.] I compared our .sf2's in Viena and they are nearly 100% identical.

I noticed you used the AweROMGM.sf2 when you reassigned the samples, while I ended up using the official 1mgm.sf2 that came with E-mu's Soundfont Librarian.

There is one small discrepancy with the sample pianof5 #2 (used in presets 000: Piano 1, 001: Piano 2, and 003: Honky-Tonk). Since the AweROMGM.sf2 was put together manually by splitting the awe32.rom data, the wave split is a bit off and includes a small portion of the pianof5 sample before it (these occur back to back in the awe32.rom dump, so it'd be super easy to mess that up). I don't think it actually affects the presets though, since it clips before then.

Otherwise I am stoked that we can finally hear the music again as it was on the AWE cards! I know some people might not care at all, but there are still plenty of us who do. Now if there was only some way to fix the .xmi triggers in the binaries, it'd be absolutely perfect.

I've heard through the grapevine that Jay Barbeau had his hands on a higher fidelity soundfont which he used to make recordings of the soundtrack back in the day. I wonder if it is still sitting around on a hard disk somewhere...
Reply With Quote
  #98  
Old 07-11-2020, 08:58 AM
Lilcea Lilcea is offline
Orc


Join Date: Aug 2015
Posts: 31
Default

Quote:
Originally Posted by Maestrobob [You must be logged in to view images. Log in or Register.]
Wow, you beat me to the fix by 3 years! [You must be logged in to view images. Log in or Register.] I compared our .sf2's in Viena and they are nearly 100% identical.

I noticed you used the AweROMGM.sf2 when you reassigned the samples, while I ended up using the official 1mgm.sf2 that came with E-mu's Soundfont Librarian.

There is one small discrepancy with the sample pianof5 #2 (used in presets 000: Piano 1, 001: Piano 2, and 003: Honky-Tonk). Since the AweROMGM.sf2 was put together manually by splitting the awe32.rom data, the wave split is a bit off and includes a small portion of the pianof5 sample before it (these occur back to back in the awe32.rom dump, so it'd be super easy to mess that up). I don't think it actually affects the presets though, since it clips before then.

Otherwise I am stoked that we can finally hear the music again as it was on the AWE cards! I know some people might not care at all, but there are still plenty of us who do. Now if there was only some way to fix the .xmi triggers in the binaries, it'd be absolutely perfect.

I've heard through the grapevine that Jay Barbeau had his hands on a higher fidelity soundfont which he used to make recordings of the soundtrack back in the day. I wonder if it is still sitting around on a hard disk somewhere...
I started to reverse engineer the main eq exe shortly after I did the sound font, unfortunately I did not get deep into it as I ended up in hospital with gut problems. I never really continued it after that. I may have another go at disassembling it as I really miss the extra music (The other combat tunes, boat music etc) that's missing.

I have a feeling the music lists with the track info is stored elsewhere though, I do seem to remember going though some of them to disable the really load and annoying lightening sound.

I dug the old pentium with the AWE32 out of the loft, didn't connect it up to the internet but the old everquest tutorial still works, I may do a video if I can find my cables to hook it up to the capture card. I don't think there is any audio in the tutorial though as far as I remember.
Reply With Quote
  #99  
Old 07-13-2020, 06:46 AM
Lilcea Lilcea is offline
Orc


Join Date: Aug 2015
Posts: 31
Default

I had some free time this morning so I decided to go on a boat ride [You must be logged in to view images. Log in or Register.]

https://www.youtube.com/watch?v=n7S2lstG9vE

Ok A few things, at the moment it's just set to a zone wide trigger and on auto repeat. this can be changed quite easily.

What I need is some help, I'm pretty sure there is more boat MIDI, I seem to remember some wave sounds and a dock bell on one of them.

I'm hoping people can remember what tunes are missing with an approximate location in the zone that they triggered. If I can get that information I should be able to restore the missing tunes.

Should also be able to fix zones like West Karana and stop the MIDI from triggering every 10 seconds as you run along the shoreline and have the whole tune to play.
Reply With Quote
  #100  
Old 07-13-2020, 07:51 AM
Maestrobob Maestrobob is offline
Skeleton


Join Date: Aug 2013
Posts: 17
Default

Quote:
Originally Posted by Lilcea [You must be logged in to view images. Log in or Register.]
I had some free time this morning so I decided to go on a boat ride [You must be logged in to view images. Log in or Register.]

https://www.youtube.com/watch?v=n7S2lstG9vE

Ok A few things, at the moment it's just set to a zone wide trigger and on auto repeat. this can be changed quite easily.

What I need is some help, I'm pretty sure there is more boat MIDI, I seem to remember some wave sounds and a dock bell on one of them.

I'm hoping people can remember what tunes are missing with an approximate location in the zone that they triggered. If I can get that information I should be able to restore the missing tunes.

Should also be able to fix zones like West Karana and stop the MIDI from triggering every 10 seconds as you run along the shoreline and have the whole tune to play.
Ah yes... the boat music. Here's what I remember from the year 2000! The boat music was always a little bit... buggy? It definitely didn't loop continuously though. I also don't think there was any other music, at least when taking the old world boats like from from Freeport to BB.

I'm an auditor on EQClassic, which uses the trilogy client. As far as I can tell, all of the .xmi triggers there seem to work exactly as I remember. I made a recording of the boat ride from FP to BB with the music below so you can hear exactly what happens.

https://youtu.be/YAZZuaonjpU

You can hear the music plays through completely once then loops once, but with most of the channels muted. Eventually the all come back in and then it ends. What's interesting is as soon as a different .xmi trigger event happens (for example the battle music), the boat music starts over again, etc. I'm thinking the .xmi was always on a zone-wide trigger, but after one loop, it's supposed to drop all of the channel volume to 0 until the next trigger. Just a hypothesis, as I haven't dove into the deep end yet.

I'm definitely curious to see what you can come up with on this issue.
Last edited by Maestrobob; 07-13-2020 at 07:57 AM..
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:22 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.