第374回:フリーOS「Ubuntu」で高品位オーディオI/Fを使う
~ ドライバ周りを検証。「FreeBoB」で192kHz動作など ~
バージョン9.04にアップデートされた「Ubuntu」 |
昨年末にUbuntuを利用したDTMの世界を紹介する記事を掲載したところ、かなりの反響をいただいた。それから半年たち、Ubuntuもバージョンが9.04へとアップデートされたので、またいろいろと試してみたところ、着実に進化し安定した環境になっていた。
今回は、オーディオインターフェイスのドライバ周りを中心に、環境整備の仕方などを見ていこう。
■ FireWireオーディオI/Fを動かす
前回の記事でも書いたとおり、筆者個人的にはその時がほとんど始めてのLinux体験だった。それまで持っていた「Linux/UNIX=コマンドラインで操作する難しいもの」というイメージが大きく変わり、UbuntuならWindowsやMacなどと変わらない、初心者でも十分操作できる使いやすいOSであると同時に、「ほとんどのアプリケーションが無料で入手できる楽園の世界!?」というのが分かった。
ただ、すべてがバラ色かというと、そうでなかったことも事実。何かの壁に当たると、なかなかそこを乗り越えられないのだ。親切でしっかりしたコミュニティーがあるとはいえ、やはり情報の絶対量が少なく、問題を解決するのがなかなか困難なのだ。
個人的に大きな壁となったのがオーディオインターフェイスのドライバ周りだった。確かにオンボードのサウンドデバイスであれば、何の苦もなく音を鳴らすことができるが、クオリティーの高いオーディオインターフェイスを使おうとすると、立ち行かなくなってしまうのだ。
前回の記事でも書いたとおり、外付けのオーディオインターフェイスの場合、WindowsやMacが標準でサポートするUSBオーディオであればすぐに使えるが、それも16bit/44.1kHz止まり。24bit/48kHz、24bit/96kHzとなると使えなくなってしまうのだ。またFireWireオーディオインターフェイスも、どうもうまく行かず、諦めてしまったというのが実態だった。
その後も、Linuxに詳しい人に話を聞いたり、ネットで調べてみたものの、壁は厚く、ちょっと深いところに入ると、すぐにコマンドラインでの話になってしまい、お手上げ。ときどき思い出したように調べてみたのだが、それほど気合が入っていなかったからか、よくわからなかった。
もし、16bit/44.1kHzでしか使えないとしたら、やはりそれは「お遊び」に過ぎず、まともに使えるものではなく、個人的にもあまり興味の対象にならない。でも、きっと何かの方法はあるはずだ……とは思っていた。
そんな中、見つけたのがFireWireオーディオ用の汎用ドライバ、FreeBoBでの対応機材に関する記載。これを見ると、RolandのFA-101やFA-66、M-AudioのFireWire Solo、Ozonic、ESI(EGO-Sysem)のQuataFire 610、TerraTecのPHASE 24、PHASE X24またPreSonusのInspire 1394、FIREBOXなどが利用できるとあるのだ。
たしか、以前はFA-101やFA-66に対しては動作するとは書かれていなかったはず。もしかして、ドライバがアップデートされてうまくいくようになったのかと思い試してみたものの、うんともすんともいわない。Ubuntuのバージョンが上がったらうまくいくのでは、とも思ったが9.04にしても変わらず。やはり、PC側のFireWire=IEEE 1394インターフェイスの問題なのかなと思い、複数台のPCで試してもダメ。
ここで試していたのは、JACK ControlのSetupで「freebob」を選んで動かすというもの。しかし、どうしてもエラーが出て止まってしまうのだ。
JACK Control | JACK ControlのSetup画面 | エラーが出てしまう |
今まで、難しそうでよく見ていなかった、そのエラーの詳細メッセージを読むと、「Is ieee1394 and raw1394 driver loaded?」とある。何だろうこれは?と調べてみると、何のことはない、その場合の対処法がFreeBoBのサイトのFAQに記載されているではないか。
raw1394を読み込むとともに、ファイルの保護モードを誰でも読み書き可能な形に変更する、とある。とはいえ、最初はその方法もよく分からず試行錯誤してみた。昔のMS-DOSの知識と、インターネット初期に使ったtelnetでのファイル操作を思い出しつつ、試した結果、ついに成功。FA-101が動き出した。
■ FireWireドライバ「FreeBoB」
似た境遇の方のために、その方法を誰でも分かる形で紹介しておこう。
まず「アプリケーション」メニューの「アクセサリ」-「端末」でターミナルを表示させ、「sudo modprobe raw1394」と入力する。するとパスワードを聞いてくるので、それを入力するとraw1394がロードされる。さらに続けて「sudo chmod a+rw /dev/raw1394」と入力して、再度パスワードを入力すればOKだ。
こうしてから、JACK Controlを起動し、Setupのdriverの選択肢から「freebob」を選択してから、「Start」ボタンを押せばいい。ちなみに、一度Ubuntuをシャットダウンさせると、ファイルの保護モードが元に戻ってしまう。
このFreeBoBはFireWireオーディオのコントローラチップにBridgeCo DM1000というものを搭載しているオーディオインターフェイスで汎用的に使えるドライバ。それを搭載したオーディオインターフェイスが先ほどあげたFA-101やFireWire Soloなどというわけだ。
ところが、FA-101で試してみると、44.1kHz動作時にデフォルトのバッファサイズで使ってもブツブツと音が途切れてしまう。やはり、そんなものなのかなと思ったが、試しにJACK ControlのDriver設定で「freebob」ではなく「firewire」というのを選んでみてところ、ブツブツがなくなってスムーズに動いてくれた。
「Periods/Buffer」を3から2にする程度であれば、問題なく動作する |
さらに「Frames/Period」をデフォルトの1024から512に、「Periods/Buffer」をデフォルトの3から2にする程度であれば、問題なく動作した。この際、表示上のレイテンシーは44.1kHz動作時で23.2msecにまで縮めることができた。
ただ、それ以上にレイテンシーを小さくしようとすると、JACK Controlがストップしてしまったり、アプリケーションが落ちてしまったり、最悪の場合、Ubuntu全体がハングアップしてしまうという問題も起こった。この辺のシステムの安定性という面では、まだまだ課題はありそうに思えた。
なお、44.1kHz以外に96kHz、192kHzなどでも動作するか試してみた。FA-101の場合、あらかじめ本体でサンプリングレートを設定してから、再度FireWireケーブルに接続しなおす必要があるが、これを行なってみたら、いきなりエラーでJACK Controlが止まってしまったのだ。
が、それもそのはず。Setupでの設定が44.1kHzのままであったためで、これを修正したら問題なく動いてくれた。ちなみに、44.1kHz~96kHzの設定においては、オーディオの入出力ポートが、それぞれ10個見えたが、192kHzに設定するとそれぞれ6個となる。これはFA-101の仕様通りであり、確実に認識されているのが分かる。また96kHz動作時のレイテンシーは10.7msec、192kHz動作時は5.33msecとなり、この状態であれば、特に問題なく動作した。
オーディオの入出力ポートは、192kHzに設定するとそれぞれ6個となる |
■ ほかのデバイスでの動作状況
さて、FA-101では無事動いたが、ほかのデバイスはどうだろうか? 手元にいくつかのFireWireオーディオがあったので、試してみた。まずFA-101の弟分であるFA-66は問題なく動いた。
DigidesignのMbox2 Proの動作確認 |
一方、DigidesignのMbox2 ProはJACK Controlを見るか限り、動作しており、入出力ポートもしっかりと見える。が、いろいろやってみても音が出ないし、録音もできない。FreeBoBでもFireWireドライバでも同様の結果だったので、これを動作させるためには、まだ何らかの仕掛けが必要になりそうだったので、これは諦めた。
さらにM-AudioのProjectMix I/Oはしっかり認識させることができず、結果はダメ。FreeBoBのサイトには、とくにProjectMix I/Oに関しての記述はなかったもののFireWire 410やFireWire 1814は動作しないと書かれている。これらもBridgeCoのコントローラチップ、DM1000を搭載されているが、同じDM1000でも世代が古いため、動作しないのだとか……。ProjectMix I/OもFireWire 1814の変形版なので、同じ原因で認識されないのだと思われる。
さらに、SteinbergのMR816csxも試してみたが、こちらはコントローラチップが違うのか、まったく反応もせずで、ダメという結果だった。
なお、うまく動いたFA-101やFA-66も、別のマシンでは動作しないものもあった。原因は、FireWireからのバス電力供給不足のようで、ACアダプタをつないだら動いてくれた。Windowsでは問題なく動くオーディオインターフェイスでも、こうした問題が起きるようだ。
以前、JACK Controlを使った際には、主に2in/2outのオーディオインターフェイスであったため、あまりその威力を実感できなかったが、10in/10outのFA-101を接続してみると、これだけでかなりいろいろな使い方ができる。
ギターで入力した音がメイン出力およびヘッドフォンからステレオでモニターできる |
前述のとおり、Connectボタンを押して、各入出力ポートの状況を見ると、確かにAudioタブの入力に10個、出力に10個のポートが表示されている。
ここでFA-101のINPUT 1にギターを接続し、JACK Control上でcapture_1をplayback_1とplayback_2へと接続してみたところ、ギターで入力した音がメイン出力およびヘッドフォンからステレオでモニターできる。ほかのポートを利用して接続しても、こうしたモニタリングが簡単にできるようになっている。
■ イコライザ「JACK EQ」、エフェクトトラック「JACK Rack」
次にJACK関連のアプリケーションをいくつかインストールしてみた。具体的には3バンドのイコライザであるJACK EQと、エフェクトラックであるJACK Rack、さらにSoundFontシンセサイザであるQSynthのだ。
JACK Contorolをスタートさせた状態で、JACK EQを起動すると、JACK EQのコンソールが表示されるとともに、ConnectionsのAudioタブにはjackEQが現れる。その中には、入出力ともに、さまざまなポートが用意されている。
JACK Eqを起動すると、コンソールが表示され、ConnectionsのAudioタブにはjackEQが現れる | さまざまなポートが用意されている |
リアルタイムモニターが可能 |
そこで、先ほどのルーティングをDisconnectで外した上で、FA-101のINPUT 1、つまりcapture_1をJACK EQのChannel 1のLとRへ接続。さらにこのChannel 1のLとRの出力をFA-101のOUTPUT 1/2、つまりplayback_1とplayback_2へ接続してみると、JACK EQを通した音がリアルタイムにモニターされる。試しにChannel 1のTreble、Mid、Bassをいじると音質が変わるのが分かるし、音量調整もできるようになっている。
さらに、JACK Rackを起動させるとJACK Rackのウィンドウが表示されるとともに、ConnectionsのAudioタブにjack_rackというものが加わる。ここで、EQと同様にルーティングさせるとJACK Rackを通した音がモニターされるようになる。
JACK Rackを起動。ConnectionsのAudioタブにjack_rackが表示される | モニター可能 |
ラックのデザインは味気ないが、リバーブ、コーラス、ディレイ、ディストーション、コンプレッサ、フェイザ……とさまざまなエフェクトを組み込んで使うことができる。ラックなのでこのマルチエフェクトを複数立ち上げ、同時に使うことができるため、そこそこの使える。エフェクトとしての音作りなどが、VSTやAUの世界と比較するとイマイチではあったが、そう悪くはない。
さまざまなエフェクトを組み込んで使うことが可能 | マルチエフェクトを複数立ち上げ、同時に使用することができる |
ちなみに、このJACK Rackのエフェクトを増やすことはできないようだが、ここに搭載されているエフェクトはすべてLADSPAというプラグイン規格に準拠しており、ほかのアプリケーション上でも使えるようになっている。またUbuntuをはじめとするLinux上ではLADSPAプラグインのほかにLV2という規格がある。これらについては、また今度改めて紹介していくことにしよう。
■ SoundFont対応のプレイバックサンプラー「QSynth」
今回最後に紹介するのがQSynth。前述のとおり、SoundFont対応のプレイバックサンプラーだが、これもJACK Controlとの組み合わせだけで利用することができる。これを起動すると、やはりAudioタブのところにqsynthの出力であるleftとrightが加わるので、これをFA-101などのオーディオインターフェイスの出力へ接続すれば音がでる。もちろん、ここにJACK EQやJACK Rackなどを通してから出力させるのもいいだろう。
QSynth | 出力にも対応 |
一方、ALSAタブをクリックすると、こちらにはALSAドライバとして認識されたMIDIポートが並ぶ。前回の記事でも紹介したとおり、RolandのPCR300などのUSB-MIDIキーボードも自動的に認識されるのだが、この一覧の中にFLUID Synthというものが加わっている。
ほとんど音の遅れは感じない |
実はQSynthのコアはFLUID Synthというコマンドラインの音源となっており、それにGUIをかぶせたのがQSynthであるため、このように表示されるのだ。そこで、PCRの出力をFLUID Synthへとルーティングしてやると、これでキーボードで弾いた音がリアルタイムに鳴って、FA-101から出てくるのだ。レイテンシーが23.2msecではあるが、ほとんど音の遅れは感じずに演奏することができた。
なお、QSynthはSoundFont対応デバイスであるため、あらかじめSoundFontを読み込ませておく必要がある。QSynthのSetupボタンを押して読み込むのだが、最初これがうまくいかず、どのSoundFontを読み込んでも「適合していない」という趣旨のメッセージが表示されたため、1時間ほど試行錯誤した。
しかし、この問題も単純なことで、SoundFontを置いていたのがデスクトップだったからだ。QSynthはダブルバイトのコードをサポートしていないようで、日本語となるデスクトップ上からは読み込めなかっただけだ。homeディレクトリ上に別のフォルダを作成して、そこにSoundFontを入れてから読み込んだところ、あっさり動いた。
このように、Ubuntu上でのDTMは、誰でも簡単にすぐ使える状況にはないが、うまく動かせれば、かなり使える環境になっている。とにかくオーディオインターフェイスさえ動き出してくれれば、なんとかなりそうなのだ。
DAWソフト「ARDOUR」 |
具体的な紹介はまた近いうちにしたいと思うが、DAWであるARDOURというソフトを動かしてみたところ、ProToolsライクであまりにもよくできたソフトで驚いた。
こうしたものもすべて無料で使えるUbuntuは、やはり多少の苦労はあっても使う価値のあるOSといえそうだ。