HOW TO: Timidity for PrBoom-Plus and ZDoom variants on Windows

PrBoom+:
1. Download EAWPats
http://www.doomworld.com/idgames/index.php?id=13928

2. Extract it wherever you like.

3. Find timidity.cfg (It is located at the root of the archive you just extracted)

4. Move timidity.cfg to the folder you plan to launch PrBoom+ from (typically just the engine folder).

5. Open timidity.cfg with a text editor, find the two lines that starts with 'dir',
and replace the location in the line to where you have extracted EAWPats to. You must edit both lines. Save and close timidity.cfg.



G/ZDoom:
1. Follow all steps from the PrBoom+ section.

2. Download Timidity 4 ZDoom:
http://www.zdoom.org/files/timidity4zdoom2.zip

3. Extract Timidity.exe to your G/ZDoom folder. If you have not modified the Timidity_exe variable in your
ZDoom configuration file, it should already point to your G/ZDoom folder, otherwise modify it to point to Timidity.exe.

4. Open G/ZDoom, go into the sound options, and change the midi device to Timidity++, then select "Restart Sound".



I run Windows 7 Pro 64 bit.

My motivation for using Timidity now is from how bad the MS Synth is, and even more the fact that in
SDL engines like PrBoom+, I cannot adjust the midi volume without also affecting the sound volume, Timidity gets around this.

I realize this has been answered before, but I find that getting this answer for Windows users from a forum
search isn't exactly easy to find, so I basically figured it out on my own and decided to share.

Enjoy.

Share this post


Link to post

Great post! Yes, using Timidity allows proper volume adjustment in Vista/7.

I was going to post something similar with a another thing I do to make PrBoom-Plus more enjoyable.

I do want to point out that putting the timidity.cfg in C:\timidity will also work and be available for all ports that look for it. I place EAWPats in C:\timidity for simplicity and if I change my Doom folders around I don't have to modify a single timidity.cfg.

Also, SDL_Mixer (that PrBoom (Plus), EE and ChocoDOOM use) does not always play well with EAWPats causing a progressively loud and piercing sound to be played by 2 instruments that have no business being played in the song where it is heard.

To work around the problem, find the gravis.cfg and add a # in front of these 2 lines to comment them out as I have done below.

#71 whistle1 pan=59 note=60 keep=loop keep=env
#72 whistle2 pan=59 note=60 keep=loop keep=env

A Note: Removing “keep=loop” returns them to a normal sports whistle sound. Offending songs include Doom II MAP05 (fixed in PrBoom-Plus) and Deus Vult MAP02 (not fixed).

Thanks!

Share this post


Link to post
HackNeyed said:

Also, the midi2mus code in PrBoom (Plus), EE and ChocoDOOM do not always play well with EAWPats causing a progressively loud and piercing sound to be played by 2 instruments that have no business being played in the song where it is heard.

Yeah, PrBoom+ on certain songs just sounds plain bad.. static noise, play Halo of Wonders (kaiser_14.wad) with EAWPats and compare PrBoom+ and GZDoom.. GZDoom blows it away.
*Sigh*

Share this post


Link to post
Mike.Reiner said:

Yeah, PrBoom+ on certain songs just sounds plain bad..

Probably you want to say "SDL_mixer on certain songs just sounds plain bad".

Share this post


Link to post
entryway said:

Probably you want to say "SDL_mixer on certain songs just sounds plain bad".

Ah yes, my bad. it's not your fault SDL_mixer sucks. Sorry.

Share this post


Link to post
Mike.Reiner said:

Ah yes, my bad. it's not your fault SDL_mixer sucks. Sorry.

PrBoom does nothing with MIDI except sending raw MIDI data to SDL_mixer:

music->data = W_CacheLumpNum(music->lumpnum);
rw_midi = SDL_RWFromMem(music->data, W_LumpLength(music->lumpnum));
music = Mix_LoadMUS_RW(rw_midi);
Mix_PlayMusic(music, looping ? -1 : 0);
Also, it is not a problem of mus2midi converter in case of MUS music, because converted MIDI sounds fine without timidity.

Share this post


Link to post
entryway said:

Also, it is not a problem of mus2midi converter in case of MUS music, because converted MIDI sounds fine without timidity.


Indeed, Doom II MAP05 is already mus. I fixed my reply to say SDL_Mixer.

Share this post


Link to post

entryway said:
Also, it is not a problem of mus2midi converter in case of MUS music, because converted MIDI sounds fine without timidity.

There're two problems with SDL_mixer's timidity-derived code:

(1.) It's a really old version of timidity (newer ones can't be distributed under the SDL_mixer team's license of choice).
(2.) Technical MIDI details ahoy: Both MIDI channels 10 and 16 are used for drums. Only channel 10 should be; that's in the MIDI standard. Drums on channel 16 are a Microsoft substandard. :)

PRBoom Plus's conversion code (which I believe comes from Chocolate Doom) is more likely than PRBoom's (which comes from Boom) to assign music to channel 16, though I must stress that either method is perfectly acceptable! But then using SDL_mixer's timidity mode, you'll hear wonky drumbeats that should be musical notes, for example in MAP05's music (use the cheat code "idmap05" then wait 47 seconds). You can hear wonky drumbeats under PRBoom, too; PRBoom Plus is just more likely to make that bug/"feature"/misfeature rear its ugly head.

This is a problem in SDL_mixer and it should have drums on channel 10 only. The stout-hearted can unpack the SDL_mixer sources, open the file timidity/config.h, find the line

#define DEFAULT_DRUMCHANNELS ((1<<9) | (1<<15))
and change it to
#define DEFAULT_DRUMCHANNELS (1<<9)
then recompile and reinstall. What fun. :)

Share this post


Link to post
Urban Space Cowboy said:

This is a problem in SDL_mixer and it should have drums on channel 10 only. The stout-hearted can unpack the SDL_mixer sources, open the file timidity/config.h, find the line

#define DEFAULT_DRUMCHANNELS ((1<<9) | (1<<15))
and change it to
#define DEFAULT_DRUMCHANNELS (1<<9)
then recompile and reinstall. What fun. :)

Wow. Thanks!

Lazy to recompile.
Comparing files SDL_mixer.dll and SDL_mixer_new.DLL
0003BA01: 82 02

http://prboom-plus.sourceforge.net/history.html contains fixed SDL_mixer.dll. I have checked only map02 @ DV.WAD. Sounds fine!

Share this post


Link to post

I have to say, as much as I like EAWPats, I just cannot get over how terrible E1M7 sounds... uhg!

Share this post


Link to post

Yes, that track definitely does not work with it. But it's not that important for be because I'm using the Sycraft OGGs for Doom's music.

Share this post


Link to post

Personally, I prefer FluidR3 to any other soundfont/patch I've heard. It sounds fantastic :) Unfortunately, due to SDL_Mixer not support Soundfont files, it only works in ZDoom(If I knew how to edit SDL_Mixer to fix this, I would). Still, I suggest you give it a whirl. Good stuff.

Share this post


Link to post
Graf Zahl said:

Yes, that track definitely does not work with it. But it's not that important for be because I'm using the Sycraft OGGs for Doom's music.

I don't remember who posted it, but I listen to FLAC versions released on torrents and advertised here. I have Sycrafts TNT music, I'll take a look at Dooms and compare.
Edit: Hm, yeah, these sycraft tracks are pretty good. Maybe I'll put together a .wad for running this on GZDoom and PrBoom+.

Share this post


Link to post

Thanks for the eawpats link, bro.

On a side note, anyone know how to use .pats in Synthfont? I can only figure out how to load soundfonts.

Share this post


Link to post

Since we're kind of on the subject, how do you use MP3/OGG/FLAC whatever files in ZDoom? Can I just dump them in a directory or do they have to be in a WAD?

I've never actually bothered looking this up before, and I'm sure there are others like me :)

Share this post


Link to post
david_a said:

Since we're kind of on the subject, how do you use MP3/OGG/FLAC whatever files in ZDoom? Can I just dump them in a directory or do they have to be in a WAD?

Both, since you can load a directory as if it were a ZIP file. See the "archive format" part of the data formats articles.

If by "dumping in a directory" you mean something like autoloading the files from directory X when playing game Y, see autoloading. Yeah, you can autoload directories if so you want.

Share this post


Link to post

It might be interested too =)
http://vogons.zetafleet.com/viewtopic.php?p=187028#187028
http://toogam.com/software/archive/drivers/soundcrd/gussound/gussound.htm
http://vogons.zetafleet.com/viewtopic.php?t=4287&highlight=gus+patches
----------------------------------
Have Question.
"Ultrasound Installation Disks Version 4.11"
This is last official version released by Advanced Gravis Computer Technology Ltd?

Share this post


Link to post

I'll be making a post on how to use yamaha's softsynth for doom soon, if anyone is interested.

Share this post


Link to post
Csonicgo said:

I'll be making a post on how to use yamaha's softsynth for doom soon, if anyone is interested.

You have my attention.

Share this post


Link to post
Mike.Reiner said:

You have my attention.


There's a clever way to install the "drivers" for a yamaha soundcard that, if done without the card in question, installs the software synth that the card uses (basically what Yamaha SoftSynth was in the early 90s, but much cleaner and better sounding.)

I'll post a thread on it tonight if I have time. :)

Share this post


Link to post

Quick question about these EAWPatches, will these work with regular Timidity++ for windows alone as opposed to source ports equipped with them?

Share this post


Link to post

Bumping this as I'm running into... Well, something that I'm not sure is a problem or a matter of taste, which is why I'm asking for advice.

I've followed the procedure in Mike's post for PrBoom+, and the result sounds at best more or less like Microsoft synth and at worst, simply terrible. I figure I might have messed up something, so I took a 30 second video of two maps in PrBoom+ and uploaded it here. The MIDIs are from either Hexen or Heretic, and Alien Vendetta Map09.

Does EAWPats/Timidity in PrBoom+ make these MIDIs sound the same way for you guys as it does in the video above ?

Share this post


Link to post

Yes, that's more or less how EAWPats sounds on my system.

Share this post


Link to post

Thanks. Your guide was easy to follow and the result is definitely better, albeit something (using Weeds soundfont) still seems way off on too many songs for my liking (possibly because these MIDIs were composed with Microsoft Synth in mind).

That said, it still beats freezes when looping and not being able to adjust MIDI volume at all in Vista.

Insert rant about Vista/7 and going back to XP here.

Share this post


Link to post

EAWPats is far from perfect, but I'd say 90% of the time it sounds better than MS Synth.

A few songs here in there (E1M7 for example) aren't so good though.

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