Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Immorpher

Morph Sound 64 'enhancement' for Doom 64 EX, Retribution, GEC Master Edition, and Nightdive's Re-release

Recommended Posts

Posted (edited)

This modification aims to increase the quality of Doom 64 sounds by increasing their sampling rate and giving them a stereo presence. I primarily worked off the original sounds to keep faithfulness and reconstructed the missing frequencies (with some cleaning) using a variety of methods as described in the specifics section. The idea is to maximize the crispness of the sounds without adding noise or making them sound worse. Thus my editing choices can be down to preference, but I rather keep sounds how they originally were than to make them sound too noisy.

Download it here: https://www.dropbox.com/sh/4za654kmg64thn5/AABTw_Q_iVSuPPspfkzejAhFa?dl=0

As of writing this, Nightdive's rerelease has the least amount of benefit. It seems to down sample back to 22.05 kHz but it still benefits from some of the noise cleaning, edge frequencies, and stereo presence I have added to the sounds. Also I haven't been able to incorporate my music modification to this port yet (still learning the file formats it uses).

Demonstration in GEC Master Edition (DZDoom):

Spoiler

Here it is with Morph Sound 64 (headphones recommended):


And here it is originally, without the mod:

 


Demonstration in Doom 64 EX using a custom Doom 64 map, Wretched, by @jdagenet

Spoiler

Doom 64 EX with Morph Sound 64 (headphones recommended):


Doom 64 EX without Morph Sound 64:

 


Installation (with Doom 64 port download links):

Spoiler

Make sure to download the appropriate files for the Doom 64 port you wish to use this with, as each port has different naming and format schemes. Majority of the ports are compatible with the Doom launcher program ZDL and they also support the -file command in their respective launch options, for which the sound version of this mod can be implemented. For example -file “C:\Files\Morph Sound 64.pk3”. However, the music version of this mod and Doom 64 EX are handled differently as described below.
 

Doom 64 EX (KEX1):
For Doom 64 EX, the sound and music components of this mod are combined into a single .sf2 file. To use this mod, download the .sf2 file and rename it to “DOOMSND.SF2”. In main Doom 64 EX directory, rename pre-existing “DOOMSND.SF2” file as a backup. Then place the Morph Music 64 version of “DOOMSND.SF2” into the directory and you should be all set!
 

Doom 64 Retribution (GZDoom):
You can use the -file command to load the sound version of this mod or ZDL to load. This variant can be used generally in ZDoom ports (GZDoom/Zandronum) to replace Doom 1 and most of Doom 2 sounds with the Doom 64 variants, with exception to the missing enemies in Doom 64. To use the music version of this mod, download the .sf2 file and rename it to “gzdoom.sf2”. In the GZDoom soundfonts folder, make sure to backup your “gzdoom.sf2”, and replace it with the Morph Music 64 version. Make sure to select “fluidsynth” as the MIDI device in the GZDoom sound options and you it should work!
 

GEC Master Edition (DZDoom):
You can use the -file command to load the sound version of this mod or ZDL to load. Also in the “Doom64.bat” you can add the location of the sound mod to the list of files after the “-file” command to your preferred gameplay option. To use the music version of this mod, download the .sf2 file and rename it to “DOOMSND.sf2”. In the “Doom64” folder of the GEC Master Edition directory backup the existing “DOOMSND.sf2” file and replace “DOOMSND.sf2” with the Morph Music 64 version.
 

Nightdive’s Doom 64 Re-release (KEX3):
To access Nightdive’s re-release launch options in Steam you can go to the “Library” window, right-click on “Doom 64”, and click on “Set Launch Options…” in the “General” tab. Here you can use the -file command!


Credits:

Spoiler

Thanks to Captain Raleb, bmerangs, and Hot Violet for helping me test this! Also thanks to Perkristian, Sean the Bermanator, and ColorSphere (Mr. HK) for finding some of the original sounds which were downsampled, upscaled, and carefully mixed back in on a select few sounds. Finally, thanks to Fookerton and Filipe Barros Rodrigues for helping me work with soundfont editing software.

 

Original sounds were assembled by the Doom 64 Midway team which were later released in Nightdive's Doom 64 re-release, from which I obtained them. As I am not the original creator of the original sounds used in the upscaling process, my permission is not necessary for their use in other projects. Feel free to edit them and improve them!


Specific Details:

Spoiler

The goal of this project is to take the original Doom 64 sounds and music samples, which had a lower sampling rate, and increase their quality by re-adding higher frequencies that were lost when compressed. I want to remain faithful such that they sound how you imagined they sounded like as a kid, when you weren’t particularly listening closely to the sounds to notice quality differences. Sometimes upscaling will introduce ringing artifacts however. By mixing between various techniques, I hope to minimize that. Sometimes down sampling techniques will boost certain frequencies and result in ringing as well. Because of that, I also performed soft frequency filtering on some of the samples to minimize this. The goal is to reconstruct as much of the higher frequency space is possible without amplifying noise or ringing while adding a stereo presence. The quality of sounds can be subjective, thus this sound mod might not appeal to everyone, but I do hope some may find it useful and let me know of any problem sounds!
 

These Doom 64 sounds were upscaled from 22.05 kHz to 48 kHz using my upscaling algorithm.  Although 48 kHz is able to reproduce frequencies beyond human hearing, I like having that extra space for random pitch shifting which occurs in some Doom ports. Thus frequencies which are above human hearing can become audible when the port lowers a sound’s pitch. My upscaling algorithm uses a combination of linear prediction in the frequency domain (LP) and interpolation methods such as nearest neighbor (NR), linear (LN), cubic spline (CS), PCHIP (PC), and makima (MK) interpolation. All of these techniques add higher frequencies back in different ways. LP is good at improving crunch sounds (clawing/breaking) while NR and LN are good for improving noisy effects (explosions/hiss) with LN being the softer option. Then for less-noisy sounds, PC, MK, and CS are good with CS being the softest. The resulting sounds from each method were dynamically mixed based on smoothed local amplitude (DM) and further manually mixed using Adobe Audition. This is because most sounds do not match one technique or another perfectly, so I attempted to emphasize different techniques in different parts of each sound. Sometimes the Automatic Click Remover or the Hiss Removal algorithm in Adobe Audition was used to reduce noise and the resulting sound was dynamically or manually mixed back in. Depending on the particular port, the sound and music samples were organized into soundfont archives using the Polyphone and Viena soundfont editors.

 

Some shortened or noisy Doom 64 sounds were reconstructed from their original sources for some ports. To maintain consistency with other sounds they were downsampled to 22.05 kHz then upscaled with my algorithms and methods. Further some additional sounds which were used in Doom 64 Retribution were added such as: DSDBLOAD, DSNLGNBD, DSNOKEY, and DSPDIEHI.

 

To give the sounds a stereo presence, I wrote a piecewise noise-based frequency filtering algorithm. This algorithm allows the sounds to be stereo without losing clarity (like with reverb) and they return back to the pre-stereo versions when mixed back to mono. I find this helps give sounds a presence that they exist in a real space for people with headphones or speakers set far apart. Importantly, because of how the algorithm is set up, this does not adversely affect set ups which are mono or with speakers close together.


Version History:

Spoiler

Version beta 1.0:
Basic mixing between linear prediction (LP) and cubic spline interpolation to produce upscaled sounds in CD quality.
 

Version beta 1.1:
Used amplitude shaping to dynamically mix (DM) LP and CS along with manual mixing between interpolation styles to improve sound quality. Sometimes the Automatic Click Remover of Adobe Audition was used as well with the resulting sound mixed back in manually.
 

Version beta 1.2:
In addition to CS interpolation technique, other interpolation techniques were added. Further, the full length saw attack (DSSAWFUL) and fireball explode (DSFIRXPL) sounds were used instead of the truncated N64 version.
 

Version beta 1.3:
Softened the artifacts in DSDMACT and DSSWTCHN. 48 kHz and 32 bit (my working quality) works in GZDoom, so I will use this quality will be used for Retribution.
 

Version beta 1.4:
Added upscaled Doom 64 Retribution sounds of DSDBLOAD, DSNLGNBD, DSNOKEY, and DSPDIEHI. Cleaned some crackle noise in DSDOROPN.
 

Version beta 1.5:
Added DSSGCOCK which is a copy of DSWPNUP but used after the stats screen as a level load/start sound. Softened the DSPISTOL amplitude compression. Cleaned noise from DSITEMUP and DSBSPDTH. DSBFG and DSBSPWLK were mixed from a down sampled version of the found source audio. Fixed a possible clicking issue with DSBRSDTH, DSKNTDTH, and DSPESIT.
 

Version beta 1.6:
Filled in some missing frequency space for DSCACSIT and DSDBCLS. Used a down sampled found sound of DSDBOPN, DSHOOF, DSSAWHIT, DSSGCOCK, DSSKESWG, and DSWPNUP to reconstruct consistent audio. Cleaned and improved DSDSHTGN, DSGETPOW, and DSMETAL. DSBSPWLK no longer mixed from the found source as a better version was made from the game audio.
 

Version beta 1.64:
Major improvement! Dynamic and manual mixing between five upscaling/interpolation techniques was used to reconstruct every sound. Further noise removal and frequency mixing was used to clean noise and upscaling artifacts. A noise-based frequency filtering technique was developed to give the sounds a true stereo presence without diminishing clarity. I was able to apply this technique to the Doom 64 music samples as well which is compatible with the Retribution and GEC Master Edition ports. Compatibility with Nightdive’s Doom 64 and Doom 64 EX ports were added where possible.
 

Version 1.0:
First version out of beta! Tested it on various ports and it seems good to go.


My description and notes on how to install this mod are probably not the most clear, so feel free to ask questions or offer suggestions. Importantly...

LET THEM TASTE THEIR GUTS!

Edited by Immorpher

Share this post


Link to post
Posted (edited)

Here's a post that I will continually edit to add more demos/tests.

Doom 64 Music re-rendered using the Morph Music 64 soundfont:

Spoiler

First, support @Aubrey Hodges on bandcamp for this superb soundtrack! Here's the original on his bandcamp for comparison: https://aubreyhodges.bandcamp.com/album/doom-64-official-soundtrack (he also has an enhanced 20th anniversary edition on there as well)

For the music I had to be careful as if I added too many higher frequencies it made the music noisier. But I was able to make the samples stereo, and by the way the music was composed, I was able to keep the panning in the music as well. One advantage of rendering the music from a soundfont, is that I can render it at a higher quality than the N64, from which Aubrey Hodges' grabbed his music from (I think). I also like to think, though, my sample edits also contribute to the quality as well. Take a listen: 

 


Doom 64 Retribution tests:

Spoiler

 


Doom 64 EX tests:

Spoiler

 

 

Edited by Immorpher

Share this post


Link to post
Posted (edited)

I think you might have excited the high frequencies a bit too much. You can especially hear it when opening doors and shooting weapons or with any kind of projectile sound. In particular it sounds like there's some weirdness somewhere around the 6-10k range. 

Share this post


Link to post
3 hours ago, Marn said:

I think you might have excited the high frequencies a bit too much. You can especially hear it when opening doors and shooting weapons or with any kind of projectile sound. In particular it sounds like there's some weirdness somewhere around the 6-10k range. 


I could see that being the case, I had to do a lot of editing in that region on some sounds to remove ringing sounds to get them acceptable to me. And the projectile sounds tend to have the most high frequency components. It's interesting as my interpolation (and other) algorithms only had to add frequencies above ~11 kHz (depending on the sound), so some of that either existed in some of the originals or how Nightdive handled the sounds (where I obtained them from). I should try and interpolate some of the sounds after downsampling to 6 kHz and see what I get (and see if I got headphones more sensitive to the region). To me, I think the single shotgun sound is one of the bigger offenders, so perhaps that will be my first test.

Thanks for taking a listen, definitely gave me an avenue for improvement :)

Share this post


Link to post

I honestly loved what I heard so far, but I agree the projectile sounds are a little overdone. Loving the shotguns though 👍.

Share this post


Link to post
Posted (edited)
34 minutes ago, Immorpher said:


I could see that being the case, I had to do a lot of editing in that region on some sounds to remove ringing sounds to get them acceptable to me. And the projectile sounds tend to have the most high frequency components. It's interesting as my interpolation (and other) algorithms only had to add frequencies above ~11 kHz (depending on the sound), so some of that either existed in some of the originals or how Nightdive handled the sounds (where I obtained them from). 

 

If the interpolation algorithm you used works like an exciter to add the additional high frequency information (which I assume it does but I could be wrong) and the frequency the algorithm excites is a subharmonic of the offending region, it would have boosted the offending region more even if it's only intended to add frequency info above 11k

Share this post


Link to post
1 minute ago, Marn said:

 

If the interpolation algorithm you used works like an exciter to add the additional high frequency information (which I assume it does but I could be wrong) and the frequency the algorithm excites is a subharmonic of the offending region, it would have boosted the offending region more even if it's only intended to add frequency info above 11k


I have about 7 different ones I mix between. One definitely behaves like an exciter, and one explicitly does not (but it has drawbacks of its own), the rest are somewhere in between. What would be the sound which hits your ears the most with it? Perhaps the imp fireball projectile sound?

Share this post


Link to post
Posted (edited)

I have added an "x Preview" folder (in the download link), which makes it easier to play the sounds in a browser. If any one listens to them and finds some rough sounds, let me know and I will take another crack at them. Sometimes after listening to the sounds for so long I can miss some ringing artifacts.

I figured out how to apply some of the interpolation techniques without adding subharmonics, as Marn pointed out. Also I figured out how to compensate for some hard limiting artifacts that the original samples may have had. So I might have better luck on a second try. :)
 

Edited by Immorpher

Share this post


Link to post

This is some seriously cool work.  Thank you for doing this.  Doom 64 has such a special atmosphere, it really deserves the love you're giving it. Your work and D64-RTR really combine to make something special.  \m/

Share this post


Link to post

I have been taking another round with the sounds, seeing if I can remove some of the subharmonics and press the crispness a bit further. It's often just very minor differences. I have the raw sounds for comparison in the download link's "x Preview" folder, which can be found here: https://www.dropbox.com/sh/mxe3p2iruoafc6l/AADEv5X-VMgpa9NAsYO6XwUra?dl=0

Version 1.0 in the folder is the current version and 1.1 beta is what I am working on. My headphones may not pick up some of the subharmonics well though, so if anyone still hears them let me know. SFX_045 (the lift sound) has been a war to reduce ringing, so I included the original D64 version, so people can hear what I started with.

The feedback so far has helped me out! :)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×