Basic FMOD Ex support (patch included)
Basic FMOD Ex support (patch included)
I have created an archive containing new FMOD Ex code and also patch against the SVN for changes made to existing files. Download them at http://www.sturmspace.com/files/fmodex_patch.zip
Some experimental Win32 binaries can be found at http://www.sturmspace.com/files/zdoom_f ... may_07.zip.
Note: I only have the DX 8.1 SDK, so the Win32 binaries have the D3D9 framebuffer disabled.
It's still very much work in progress, but it does work. I would also appreciate feedback from Linux developers if they could test my changes.
My todo list:
- 3D sound
- Hardware support
- Software and EAX reverb
- MIDI/MUS music from memory, instead of writing to temp file using ProduceMIDI() function
+ (fixed) Fix music on snd_reset
- (FMOD author's are now looking into this) Make request (again) to FMOD Ex author's to fix FLAC loading so the ZDoom FLAC loader can be made redundant
- Integrate new CVARs with ZDoom menu system and modify existing settings to accommodate new code
- CD music
- Remove snd_midiforcefmodex and put FMOD Ex into MIDI device menu
- Fix playing of title music on snd_reset when not in game
- Use Other Music volume slider for FMOD Ex MIDI music
New/modified CVARs:
snd_interpolate
0 - No interpolation
1 - Linear
2 - Cubic
3 - Spline
snd_midipatch 0/1
Enable/disable loading of DSL patches for MIDI playback. To work needs snd_midiforcefmodex set to 1.
snd_midipatchfile (string)
Path to DSL patch
snd_midiforcefmodex 0/1
Enable/disable forcing of FMOD Ex for MIDI playback[/code]
Some experimental Win32 binaries can be found at http://www.sturmspace.com/files/zdoom_f ... may_07.zip.
Note: I only have the DX 8.1 SDK, so the Win32 binaries have the D3D9 framebuffer disabled.
It's still very much work in progress, but it does work. I would also appreciate feedback from Linux developers if they could test my changes.
My todo list:
- 3D sound
- Hardware support
- Software and EAX reverb
- MIDI/MUS music from memory, instead of writing to temp file using ProduceMIDI() function
+ (fixed) Fix music on snd_reset
- (FMOD author's are now looking into this) Make request (again) to FMOD Ex author's to fix FLAC loading so the ZDoom FLAC loader can be made redundant
- Integrate new CVARs with ZDoom menu system and modify existing settings to accommodate new code
- CD music
- Remove snd_midiforcefmodex and put FMOD Ex into MIDI device menu
- Fix playing of title music on snd_reset when not in game
- Use Other Music volume slider for FMOD Ex MIDI music
New/modified CVARs:
snd_interpolate
0 - No interpolation
1 - Linear
2 - Cubic
3 - Spline
snd_midipatch 0/1
Enable/disable loading of DSL patches for MIDI playback. To work needs snd_midiforcefmodex set to 1.
snd_midipatchfile (string)
Path to DSL patch
snd_midiforcefmodex 0/1
Enable/disable forcing of FMOD Ex for MIDI playback[/code]
Last edited by k0da on Thu May 24, 2007 6:54 am, edited 5 times in total.
Not bad. Still a long way to go though.
Two things:
1) Music is choppy. Also, the "synthesizer" slider for my Windows volume control doesn't have any effect on the music (I had it to mute at the time and I still heard music using your EXE).
2) Stereo panning doesn't seem to exist. The stereo field also sounded weird in general.
I see these on your to do list, I know. But just giving some opinions.
Keep up the good work! Hopefully this eventually makes it into the official version and get rid of fmod.
Can't wait for the software reverbs.
Two things:
1) Music is choppy. Also, the "synthesizer" slider for my Windows volume control doesn't have any effect on the music (I had it to mute at the time and I still heard music using your EXE).
2) Stereo panning doesn't seem to exist. The stereo field also sounded weird in general.
I see these on your to do list, I know. But just giving some opinions.

Keep up the good work! Hopefully this eventually makes it into the official version and get rid of fmod.
Can't wait for the software reverbs.

Nash: FMOD Ex uses its own internal MIDI playback engine, so that's why you can't control the volume outside of ZDoom. Do other forms of music such as modules and OGGs sound choppy? I'll take a look at the stereo panning... my Windows box has speakers next to each other so I haven't noticed this myself. Thanks for the feedback.
Re: Basic FMOD Ex support (patch included)
I'll make it bold so it stands out morek0da wrote:... Some experimental Win32 binaries can be found here.

Edit: patch updated to fix a compile error that would appear on Linux. That's not say others won't.
Gave it a shot, messed around with it, exited when I was done, crashed.
It won't let me upload the crash report zip as an attachment.
So I uploaded it here.
http://filexoom.com/files/2007/4/25/715 ... Report.zip
It won't let me upload the crash report zip as an attachment.

http://filexoom.com/files/2007/4/25/715 ... Report.zip
That, to me, seems like a poor choice coming from the FMOD Ex developers. How many people do you know that know where the Windows volume control is? If someone wanted to play ZDoom muted from the start (let's say they have kids sleeping in the next room with poor insulation or something), they would mute Windows' volume first in an attempt to stop any noise before it happens.k0da wrote:Nash: FMOD Ex uses its own internal MIDI playback engine, so that's why you can't control the volume outside of ZDoom. Do other forms of music such as modules and OGGs sound choppy? I'll take a look at the stereo panning... my Windows box has speakers next to each other so I haven't noticed this myself. Thanks for the feedback.
-M.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49223
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Mannequin wrote:k0da wrote:Nash: FMOD Ex uses its own internal MIDI playback engine, so that's why you can't control the volume outside of ZDoom. .
Since FMOD Ex creates its own sound from the MIDI data it has to mix it in the digital output. There's no other way to implement a MIDI player outside the system.
MIDI playback with the old FMOD is a nightmare because its volume control is the same as the system global which makes it perfectly useless for serious use and was one of the reasons why ZDoom had to implement its own MIDI player.
Lamneth: Did you by any chance restart the sound through the menu or console?
Mannequin: I meant you is can't control the volume with the MIDI volume slider. The main volume slider and wave slider will adjust it.
One advantage of the new FMOD Ex MIDI playback system is that it's crossplatform. This will be great for Linux users, so they won't have to fiddle around with Timidity if all they want is basic MIDI output.
Mannequin: I meant you is can't control the volume with the MIDI volume slider. The main volume slider and wave slider will adjust it.
One advantage of the new FMOD Ex MIDI playback system is that it's crossplatform. This will be great for Linux users, so they won't have to fiddle around with Timidity if all they want is basic MIDI output.