「Voyage MPD+Fireface400」で音を出す方法 

はじめに

Linuxで「fireface400」を動かすというのは「悲願」でした。
こんな書き方をすると何と大仰なと思われるかもしれませんが、およそ一年前にあれこれとトライを繰り返して、その結果現状のlinux環境下では「fireface400」を認識できないことが分かったときの落胆の大きさを想像していただければ納得していただけるのではないかと思います。
なにせ、「Windows」のもとでは「fireface400」は再生システムの根幹をなしていたのですから、それが「linux」では使えないというのは実にショックな出来事でした。しかも、どう考えても音楽再生にとって、OSは「Windows」よりは「linux」のほうが有利であることは否定できないのですからこれは深刻な問題でした。
最初は仕方がないので、「Windows」を使い続けていたのですが、それも「Voyage MPD」の登場でとどめを刺されました。「Windows+fireface400」の音が「Voyage MPD+ND-S1」に完敗するのですから涙が出ます。もしも、「Voyage MPD+fireface400」が実現するならどれほどの世界を見せてくれるのだろうと思いつつも、メインシステムから「fireface400」を引退させた無念さは筆舌に尽くしがたいものがありました。。。。┌(。>_<)┘ その後、「いつまでもND-S1でもないだろう・・・」と言うことで、linuxが認識してくれるインターフェイスをあれこれ探して、ようやくフェーズテックの「UDIF7」に落ち着いた経緯は既に報告してあるところです。 そんな「あれこれ」があっただけに、「みみず工房」さんの「FFADOの最新版では・・・Fireface 400 なんかも動くようなので、お勧めかもしれません。」という一言には思わず反応してしまいました。 基本的には「みみず工房」さんの「VoyageMPDでFirewireオーディオ機器を動かす」で報告されている内容で無事に「音が出た」のですが、その時は思わずガッツポーズを出てしまいました。「みみず工房」さん、ありがとう・・・(≧∇≦)
そんなわけで、内容的には「みみず工房」の方を見ていただいた方が分かりよいと思うのですが、私の方は「fireface400」に絞り込んだ内容で報告しておきたいと思います。

下準備

現在メインで使っているファンレスPCには「firewire」端子がありません。ですから、今回のチャレンジは、かつてはメインシステムに君臨していたにも関わらず、現在はサブシステムにつながれてクライアントPCに身をやつしている「ハイパワー静音PC」を使いました。
「Voyage MPD」はUSBメモリから起動させました。

まずは、最新版のFFADOをインストールするのですが、そのためにはソースからコンパイルできるように開発環境を作らなければなりません。しかし、「Voyage MPD」のような組み込み用途で使うようなlinuxにはそのような環境は用意されていません。ですから、いささか大変なのですが、下準備としてFFADOをソースからコンパイルできるような環境を作る必要があります。

まずは、リスト情報を追加します。
以下の2つのファイルを開いてリスト情報を追記します。

vi /etc/apt/sources.list
deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib

vi /etc/apt/sources.list.d/voyage.list
deb-src http://www.voyage.hk/dists/0.7 ./

追記できたら、以下のコマンドでリスト情報を最新にしてから、開発環境をインストールします。

apt-get update
apt-get install aptitude build-essential libconfig++8-dev

かなり時間がかかりますが、細かい設定などは全て自動的にやってくれますので、昔を知るものにとっては信じがたいほどの簡単さです。

最新版のFFADOをインストール

これで下準備が終わりましたので、いよいよ最新版のFFADOをインストールを行います。
ところが、私の環境ではSubversionで管理されているFFADOを落とすための「svn」コマンドが使えなかったので、

apt-get install subversion

としてから、

svn co http://subversion.ffado.org/ffado/trunk/libffado ffado-svn

としました。
これで、ルートディレクトリの中に「ffado-svn」というディレクトリが自動的に作られて、その中にFFADOのソースがダウンロードされます。

これが終われば、以下のコマンドでインストールします。

ポイントはコンパイルのパラメータに「ENABLE_RME=y」を追加することです

これは、デフォルトではRME(fireface400)のサポートはオフになっているので、コマンドライン引数で明示的にENABLE_RME=y と指定する必要があるからです。

apt-get build-dep libffado
cd ffado-svn/
scons ENABLE_RME=y PREFIX=/usr/local/
scons install

コンパイルの引数はもう少し工夫する必要があると思いますが、とりあえず上のような最低限の指定だけで音出しまでいきましたので、今回はこれで良しとして、暇があればさらに追い込みたいと思います。

これで、インストールが無事に完了したかを以下のコマンドで確認せよとなっています。

ffado-test ListDevices

———————————————–
FFADO test and diagnostic utility
Part of the FFADO project — www.ffado.org
Version: 2.999.0-1985
(C) 2008, Daniel Wagner, Pieter Palmers
This program comes with ABSOLUTELY NO WARRANTY.
———————————————–

=== 1394 PORT 0 ===
Node id GUID VendorId ModelId Vendor – Model
0 0x0010dc0001702f64 0x000010DC 0x00000000 Linux Firewire –
=== 1394 PORT 1 ===
Node id GUID VendorId ModelId Vendor – Model
0 0x000a3501933e3a09 0x00000A35 0x00101800 –
1 0x00a0b00a00006074 0x0000A0B0 0x00000000 Linux Firewire –
no message buffer overruns

「みみず工房」さんの報告では、「このコマンドで繋がっているデバイスが表示されればOKです」となっているのですが、「fireface400」の場合ははっきりと分かる形では表示されないようです。
私の場合は、上のような表示でも「fireface400」は認識されていましたので、参考にしてください。

JACKのインストールと起動

次に「JACK」のインストールを行います。「firewire」は「FFADO」をインストールしただけでは音が出ません。この「JACK」なるものを介さないと音が出ません。
ただし、JACKのインストールはパッケージの導入ですみますから至って簡単です。

aptitude install libjack-0.116 libjack-dev libjackson-json-java
aptitude install jackd2-firewire

さあ、これで「jackサーバ」を立ち上げて「音出し」といきたいのですが、なぜかrootで「jackサーバ」を起動すると肝心の「MPD」が起ち上がりません。
なぜか分からないのですが、起ち上がらないものは起ち上がらないので、「みみず工房」さんも指摘しているように、mpdというユーザー権限で起動させます。ところが、「Voyage MPD」ではmpdというユーザーではログインできません。
ですから、これまた一手間なのですが、mpdでログインできるように下準備をしてから「jackサーバ」を立ち上げます。

passwd mpd
Enter new UNIX password:
Retype new UNIX password:
chsh mpd
・・・・
ログインシェル [/bin/false]: /bin/bash(指定する)

おまじないみたいなものですが、これでmpdでログインできますので、rootからmpdに変更して「jackサーバ」を立ち上げます。

su – mpd
jackd -d firewire &

これで問題なく起動できるのですが、時々エラーが出ることがあります。そう言うときは、何度か繰り返すと無事に立ちあがります。しかし、バックグラウンド動作するように指定したにもかかわらず、

ticks per frame: 512 7 72 (len=504)
ticks per frame: 512 7 72 (len=504)
ticks per frame: 512 7 72 (len=504)
ticks per frame: 512 7 72 (len=504)
ticks per frame: 512 7 72 (len=504)
ticks per frame: 512 7 72 (len=504)
・・・・・

という感じで、「jackサーバ」を立ち上げた端末は一切の操作を受け付けなくなります。困ったなと思って、この端末を閉じると「jackサーバ」も停止してしまいます。
しかし、そのまま放置でも音楽再生には差し支えがないようです。

mpd.confの設定

最後にmpd.confを編集して「fireface400」から出力できるようにします。
まずは、mpdからrootに変身します。そうしないと、MPDの操作ができませんので。

su –
Password:

vi /etc/mpd.conf

以下のようにjackのaudio_outputを追加します。

audio_output {
type “jack”
name “mpd_spdif”
}

最後に、MPDを再起動させれば終了です。

/etc/init.d/mpd restart

かなり長い道のりでハードルも高いのですが、音質的には想像していたとおりかなりの可能性を感じさせてくれます。
今はサブシステムで鳴らしているのであまり確定的なことは言えませんが、同じPCで「Windows」の環境下で鳴らした音とでは解像度や透明感という点では格段の違いです。
fireface400を所有されていてVoyage MPDも動かしているという方はチャレンジする価値はあると思います。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です