概要
この記事では、Raspberry Pi 2 Model B に、STK (The Synthesis ToolKit) をインストールし、USB MIDI キーボードを使って、物理モデリング音源を鳴らすまでの方法を説明しています。
STK (The Synthesis ToolKit)
STK は、C++ で実装された、物理モデル音源 を含む、オープンソースのライブラリです。マルチプラットフォームに対応しているため、Mac や iOS, Windows, Linux などで利用することができます。今回紹介する物理モデル音源以外にも、様々な音源のサンプルコードが含まれているので、私のお気に入りライブラリのひとつです。
この記事では、このライブラリを Raspberry Pi 2 へ組み込み、小さな物理モデル音源モジュールに見立てて音を鳴らしてみます。
STK のコンパイルに必要なライブラリのインストール
あらかじめ、STK のコンパイルに必要な、ALSA の開発用ライブラリを、Raspberry Pi にインストールしておきます。
$ sudo apt-get install libasound2-dev
STK をダウンロード
以下のページから、STK のアーカイブをダウンロードします。
https://ccrma.stanford.edu/software/stk/download.html
Raspberry Pi に組み込まれている Web ブラウザからダウンロードするか、手元のコンピュータでダウンロードしたものを、scp などで Raspberry Pi に転送してください。
コンパイル
アーカイブを展開してコンパイルします。
$ tar xvzf stk-4.5.0.tar.gz
$ cd stk-4.5.0
$ ./configure --with-alsa
$ make
無事コンパイルが終了すれば、音源の準備は完了です。
MIDI キーボードの接続確認
音源を鳴らすための MIDI キーボードを準備します。USB MIDI キーボードを、Raspberry Pi の USB 端子に接続します。そして、次のコマンドを入力して、接続したキーボードが、STK 上で何番目のデバイスに割り当てられたかを確認します。
$ projects/examples/midiprobe
次のような画面が表示されます。
ここで繋いだのは KORG microKEY-25 ですので、Input Port #2 および Output Port #2 として認識されていることがわかります。ここで調べた番号を、後ほど、音源起動スクリプトで指定しますので覚えておいてください。
音源起動
STK を使って作られたサンプルプログラムが、projects/demo 内にあります。Physical が、物理モデル音源のサンプルプログラム(を起動するためのスクリプト)です。
このスクリプトを若干修正して、先ほど繋いだ MIDI キーボードからの入力を受けられるようにします。
$ cd projects/demo
$ vi Physical変更前:wish < tcl/Physical.tcl | ./demo Clarinet -or -ip
↓
変更後:wish < tcl/Physical.tcl | ./demo Clarinet -or -ip -im 2(追加)
※ -im オプションには、前節の midiprobe コマンドで調べた MIDI キーボードの番号を設定します。
スクリプトの修正を終えたら、音源を起動します。
$ ./Physical
次のような画面が表示されます。
ここで、MIDI キーボードを演奏すると、Raspberry Pi のヘッドフォン端子に接続したイヤホン/スピーカから、クラリネット(っぽい)音が出てくると思います。画面上部のボタンで、音色を切り替えることができます。また、画面のスライダーを動かして、物理モデルのパラメータを変えることができます。
同時発音数を増やす
この設定では、同時に 1 音だけしか発音できません。少し発音数を増やしてみます。起動スクリプトを修正して、オプションを追加します。
$ vi Physical
変更前:wish < tcl/Physical.tcl | ./demo Clarinet -or -ip
↓
変更後:wish < tcl/Physical.tcl | ./demo Clarinet -or -ip -im 2 -n 3(追加)
※ -n オプションに、最大同時発音数を指定します。
私の手元の実験では、3 音までなら問題なく発音できるようです。4 音を超えると、ノイズが発生します。
まとめ
この記事では、Raspberry Pi 2 で STK を動作させ、物理モデル音源に見立てて MIDI キーボードから演奏するまでの方法を紹介しました。
実際に音源として利用するためには、電源投入で自動的に音源プログラムが起動されるようにしたほうが良いでしょう。また、Raspberry Pi のヘッドフォンアウトは音質が悪いため、外部 Audio I/O を利用するなどしたほうが良いでしょう。