Faust / FaustLiveをRaspberry Piでビルドしてみた


本記事はFaust Advent Calender 2017の12月16日向けに投稿した記事です。

本記事では、Faust言語のローカルでのビルド環境(FaustコンパイラとFaustLive)をARM Linux(Raspberry Pi/Raspbian)上で構築する手順について紹介します。

Faust言語とは?

Faust言語の紹介についてはMatsuura Tomoyaさんに譲ります。"音声処理プログラミング言語、Faustの紹介"

Faustとは?

Faustは簡潔(かつやや特殊)な記法で信号処理を記述することができるプログラミング言語で、C++を経由してスタンドアロンアプリ、VST/AU/LADSPA/Lv2プラグイン、JUCEなどの様々なアーキテクチャ、さらにはOWLやBelaなどのハードウェアプラットフォームにもと、様々なプラットフォームへエクスポートが出来る環境を備えています。
また最近ではLLVMを利用して実行時コンパイルやWebAudioなどへのエクスポートも可能です。

Faustの開発環境は、ローカルでコンパイルするものとクラウドでコンパイルするものが提供されています。とりあえずFaustを触ってみたい人には、WebEditorが一番楽しいとおもいます。"とりあえずFaustを始めたい人のための4つの環境"

なお、ローカルでコンパイルする開発環境自体は、オープンソースで配布されており、クロスプラットフォームな実装となっているので、Windows/macOS/LinuxでFaustの開発環境を構築することができます。また、x86/64アーキテクチャ用にビルド済みのFaustコンパイラ、FaustLiveは公式サイトにて配布されています。公式サイト

開発環境

◆ハードウェア
Raspberry Pi 3 Model B

◆OS
Raspbian Stretch (2017/11/29)

Faustコンパイラをビルドする

パッケージリストの更新

sudo apt-get update 
sudo ap-get upgrade

Faustコンパイラのリポジトリをクローンする

// Faustコンパイラのリポジトリをクローン
$ git clone https://github.com/grame-cncm/faust.git

// リポジトリのディレクトリに移動
$ cd faust

// Gitサブモジュールを初期化・クローン
$ git submodule update --init

必要なパッケージをインストールする

// LLVMコンパイラとその開発ツール
$ sudo apt-get install llvm-dev

// FaustLiveのビルドに必要なHTTPサーバーライブラリ
$ sudo apt-get install libmicrohttpd-dev

ビルド

// Faustコンパイラをビルド
$ sudo make

// FaustLiveのビルドに必要なHTTPサーバーライブラリ(libHTTPDfaust.a)をビルド
$ sudo make httpd

インストール

// Faustコンパイラと各種ツール群をシステムにインストール
$ sudo make install

// バージョンを確認
$ faust --version

>> FAUST : DSP to C, C++, Rust, LLVM IR, JAVA, JavaScript, asm.js, WebAssembly (wast/wasm), Interpreter compiler, Version 2.5.12
>> Copyright (C) 2002-2017, GRAME - Centre National de Creation Musicale. All rights reserved. 

FaustLiveをビルドする

FaustLiveのリポジトリをクローンする

// FaustLiveリポジトリをクローン
$ git clone https://github.com/grame-cncm/faustlive.git

// 作業ディレクトリに移動
$ cd faustlive

必要なパッケージをインストールする

// Qt SDKをインストール
$ sudo apt-get install qt-sdk

// QRコードのエンコーダをインストール
$ sudo apt-get install libqrencode-dev

// OpennSSL開発用ライブラリをインストール
$ sudo apt-get install libssl-dev

// URL転送開発用ライブラリをインストール
$ sudo apt-get install libcurl4-openssl-dev

// Jack2開発用ライブラリをインストール
$ sudo apt-get install libjack-jackd2-dev

// ALSAアプリケーション開発用のライブラリをインストール
$ sudo apt-get install libasound2-dev

ビルド

$ sudo make

インストール

$ sudo make install

FautLiveを起動する

ターミナルから起動する場合

// リポジトリのディレクトリに移動する
$ cd faustlive

// 実行プログラムを起動する
$ ./FaustLive

メニューから起動する場合