Please clarify audio support for Doomsday under Linux
I'd like to get some clarification on the role of the different sound systems Doomsday can use under Linux because I couldn't find sufficient answers on the Doomsday wiki. I am trying to write an updated Gentoo ebuild for Doomsday. The one currently in Portage is a little old, and it is not configured to allow use of FMOD or Fluidsynth. It uses SDL-mixer by default and allows compiling in OpenAL support.
In my own tests with Doomsday, I have both sound effects and music when using SDL-mixer alone for sound. However, if I enable FMOD, I have sound effects but no music. Doomsday outputs an error message to the terminal saying that it cannot locate a needed resource and says it needs a DLS file. I was able to locate a copy of gm.dls, but then I didn't know where to place the file so Doomsday would find it. I tried setting music-soundfont in the Doomsday console to the location of gm.dls, but this had no effect.
I also experimented by disabling sdl-mixer and enabling Fluidsynth. This resulted in absolutely no sound at all. Likewise disabling SDL-mixer and enabling only OpenAL resulted in no sound at all.
In any case, what I'd like to know is: 1) Is SDL-mixer required in order to have any sound at all and the FMOD, Fluidsynth, and OpenAL plugins are designed to work on top of SDL-mixer? 2) Can FMOD, Fluidsynth, or OpenAL be used as the only sound system for both sound effects and music? 3) What additional configuration, if any, do these various sound systems need in order to work under Linux once Doomsday has been compiled?
In my own tests with Doomsday, I have both sound effects and music when using SDL-mixer alone for sound. However, if I enable FMOD, I have sound effects but no music. Doomsday outputs an error message to the terminal saying that it cannot locate a needed resource and says it needs a DLS file. I was able to locate a copy of gm.dls, but then I didn't know where to place the file so Doomsday would find it. I tried setting music-soundfont in the Doomsday console to the location of gm.dls, but this had no effect.
I also experimented by disabling sdl-mixer and enabling Fluidsynth. This resulted in absolutely no sound at all. Likewise disabling SDL-mixer and enabling only OpenAL resulted in no sound at all.
In any case, what I'd like to know is: 1) Is SDL-mixer required in order to have any sound at all and the FMOD, Fluidsynth, and OpenAL plugins are designed to work on top of SDL-mixer? 2) Can FMOD, Fluidsynth, or OpenAL be used as the only sound system for both sound effects and music? 3) What additional configuration, if any, do these various sound systems need in order to work under Linux once Doomsday has been compiled?
Comments
- SDL_mixer provides sfx and music
- FMOD provides sfx and music (MIDI/MUS songs require a DLS soundfont; other music formats play on their own)
- FluidSynth provides only MIDI (!) music, and requires a SF2 soundfont
- OpenAL provides only sfx (with 3D)
None of the sound plugins are designed to work on top of the SDL_mixer plugin.Out of the sound plugins only FMOD and SDL_mixer provide both sfx and music.
However: You can use multiple plugins at the same time. For instance: That would use OpenAL for sfx and FluidSynth for MIDI music.
The FMOD and FluidSynth plugins need the path of a soundfont via the "music-soundfont" cvar. (Set the full path of the soundfont.) It takes effect when the next song plays.
The FluidSynth plugin also checks "/etc/doomsday/defaults" and "~/.doomsday/defaults" to see if there is a FluidSynth audio driver specified (see Configuration).
Note that since 1.9.10, FluidSynth by default links with the libfluidsynth installed on the system.
Still, for some reason I am getting no sound whatsoever with OpenAL.
As to OpenAL, it could simply be broken. I haven't verified that it works in Linux recently.