Please clarify audio support for Doomsday under Linux

edited 2013 Jan 4 in Technical Support
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?

Comments

  • PaddyMac wrote:
    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?
    When used as the only sound plugin:
    • 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.
    2) Can FMOD, Fluidsynth, or OpenAL be used as the only sound system for both sound effects and music?
    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:
    -oal -imusic fluidsynth
    
    That would use OpenAL for sfx and FluidSynth for MIDI music.
    3) What additional configuration, if any, do these various sound systems need in order to work under Linux once Doomsday has been compiled?
    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.
  • This is very helpful. One more thing to clarify: FMOD normally requires a DLS soundfont, but I was able to get music with FMOD using a sf2 soundfont (though it doesn't sound as good as when using fluidsynth). I was previously trying to set the music-soundfont variable *before* typing "load doom1", and it wouldn't work, but it started working when I set the music-soundfont variable *after* loading the game. Now after it initially started working, the variable remained set without having to set it again every time I load Doomsday.

    Still, for some reason I am getting no sound whatsoever with OpenAL.
  • Cvars are stored in game-specific .cfg files; each game can use a different soundfont. That is the reason behind the behavior you're seeing.

    As to OpenAL, it could simply be broken. I haven't verified that it works in Linux recently.
  • Okay. That makes sense. As for OpenAL, it is working now. Apparently a patch intended to make OpenAL work correctly in 1.9.8 was actually causing it to not work in 1.9.10. Anyway, if any any Gentoo users want to try it out, it's in paddymac overlay.
Sign In or Register to comment.