ソフトウェアシンセサイザ作成プロジェクト TSUKUNE

TSUKUNEはソフトウェアシンセサイザとその周辺ツール(フロントエンドGUI, シーケンサなど)を作成するプロジェクトです。現在のところ、サウンドドライバとしてSDLを使用しています。また、シンセサイザの制御にはOpenSoundControlを使用しています。 system.png

成果物

現在のところ、シンセサイザ本体(Synthモジュール)と、サンプルシーケンサ(SampleSequencerモジュール)、フロントエンドとしてサンプルコントローラ(SampleController)が利用できます。

動作環境

Linuxのみで動作確認しています。 SDLが動く環境であれば、対応するのは比較的らくだと思いますが。

動かし方

ソースコードをビルドして Synthモジュールと SampleSequencerモジュールを作成したら、それぞれを起動してください。 SampleSequencerがSynthに対してランダムにNote-on指令を出して音が鳴るはずです。 また、SampleSequencerの代わりに SampleControllerを起動するとピアノキーボードが表示されますので、キーボードをクリックすれば音をならせます。

設定ファイル

Synthesizer.txtというファイルを読み込み、シンセサイザの構成を行います。 一行に一つモジュールを記述することができ、音データは上から下へ流れます。 例:

SquareGenerator
EnvelopeGenerator
RLCFilter
Recorder output.snd
というファイルを記述すると、 矩形波生成 → エンベロープ適応 → ローパスフィルタ(RLCFilter)適応 → output.sndへ記録 というようにデータが流れます。

モジュールとして、以下のモジュールを記述できます。
SineGenerator: サイン波生成器
SawGenerator: 鋸波生成器
SquareGenerator: 矩形波生成器
WhiteNoiseGenerator: ホワイトノイズ生成器
EnvelopeGenerator: エンベロープ適応器
Echo: エコーモジュール
FIRFilter: FIRフィルタ(試験的に作ったもの)
RCFilter: ローパスフィルタ(RC)
RLCFilter: ローパスフィルタ(RLC)
Recorder: ファイルへの記録。"Recorder output.snd"のように、後ろに出力ファイル名をつける。

ビルド方法

Eclipse(CDT)による方法と、autotoolsを使用した方法があります。いずれの方法でも、OpenSoundControl, SDL, FTGL, OpenGLのライブラリ・ヘッダファイルがインストールされている必要があります。

Eclipse(CDT)を使ったビルド方法

ダウンロードしたソースをEclipseのワークスペースに取り込み、Buildを実行してください。

autotoolsを使ったビルド方法

./configure; make; make install
でビルドできます(ソースコードを展開したディレクトリの ./bin配下にインストールされます)

サンプル

サンプル音と、GUI画面です。
サイン波
矩形波+LPFフィルタ+レゾナンス
矩形波+LPFフィルタ+レゾナンス+Duty比変更
SampleControllerによる制御
tsukune_controller_0002.png
サンプルコントローラ画面