cyand1317

分类

链接

RSS

RSS Link
NOIP2015酱油记
论如何在OS X下让LMMS支持SoundFont(简化版)

论如何在OS X下让LMMS支持SoundFont

cyand1317 posted @ 2015年11月28日 01:43 in 未分类 with tags hacking LMMS DAW , 596 阅读

LMMS 是一个自由跨平台的数字音频工作站(Digital Audio Workstation, DAW),支持ZynAddSubFx、SoundFont(R)等等很多东东……(反正很好玩就是了),OS X 平台上为数不多的音频方面的自由软件。

然而在帮Vocaloid社团制作了一次伴奏之后发现自带的ZynAddSubFx的音色似乎越来越不够用,于是乎投奔了FL Studio(用Wine在OS X下安装运行破解)。。结果VST插件兼容性也不够。。。直到有一天在这个地方发现了SoundFont这个好东西。。一个SoundFont音色库就可以包含所有 General MIDI 里的音色,还可以通过更多的SoundFont来丰富音色。。

然后在LMMS里用SoundFont的想法就自然而然地产生辣!

翻了一下LMMS的文档,说有个自带的插件是用来打开SoundFont的。。然而OS X版本上并没有找到这个插件。。Google了一下发现所有人的OS X版本里都没有这货。。于是就想既然是插件,能不能自己安装?

答案是。。不能 ˊ_>ˋ 这些plug-in只能在编译的时候选择是否加入。。

好吧。。然后翻LMMS项目的issue发现了这个。。好吧。。。。LMMS自己都还没完全支持这个。。

然后自己拿来代码,强行加入SF支持,加载工程的时候卡住,trace到一个很神奇的Apple提供的API产生了死锁。。最终发现是FluidSynth(基于SoundFont音色的合成器)无法初始化Apple CoreAudio的driver(驱动?)。。自己编译了一个不加入CoreAudio支持的FluidSynth然后就。。神奇地。。可以用了。。。-_-#

下面整理一下这个邪恶伟大的计划的详细过程。。。。

Step 1

首先窝们要拿到LMMS的源代码并且编译一遍确保没有差错,直接看他们的Wiki就可以啦

Step 2

然后!是很关键的一步!窝们要丢掉FluidSynth里的CoreAudio支持!

自己到FluidSynth网站上下载源码,然后 `cmake` 的时候加上 `-Denable-coreaudio=OFF`,如果JACK那边编译出错的话再加 `-Denable-jack=OFF`(JACK版本不同产生的问题,不嫌麻烦可以去更新一下JACK。。)

最后 `make install`

* 这样一来其他使用FluidSynth的程序是不是也没法用CoreAudio驱动了QAQ(吓得窝赶紧去确认MuseScore还正常)不过假如它们需要用到FluidSynth with CoreAudio的话。。应该也是早就卡住了吧 233333

Step 3

还是很关键的一步!修改LMMS的CMakeLists!

根目录下的CMakeLists.txt,有一行

OPTION(WANT_SF2		"Include SoundFont2 player plugin" OFF)

OFF改成ON(或者 `cmake` 的时候加上 `-DWANT_SF2=ON`。。不过直接改比较省事ˊ_>ˋ)

plugins/CMakeLists.txt,有一行

ADD_SUBDIRECTORY(sf2_player)

把包围它的两行万恶的 if/endif 去掉,否则判断OS是Apple之后会直接跳过sf2_player这个插件。。。

Step 4

$ make

呼~~

最后运行 `./lmms` 就大功告成啦。。。。看看 Instrument Plugins 里面是不是有个 SF2 Player 了 ≧∇≦

(感觉是不是漏掉了什么。。想起来再补)


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter