Faust 2.0.a72とFaustLive 2.45をインストールします。
Faustのインストール
必要なライブラリをインストールします。私の環境では以前SuperColliderをインストールした時にいろいろいれたのでllvm-develとopenssl-develを入れたらコンパイルできました。
sudo dnf install llvm-devel openssl-devel
git cloneします。ここではfaust2ブランチをインストールします。faust.gitのurlはFaustのGitHubリポジトリから取得して置き換えてください。
git clone -b faust2 faust.git cd faust
masterブランチの場合はmake installまで飛ばしてください。faust2ブランチをmakeするとエラーがでるので以下のファイルを修正します。コードは修正後のものです。
- dsp_factory.hh
- dsp_aux.hh
- dsp_aux.cpp
- remote_dsp_aux.cpp
dsp_factory.hhにdsp.hをインクルードして、40行目あたりのforward declarationを消します。
#include "../architecture/faust/dsp/dsp.h" ... // struct dsp_memory_manager; // class dsp_factory; // class dsp;
dsp_aux.hhからfaust/dsp/dsp.hのインクルードを消してdsp_factory.hhをインクルードします。
#include "export.hh" #include "exception.hh" #include "dsp_factory.hh"
dsp_aux.cppからdsp_factory.hhのインクルードを消します。
// #include "dsp_factory.hh"
remote_dsp_aux.cppの634行目、jack_net_master_openの3つめの引数に適当なconst char*を与えます。jack 1.9.10で確認しました。
if ((fNetJack = jack_net_master_open(DEFAULT_MULTICAST_IP, atoi(port), "some_name", &request, &result))) {
makeします。
make all httpd
デフォルトでは/usr/local以下にインストールされます。そのままではパスが通らなかったのですが/usr以下にインストールするとうまくいきました。
sudo make install PREFIX=/usr
libHTTPDFaustがインストールされたのでremoteをmakeしてインストールします。
make remote sudo make install PREFIX=/usr
もしインストール先を間違えた場合は以下でアンインストールできます。
sudo make uninstall
FaustLiveのインストール
必要なライブラリをインストールします。
sudo dnf install libcurl libcurl-devel liblo liblo-devel qrencode-libs qrencode-devel
ソースコードをダウンロードして解凍します。今回はSourceForgeのFaustのページからFaustLive-sources-2.45.tgzをダウンロードしました。
tar -xf FaustLive-sources-2.45.tgz cd FaustLive-2.45
makeでこけるのでqmakeのパスを通します。まずは場所を調べます。
find /usr -name 'qmake'
私の環境では/usr/lib64/qt5/bin/qmakeにインストールされていました。Build/Linux/Makefileを開いてqmの値を修正します。
### Defining some variables qm := /usr/lib64/qt5/bin/qmake ##qm := $(shell which qmake) ##qm := $(if $(qm4),$(qm4),qmake)
コンパイルが通るように以下のソースコードを修正します。
- JA_audioManager.cpp
- AudioManager.h
- JA_audioFader.cpp
- FLWindow.cpp
JA_audioManager.cppの関数名を修正します。
fCurrentAudio->defaultConnections(); ... return fCurrentAudio->getBufferSize(); ... return fCurrentAudio->getSampleRate();
AudioManager.hを開いてAudioManagerクラスにaudioではなくjackaudioを継承させます。
class AudioManager : public QObject, public jackaudio {
JA_audioFader.cppで使われている2個所のsave_connections()をsaveConnections()に変更します。
MainStructure/FLWindow.cppの関数名を修正します。
void FLWindow::update_AudioParams() { fSettings->setValue("SampleRate", fAudioManager->getSampleRate()); fSettings->setValue("BufferSize", fAudioManager->getBufferSize()); }
makeしてインストールします。
make NETJACK=1 REMOTE=1 sudo make install
エディタ
faust/syntax-highlightingにシンタックスハイライトに対応しているエディタと設定方法の一覧があります。
AtomのプラグインはFaustと同じGRAMEのアカウントで配布されています。Atom内蔵のプラグインインストーラから検索してインストールできます。
Vimには紹介されているものよりも高機能なvim-faustがあります。
音を出す
FaustLive Tutorialが短くまとまっています。qjackctlが必要となります。
sudo dnf install qjackctl
qjackctlはConnectボタンでルーティング画面が開き、Startボタンでクライアントが表示されるようになります。