Icon of Sin / Baphomet
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > Windows sound, any general fixes
 
Author
All times are GMT. The time now is 11:10. Post New Thread    Post A Reply
wesleyjohnson
Senior Member


Posts: 1056
Registered: 04-09


With so many problems with windows sound lately, I am interested in any general fixes the port developers have found for Win7, and Win8.
My major problem is that I only have Win98, and XP (maybe) to test on.
DoomLegacy gets window's bug reports, but I cannot duplicate the problems.

Last edited by wesleyjohnson on 04-07-13 at 01:00

Old Post 04-05-13 21:53 #
wesleyjohnson is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
Ralphis
IDL Founder


Posts: 3740
Registered: 09-02


I know nobody has posted and my technical knowledge on the subject is certainly limited when it comes to discussing the code itself, but I do know what Dr Sean did with Odamex (taking a cue from prboom I believe). He included the portmidi library with Odamex and it defaults to that (instead of sdl_mixer) on Windows. It controls the volume of the midi synth differently than sdl_mixer, although I think Sean also figured out how to fix it directly in sdl_mixer as well.

Old Post 04-14-13 00:23 #
Ralphis is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
wesleyjohnson
Senior Member


Posts: 1056
Registered: 04-09


SDL mixer problems ... thanks. I can search for more information.
I don't suppose this has anything to do with music that stops and won't loop.

Old Post 04-15-13 21:52 #
wesleyjohnson is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
Dr. Sean
Green Marine


Posts: 30
Registered: 08-11


The most significant SDL_Mixer issue we're familiar with in Odamex is that when you ask SDL_Mixer to set the volume of MIDI playback, the volume for all sound in the game is set to that value under Vista/7.

When switching from playing a MIDI song to a non-MIDI song like OGG, SDL_Mixer will fade-out the MIDI song. This causes the volume of all sound in the game to be 0 until the next time the MIDI volume is adjusted (usually the next time a MIDI song is played).

The underlying cause of these issues is that Microsoft changed their paradigm for sound mixing in Vista/7 and have a separate mixer channel volume control for each application. Unfortunately, that means that both the MIDI music and sound effects share the same volume control and can not be controlled separately via the method SDL_Mixer uses to set MIDI volume (midiOutSetVolume).

In Odamex, we worked around these issues by writing a MIDI file player that sends MIDI events to a playback library (PortMidi) in realtime, allowing us to generate MIDI volume control events as needed.

Old Post 04-16-13 16:22 #
Dr. Sean is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6130
Registered: 08-00


Eternity, when running on Windows, now plays MIDI from a separate process, sending that process the MIDI data and play/pause/stop/volume commands via RPC. This automatically gives it its own independent mixer channel under the irreparably broken Vista sound engine.

Old Post 04-16-13 19:07 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 11:10. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > Windows sound, any general fixes

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.