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

GENMIDI lump

Recommended Posts

Hello everyone!

I'm relatively new to Freedoom; played around a few levels and checked out the WAD itself and really appreciate what everyone's doing. Being a musician I like to listen to the music and being a Doom fan I gotta hear it in its original OPL-II form (I use ZDoom or DOSBox for emulation). To be honest, I was kinda surprised to find that a GENMIDI lump was included. Sure it isn't the best, but it's nice to know that OPL is not completely forgotten =)

I understand this was built from the OpenBSD drivers: (http://www.doomworld.com/vb/freedoom/50087-genmidi/) Some people have commented on the unimpressive quality of the sounds and I happen to agree. If possible I would like to see what I can do to improve this file; when I was in middle school I would get a hex editor and "tweak" the Doom/Heretic GENMIDI values myself. A couple years ago I built a VST synth in SynthEdit trying to emulate Doom's fake 4-operator OPL2 synthesis as well (including the sine, half/abs/pulse sine and 4-bit values for ADST even though the timing was off). Basically I like to tinker with things and thanks to DOSBox I can do that with this again.

THE BIGGEST PROBLEM CURRENTLY IS LACK OF PERCUSSION.....in Doom, it was probably just added because Bobby Prince wrote it on a GM-based synth (one of the Rolands I believe) and it wasn't worth redoing the MUS files to support OPL's "percussion mode." In Freedoom, most of the songs have percussion which is not heard when using this GENMIDI lump. Thus, my priority will be building some percussion sounds before editing the GM melodic voices.

Now I'm not guaranteeing anything very soon (currently jobhunting atm), but just wanted to put this out there in case anyone was seriously considering doing it instead...personally, it'll be a good learning experience for me (and I'd love to contribute what I can), and hopefully make a few of us who prefer the "vintage sound" a bit happier...=]

(On the technical side, I'm not sure how to go about editing this and submitting it to the Freedoom project. Can I edit the GENMIDI lump itself, which I just extracted from the WAD? I prefer this, as I tried looking at the code Fraggle used to build it but can't seem to comprehend anything apart from the OPL register values....Also editing the hex values directly allows me to test the sounds quicker if I'm not using something like AdLib Tracker.)

Thoughts?

Share this post


Link to post

I have been working on it off and on. Since SBI format doesn't let me use doublevoice, I have been a bit lost. I don't know either format that well, either.

Share this post


Link to post

Well you can think of doublevoice as a fake 4-operator synthesis (In OPL3 it was "four operator FM-AM mode")....sure it also uses up twice the channels, but it has a better sound. Plus you can fine tune the second voice for a mono "chorus" effect. The Synthstrings 1 sound, used a lot in Heretic, used this very well.

I finally got a chance to look at the file and it seems all the instruments are an octave up. I made a MIDI file that played three octaves of C on all 128 programs, and using musplay rendered a WAV file of both Doom's GENMIDI and Freedoom's GENMIDI and could compare them

I'm experimenting with the programs; some of them serve as a good start but many of them need to be redesigned from scratch or heavily modified.

Share this post


Link to post

One thing I've considered in the past is splitting each instrument into separate files and writing a script that would compile them all into a GENMIDI lump. This would allow you to submit replacements for individual instruments in a format of your choice. I haven't bothered until now because it was never clear to me that there was a lot interest in improving the GENMIDI lump, but if you're both interested in doing so then I'm willing to help out.

What file format works best for you guys? SBI? OP2/OP3?

Share this post


Link to post

Hi fraggle....I appreciate the offer, but I've been directly editing everything in the lump directly with frhed. The reason I don't prefer the SBI files is because it doesn't allow the custom Doom additions including doublevoice and the second voice finetune. I guess I like working in its format to take full advantage of it. And it's a LOT easier to test everything immediately, and once I'm happy with it I can start adjusting the balance and make the presets work well with each other. Thanks though! =D If you still wanted to make such a utility, I would definitely prefer it to be in the native 36-byte Doom OPL2/OPL3 format.

I noticed that in the original Freedoom lump, most of the melodic instruments were of the doublevoice type....I'm going to try making each sound as best as it can without needing the other voice. Vanilla Doom technically works with SB Pro/II cards (which have the higher-power OPL3 chip) but only utilizes it as if it were an OPL2 chip. This chip has only 9 voices, so if all doublevoice instruments were used, only 5 notes (with one note's second voice cut) could be played at once!! ZDoom's emulator does as well, but I'm trying to teach myself C++ (haha) to see if I can change this. So I'll keep doublevoice only for those instruments that need it.

Note on my progress: I've actually started on the percussion and I've made most of the lower octave (bass drum 1 to the tambourine) already. Funny thing is I didn't use any instrument designer or anything; I just designed it from scratch through lengthy(!) experimentation. I'm still trying to get the cymbals right though......

I've been tweaking the Freedoom piano sounds....I made an Electric FM-chorused Piano (patch 5) which I like to think is better than the original Doom version =D and used the doublevoice finetune to make a slight chorus in Electric Rhodes Piano (patch 4) which comes across pretty well.

Share this post


Link to post
horncomposer said:

Hi fraggle....I appreciate the offer, but I've been directly editing everything in the lump directly with frhed. The reason I don't prefer the SBI files is because it doesn't allow the custom Doom additions including doublevoice and the second voice finetune. I guess I like working in its format to take full advantage of it. And it's a LOT easier to test everything immediately, and once I'm happy with it I can start adjusting the balance and make the presets work well with each other. Thanks though! =D If you still wanted to make such a utility, I would definitely prefer it to be in the native 36-byte Doom OPL2/OPL3 format.

Sorry, I missed this reply. If direct binary hex editing is the easiest thing for you to do then go right ahead, I guess. Any progress on this? I'd certainly be interested to see an updated GENMIDI lump.

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
×