gpt4 book ai didi

c++ - Windows Vista/7 上的 SDL_Mixer MIDI 音量问题

转载 作者:可可西里 更新时间:2023-11-01 13:27:27 25 4
gpt4 key购买 nike

我实际上并不精通 C++ 或 SDL_Mixer,但我还是代表 Doom 社区问这个问题。简而言之,没有人编写 Doom 源端口似乎可以弄清楚如何在 Windows Vista 或 7 上使用 SDL_Mixer 独立控制正常音量和 MIDI 音量。我让永恒引擎的作者 James Haley 用他自己的话说:

Seems the concept of independent volume for native MIDI doesn't exist under Windows Vista or 7, as using MIDI volume sliders in any application that has them (including most games that use SDL_mixer) also affects the volume of digital sound output. This makes attempting to adjust the relative volume of music for comfort impossible.

Has anybody found any workarounds for this? I'm guessing it's unlikely given how Microsoft seems to have skimped throughout the OS on any way to control the volume of individual sound devices separately.

我听说过各种解决方法都涉及 Timidity 驱动程序,但这需要用户超越简单地在他的系统上安装游戏。据我所知,唯一可以明确解决此问题的端口是 ZDoom,但它使用与 GPL 不兼容的 FModEx,因此不是合适的解决方案。

如果您想查看一些代码,Chocolate Doom 可能是最容易理解的 Doom 源端口,您可以获取它的源代码 here .

我们也欢迎任何关于其他开源声音和音乐库的建议。

最佳答案

解决方案是随附启用 FluidSynth 的 SDL_mixer。您还需要随附一个 SoundFont2 文件。幸运的是,那里有免费的 SF2,有些甚至针对 Doom 的 MIDI 文件进行了优化。许可证应该不是问题,因为 SoundFonts 是 Assets ,而不是代码。

然后使用 Mix_SetSoundFonts() 加载 SF2。

关于c++ - Windows Vista/7 上的 SDL_Mixer MIDI 音量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com