比如,我知道可以通过 Audacity 处理,但问题是,不知为何,听起来和引擎里的效果不太一样,如果我没记错的话,这是我上次尝试时的情况
有没有办法将 MIDI 转换为 OGG 而不损失音质?
比如,我知道可以通过 Audacity 处理,但问题是,不知为何,听起来和引擎里的效果不太一样,如果我没记错的话,这是我上次尝试时的情况
有没有办法将 MIDI 转换为 OGG 而不损失音质?
MIDI 文件中并不包含任何音频数据,只有音符数据,因此播放它的设备或软件决定了使用的乐器。Windows XP 通过 DirectMusic 自带的 MIDI 播放功能来处理背景音乐(BGM),而不是将文件发送到你系统默认设置的 MIDI 设备,这就是为什么同一个文件在不同的渲染器中听起来会有明显差异。所以,你遇到的问题可能并不是 OGG 格式丢失了音质,而是不同的音源库在演奏这些音符。
我可能会采取的方法是录制引擎本身的输出。在 Audacity 中,将音频宿主切换为 Windows WASAPI,并选择你的扬声器或耳机作为录音设备,然后在播放包含该背景音乐的游戏地图时进行录制。因为是实时录制,所以处理整张原声带会比较慢,但你捕获到的内容正是 XP 引擎输出的声音。
如果你更倾向于批量处理,有一个名为 MIDIRenderer 的命令行工具,它可以直接将 MIDI 渲染为 OGG 格式,并将 RPG Maker 的循环点标记转换为 LOOPSTART 和 LOOPLENGTH 标签:https://github.com/getraid-gg/MIDIRenderer。它不自带音源文件,其自述文件指出,最接近 Windows 声音效果的是将 Windows 自带的 gm.dls 转换为 SF2 格式。我自己尚未用该工具处理过 XP 的音乐,因此无法说明其效果与引擎原声的接近程度。
这也是我一直想做的一件事,这样我就可以在 MZ 中使用 XP 的音乐,但这并不是优先事项,所以我把它搁置了。因此,发现 MIDIRenderer 非常有用。