nds游戏绝对是游戏界的瑰宝,尤其是有些游戏的音乐还很好听,所以想把它们提取出来。网上搜了下教程,这里整理一下,全程在archlinux下操作。
首先用到的工具是(vgmtrans)[https://github.com/vgmtrans/vgmtrans)
按照github上的wiki,首先要安装Qt5
和 FluidSynth
,然后编译:
- Run
git clone https://github.com/vgmtrans/vgmtrans
- Navigate into the vgmtrans folder, then run
git checkout qt-port
- Run
mkdir build && cd build
- Run
cmake ..
- Run
make -j$(nproc)
编译完成后执行./vgmtrans
。
将.nds
文件拖到窗口。然后在下面的Detected collections
窗口中选择一个音乐,工具栏可以点播放按钮试听,右键导出Save as MIDI and SoundFont 2
。也可以在空白处右键导出所有文件。
导出后的mid和音色文件可以用上面安装的FluidSynth
组合成wav文件:
fluidsynth -ni sound_font.sf2 input.mid -F output.wav -r 44100
或者是这样批量操作
#!/bin/bash
find -name "*.mid"|while read line
do
input_name=$line
bn=${line//.mid/}
fluidsynth -ni ${bn}.sf2 ${bn}.mid -F ${bn}.wav -r 44100
done
为了方便分享,可以用lame
转成mp3
:
find -name "*.wav"|cut -c 3-|while read line; do lame --preset insane $line; done