今回は、一般的なデジタルオーディオワークステーションソフトウェアによく採用されているプラグイン規格、VSTをUbuntuで使うレシピをお届けします。
VSTとは
VST(Visual Studio Technology) は、ドイツのSteinberg Media Technologies社 が開発したサウンドプラグイン規格です。音声とMIDI信号の入出力やソフトウェア間の連携、典型的なサウンドプラグインの操作画面に必要な「スライダー」や「タブ」と言ったウィジェットの描画を統一的に扱い、エフェクトプラグインやMIDI音源プラグインの作成を目的としています。Steinberg社のデジタルオーディオワークステーションソフトウェアのCubaseのみならず、現在は様々なソフトウェアにおいて標準的に実装されています。
開発キットはVST Audio Plug-Ins SDK にて公開されています。バージョン2系と3系があり、2006年にリリースされたバージョン2.4と、2011年にリリースされたバージョン3.5が最新となっています[1] 。
なお、2011年はVSTが開発されてから15周年の節目の年であり、ヨーロッパの方ではキャンペーンが敷かれています。しかし、Steinberg Media Technologies社の資本上の親会社であるYamaha社がある日本では、特に動きが見られないようです。
Wineとは
VSTの開発キットがサポートするオペレーティングシステムは、Microsoft社のWindowsとApple社のMacOS Xです。このため、LinuxをベースとするUbuntuでは通常、利用することができません[2] 。
同じソースから作成されたVSTプラグインでも、Windows環境とMacOS X環境でその実体が異なります。Windows環境では大抵の場合、ダイナミックリンクライブラリー(DLL)の形となります。このDLLファイルを使用できるようにすることが、UbuntuでVSTプラグインを使う第一歩です。そこで登場するのが、Wineプロジェクトです。
Wine は、Windows向けに作成されたソフトウェアを、Windows以外のオペレーティングシステムでも動作させることを目的とするソフトウェアです。MacOS X, FreeBSD and Solaris向けにもリリースされていますが、Linux向けのソースが最も開発が進んでいるようです。
UbuntuではUniverseリポジトリからWineのパッケージをインストールすることができます。Ubuntuで提供されているパッケージは、Wineの開発のレベルに応じて、「 wine1.0」 、「 wine1.2」 、「 wine1.3」の3種類があります。Ubuntu 11.10リリース現在、バージョン1.2は安定版、バージョン1.3は開発用のベータ版となっています。
[2] 実はJOST というソフトウェアがあり、こちらはVST 2.4 SDK自体をLinuxで使えるようにしてしまう開発環境兼実行環境です。VSTのフレームワークに合わせて作成されたひとつのソースコードからWindows用、MacOSX用そしてLinux用のバイナリを生成します。そのため、ソースが公開されているVSTであれば、Linuxで動作するバイナリを作成できる可能性があります。
Linux向けVSTホストプログラム
VSTプラグインを使うにはさらに、VSTというフレームワークを適用したホストプログラムが必要です。Wineをバックエンドとして用い、VSTプラグインを動作させ、音声入出力やMIDI入出力を取り持つソフトウェアです。
これまでLinux向けのホストプログラムがいくつか開発されてきました。
vstserver
Kjetil Mattheussen氏が2002年から2004年にかけて開発していたホストプログラム。vstiやladspavst、k_vstといったソフトウェアも合わせて配布されていましたが、現在は開発を終了しソースを手に入れることは難しいです。
dssi-vst
2004年から開発が継続されているホストプログラム。VSTプラグインをDSSI(Disposable Soft Synth Interface)プラグインとして扱うのでJACKサウンドサーバーを併用する必要があります。
fst(Free ST)
Torben Hohn氏が2004年から開発を継続しているホストプログラム。開発に加わっているPaul Davis氏によりArdour にも同梱されています[3] 。JACKサウンドサーバーの直接のクライアントとなって動作します。
Ubuntuではdssi-vstのみ、パッケージの形で提供されています。
ライセンスの問題
VSTの本体はオープンソースライセンスに基づいてリリースされているわけではなく[4] 、開発キットに同梱されているSteinberg VST Plug-in SDK Licensing Agreementによってリリースされています。ライセンスには再配布に関する制限があるため、上記のVSTホストプログラムは以下の2つの方法で配布されています。
VSTのSDKはユーザーが入手しVSTホストプログラムのソースの特定の場所に配置してからビルドを行い実行プログラムを作成する
LMMS(Linux MultiMedia Studio) プロジェクトのプラグインとして開発されたVeSTige のソースの一部を同梱する
かつては1の方法が主流でしたが、Javier Serrano Polo氏がVeSTige向けにVST 2.4 SDK(の主要機能)の互換ヘッダファイルをオープンソースライセンスで公開して以来、2の方法が主流となりました。そのため現在入手可能なオープンソースソフトウェアでは、VST 2.4までのSDKが提供する機能のみ利用可能となるため、最新のVSTプラグインはうまく起動しない可能性がある点に注意してください。LMMSのウェブサイトでVeSTigeにおけるVSTプラグインのテスト結果 を見ることができるので、参考になるでしょう。
FeSTigeとは
dssi-vstもfstも、端末でコマンドを実行してVSTプラグインを立ち上げます。これでは不便ですので、画面から起動操作を行うソフトウェアが開発されました。それがFeSTigeです。
FeSTige は、Ubuntuの非公式ディストリビューションであるKXStudio [5] の作者でもあるFilipe Lopes氏が開発しました。システムにインストールされているVSTプラグインの一覧を表示して、dssi-vstあるいはfstをバックエンドとして起動する操作画面を提供します。Ubuntuではパッケージが提供されていないfstを含んでいるため、dssi-vstなしでも使うことができます。
図1 FeSTigeの画面
FeSTigeのインストールと起動
FeSTigeは残念ながらUbuntuのリポジトリでは配布されていません。そのため、開発者のPPA をお使いのUbuntuのパッケージ管理システムに登録し、そこからパッケージ「festige」をインストールする必要があります。PPAの利用に関しては、本連載の第46回 が参考になるでしょう.あくまでも「プライベートなパッケージ」であるため、リスクを承知の上で利用してください。
なお、開発者のPPAで配布しているFeSTigeは、リアルタイムスレッド作成機能を追加するパッチを当てたWine、通称「wine-rt」に依存しています。加えて、wine-rt対応のdssi-vstも配布しています。パッケージをインストールする際はこれらの依存関係に注意し、もしシステムに不都合なパッケージであればインストールを中止してください。
パッケージをインストールしたら、UnityのDashでキーワード「festige」から起動することができます。FeSTigeがバックエンドとして利用するfstやdssi-vstはJACKサウンドサーバーの音声入出力機能とMIDI入出力機能を使うため、あらかじめJACKサウンドサーバーを起動しておいてください。
FeSTigeのメニュー「編集」から項目「設定」とたどると、設定ウィンドウが開きます。タブ「一般」ではバックエンドを選択することができます。
図2 FeSTigeの設定ウィンドウの「一般」タブ。利用するバックエンドを「fst」と「dssi-vst」から選択
VSTプラグインの検索対象
FeSTigeを起動するとシステムにインストールされているVSTプラグインの一覧を表示します。デフォルトの検索対象はユーザーのホームディレクトリの「~/vst」「 ~/linux-vst」「 ~/.vst」の各ディレクトリと、「 /usr/local/lib/vst/」「 /usr/lib/vst/」「 /usr/lib32/vst/」の各システムディレクトリとなります[6] 。他にも任意のディレクトリを設定画面から追加することができます。
図3 FeSTigeの設定ウィンドウの「場所」タブ
[6] 加えて、Wineの設ける仮想Cドライブの「C:\Program Files\VstPlugins」「 C:\Program Files\Steinberg/VstPlugins」「 C:\Programas\VstPlugins」「 C:\Programas\Steinberg\VstPlugins」も検索します。Wineの仮想Cドライブはたいてい、ログインユーザーのホームディレクトリの「~/.wine/drive_c」以下となるでしょう。
fstとdssi-vstの違い
一覧のプラグインを選択して「開始」ボタンをクリックするか、プラグイン名をダブルクリックすると、プラグインが起動します。
図4 今はなくなってしまったCutterMusicのRevitar2.0
図5 Dream Vortex Studio のDVS Saxophone
上の2つですが、Revitar2.0はfstバックエンドで、DVS Saxophoneはdssi-vstバックエンドで起動しています。ウィンドウ上部に着目すると、この2つには違いがあることがわかります。それぞれのバックエンドには機能の違いがあり、fstではプリセットの保存やミュート、バイパス、MIDIラーンといったより先進的な機能が利用可能です。
複数のVSTプラグインの同時起動
プラグインは同時にいくつも起動できます。JACKサウンドサーバーのサウンド機能を使うため、Patchageなどのソフトウェアを使ってポート間を接続することができます。
図6 日本の方が作成したソフトウェアシンセサイザーSynth1
図7 discoDSP のHighLife
図8 Kieran Foster氏のGlitch プラグイン
図9 Greg Schlaepfer氏のSuburban Guitarist
図10 AQUEST社のスピーチシンセサイザーであるAquesTone 。とある動画共有サイトで驚異の登場回数を誇る
図11 Patchageでポート間を接続
MIDI機能はたいていALSAシーケンサー機能を使うのが普通ですが、fstをバックエンドに選択した場合、JACKシーケンサー機能を使います。この2つのシーケンサー機能の橋渡しが必要な場合は、本連載の第177回 で扱ったa2jmididを併用してください。
LinuxにはLADSPA/LV2という規格があり、音声エフェクトプラグインは比較的多く提供されているものの、DSSIプラグイン音源やMIDI音源はそれほど多くありません。入手が比較的簡単なVSTインストルメントを導入することで、それもある程度カバーすることができるかと思います。