易于使用的MIDI音频或通过fluidSynth播放
midi2audio的Python项目详细描述
轻松合成MIDI音频或只是播放它。
它为 FluidSynth合成器 使用并适合于脚本和批处理。相反, 大多数midi处理软件都是基于gui的。
为什么?
首先,fluidsynth有一个cli,使用起来并不那么简单。这个 目标是通过设置一些参数使其尽可能易于使用 隐性的。
fluidsynth -ni sound_font.sf2 input.mid -F output.wav -r 44100
对
midiplay input.mid midi2audio input.mid output.wav
其次,我们可以用python编写同样简单的接口脚本。
FluidSynth().midi_to_audio('input.mid', 'output.wav')
要求
- Python3
- fluidsynth
- 一些sound font(s)
你至少需要一个声音字体。通常你会手动安装 或者通过包裹管理员。midi2audio查找其默认声音 ~/.fluidsynth/default_sound_font.sf2中的字体。它可以是符号链接或 一个真正的文件。
安装
PIP
你可以通过pip安装这个软件包。
pip install midi2audio
或用于开发(代码更改在不重新安装的情况下生效):
git clone https://github.com/bzamecnik/midi2audio pip install -e midi2audio
操作系统x
我建议添加支持输出到的非默认libsndfile flac和多种音频格式。否则只有wav,raw和a 几乎没有其他人会得到支持。
对于MacOSX,我们提供了一个脚本 install_fluidsynth_with_soundfonts_osx.sh 使用libsndfile和基本声音自动安装fluidsynth 字体(Fluid R3 GM)和 将其符号链接,以便将其识别为默认的声音字体 模块注意,它是通过pip作为另一个入口点安装的。
install_fluidsynth_with_soundfonts_osx.sh
或手动安装:
brew install fluidsynth --with-libsndfile mkdir -p ~/.fluidsynth ln -s /path/to/my/sound_font.sf2 ~/.fluidsynth/default_sound_font.sf2
检查脚本如何安装一些额外的(好但更大)声音 默认情况下未安装的字体。
其他操作系统
检查包管理器并链接所描述的默认声音字体 上面。
用法
基本上,你可以播放一个MIDI文件或合成成音频。 fluidsynth允许非实时合成,比 回放。
请注意,音频格式由音频文件扩展名决定。 libsoundfile支持 很多格式。
Python
from midi2audio import FluidSynth
播放MIDI:
FluidSynth().play_midi('input.mid')
将MIDI合成为音频:
# using the default sound font in 44100 Hz sample rate fs = FluidSynth() fs.midi_to_audio('input.mid', 'output.wav') # FLAC, a lossless codec, is supported as well (and recommended to be used) fs.midi_to_audio('input.mid', 'output.flac')
更改默认值:
# use a custom sound font FluidSynth('sound_font.sf2') # use a custom sample rate FluidSynth(sample_rate=22050)
命令行界面
提供外壳糖midi2audio和midiplay,而不是 更详细的python -m midi2audio。
# play MIDI $ midiplay input.mid # synthesize MIDI to audio $ midi2audio input.mid output.wav # also to FLAC $ midi2audio input.mid output.flac # custom sound font $ midi2audio -s sound_font.sf2 input.mid output.flac # custom sample rate $ midi2audio -r 22050 input.mid output.flac
关于
- 作者:bohumír zame_n_k([@bzamecnik](http://twitter.com/bzamecnik))
- 许可证:mit,请参见LICENSE文件
巨人的肩膀
感谢fluidsynth的作者提供了一个不错的命令行midi 合成器!