~Ubuntu Studio 10.04 LTS "Lucid Lynx"~
('11.3.17一部追記)
 トップページに戻る

【はじめに】

 大変遅くなりました。2010年4月にリリースされたUbuntu Studio 10.04 "Lucid Lynx" 64bit MacBook Pro 4.1で音楽専用機としてカスタマイズするページです。

1.最初にUbuntu Studio全体については、UbuntuのWikiページの中の「Ubuntu Studio に関するTips」でMocchiさんが丁寧に整理をしてくださっていますので、こちらを充分にお読みいただければ、と思います。

2.このページを上記Wikiを参考にさせていただきつつ、オーディオファイルとして音楽再生専用機にしていくための具体的方法を探った、一つの試みとご理解ください。
 そのため、上記Wikiとは別のやり方をしている部分がありますが、その場合は必ず注釈を入れるようにしております。このあたりのフォローをされるかどうかは、は個々の自己判断でよろしくお願いいたします。

3.インストールも重要な部分で、アップグレードによって替わる部分もありますので、トリプルブート編とは重複しますが、こちらにも掲載しております。
 なお、トリプルブート編は9.10ベースですが、内容は10.04でもほとんど替わっていませんので、作業の都合上当面はそのままにしておき、状況を見て改訂いたします。
 
また、カスタマイズ編の9.10バージョンは当面そのままとし、9.10のEOL(End of Life)=サポート期間終了とともに削除いたします。

4.USB再生につきましては、Mocchiさんによれば「USB Audio Class 2については仕様が出たのが2004年で、ALSAドライバが既に4年前くらいに対応しています。」とのことで、USBオーディオドデバイス側のDescriptorの記述やUbubtu側のチェックなどがうまくマッチすれば、動作する可能性があるようです。
  これからの成長が期待される非常に進展の早い分野ですので、今後順次改訂・補足していきます。その場合、旧の部分は必要がない限り残さず、上書きいたします。

5.Firewire再生につきましては、次期11.04"Natty Narwhal"でカーネル側に大きな変化があるようです。FFADOドライバーのFirewireオーディオデバイスへの対応が広がることも含めて期待したいと思います。
 この点は進展が分かれば、随時別ページなどで補足・追加していきたいと考えています。

6.Ubuntu Studio開発については筆者が出音的に好むリアルタイムカーネル(-rt、-realtime)がコミュニティ側でのサポートとされたので、そのあたりが次期11.04でどうなっていくか、という問題もあります。選択肢が沢山あるのが望ましいので、個人的にはリアルタイムカーネルが実装あるいはサポートされることを願っております。

7.bit perfectはあらましき事であり、必要条件であると基本的に考えますが、筆者のスキルと設備の中では「直接に」確認できるのはWEISS製Firewire インターフェースが備える「Bit Transparency Check機能」です。これはWEISSから提供される特殊なビットパターンを埋め込んだ音源ファイルをパソコン上で再生し、それをFirewireインターフェースで受けてそのファームウェア中のソフトウェアで判別するものです。WEISSは現在LinuxでのFirewrie対応のためFFADOと協議中で近日中に対応する予定と聞いているので、それを待って判定したいと考えています。
 なお、本稿で説明する再生アプリケーションは何よりも大事な出音とその安定性から筆者が選んだものであり、環境によっては別の物が適するも可能性もあるので柔軟にお考えください。

8.総じて今後の動きはいろいろあるものの、10.04はLTS(ロングターム・サポート)という長期サポートバージョンであり、あと2年あまりのサポート期間があるので、安定バージョンの一つとしてここでまとめておきたいと思います。
 誤りの指摘や提案など、トップページにあるメアドまでご連絡くださいませ。

【目  次】 当該場所へのジャンプ可能

●基礎編~Ubuntu/Linuxの音声システムの仕組み

(1)Ubuntu Studioの音声システムの仕組み
(2)Ubuntuの音声システム仕組み
(3)音楽再生用のアプリケーション

●インストール編


Ubuntu Studio 10.04 LTSのインストール

●カスタマイズ編

1.基礎的な環境整備

 音楽再生専用機としての基礎的カスタマイズ

2.音楽再生用カスタマイズ
(1)ALSAとPulase Audioのフォーマット変更とサンプルレートの設定
(2)高精度ハードウェアタイマ HPET の設定
(3)CPUのクロック周波数をロックする

3.USBインターフェースの使いこなし
(1)基本的なサウンド設定
(2)いろいろな再生方法
 ●動画プレーヤー(totem)の使い方
 ●aplayを使ったコマンドライン再生
 ●Audacious2の使い方
 
4.Firewireインターフェースの使いこなし
(1)ドライバーとカーネルモジュールなどのインストール
(2)リアルタイム優先度についての設定
(3)ffado-mixer画面について
(4)jackの設定
(5)Ardourの設定
(6)CD & ファイル再生のためのJackとArdourの操作

5.軽量化・環境整備の取り組み
(1)環境整備
(2)不要機能の削除・調整
(3)ディストリビューションの限界

◆追記などした箇所
ppaからのffadoインストール(2011.3.6)


●基礎編~Ubuntu/Linuxの音声システムの仕組み

●オープンソースとは言え、僕らのようなレベルの者にはUbuntu/Linuxの音声がどうなっているかはイメージしずらいところがあります。ALSAだけでなく古いOSSや,aRts,ESDとかいっぱいあって、ミキサーと言えばALSA Mixer,amixer,d mixerなどこれもたくさんあって、音出ししたら無音で調べたらamixerがデフォルトでミュートされていたり、どうもパラにこれらがぶら下がっているので、あちこち目配りする必要がある、というのが9.04でジタバタしていた僕の感想でした。おまけに9.04までデフォルトのサンプリング周波数は48KHzだったので、CD再生しても内部で48kにアップサンプリングされて出てくるから、コマンド打ち込んで44.1にして、というわけで初心者の人でもいきなりコマンドから始めなきゃいかんのかあ~、と溜息ついたものでした。

 なんでこんなにたくさんあるのかというと、恐らくUNIXが歴史のあるかなり古くから開発されてきたOSであるからでしょう。

●一方、Low Latencyと常に上げられるものに「
Jackオーディオサーバー」があります。Pulse Audio とか他にもオーディオサーバーがありますが、オーディオサーバーというのはWindowsやMacにはみかけないコンセプトで、要はいろんなアプリとデータのやりとりをするジャンクション・ポイントといったものでしょうか。例えばDAWソフトArdourからJackに接続し、Jackには別途MIDIを接続して、というようなイメージで、しかもサンプリング周波数や再生バッファサイズの調整も出来る、という重要な結節点です。もちろんALSAからJack、JackからALSAというような接続も出来ます。

●ALSAとは「
Advanced Linux Sound Architecture」のことで、一群のハードウェアドライバ、ライブラリ(ドライバとアプリケーションの間を橋渡しする部分)、ユーティリティからなるサウンドアーキテクチャ(ここではサウンドシステムとよんでおきます)をさすので、単なるハードウェアドライバーでもありません。
 このようにいくつものシステムが関わり合っているので、やはり理解するにはまず基本となるALSA関係資料を読まなくてはいけません。
  
ALSA - Oss4art  ALSA Project   ALSA Wiki

(1)Ubuntu Studioの音声システムの仕組み

●「Ubuntu Studioの標準状態(インストールしたての状態)」の図
 
Ubuntuのサウンドシステムについて (同ページの中程にあります。上のほうには「Ubuntuのサウンドシステム図」があるので間違えないように。)
 以下、引用させていただきます。
*************************
「Linuxのサウンド関連で、以下の名前をよく目にすると思います。
 •Advanced Linux Sound Architecture (ALSA)
 •Open Sound System (OSS)
 •FFADO
 •PulseAudio
 •Enlighten Sound Daemon (ESD)
 •Jack Audio Connection Kit (JACK)
 •Gstreamer
 •Xine
 •Phonon
 •analog Real time synthesizer (aRTs)
 サウンドシステムに関してこれらの様々な技術が入り乱れていて一見してよくわからず、サウンドを巡るトラブルを解決しようとしても、どれ関して調べればよいのかわからず、途方に暮れてしまうことがあります。
この文書では、Ubuntuとその派生ディストリビューション、およびUbuntu Studioに関して、サウンドに関する標準状態について概説します。大まかな関係を把握することで、トラブルの解決の一助になれば幸いです。」

 Ubuntuの標準状態に加え、以下が標準でインストールされます。正確に言うと、パッケージ「ubuntustudio-audio」でJACK関連パッケージとオーディオ編集ソフトウェアが、「ubuntustudio-audio-plugins」でプラグイン関連がインストールされます。

 FFADO:IEEE1394 (Firewire) 接続のサウンドデバイスのための、サウンドドライバとサウンドミキサー。FreeBOBの後継。FirewireドライバにカーネルのFirewireモジュールを使う。

 Jack Audio Connection Kit:低レイテンシを実現するサウンドサーバ。トランスポート機能を持ち、対応アプリケーション間の音声、MIDIデータのやりとりを仲介。

 LADSPAプラグイン:Linuxのためのオーディオ・プラグイン規格であるLinux Audio Developers Simple Plugin APを採用したプラグイン。

 DSSIプラグイン:LADSPAを拡張した規格であるDisposable Soft Synth Interfaceを採用したプラグインで、主にソフトウェア音源に使われる。

 LV2プラグイン:LADSPAを拡張した後継規格であるLV2を採用したプラグイン。Ubuntu 10.04からリポジトリに含まれた。

 JACKを起動するとPulseAudioに対して「pasuspender」を実行し、PulseAudioを休止状態にします。そのため、JACKとPulseAudioを併用することはできません。(この点は今後に変更があると思われます。)また、GstreamerやXine、Phononなど、デスクトップ環境が利用しているバックエンドは、標準設定ではJACKを使えません。


 【筆者注】ALSAで出力する場合などはPulse Audioサーバのような別のサーバーを使う方法もあり、下のUbuntuの図にあるようにALSAから直接ALSAライブラリにつながるアプリケーションもあるので、これらの図に表示されているものが全てと考えない方が良いようです。

JACKの特徴

 •リアルタイム性能を高めて動作することが可能
 •ドライバにFFADOライブラリを指定することで、ALSAやOSSでは使うことの出来ないFirewire接続のサウンドデバイスを使うことができる。
 •JACKトランスポートによる、複数のJACK対応アプリケーションの演奏位置同期
 •JACK対応アプリケーション同士の出力ポートと入力ポートの自由な接続が出来る。サウンドデバイスへの入出力も、入出力ポートとして仮想化される。
 •JACK対応のMIDIデバイス/アプリケーションが存在するが、ALSA対応のMIDIデバイスもJACK上のMIDIデバイスとして利用可能。
 •上記すべての操作を、GUIアプリケーション「qjackctl」で可能
 •10.10で導入されたJACKのバージョン2では、ネットワークを経由して遠隔マシンとの音声同期が可能


主要なバックエンドと代表的なアプリケーション

 主要なバックエンドと代表的なアプリケーションを下に示します。SDLやPortAudioアプリケーションは各アプリケーションでバックエンドを指定する事ができます。また、バックエンド自体がそのバックエンドを変更することもできます。
 PulseAudioアプリケーション   •Skype  •Canberra (GNOMEデスクトップ環境の効果音)
 Gstreamerアプリケーション   •Totem  •Rhythmbox  •Amarok  •Pitivi  •Subtitle Editor  •Kaffeine
 ALSAアプリケーション      •Adobe Flash Player  •nspluginwrapper
 SDLアプリケーション      •Avidemux  •Kdenlive  •Snes9x  •Blender
 PortAudioアプリケーション   •Audacity   •Mixxx                            【引用は以上】
************************************
 なお上図で「1394系」とあるのは主としてヴィデオカメラ系のデバイスと思われます。
 またライブラリとはこの場合概ね「ドライバー」を指すものと考えておいてください。



(2)Ubuntuの音声システムの仕組み
●「Ubuntuの標準状態(インストールしたての状態)」の図
(Studioではありません。
 一方、上記サイトではUbuntuのサウンドシステムの標準状態では
 基本的に、すべての音声ストリームはすべてPulseAudioに集まります。その後、ALSAのカーネルモジュール[注1]を経由してサウンドデバイスに送られ、発音されます。
ALSAにとってPulseAudioは仮想のデフォルト・サウンドデバイスに設定されている
[注2]ので、ALSAをバックエンドに使うフロントエンドで生成した音声ストリームも、PulseAudioに集まります。

[注1] PulseAudio側ではALSAカーネルモジュール用モジュールとして「alsa-module-cards」がロードされる。

[注2] 次の設定ファイルを参照のこと。 /usr/share/alsa/pulse-alsa.conf
PulseAudio側では、ALSAライブラリ用モジュールとして「alsa-module-sink」「alsa-module-source」がロードされる。


と述べられているので、UbuntuとUbuntu Studioではサウンドシステムが大幅に異なることが分かります。


 ただ図の左側のようにALSAから直接ライブラリ、つまりドライバーに向かう音声ストリームもあるので、区別が必要と思われます。


(3)音楽再生用のアプリケーション
● d mixerの資料を読んでいると、ALSA/d mixerは「sample accurate」に設計されていないので、そういう用途にはJackを使え、と書いてあったりします。
 確かにJackを通すと精緻で滑らかな感じになります。しかしALSA経由ではドーンとくる豪快な感じが好ましく、これはこれで音楽を楽しく聴かせてくれる魅力があります。
 あちこちシステム的に設定をしていった方が音は良くなってくるのですが、音も出ないのに初めからそれではめげる人もいるでしょう。
 第一、早く音出しをしたいでしょうから、お勉強はこれくらいにして、ここではソフトは
 1.シンプル&ドーンと音の良い「動画プレーヤー(totem)」、若干手間ですがさらに音のよいaplayを使ったコマンド再生
 2.贅沢にゴージャスにDAWソフトであるAtdour+Jack
という範囲に止めます。

●オーディオデバイス(サウンドカード)によりセッティングが異なります。

【USB インターフェース】
1.基本的なサウンド設定は「システム管理>サウンド」で行います。
2.シンプル&ドーンと音の良い「動画プレーヤー(totem)」aplayを使ったコマンド再生
3.Jackにもつなげていろいろきめ細かい設定が出来るAudacious2

【Fireireインターフェース】(注)Linuxの1394ドライバー(FFADO)はJackにしか対応していません。
1.Firewireの設定には、基本的にかなりの根性が必要です。
2.Jackのとりあえず設定
3.ArdourでCDを聞く設定



●インストール編

Ubuntu Studio 10.04 LTSのインストール

 
最初にお使いのパソコンのハードウェア・ドライバーなどはLinuxに対応しているか、充分確認してください。
 
以下の手順はそれが確認されているMacBook Pro 4.1の場合です。 https://help.ubuntu.com/community/MacBookPro4-1/Lucid

 
Ubuntuと違い、コマンドライン的なインストールだが、基本的な内容は同じです。 (写真はMacBook Proで9.10の場合のものを使用していますが、他のマシンも10.04も基本的に代わりはありません。)

(1)ダウンロード→isoファイルをDVDに焼く

 こちらから「64-bit PC (AMD64) alternate install DVD」を選択してisoファイルをダウンロードしてください。ただし古いパソコンでは64bit対応していないものがあるので、その場合は32bit版をダウンロードしてください。
 isoディスクイメージを焼くバーナーソフトは多数あるので、各自選んでください。僕は「BurnAware Free」というのを使っていますが、選択は適当で結構です。

(2)インストール

 ●インストール画面ではマウスは使えません。←→などキーボードで入力してください。
 ●特にパーティションとGRUBブートローダーのインストールの箇所は必殺のポイントです。熟読!


言語は日本語を選択















Keyboard Model Selectionは「Apple Laptop」を選択














Origin of Keyboardは「Japan」




















Keyboard Layoutは「Japan」










CD-ROMチェック





ネットワーク設定






ホストネームの入力







時刻の設定





パーティション設定は「手動」を選択して行う。
「最大の連続空き領域を使う」にすると、スワップパーティションが勝手に切られてしまい、Windowsが起動できなくなるので、注意。














 
3.の「HFS+(Mac拡張ジャーナリング)でフォーマットされたパーティション(sda3)」を選択


















パーティション設定を順次入力するまずはパーティション名。















パーティション名は各自で選択 I










利用法は「ext4ファイルシステム」を選択




















マウントポイントは「/(ルート)」を選択















マウントオプションはデフォルト
 (にしておきましたが、正直よく分かりませんです。)












パーティションのセットアップ終了


















スワップパーティションがないと警告されるが、そのまま「いいえ」で継続

 
物理メモリが小さいなど、必要な場合は後で「スワップ・ファイル」を作成する。こちらを参照








ベースシステムのインストール





ユーザーとパスワードのセットアップ











ソフトウェアの選択
 
スペースキーを使って「Audio creation and editing suite」 を選択すると「Ubuntu studio audio」など多くのモジュールがインストールされてしまうので、筆者はここではインストールしていない。つまり素のままのUbuntu Studioをインストールしている。

 
(注)この点は標準的なUbuntu Studioインストールとは異なります。







GRUBブートローダーの設定 「/dev/sda3」
 
絶対に間違えないこと。間違えたら他のOSのいずれかが起動しなくなります。その場合は、粛々と自己反省して再インストール のこと。















インストールの完了






(注)スワップファイルの設定
 
MacBook Pro 4.1のメモリ4GB~6GBでは今のところ、不具合は出ていないので筆者はSwap Fileは作っていません。
 今後に備えて、物理メモリが不足する場合の仮想メモリに充てるための「スワップファイル」を先に作っておく場合は以下の通りに進めてください。。
 これはもうこちらを読んでその通りにやってくださいと言うことしかないと思います。(下図を拝借しました。ありがとうございます。)


 
そのサイズについては「作成するswap領域は、物理メモリが2GB以上ある場合には物理メモリと同じ容量で作成し、2GB以下の場合は物理メモリの2倍程度の容量を作成しておくとよいでしょう。 」との事です。Macbook pro4.1ではシステム管理>システムモニタで3.7GB程度メモリが認識されていたので、これに従って作成する場合は3.5GB=3,584MB作成すれば良いと思われます。


●カスタマイズ編

1.基礎的な環境整備

音楽再生専用機としての基礎的カスタマイズ
 
アップデートの実行

●Ubuntu 対応のためのMacBook Pro 4.1の全般的な環境の設定・変更
 このままではタッチパッドで2本指添え+クリック=右クリックができないなどの問題があるのでUbuntu Communityのドキュメントなどを参考にMBP4.1用に環境設定の変更をしておく。

(1)Nvidiaグラフィックカード・ドライバの有効化
 システム→システム管理→ハードウェアドライバから推奨されるNVidiaグラフィックドライバを有効化する。
 パネル上部に「インストール出来ませんでした」の表示が出る場合があるが、そのまま使用する。

(2)キーボード
 ①バックライトなどの特別な機能は現状ではデフォルトで機能しない。
  Ubuntu Communityのドキュメントに従えば、端末からのコマンド入力で機能させられるが、電流消費が増えるし音楽再生専用機としての必要性は低いと思われるので特に対応しない事にする。
 ②「システム>設定>キーボード」で、レイアウトのタブを開く。「キーボードの型式」がインストール当初は「不明」になっているので、Appleから「MacBook Pro(Intl)」を選択する。
 ③同上タブでキーボードレイアウトの「オプション」から「CapsLockキーの挙動」を開き上から7行目の「CapsLock uses internal capitalization. Shft "pauses" CapsLock.」を選択。
 ④「システム全体に適用」をクリックしてパスワード入力し、変更を適用する。

(3)タッチパッド  「システム>設定>マウス」でタッチパッドのタブ。

 デフォルトでは高感度すぎるので「タッチパッドのタブで叩いて左クリックする」のチェックを外す。
 「二本指でスクロール」にチェックを入れると、二本指で右クリックも可能になる。


(4)日本語環境の構築はしない。

 音楽再生用としてはデフォルトでインプットメソッドとしてのiBusも使えるし、システム関係のメモ程度なら日本語には不自由しないので、「言語環境のサポート」は特にインストールしなくて良い。
 以下、iBUsなど日本語環境の設定については省略。

●リアルタイムカーネル導入

(1)リアルタイム・カーネルとは何か

 リアルタイム・カーネルについてはUbuntu Studio に関するTips/セットアップ/カーネルについてから若干引用させていただきます。

 『Ubuntu Studioは、製作環境とパフォーマンス環境の充実のために、リアルタイムカーネルを標準としてきました。リアルタイムカーネルとは、 Linuxの標準カーネルにパッチ「CONFIG_PREEMPT_RT」を適用して設定を変更し、より強力なリアルタイム性能を持たせたものです。
 リアルタイム性能とは、アプリケーションからの処理を、決められた期限までに終了する能力のことです。ある程度早い終了期限(デッドライン)のリアルタイム性能を持たせたカーネル(リアルタイムカーネル)を使うことで、特定のアプリケーションが行う仕事の処理を素早く行い、遅延(レイテンシ)を短縮することができます。』

 『Ubuntuで利用できるリアルタイムカーネルは、Ubuntu Studioコミュニティの有志がメンテナンスを行い、それをUbuntu Studioのカーネルとしてisoイメージに組み込んでいました。パッケージ名「linux-rt」です。
しかし10.10以降、Ubuntuリポジトリに入れるためのカーネルメンテナンスの負担やUbuntu Kernel Teamの方針などを考慮し、Ubuntu標準のgenericカーネルを使うことになりました。
なお、Ubuntu Studio開発者のひとりで、カーネルメンテナンスを行っているAlessio Igor Bogani氏が、自身のPPA (Lowlatency & Realtime kernels )でlowlatencyカーネルとRealtimeカーネルを提供しています。前者はUbuntu標準カーネルの設定を変更したもので、後者はkernel.orgから取得したソースにCONFIG_PREEMPT_RTパッチを適用したものです。詳細や導入の方法は、以下を参照して下さい。』


(2)「-realtime」の導入

 Midi演奏の場合以外の音楽再生ではリアルタイム・カーネル必要ないよとか、-preemptで行くとか考え方はいろいろあろうかと思います。しかし、筆者は経験的にリアルタイム・カーネルの出音が好きなので、ここは「-realtime」を導入することにしました。
 上記Wikiページに従ってAlessio Igor Bogani氏のPPAからインストールしましたが、そのインストール方法を再掲します。

 1.ソフトウェア・ソースにAlessio Igor Bogani氏のPPAを登録します。
  $ sudo add-apt-repository ppa:abogani/ppa

 2. PPAの鍵を登録します。
  $ sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com F141B61E

 3. パッケージリストを更新します。
  $ sudo apt-get update

 4. 「linux-realtime」メタパッケージをインストールします。
  $ sudo apt-get install linux-realtime

 そしてアップデートマネージャーを立ち上げると、ppa A.Boganiから「nvidia-current 」「nvidia-current-modallases」という2つのアップデートが入っているので、これを実行して再起動すると、起動画面でlinux 2.6.33-29 realtimeがリストアップされているのが分かる。

(3)リアルタイム・カーネルとリアルタイム・オプションとは別物です

 今回-realtaimeを導入したのは、あくまで筆者にとって出音的に必要だと感じたからであって、リアルタイム・カーネルでないとjackなどソフトウェアのリアルタイム・オプションが有効とならない、という混同をしないでください。これらは、あくまで別物です。

1.PAM (Pluggable Authentication Modules) というのはLinuxディストリビューションにおけるユーザー認証の中核となる仕組みです。

2.Ubuntu Studioではデフォルトで、PAM によってaudioグループに属するユーザに対してリアルタイム優先実行が許可されています。
  つまり、カーネル内での処理優先度を上げる権限がユーザに付与されます。

3.リアルタイム・オプションとは、ソフトウェアの実行時にその要求が優先的に処理されるよう、カーネルに対して処理の優先度を上げるよう要求を出すことです。
  下記のjackのリアルタイム実行優先とはこのオプションのことを指します。

4.このようにUbuntu StudioのようにPAMによるリアルタイム優先実行が許可されている場合は、リアルタイムカーネルではなく通常のgenericカーネルでもJACKのリアルタイムオプションを利用することが出来ます。
 こちらを参照してください。


●FFADOドライバー、Jackサーバ、Ardourの導入 (Firewire再生を行う場合)

 ①インストールの順序
 
 Firerwireドライバーのようなハードウェアドライバーは出来るだけ早い時期にインストールする必要がある。
  Jackのインストールより前にffadoドライバーをインストールする必要がある

 ●Jackより先にSynapticで「ffado」と検索してパッケージをインストールする。ただし、パッケージにはそれぞれに依存関係があるので、注意すること。
  「jackdfierwire」i以外のffado関係全てをインストールしておく。
 ●「jackd」のインストール。qjackctl、jackdfierwireも同時にインストールされる。
  (「jack」というのは別のソフトなので、間違えないように注意。)
 ●「ardour」のインストール。多数のモジュールが同時に導入される。

【注】ppaからのffadoインストール (2011.3.6補足)

 ◆こちらのWikiにffadoのソース・コードからダウンロードしてコンパイル、インストールする方法が書かれています。
  過去何回かこれとJackdもうまくインストール出来ていたのですが、最近はffado-dbus-serverがインストールされなかったり、今度は別のモジュールが不足していて、sconsできないとかで中断していました。
  要するにワイスとかが対応するであろう新しいバージョンのffadoドライバーを、本体は10.04 Lucidのままで欲しいわけです。

 ◆最近Mocchiさんがご自身のppa(ppa:mocchi/instruments)に「libffado 2.0.1+svn1959-20110304lucid」という新しいバージョンをアップしてくださいました。
  この点が10.04 Lucidで行く最大の問題点の一つだったのですが、これで我々もちゃんとキャッチアップすることが出来ました。

 ◆
  まずソフトウェアソースにMocchiさんのppaを加えます。(ppaの鍵もちゃんと入ります。)
   sudo add-apt-repository pa:mocchi/instruments

  次に最新のパッケージのリストを得るためにアップデートします。
   sudo apt-get update

  これでSynapticを開いて「ffado」を「検索すると、新バージョンにアップグレード可能になっているので、アップグレードを開始します。
  これもこちらとかいろいろご苦労いただいた結果です。感謝。


 Jackのリアルタイム優先度設定~インストール時

 ●jackdのインストール途中で□にチェックを入れている「リアルタイム実行優先」を選択している場合には、設定ファイル「/etc/security/limits.conf.d/audio.conf」が作成され、
 この場合は上記設定ファイルには、下記の通り書き込まれています。
 @audio - rtprio 99
 @audio - memlock unlimited
 @audio - nice -19

 
 (@audioはグループ「audio」に属するユーザを示します。)

 システムの説明文
 「jackdをリアルタイム優先度で動作させたい場合、jackdを起動したユーザはリアルタイム動作をさせられるパーミッションが必要です。このオプションを選択すると、/etc/security/limits.d/audio.confファイルを作成し、audioグループに対してリアルタイム優先度とmemlock権限を許可します。」


 ●後述するjackの設定の中で、左側のrealtime□にチェックを入れるとrリアルタイム・オプションを設定することになります。







●staratup manager導入

 Synapticで「staratup manager」をインストールしておくと、起動するカーネルの選択だけでなく、カーネルの起動時間がデフォルト10秒のところを短縮したり出来るので便利でお奨めです。


●ユーザーとグループについての設定
 
 
Firewireデバイスへのアクセス許可のために必要な設定ですが、早めにしておきましょう。
 
こちらを参考に読んでおいてください。

 「
システム>システム管理>ユーザーとグループ」から


















「詳細設定」をクリックし、パスワードを打ち込んでロック解除














←「ビデオデバイスを利用」「音声デバイスを利用できる」に必ずチェックを入れる。
 これで






(注)こちらを参考に「videoグループに属する人が、デバイスにアクセスできるように」コマンドで設定する場合の図を記載しておきます。
 上記設定をしておけば、これが無くてもアクセス権は得られます。





































←「rootグループ」の中に必ず当該ユーザーが入っている様にしておくこと。
 


←「グループの管理」をクリックして、audioがあることを確認。無ければ追加する。
 sudo groupadd audioとコマンドを打って、「Group “audio”は既に存在します。」という答えが表示されればグループ追加はOK。

 audioグループを選択し、プロパティボタンを押して、グループのメンバー一覧上のrootと当該ユーザーがチェックされていることを確認する。もし、チェックがついていない場合は、ここでチェックをつける。






←また、root、当該ユーザー共に必ず「video」に加入のこと。














2.音楽再生用カスタマイズ

(1)ALSAとPulse Audioのフォーマット変更とサンプルレートの設定(実質的にはUSB用

●ALSAとPulse Audio Serverの「音声いろいろ」な関係

        Pulse Audioサーバもいろいろとややこしそうですが、一つの例としてはこちらの右の図がシンプルで分かりやすいかと思います。

 ややこしいのとしてはこちら下の図ですか。ALSAがPulseに送ったり、ALSAからPulseに送ったり「音声いろいろ」あるようです。う~む。




●インターフェースによって異なる設定
 
Firewire出力の場合は、後述するようにjackでフォーマット(サンプルレート)を設定できます。
 
一方、USBでAlsa出力の場合は、AlsaとPulse Audioの両方でフォーマット(サンプルレートとワード長)を設定しなければなりません。

 
下記のフォーマット(サンプルレートとワード長)については音源データにマッチさせることは勿論ですが、USBオーディオインターフェースの仕様も確認して設定してください。

●Alsaのフォーマット(サンプルレートとワード長)設定

 a)設定ファイルをgeditで開く
  
sudo gedit /etc/asound.conf
 
b) 以下のテキストを記入後、必要に応じて一部を変更する。

pcm.!default {
type plug
slave {
pcm "hw:0,1"
format
S16_LE 変更例→ s24le
rate
44100   同上→ 96000
}
}


 デフォルトは上記の通り16/44.1なので、その状態でそれ以外のファイルを再生しようとしてもOSで変換されて出力される。
 HiResに変更したい場合は、

  1.ALSAの設定ファイルと下記のPulse Audio設定ファイルと同時に、
  2.rate(サンプルレート)は44100を 96000など同じ数字
変更し、
  3.format(ワード長)もS24_LEなど同じにすれば、
 ファイルのオリジナル・フォーマットのままALSA→Pulseで出力できる。

●Pulse Audioのフォーマット(サンプルレートとワード長)設定

 a)設定ファイルをgeditで開く。
  
sudo gedit /etc/pulse/daemon.conf
 
b) 設定ファイルのテキストのうち、以下の2行のコメントアウト(左端の記号を消す)して、下記の例のように必要に応じて一部数字を変更する

default-sample-format = s16le 変更例→ s24le
default-sample-rate =
44100  同上→ 96000

 c) 以下のコマンドで設定状況を確認する。
  
pulseaudio --dump-conf;

  デフォルトの場合は以下のように端末内に表示されます。
  ### Read from configuration file: /etc/pulse/daemon.conf ###
   (中略)
  default-sample-format = s16le
  default-sample-rate = 44100
  default-sample-channels = 2
  default-channel-map = front-left,front-right
  default-fragments = 8
  default-fragment-size-msec = 10


●Pulse Audioのフォーマット(ワード長)について

  ワード長についてはPulseAudio Documentationのうち、Sample Format Specificationsで以下のように定義されています。

  
PulseAudio supports the following sample formats:

PA_SAMPLE_U8 - Unsigned 8 bit integer PCM.
PA_SAMPLE_S16LE - Signed 16 integer bit PCM, little endian.
PA_SAMPLE_S16BE - Signed 16 integer bit PCM, big endian.
PA_SAMPLE_FLOAT32LE - 32 bit IEEE floating point PCM, little endian.
PA_SAMPLE_FLOAT32BE - 32 bit IEEE floating point PCM, big endian.
PA_SAMPLE_ALAW - 8 bit a-Law.
PA_SAMPLE_ULAW - 8 bit mu-Law.
PA_SAMPLE_S32LE - Signed 32 bit integer PCM, little endian.
PA_SAMPLE_S32BE - Signed 32 bit integer PCM, big endian.
PA_SAMPLE_S24LE - Signed 24 bit integer PCM packed, little endian.
PA_SAMPLE_S24BE - Signed 24 bit integer PCM packed, big endian.
PA_SAMPLE_S24_32LE - Signed 24 bit integer PCM in LSB of 32 bit words, little endian.
PA_SAMPLE_S24_32BE - Signed 24 bit integer PCM in LSB of 32 bit words, big endian.
The floating point sample formats have the range from -1.0 to 1.0.

The sample formats that are sensitive to endianness have convenience macros for native endian (NE), and reverse endian (RE).

 

●ALSA、Pulseのワード長の具体的設定方法

 ◆USB1.1オーディオクラスDAC   ①CDまたはCD相当の再生の場合 → S16LE
                     ②24/44.1など24bitデータ再生の場合 → S24LE  【注】ただしS24LE設定で16bit再生しても、余りの8bitはトランケート(切り捨て)されるだけなので特に支障はない。
 ◆USB2.0オーディオクラスDAC  規格により → S32LE

●「フォーマット設定ツール」の必要性

 上記のように端末を2回開いて、設定ファイルの数字を2~4カ所変更しなければならないのは、CUIに慣れていないユーザーには敷居が高いでしょう。よって、グラフィカルに選択できるツールを求めているところです。
 これができれば「UbuntuでUSB」というのはさらに利用しやすくなります。

(2)高精度ハードウェアタイマ HPET の設定

 高精度ハードウェアタイマを使うように設定を変更します。
 a)端末からgrub設定ファイルを開く 
   sudo gedit /etc/default/grub

 b)設定値を変更して、ファイルを保存する
   GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  の文を見つけて次のように変更し、ファイル保存して終了します。
   GRUB_CMDLINE_LINUX_DEFAULT="quiet splash clocksource=hpet"

 c)端末に戻り、設定した値を反映するためgrubのアップデートを実行する。
   sudo update-grub2

 d)再起動して、変更が実行されているかどうかを確認する
   cat /sys/devices/system/clocksource/clocksource0/current_clocksource
  上記の結果、hpet と表示されればOK。

(3)CPUのクロック周波数をロックする

 ウブスタ君の難点はもともとが節約を旨とする省エネOSなので、CPUのクロック周波数が起動時はオンデマンド・モードで低い周波数になってしまうことだ。うちのMacBook Proの場合、800MHzになってしまう。そこで、クロック表示カウンターを表示させて「Performance」モードを選んで常に最大(2.4GHz)にロック出来るのだが、一度シャットダウンするとまた一からになる。つまりセッションごとらしくて毎回設定しなければならない。
 しかも2回目以降は最初2.4GHzで起動したりするのでよしよしと思っていたら、途中で800MHzに戻るらしく、いつのまにか最低レベルに戻っている場合も多いので、再度設定しなければならない。800MHzになるのを待って2.4GHzに設定しないといけないわけで、これで音が良くなかったら絶対使わんもんね。

 

 と言っていたわけですが、Synapticパッケージマネージャーでcpufreqd」をインストールすると、cpuクロック周波数がうまく最大=performanceでロックされることが分かりました。電源がらみの省エネ機能は結構悪さをするので、要注意です。
 お試しください。詳細は省略します。

【豆知識】
 大多数のオーディオファイルは買ったときのデフォルトのまましか使わず放置しているが、再生バッファサイズの設定は音質や全体バランスのコントロールに非常に重要である。これをまめに動かして最適ポイントを探らなければ、コンピュータでオーディオをやっている値打ちが半減する。ただし再生バッファサイズ=小→Low Latency→ハイスピードと、大勘違いしてひたすら再生バッファサイズを下げに行くのも、正直止めていただきたい。これはマシンとインターフェースの安定的なデータのやりとりに関する調整項目であって、再生バッファサイズ=小というのはCPUの負荷増とトレードオフだからである。

 また、FFADOドライバで立ち上げた場合、例えばOrpheusの場合で言うと現在の所パネル表示が不十分で、クロックソースとサンプリングレートが表示・変更可能なだけで、バッファサイズについてはスタンドアローン動作になっていると思われる。よって音質上必要と思えばWindowsやMacで先に立ち上げて再生バッファサイズを変えて、再度Ubuntu Studioで立ち上げていく必要がある。


3.USBインターフェースの使いこなし

(1)基本的なサウンド設定


「サウンド」アイコンのパネル表示
  9.10から上部バーにスピーカーアイコンが設けられて、使いやすくなったのだが、いつの間にか消えてしまった。と思いきや、メニュー内の「システム>設定>サウンド」に設けられました。
 あるいは上部バーを右クリックしてスピーカーアイコンをパネルに追加することも可能です。

【豆知識】
 このgnome-volume-controlはPulseAudioを介してALSAをコントロールしているので、PulseAudioがないと何も出来なくなります。
 Pulse Audio Device Chooser、Pulse Audio Volume ControlなどのPulseモジュール、あるいはalsa-mixer、a mixer、d mixerなどのミキサー類との関係は今後調査していく必要がある。
 そのため筆者はALSA関係モジュールも最低限しかインストールしていない。


 音楽再生機では当然よく使うので、右クリックで上部パネルに表示するようにした方が便利です。


















②システムの「サウンド」は「なし」を選択して警告音が出ないようにする。






















③ハードウェアの選択

 USBオーディオクラス1のDACが認識されるので、設定対象デバイスとして選択する。




















④出力デバイスの選択

 USBオーディオクラス1のDACを出力先として選択する。




















⑤アプリケーション

 そのときに再生しているアプリケーションとその出力が表示される。音量は最大に!

 注意!一番上の「出力の音量」はビット落ちをしないよう常に100%にしておくこと!



















(2)いろいろな再生方法

 USBで聞くなら再生ソフトウェアはいろいろありますが、音の良さで「aplay」と「動画プレーヤー」、加えて対応フォーマットの多さで「動画プレーヤー」をここでは推します。
 アプリケ-ションを立ち上げる前に若干の準備をしておきましょう。

 ①音楽ファイルのプレビューを無効にする

 「場所 > ホーム・フォルダ > ファイル・ブラウザ」のメニューバーの『編集 > 設定 > プレビュー > サウンド・ファイル > サウンド・ファイルの演奏』を「しない」に設定する。
 実は音楽ファイルにはマウスカーソルを当てただけで音楽が鳴りますが、これはファイルシステム「Nautilus」の「Audio Preview」という効果のようです。詳しい機能は確認できていませんが、音質的にはさほどのこともないので、これは切りましょう。




 
【豆知識】
 なおインストール済みモジュールの確認
  
$ dpkg -l | grep pulseaudio
  $ dpkg -l | grep alsa

 で、行います、















②次に再生したいファイルの開き方

 場所>コンピュータ>オーディオディスクと開きます。

 USBメモリなどの「ファイルシステム」は直接左側の「場所」のメニューから開いても良いのですが、CDは「オーディオ・ディスク」から開くと「場所を開けませんでした」と警告が出るので、「コンピュータ」から開きます。

【豆知識】
 UNIXにとっては全てはファイルであり、CD上.のデータはまだ本来のファイルではないのだが、仮想的にファイルとして取り扱う必要がある。
 そのためCDの各トラックを開くには「場所>コンピュータ」を開いて、その中の「CD/DVDドライブ:オーディオ・ディスク」を開く必要がある。

















●動画プレーヤー(totem)の使い方

 なんで音楽なのに動画プレーヤーなんだ、と言うなかれ。良く分からないけど、どーんと来る音の魅力は多くの人が認めるところ。複数曲の連続再生も出来るし、HiResフォーマットにも幅広く対応していてしかも使いやすい
 注:設定メニューで「音楽再生時の映像効果」は切った方が音が良くなるので、試してください。

 再生方法はいくつかあり、トラックを選択するとすぐに再生が始まります。

①動画プレーヤーの上部のメニューから、「動画」→「開く」→「動画または再生一覧の選択」で一覧にオーディオ・ディスクの各トラックを表示させて、再生したい曲を「追加」する。複数選択も可能。



②動画プレーヤーで「サイドバー」を表示させる。「動画または再生一覧の選択」画面左側の「オーディオディスク」を選べば右の欄にトラックの一覧が出る。オーディオ・ディスクの各トラックをそこにドラッグ&ドロップして入力する。複数選択も可能。



③ 「ファイル・ブラウザ」で「オーディオ・ディスク」の各トラックを選曲して右クリックして、「動画プレーヤーで開く」を選択すれば、直ちに再生がはじまる。複数選択も可能。
 あるいは右クリックしてコンテキストメニューの最上部に「動画プレーヤーで開く」が表示されている状態であれば、ファイルを直接ダブルクリックするだけでも、再生が始まる。


【注意点】Pulse Audioのバグ

 なお各種データを長時間再生している場合や、HiResファイルの再生の場合など、「pa_stream_writable_size() failed: Connection terminated」と表示されて、再生がストップしてしまう場合がある。これはPulse Audioのバグと見られ、いくつかの試みがなされているが、最終解決には至っていない。Pulse Audioのバージョンアップや、10.10や11.04などでの状況確認も必要と思われるので、引き続き調査します。
pa_stream_writable_size() failed: Connection terminated のバグ

Mediaplayer crashed with "pa_stream_writable_size() failed: Connection terminated"

Ubuntu Audio Dev team PPA

●aplayを使ったコマンドライン再生

 Ubuntuはグラフィカルな外見だが、実際の中身は「コマンド」というテキストベースのプログラムが動いており、そのため少し突っ込んだ設定変更などでも、すぐにターミナル(端末)でコマンドを打ったりしなくてはいけない。これも慣れると逆に便利な面もあるのだが、抵抗のある人も多いと思う。
 しかしaplayのコマンドライン再生は浸透力のある力強い音が素晴らしく、連続再生も出来るので、UNIX系OSの底力を是非お試しあれ。後述するように、HiResフォーマットの再生が10.04dではうまく動いていませんが、この点は調査するとしても、CDだけでも是非聞いてみてください。
 (なお、従来載せていた「aplayを右クリックで再生する方法」は重複しているので省略しました。)

この件はtadさんから情報をいただき、たくぼんさんにもご協力を戴きました。厚く御礼を申し上げます。

①CDをドライブに入れ、場所>コンピュータ>オーディオディスクと開きます。(上記の図参照)
 いきなり「オーディオディスク」を開くと「場所を開けません。」と警告が出るので必ず「コンピュータ」から開くこと。

②端末を開き "aplay -q "(半角スペース2箇所あり)と打ち込んで、再生したい曲をドラッグ&ドロップします。

 この状態では、端末のウインドウがアクティブになっていないことに注意。





















③バーをクリックするなど、端末をアクティブにした状態でEnter/Returnキーをたたけば再生開始です。
 複数曲でもドラッグ&ドロップ可能で、その順番どおり再生してくれます。


(注)オーディオディスクでファイルを選択(反転した表示の状態)でEnter/Returnキーをたたけば、関連づけされたアプリ(例:動画プレーヤー)が再生を開始したりするので、ご注意ください。













一時停止するときは"Ctrl+Z"。その後"fg"と打ちますと、続きから再生が再開されます。
 ("Ctrl+C"だとプロセスを終了させてしまうので注意。)
 





⑤tadさんによると「バッファのサイズはaplayのデフォは500msec.のようです」。バッファを増加させるときは"-B"を使って、"aplay -q -B1000000"のように打ちます。
 色々やってみましたが、バッファを入れると全体に丸くおとなしい方向に行くので、筆者は-Bなしを選びました。このあたりはそれぞれのお好みで選択を。








⑥aplayの再生フォーマット問題

◇aplayのヘルプでは
 「認識されるサンプルフォーマット: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE
  IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE
 これらのいくつかは指定のハードウェアで使用不可能な場合があります
 可能なフォーマットの省略形:
 -f cd (16 ビット、リトルエンディアン、44100、ステレオ)
 -f cdr (16 ビット、ビッグエンディアン、44100、ステレオ)
 -f dat (16 ビット、リトルエンディアン、48000、ステレオ)」


◇ところが10.04でALSAとPulseでS24_LEでシステム設定して、実際に24/44.1とか24/96とかを再生してみると下記の通り「サンプルフォーマットが使用不可能」と表示され、再生が出来ません。」
 「aplay -q '/media/BEATLES1/Happy this way_Judith Owe01 - Conway Bay.wav'
  aplay: set_params:990: サンプルフォーマットが使用不可能
  Available formats:
  - U8
  - S16_LE
  - S16_BE
  - S32_LE
  - S32_BE
  - FLOAT_LE
  - FLOAT_BE
  - MU_LAW
  - A_LAW 」


◇またFLOAT32_LE設定でも、aplayは動作しませんでした。

◇これらの点は引き続き調査します。

 電腦數碼音響、好々!

●Audacious2の使い方
(省略)分かりやすいソフトなので、すぐに扱えます。出力先やサンプリング周波数を色々と選べて、JackやPulse Audioサーバーにも接続OK。 Hi Res再生に好適!と言いたいのですが、上記の通りコマンドでシステムのフォーマット設定を変更する必要があります。
 音質的には繊細でやや細身の傾向。


4.Firewireインターフェースの使いこなし

(1)ドライバーとカーネルモジュールなどのインストール

【図 Firewireオーディオインターフェイス利用時の各サブシステムの連関】

●ドライバーとカーネルモジュール


 先のUbuntu Studioの音声システムの図をよくご覧いただきたいと思います。右側がJackからFirewireデバイスに接続する流れです。
 また左の図はFirewireインターフェース利用時の関連を整理したものです。

 まずFirewire用のドライバーは「FFADO」と言います。UNIXではハードウェアのドライバーは基本的にシステム/カーネル側で持つことになっており、そのためこのドライバーに対応していないデバイスは認識されません。
 さらにカーネル側にこれに対応するモジュール(カーネルモジュール)が必要で、以前はraw1394、ohci1394などのスタックが当初からカーネルにロード=組み込みされておらず、そのロードのために作業や工夫を必要とした。

 【Old Firewire Stacks】 旧カーネルモジュー * ieee1394 * ohci1394 * sbp2 * eth1394 * dv1394 * raw1394 * video1394

 (こちらこちらを参照。)
 一方9.10からは"JuJu stack"と呼ばれる新カーネルモジュールも実装されています。

 【New Firewire Stacks】 新カーネルモジュール  * firewire-core  * firewire-ohci  * firewire-sbp2  * firewire-net

 しかしこの新カーネルモジュールを使ってオーディオデバイスを実行するには、カーネルは 2.6.32 以上, libraw1394ファイルは2.0.5 以上r, libffadoファイルは 2.0.1以上、という条件があるため、「black list」という手法を用いて、10.04まではデフォルトでは旧スタックが読み込まれるようになっています。

 「black list」 
  ①下記のコマンドでblack list ファイルを開く。
   sudo gedit /etc/modprobe.d/blacklist-firewire.conf

  ②black list ファイルは以下のように書かれており、新スタックよりも旧カーネルモジュールを有効に択している。
   # Select the legacy firewire stack over the new CONFIG_FIREWIRE one.

#blacklist ohci1394
#blacklist sbp2
#blacklist dv1394
#blacklist raw1394
#blacklist video1394

blacklist firewire-ohci
blacklist firewire-sbp2

 一方、10.10からは新カーネルモジュールが有効となっています。

●カーネルモジュールの組み込み

 旧カーネルモジュールの場合は、「raw1394」「ohci1394」「ieee1394」が、新カーネルモジュールの場合は、「firewire_ohci」「firewire_core」「crc_itu_t」が、ロードされている必要があります。新旧が入り混じっていると、デバイスにアクセス出来なくなる可能性があります。

 もし、有効になっていて欲しいモジュールがロードされていない場合は、端末でコマンド「modprobe」を使ってモジュールをロードして下さい。
 例: sudo modprobe raw1394

「Ubuntu Studio Controls」 を使ったカーネルモジュールの組み込み

 旧カーネルモジュールの場合は、もともとカーネルに当初からロードされていないため、しばしばロードされない状況になります。そこで、毎起動時に確実にロードするため、SynapticからUbuntu Studio Controls をインストールして、raw1394アクセスのボックスだけをチェックします。
 これによって、raw1394カーネルモジュールが自動ロードされるよう、「/etc/modules」を編集されるので、確実です。セキュリティ上の警告が出ますが無視します。

 ただし後述するように、jackdインストール時に「リアルタイム優先度」を設定している場合には、Ubuntu Studio Controlsでmemlockやniceなどの設定をしてはいけません。
 (「Ubuntu Studio Controlsは非推奨」を参照)


 11.04からは全面的に新カーネルモジュールが使用されるため、Ubuntu Studio Controlsの役割も大きく変わると予想されています。

●カーネルモジュールの組み込み状況のチェック

 以下のコマンドで有効になっていて欲しいモジュールがロードされているかどうかチェックします。
 ①旧カーネルモジュールの場合(10.10以降)
   $ lsmod | grep 1394

  結果が以下のように端末に表示される。この場合はOK。
   raw1394     25376 0
   ohci1394     31283 1
   ieee1394     96276 3  raw1394,sbp2,ohci1394


 ②新カーネルモジュールの場合(10.10以降)
   $ lsmod | grep firewire

●ffado-dbus-serverの「自動起動するアプ リ」への追加
  さて、Linux側はカーネルモジュールもドライバー万全となりましたが、実際にFirewireデバイスをドライブするには、ffado-dbus-serverというモジュールが先に起動して動作していなければなりません。
 そこで、起動時にffado-dbus-serverを自動起動するために、システム>設定>「自動起動するアプ リ」で、"ffado-dbus-server &"というコマンドを追加します。
 左図のように追加>編集ウインドウで名前委とコマンドを記入します。なお、コマンド最後尾の"&"というのはバックグラウンドで動作するという意味です。

 ffado-dbus-serverは、Firewireモジュールが先にロードされていないと起動してくれないので、先にFirewireモジュールの状況を確認する必要があります。

 なおこの措置も、すでに10.10 Maverick以降では必要なくなっているそうです。













(2)リアルタイム優先度についての設定

①リアルタイム優先度
 jackdインストール時に「リアルタイム優先度」を設定している場合には、/etc/security/limits.d/audio.confという設定ファイルに、以下の通り書き込まれます

# generated by jackd's postinst.
#
# Do not edit this file by hand, use
#
# dpkg-reconfigure -p high jackd
#
# instead.
@audio - rtprio 99
@audio - memlock unlimited
@audio - nice -19

 それ故、Ubuntu Studio Controlsでmemlockやniceなどの設定をしてはいけません。

 【参考】Ubuntu Studio Control操作画面 

←①メモリーロック(memlock)の有無とその割合の設定   【注】①③についてはリアルタイム優先度で設定法を紹介

←raw1394アクセスの設定

←②nice(ジョブのスケジューリング優先度)
 (値が低いほど優先度が高くなり、最高値が-20で、最低値が19。他のジョブを遅らせないように-5から-10くらいが適当と言われるが、-19という設定例もある。)
 
 以下は参考文献。
  制限を緩めてリアルタイム処理を有効にしよう!
  リアルタイムカーネルを導入してパフォーマンスを高めよう!

②memlockについての多様な考え方
 3項目の内、audioグループがメモリーを大量に使う①メモリーロック(memlock)については、色々と考え方が別れている。以下、若干を紹介します。

 ●memlockの考え方

 a.限界なしでロックをかけた方が良い  Jackaudio.org/faq
 b.50%位をロックしてオーディオに充てた方が良い。   Florian Paul Schmidt's page
 c.メモリの範囲内で、できるだけ固定数値をロックした方が良い。

 ●Jackインストール時の選択画面での説明

   Jackをインストールするときには「リアルタイム優先度の設定を有効にしますか?」という画面が出て選択を求められる。

  「jackdをリアルタイム優先度で動作させたい場合、jackdを起動したユーザはリアルタイム動作をさせられるパーミッションが必要です。このオプションを選択すると、/etc/security/limits.d/audio.conf
 ファイルを作成し、audioグループに対してリアルタイム優先度とmemlock権限を許可します。
  レイテンシー(遅延)を抑えてjackdをリアルタイム優先度で動作させると、システムの物理メモリを可能な限り要求して完全にシステム停止を引き起こす可能性があります。これは、マルチユーザ環境
 では容認できません。」


●Jackの実行時のログ(MacBook Pro 4.1 memory 6GBでのケース)
  Memory locking is unlimited - this is dangerous. You should probably alter the line:
   @audio - memlock unlimited
  in your /etc/limits.conf to read:
   @audio - memlock 4580814


 なお、この「audio」は「グループ」を示します。
 要は物理メモリの3/4をロックするのがJackのお奨めですただ上述の配慮であれば、シングルユーザーでは実質上心配はないでしょうし、OSの余計な動きを押さえるなら固定の方が望ましいかも知れません。
 ただし当初のunlimitedのまま走らせても、特に支障は生じていません。このあたりは出音も聞きながら判断していく必要もあるでしょう。。


(3)ffado-mixer画面について

●Firewireインターフェースが認識されているかどうかは、ffado-mixerを起動すればパネルが出る。以下のパネルが出ればデバイスが基本的には認識されている。ただし実機のサンプリングレートとOSのそれとが異なる場合などでもこのパネルは表示されるため、その場合は全く音が出ないし、jackも起動できない。

【ECHO Audiofire4】 ほぼコンプリートなパネルが出るが、ルーティング設定については表示されない。
 (Audiofire8は下のOrpheusと同様のもっとシンプルな画面。)

























【PrismSound Orpheus】

 サンプリングレートなどOrpheusの詳細はWindowsやMacで先に設定してから、Ubuntuを起動しなければならない。
Ubuntu Studio側でこのパネルからクロックソースを変更すると、Jackが起動できなくなるというトラブルもあった。

 要するにこの場合はOrpheusを「スタンドアローン」でしっかり事前セットしてからでないと、Ubuntu Studioには接続してはいけないようだ。



















(4)Jackの設定

●ffadoドライバはJackしかサポートしていない。
 Jackの使い方をいろいろ検索して勉強すること。勿論jackからUSBインターフェースにも出力できます。(上記資料を参考に。)

 特に再生バッファサイズはコンピュータとインターフェースのパワーによって大きく最適値が変わるし音質も変化するので、音切れしないなど安定的であるだけでなく、音質的なバランスにも留意して設定する必要がある。

●Jackの設定例
 JACKサウンドサーバの設定と起動
 Step by Step guide to getting FFADO, JACK, and Ardour operation in Ubuntu Studio 8.10RT
 https://help.ubuntu.com/community/FireWire
 Jack Quickstart Guide
 上記資料などに設定値があるので、一応の参考にする。

  • Driver = firewire (→ffadoを選択することになる。)
  • Interface =(default)または(hw:0)    (注)ffadoドライバはALSAをサポートしていないのでこういう表現が出来る。ALSA的にはhw:0は内蔵スピーカーである。
  • Realtime (checked)
  • Priority = 70      (こちらのように0などというのもありました。)
  • Frames/Period = 64
  • Sample Rate = 44100
  • Periods/Buffer = 3
  • Port Maximum = 128
  • Interface = hw:0
  • Start Delay = 2
  • Audio=PlaybackOnly (録音もする場合はDupulex)

●我が家の設定
 Orpheus用には、概ね以下の通り設定しています。パワフルなOrpheusを駆動するという前提でローレイテンシー設定になっていますが、勿論、これは機器により環境により、音質的な好みにより異なるものなので、あくまでご参考に。
 またこれは44.1KHzの場合で、Frames/Period=再生バッファサイズはサンプリングレートに対応して動かします。88.2/96KHzでは128、176.4/192KHzでは256というふうに。
 (実際Orpheusは176.4/192KHzでも128で問題なく動作する場合が大半。)

 ちなみに再生バッファサイズは小さくすればするほど高解像度的な方向になるが、同時につま先立ったような不安定さも出てくる。どれだけ小さくするかを競うというのは、始めたころによくはまるパターンだけれど、意味がない。いろいろな曲を掛けている内に自ずと安定したバランスの良さも分かってこられると思う。
 例えばプロがマルチチャンネル録音の最終ダウンミックスをする場合は、1箇所でもグリッチが出たらそれまでの膨大な作業が無駄になるので、1024などという安全サイズを用いる場合がある。

 【Orpheus用のjack設定】





←リアルタイムカーネルの場合、「Realtime」にチェックをいれて本領発揮

←Priority(優先度)=「rtprio 99」ー10=89
←Interfaceは(hw:0)でもよい

←Period=64Frames 再生バッファサイズ。インターフェースによって、またサンプリングレートによって柔軟に変えること!
←再生専用 Playback Only

←Buffer=2Periods


←ステレオ再生



←レイテンシは一般的に10msec以内であれば問題ないと考えられている。






 【ECOH Audiofire4用のjack設定】

 安くてなかなか性能が良いAudiofire4だが、設定は甘めにしないと音切れに繋がるXRUNという現象がjackのログメッセージで生じる。ただし、Ardouの起動とかの場合はjackでの接続替えによるものだと推測され、Audiofireの責任ではないと思われるが、そのあたりはパソコンの性能ににもよるので、これにこだわらず柔軟にいろいろ試していただきたい。






















 要するに設定しては聴き、設定しては聴き、jackのメッセージログも確認しながら、の繰り返しの中で、安定性と音質が成立するポイントを探すしかない。


(5)Ardourの設定
 
 JackにはAudaciousも接続できるし、まだ未聴だがAqualangもそうできるらしい。
 Ardourはマスタリングなどに使うDAW(Digital Audio Workstation)ソフトであって、再生専用に使うのは勿体ないくらいだ。しかし、やはり音声エンジンの質は高く、レンジの広い隅々まで安定した音がする。
 ArdourはJackに接続する前提で作られており、Jackなしでは何も出来ないソフトである。ここではFirewireを鳴らすためにJackとセットで使うことにして、CDやファイルを再生するための、手順を述べる。リッピングするにせよいずれ必要な手順なので紹介しておきたい。
 ただしこれは本来音源としてCDやファイルのチェック用としての機能であるので、1曲づつしか聴けない。だから曲によってはいちいち席を立たなければならない事もあり面倒だが、それを補って余りある音の良さを持っている。最近はiPadでリモコン出来つようになり、席を立つなくても良くなったのでもう最強と言って良い。

 結論から言いますと、ardourのオーディオ再生向け設定は筆者もよく分からない。ただ、メジャー目盛りとか出来るだけ表示されるものを減らすというのが効果的だというのは、Nuendo4の経験からも言えるので、下図のように設定のチェックをはずす方向で設定しています。



(6)CD & ファイル再生のためのJackとArdourの操作

1.jackの起動


2.Ardourの起動

 jackの窓でRTが点滅し、%に数字が出始めたらardourを起動させる。
 ここでは「Open Session」タブで44_1_Playbackという既に設定済みの44.1KHzサンプリングレートのセッションをクリックして起動させる。
 はじめてのサンプリングレートの場合は、「New Session」タブで設定していく。jackとデバイスの設定がマッチしていれば、すぐにArdourが起動し始める。



3.Ardourのインポート画面からgvfsを表示させてCDを再生する。

 ①Ctrl+I(10.04~) を押すかまたはArdourのメニューでSession>Importを選択してインポート画面「Add existing audio」を表示させる。
 ②インポート画面で右クリックし、「Show Hidden Files」をクリックする。




 ③インポート画面に表示される「gvfs」をダブルクリックする。gvfs=Gnome(Ubuntuのデスクトップ)のヴァーチャル・ファイル・システム













4.ファイルの再生

①USBメモリなどファイルシステムをクリックすると、フォルダ名が表示されるのでダブルクリックして開く。


②表示される各トラックを「Play」ボタンで再生する。(ファイルコピーが不要ならチェックを外す。)



5.Ardourの終了
①Ctrl+Qを押す。
②支障なく再生できていれば、「Save and Quit」でログを残しておいた方が良いようです。トラブっていたり、その状態を引きずりたくなかったら「Just Quit」がベターです。



6.jackの終了
 Stop
ボタンを押し、Quitボタンを押して終了する。


5.軽量化・環境整備の取り組み
(1)環境整備


 今回も書いていて自分がいかにUbuntu/Linuxの事を知らないか、痛感しました。
 本来なら必要なものだけでのOS環境を作ったり、あるいは不要なものをもっと削除できるのでしょうが、基本的なシステムがよく分かっていないので、何をどこまで?と言う点で手が止まってしまいます。

 プロが作り込んだ清々しい環境が欲しい、と思うのは筆者だけではないでしょう。ただし、日本人やオーディオマニアは形のないものにお金を出さない傾向が非常に大です。
 自分で環境整備が出来なければ、お金を出してそれを買うべきだと思います。

(2)不要機能の削除・調整
 このあたりはキリが無いので、とりあえずメモから転載しておきます。

●Ubuntu Tweekの活用

●Bootup Manager インストール
 GUIでサービスの起動・停止の設定する場合は、bootup-manager(bum)などを使う
  sudo apt-get install bum

●ソフトウェアの削除・インストール
○元祖デスクトップ検索  mlocate →synapticから削除 
○不要なソフトウェアの削除  sudo apt-get remove --purge \

●フォントの表示を変更する(http://www.k5.dion.ne.jp/~r-f/sicklylife/memo/ubuntu1004/setting_and_install.html)

 * システム > 設定 > 外観の設定

 を実行し、フォント > 詳細で、設定を以下のどれかに変更する。
 ○ 『滑らかさの補正(スムージング)』をサブピクセルに、『線幅の補正(ヒンティング)』をなしにする。
 ○ 『滑らかさの補正(スムージング)』をグレースケールに、『線幅の補正(ヒンティング)』をなしにする。

 初期設定は『滑らかさの補正(スムージング)』がサブピクセル、『線幅の補正(ヒンティング)』は細身になっている。サブピクセルとグレースケールのどちらが良いかは分からないが、個人的にはグレースケールの方が何となく見やすいような気がする。(一旦ログアウトしないとデスクトップに設定が反映されない)

(3)ディストリビューションの限界


 (1)に書いたように通常のディストリビューションは取っつきやすいので普及のためには良いが、削り込みの限界がある。自分的なスキルからはディストリビューションが第一だが、プロが音楽再生用のディストリビューションを有料で配布するようなことも大いにありだと思います。
 今後の諸卿のご活躍をご期待申し上げます。

【メモ】handmade cable for 1394 Firewire

関連ページ 「MacBook Pro4.1で64bitトリプルブートの音楽再生専用機を作る」

トップページに戻る