信号処理言語 Faust

Ubuntuだとaptからインストールできる。
チュートリアルにあるプログラムを少し改変したもの。

// square.dsp
A = hslider("Amplitude", 0.5, 0, 1, 0.1);
d = hslider("Cyclic ratio", 0.5, 0, 1, 0.1);
T = hslider("Period", 1, 0.1, 100.0, 0.1);
N = 44100.0 / 2000.0 * T : int;
i = +(1) ~ %(N) : -(1);
process = i, N*d : < : *(A*2) : -(A);

これをC++のソースコードに変換し、コンパイルする。

faust -a jack-gtk.cpp -o square.cpp square.dsp
g++ -o square-jack-gtk square.cpp `pkg-config --cflags --libs jack gtk+-2.0`