SqueezeBoxを自作する(5)
NHK-FMのインタネット放送を受信中の画面です。こういう具合に Voyage MPD ではストリームのアドレスが分からないため聴取できない放送局でも、SqueezeBox なら聴くことができます。
SqueezeBoxはTuneIn という世界中のインタネットラジオを聴くためのサービスを利用して、120万を超える番組が聴けるようになっています。従って、かなり特殊な編成の放送局でも選局できます。
Linn の DS もここを使って、インタネットラジオを聴けるようにしているようです(このページを参照)。
もちろん TuneIn のサイトからブラウザを使って直接聴くことができるのですが、Windows環境では音が悪いです。という次第で、SqueezeBoxを自作し、PC、DDC以降をちゃんとしたもの使えば、音はLinn並となると思われますので、お勧めです。
インタネットラジオの選局方法ですが、毎回、radioメニューから捜し出すのは大変ですので、僕は民族音楽、中世ルネサンス音楽、クラシック音楽の専門の放送局を捜し出し、favaritesに登録し簡単に選べるようにしています。
選局と登録は全てブラウザからのGUIで行えますので、難しいところはありませんが、効率的に行うにはコツが必要です。以下、クラシック音楽の放送局を選ぶ場合のやり方を簡単に紹介します。
放送局の捜し方
方法 1
Radio -> Music -> クラシック -> 局 (25+)
メイジャーな放送局が次々と表示されますので、お好きなように選んで下さい。
方法 2
Radio -> Music -> クラシック -> クラシックを調べる
Early Music とコンテンポラリー(現代音楽)というメニューがあるのが立派ですね。あとは適当に選んで下さい。
方法 3
World -> 都市を探す -> ヨーロッパ -> ドイツ -> すべての局 -> ジャンル別 -> エスニック
これは一つの例です。この手で結構いろいろな局が捜せます。
あと、放送局名やストリームのURLが分かっていれば、メニューの「Search」や「Tune in URL」を使うという方法が使えます。
Favarites への登録
放送局を選局している場合は画面右の放送局名にカーソルを移動して、「M」ボタンが表示されるので、クリック。画面右に
が表示されるので、右上のハートマークか Save to Favorites をクリックすればいいです。
選局前に画面右で放送局の上にカーソルを移動し、ハートマークをクリックしてもOKです。
Favarites の編集
トップ画面でFavaritesにカーソルを移動するとペンの形をした編集マークが表示されるので、クリック。
あとはサルでも出来る(^^;;;カーソル移動で適当にやって下さい。
二つだけコツを解説すると、
- 放送局をフォルダに移動するのはクリックしてつまんで出来ます
- ×によって削除した直前のアイテムは一番下に残り、いつでも復活できます。これによりフォルダ間の移動ができます。
というところです。
編集した Favarites ファイルは/var/lib/squeezeboxserver/prefs/favorites.opmlに保存されています。裏技ですが、内容はXMLですから、直接、編集することもできます。XMLをご存じの方なら、簡単に出来ると思いますので、解説は省略します。
(PC_Audio) 2012/07/01
VortexBox の使い方(2) - v1.10 から v2.0 へのグレードアップ
僕の環境ではv2.0はインストールできないので、v1.10をインストールし、それをv2.0にグレードアップしました。 v2.0 は カーネル、alsa、MPD などが最新のものになっていて、DSD再生などに対応していますので、ちょっと手間はかかりますが、このレベルアップはやった方がいいです。ただし、メモリが1GB以上のマシンでないとFedoraのインストーラの制限よりレベルアップはできないようです。
本題に入る前の雑談。
Fedora というのはLinuxのディストリビューションの一つで、ここに情報があります。企業向けのディストリビューションであるレッドハットのオープン版です。Debianなどと比較して、特徴は「最新の技術を積極的に取り込む」(従って不安定)ということ。VortexBoxのv2.0がインストールでトラブるのもそのあたりが原因ですかね。
Voyage MPD と VortexBox を比較して、最大の相違点はこのベースになっているディストリビューションが違うことです(VoyageはDebian系列、VortexBoxはレッドハット系列)。OSの構成が多少異なりますので、もちろん音にも影響していると思いますが、オペレーショナルな面がかなり違いますので、要注意です。
本題に戻ります。
v1.10 から v2.0 へのグレードアップの英語情報はここにあります。
リンク先の通りやれば、問題なくグレードアップできますので、以下、簡単に補足しながら解説します。
VortexBoxのHowtoの「Upgrading and Installing VortexBox」には
- How To Upgrade from VB 1.10 to VB 2.0: Fast Method
- Fast Upgrade Problems and Fixes
- How To Upgrade from VB 1.10 to VB 2.0: Using The Command Line
- How To Upgrade from VB 1.10 to VB 2.0: Using Yum
というリンクがあり、どの方法を使えばいいのか迷うのですが、3番目と4番目のリンクはobsoleteな情報で使えません。一番上のリンクはそのことを説明した情報ですので、結局、v2.0のisoイメージからインストールできない場合、2番目の方法しかないということになります。
以下、その方法です。尚、操作はWindowsからssh(Putty)でおこなうのが楽だと思います。接続は、前回の記事に書きましたが、ホスト名(vortexbox.local)で行えます。詳しくは前回の記事とそのリンク先を参照して下さい。
v1.10を最新の状態にアップデート
yum clean all; yum --disablerepo=atrpms update
その後の全ての問い合わせには “y” と答える(ディフォルトは “N” なので要注意)。
yum というのは debianの apt-get/aptitude に相当するパッケージ管理システムです。
–disablerepo=atrpms というパラメータが重要で、これで atrpmsレポジトリを無効にします。
atrpms とは VortexBoxがメインに使っているレポジトリで、今年の3月にfedora14以前のライブラリを廃止してしまいました。実は直前に4つのリンクを2番目の方法しか使えなくなったと書きましたが、このライブラリ削除のとばっちりです。fedoraの「最新の技術を積極的に取り込む」という特徴が裏目にでたということになります。
preupgrade の新規ヴァージョンをインストール
yum --disablerepo=atrpms --enablerepo=updates-testing install preupgrade
updates-testing で最新版をインストールします。
preupgrade を起動し、fedora16 のパッケージをダウンロード
preupgrade-cli "Fedora 16 (Verne)"
vmlinuz と initrd.img というカーネルローダのコア部分と 787本のパッケージをダウンロードします。20~30分位時間がかかります。 リンク先の英文ではブートパーティションの容量不足でエラーになった時の対処方法が書かれていますが1.10から2.0のアップグレードでは、この問題は発生しないと思いますので、省略。
reboot と Fedora 16のインストール
正常終了したら、手動で reboot操作を行います。
rebootする前に本体にディスプレイを繋いでおいた方がよいか思います。理由は以下を読んで下さい。
reboot直後に
failed to read image
というgrubのエラーが出ますが、気にしないで、じっと数分間ガマン。ここであせってリセットボタンなど押すとせっかくダウンロードしたパッケージがオシャカとなり、直前からやり直すハメになりますので、ご注意。
その後、嵐のようにメッセージが大量に出力されたあと、Fedora 16のインストールが開始されます。インストールは30分~40分かかりますので、コヒーブレイクにするのがよいかと思います。
その後もう一回自動で再起動され、めでたくv2.0のVotexBoxが起動されます。
古いパッケージを Fedora 16に対応させる
yum distro-sync
問い合わせには全て “y” と答える。
不要なパッケージの削除
yum erase hal-libs kde* phonon* docbook* akonadi attica xorg*
GNOMEやKDEなどのGUIを使っている時は削除しないこと。
atrpms packages をインストール
yum --enablerepo=atrpms install mplayer faad2 mac faac ffmpeg
Samba と Cron services を有効にする
systemctl enable smb.service systemctl enable nmb.service systemctl enable crond.service
p.s. 前回の書き込みでv1.10の在り処のページをリンクしましたが、そのページにあるダウンロード先はリンクされていません。URLをコピーし入力する必要がありますのでご注意を。
(PC_Audio) 2012/06/28
VortexBox の使い方(1)
VortexBoxの本家のサイトのスナップショットです。
Newsに紹介されている SOtM sMS-1000 audiophile VortexBox というのは凄いですね。値段もなかなか(2.5Kドル~3Kドル) だけど、内容が素晴らしいと思いました(電源とかUSBインターフェースも高音質対応されているみたいです)。記事の computeraudiophile.com のリンク先は切れているので、こちらをご覧下さい。VortexBox というのはこういうハイエンド(?)の PC_Audio の世界で使われている Linuxのディストリビューションです。
VortexBoxとは何かというと、Fedoraベースにして、SqueezeBoxServer、CD ripper、プレーヤなどを一体化したフリーで使える音楽サーバ(ジュークボックス)です。
- ISOイメージで提供されているので、専用のパソコンに簡単にインストールできる。
- GUIなしの専用システムなので、音が良い。
- サーバ機能が豊富(Samba、DAAP(iTunes)、DLNA、Squeezebox(LogitechMediaServer)、MPDに対応)。
- ブラウザベースで全ての操作できるので、Linuxの知識なしでも、誰でも使える。
- プレーヤはalsa version 1.0.23 対応なので、USB 2.0のddcが使える。
- SqueezeBoxServer ベースなので操作が簡単。
という点が特長です。僕が感心したのはインストールしたパソコンの電源ボタンを押したら、綺麗にshutdownしたこと。「良くできているなぁ」と思いました。
音はとてもいいです。alsa対応しているプレーヤは hw:0:0 というビットパーフェクトの指定ができます(このプレーヤは実はMPDです。後で詳しく紹介します)。
CDを読み込んだら自動的にrippingするなんて機能もあるし、ネットワーク対応は十分な機能と操作性をもち、使いやすくできています。「Voyage MPDはLinuxの操作が分かりにくくてかなわん」という音楽ファンにはお勧めだと思います。
もうちょっと丁寧な特長の解説はこのページにあります(ブログ作者の Voyage MPD の記述についてはちょっと誤解があるようですが、VortexBox の特長についてはその通りだと思います)。
英語の情報の豊富さを見るとグローバルにはこちらやSqueezeBoxの方がオーディオファイルにポピュラーなのだろうなと思います。Voyage MPD がメイジャーというのは極東地域(主に日本)に限定された話ですね。
VortexBoxについての詳細は本家の情報を見てもらえばいいと思いますが(ここインストール方法と音楽ファイルの設定とここ使い方に情報があります)、日本語で書かれた情報のサイトを紹介します。
- CDをセットするだけでリッピング&共有可能に、音楽サーバーに特化したLinuxディストリビューション「VortexBox」 SOURCEFORGE.JPの記事です。概略を知るにはお勧めです。
- LINUXベースのMusicサーバ(Vortexbox)の覚書 技術的につっこんだ内容があり、参考になります。
- 『散歩ジャーナル』ブログ版。上記ページの全体の情報へのリンクです。内容のほとんどは本家の情報の日本語訳です。英語の嫌いな方はこちらをどうぞ。
これらの情報を読んでもらえば、VortexBox のインストールの仕方と使い方についてはお分かりになると思いますので、紹介は省略します。
また英文のサイトのWiki情報は VortexBox の使いこなしについてとても参考になります。Voyage MPD もこの位、充実した情報があれば、もっとファンが増えるのじゃないですかね。
ここでは雑談をいくつか。
ヴァージョンの選択
僕が試した範囲(atom機とceleronノートブック)では最新の2.0はインストールできませんでした。紹介した日本語のサイトでも同じようなことが書かれていますので、多分そういうものなのでしょう。
問題は本家のダウンロードのページからは古いヴァージョンをgetできないこと。
結局あっちこっち捜して、ここから1.10がダウンロード出来たので、それを使いました。
まあ、最新版が不安定なのは仕方がないとして、何で古い版をとっぱらっちゃったのですかね。
フォーラムを読むとソースの公開の仕方で「GPLからみておかしい」なんて議論もされているし、ライブラリの運営の仕方に問題ありみたいですね。
ただし、1.10から2.0へのアップグレードはここの情報で簡単にできます。要注意なのはメモリが512MB以下だとアップグレードできないこと。したがってalixマシンでは使えません(そもそもi586マシンはサポート対象外ですが)。
インストール
時間はかかりますが、操作は地域の指定とrootのパスワードの指定だけなので簡単です。
問題はディスク丸ごと使うように指定されていて一つのディスク内をマルチブートさせることが不可能なこと(Advanced Installというメニューはあるがこれでも出来ない)。
初期設定
すべてブラウザベースで出来ますので、簡単です。ブラウザとの接続はvotexboxというホスト名で行います。
というか、次項の「VortexPlayer の登録」を除き、普通の使い方なら設定は不要です。
また、SSHを使ったログインも可能で、Avahiを使った方法(Voyage 0.8と同じ)ですので、Windowsからホスト名(cvortexbox.local)で呼び出すことができます(Voyage MPD 0.8 を Windows からホスト名でネットワーク接続(Avahi/DHCP/iTunes)に解説があります)。
もちろん、ipアドレスでダイレクトにアクセスすることも出来ます。
このあたりは Voyage MPD 0.8 のAvahiとlighttpdを使ったやり方とよく似ています。
ただ、ブラウザからの操作できる範囲は VortexBox の方がはるかに大きく、また Voyage MPD のように/etc/mpd.conf をむき出しに見せるということはありませんので、はるかに良くできています。SqueezeBoxServer をブラウザから操作する方法と連携して使えますので、ブラウザさえあれば殆どの操作は可能です。操作性もとてもいいです。
これと比較すると、Voyage MPD の現状での対応は中途半端だなぁと思いました。
VortexPlayer の登録
VortexBox をインストールしたパソコンで音を出したいのならこれは必須です。やり方はここにありますので紹介は省略します。
操作方法
ブラウザからの操作はSqueezeServerと同じです。日本語表示も問題なしで、使いやすいです。
また、SqueezeBoxと同様に MPoD/MPaD を使ったリモコン操作も可能なようです。
インタネットラジオ
これは他の方法(Voyage MPDのインタネットラジオとか SqueezeBox + SqueezeSlave など)と比較して、音がいいです。また、SqueezeBox + SqueezeSlave の方法だとノイズが乗って聴けない局(具体的には例えはBBCのクラシック放送)も問題なく再生できます。
topで動作している時の挙動を観察するとプロセスの動き方がかなり違うようですね。
デコードするプロセスを独立させて動かし、ノイズを発生しないようにしているようです。
音
VortexPlayerはSqueezeSlaveと異なり、それ自身がプレーヤとして動作するわけではありません。MPDをプレーヤとして使っています。VortexPlayerのソースを展開し、AUTHORを読むと分かりますが、VortexPlayerの作者とMPDのメンテナンスの責任者は同じ人(Max Kellermann さん)です。従って、VortexPlayerはMPDを効率よく使い音を出すという仕掛けになっているようです。
鳴る音は Voyage MPD と殆ど差は無いと思いますが、こっちの方がいいようなが気がするのは作者が同じと知った思い込みですかね。
2.0 へのヴァージョンアップ
「ヴァージョンの選択」に書いたように、僕の環境では 1.10 しかインストールできなかったのですが、これを 2.0 にアップグレードすることができます。
方法はこのページにあります。とても時間(全部で2時間位)がかかりますが、これはお勧めです。
1.10 と 2.0 の違いは以下の通りです。
VortexBox 2.0 [vortexbox.localdomain ~]# /usr/bin/mpd -V mpd (MPD: Music Player Daemon) 0.16.1 [vortexbox.localdomain ~]# cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.23. [vortexbox.localdomain ~]# uname -a Linux vortexbox.localdomain 2.6.35.14-95.fc14.i686.PAE #1 SMP Tue Sep 6 21:06:44 EDT 2011 i686 i686 i386 GNU/Linux VortexBox 2.0 [vortexbox.localdomain ~]# /usr/bin/mpd -V mpd (MPD: Music Player Daemon) 0.17~git Supported decoders: [dsdiff] dff dsf [vortexbox.localdomain ~]# cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.24. [vortexbox.localdomain ~]# uname -a Linux vortexbox.localdomain 3.3.7-1.fc16.i686.PAE #1 SMP Tue May 22 14:07:22 UTC 2012 i686 i686 i386 GNU/Linux
凄いのは VortexBox 2.0 の MPDは 最新の0.17git であること。DoPによるDSDネイティブ再生が可能です。
DSD再生に対応しているLinuxシステムを作る一番簡単な方法はVortexBox 2.0 を使うことになりますね。
という次第で「Linuxパソコンでオーディオをやるのに Voyage MPD と VortexBox のどっちがいいか ?」と聞かれたら、
- 音が良い
- インストールと操作が簡単
- インタネットラジオがいろいろ聴ける
- CDのリッピングが簡単にできる
- DSD再生ができる
という理由から、こちらをお勧めします。
続きはそのうち。
(PC_Audio) 2012/06/23
SqueezeBoxを自作する(4)
SqueezeBoxをブラウザから接続した時に最初に表示される画面です。
「My Music」というメニューでサーバ内の音楽ファイルが選択できます。
「Radio」というメニューでインタネットラジオが選局できます。
それぞれメニューをクリックすると上の画面のサブメニューが表示され簡単に目的のファイルやラジオ局を選べるという仕組みになっています。
また favorites を下の画面のようにお好みの放送局の選択が簡単にできるように構成することができます。
それでは、上記画面にたどりつくまでのサーバとクライアントの起動方法と初期設定の仕方を紹介します。
Windows版の Logitech Media Server の起動と停止
メイン(ステータス)のタブでシステム立ち上げ時に自動起動する指定ができるようになっていますが、僕の環境(Windows 7)ではこれを指定すると巧く動きません(クライアントを認識できなくなる)。多分、管理者権限の問題なので、XPなんかだと問題ないのかもしれません。
しかたがないので、アイコンをクリック起動しています。
Linux版のLogitech Media Server の起動と停止
インストールするとLinuxを立ち上げると起動し、終了させると停止するように設定されますので、特に操作は不要です。
/etc/init.d/logitechmediaserver が起動と停止のためのスクリプトです。
このスクリプトをいじれば、自動起動させないことも可能です。
squeezeslave の起動と停止
コンパイルしたディレクトリの bin/squeezeslave がプログラムです。
–help で起動オプションを表示できます。長くなりますが、これが基本なので、引用しておきます。
~# ./squeezeslave/bin/squeezeslave --help squeezeslave 1.2-325 May 17 2012 22:22:14 compile flags: linux portaudio:1608 debug signals interactive daemon nofpu renice buffer sizes: decoder 2097152 output 2822400 bytes Copyright 2004-2012 Richard Titmuss, Duane Paddock. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. squeezeslave [options] [] The Squeezebox Server address defaults to 127.0.0.1. Options: -h, --help Prints this message. -a, Sets the amplitude of a high-frequency tone --predelay_amplitude produced during the predelay (see --predelay). The frequency is set at the source's sampling rate/2 and the amplitude is in absolute value. For 16-bit sources, the max is 32767, but values below 10 are likely to work. The goal is to produce an inaudible signal that will cause DACs to wake-up and lock before actual samples are played out. If the DAC locks using only silence, do not use this option (it will default to 0). -k, --keepalive Controls how frequently squeezeslave sends a alive signal to Squeezebox Server. 6.5.x servers need this to avoid dropping the player's connection. By default, the implementation chooses the right value: 10s for a >=6.5.x server and 0s for a <6.5.x server, which means no keepalive. -N, --renice Increase process priority, root access required. -l, --lcd Enable LCDd (lcdproc) text display. Requires LCDd running on local host. -C, --lcdc Enable old LCDd (lcdproc<0.5.4) text display. -i, --lirc Enable lirc remote control support. Requires lirc running on local host. -c, --lircrc Location of lirc client configuration file. Default: ~/.lircrc -D, --display Enable slimp3 style text display and keyboard input. Keys: 0-9: 0-9 Insert or I Add Cursor Keys Arrows >,< Fwd,Rew Home or H Home End or N Now Playing Space or P Pause Enter Play Q Quit R Repeat S Shuffle ? Search b Browse F Favourites % Size Z Sleep +,- Vol up,down -w, --width Set the display width to characters If using LCDd, width is detected. -F, --discovery Discover server IP automatically. -M, --daemonize Run squeezeslave as a daemon. Messages written to specified file. Not supported with lirc and display modes. -L, --list List available audio devices and exit. -I, --findservers List servers found via UDP discovery and exit. -m, --mac Sets the mac address for this instance. Use the colon-separated notation. The default is 00:00:00:00:00:01. Squeezebox Server uses this value to distinguish multiple instances, allowing per-player settings. -n, --name " " Sets the output device by name. The output device names can be found with -L. -t, Match device name specified with -n/--name to only --audiotype " " this portaudio hostapi name, otherwise ignored. -y, --latency Modify the default latency for the audio device. Useful if you experience drop outs during playback. Values between 80-200 ms are recommended. -o, --output Sets the output device id. The output device id can be found with -L. -P, --port Sets the Squeezebox Server port number. The default port is 3483. -p, --predelay Sets a delay before any playback is started. This is useful if the DAC used for output is slow to wake-up/lock, causing the first few samples to be dropped. -R, --retry Causes the program to retry connecting to Squeezebox Server until it succeeds or is stopped using SIGTERM or keyboard entry. If the connection to Squeezebox Server is lost, the program will poll it until it restarts. --retry enables retry with a 5 second delay between attempts. -r , --intretry For a different retry interval use -r and the desired interval in seconds. (ie. -r10) Retry interval range is 1-120 seconds. -V, --version Prints the squeezeslave version. -v, --volume Enables/disables volume changes done by Squeezebox Server during its operation, such as when changing the volume through the web interface or when applying replay gain. Defaults to sw. sw: volume changes performed in software. off: volume changes ignored. -Y, --debuglog Redirect debug output from stderr to . -d, --debug Turns on debug tracing for the specified level. The option can be used multiple times to enable multiple levels. Available levels: all slimproto slimaudio slimaudio_buffer slimaudio_buffer_v slimaudio_decoder slimaudio_decoder_r slimaudio_decoder_v slimaudio_http slimaudio_http_v slimaudio_output slimaudio_output_v
ディフォルトではlocal接続(127.0.0.1)となりますので、Windowsサーバと繋ぐ場合はホストのipアドレスを指定する必要があります。 サーバを起動した後、squeezeslveを起動します。順番を逆にすると接続するホストが無いというエラーになります。
バックグラウンドで動作させるためには & をつける必要があります。
システム立ち上げ時に自動起動させるには /etc/rc.local に
squeezeslaveの展開ディレクトリ/bin/squeezeslave ホストのipアドレス &
という行を追加すればいいです(exit 0 の前に)。
mysqueezebox.com へのユーザ登録
サーバを使いはじめる前に行っておく必要があります。インタネットラジオを聴くためには登録が必須です。
mysqueezebox.comのトップ画面から登録できます。
Windows版のサーバであればmysqueezebox.comのトップ画面には Account タブのリンクからいけます。詳しくはSqueezeBoxを自作する(2)を参照して下さい。
また、Linux版のサーバでも最初に起動した時の画面に登録用のリンクが表示されます。下の画面を参照して下さい。
サーバ操作と初期設定
SqueezeBoxを自作する(1)に書いたように、サーバ操作はブラウザを使って行います。
接続方法はサーバが Windowsで動いているのであれば、サーバのコントロールパネルから行うのが簡単です。
Advancedタブの Web Remote Control でブラウザが起動されます。
サーバをLinuxに置いた場合は、ブラウザのアクセス先を入力するボックスにサーバの ipアドレス:9000 と入力します(9000はサーバのポート番号)。
最初のアクセス時にはユーザ登録したメールアドレスとパスワードを要求する画面が表示されます 。
ここで登録したメールアドレスとパスワードを入力して Next ボタンを押す。
次に音楽ファイルを置いているディレクトリを指定する画面が表示されます。
Linux版のサーバであれば、リンクを張っておけば、nasも指定できます。簡単に他のサーバ(Voyage MPDなど)とファイルを共用できますので、とても便利です(画面はその例です)。
Windows版のサーバの場合はサーバのコントロールパネルから同様な操作ができます。
その後、プレイリストの置くディレクトリを指定する画面が表示されます。同じように指定すればいいでしょう。最後に指定した内容確認する画面が表示されて、Finish ボタンを押せば、初期設定は完了です。最初の画面に変わり、音楽の再生が可能となります。
(PC_Audio) 2012/06/15
SqueezeBoxを自作する(3)
squeezeslave と Logitech Media Server のインストールためのLinuxパソコンを用意する必要があります。同じハードに両方インストールできますので1台でOKです。Windows版のサーバを使う場合にはLogitech Media Server のインストールは不要ですが、squeezeslave のために必要になります(Windows版の squeezeslave を使うという手はあるが、試してはいませんが音が悪くなると思われるので却下)。
ハード性能は要求されませんので、旧型のノートパソコンなどで十分です。
使用するLinuxのディストリビューションですが、僕は Voyage 0.8(MPDのないもの) を使いました。Voyage のダウンロードサイトでISOを選び、下の方の「voyage-0.8.0.iso」というリンクをクリックすれば、isoイメージをダウンロードできます(インストール仕方は釈迦説法なので、省略)。
Linuxパソコンの設定
以下は僕の設定した内容。まず基本的なもの。
remountrw apt-get update apt-get upgrade apt-get install emacs dpkg-reconfigure tzdata passwd emacs .bashrc remountrw apt-get install locales dpkg-reconfigure locales mkdir /music emacs /etc/fstab //999.999.999.999/CD /music cifs username=hoge,password=,uid=root,file_mode=0666,dir_mode=0766,iocharset=utf8 0 0 #/musicへのネットワークのリンク
Voyage 0.8 はalsaが入っていないのでインストールする必要があります。
apt-get install alsa-base apt-get install alsa-tools apt-get install alsa-tools-gui apt-get install alsa-utils apt-get install alsamixergui
開発環境のインストール。
apt-get install aptitude wget apt-get install git binutils gcc make subversion autoconf automake autotools-dev libtool pkg-config apt-get install build-essential libncurses5-dev libncursesw5-dev linux-headers-`uname -r` lib2.0-dev apt-get install libasound2-dev apt-get install liblircclient-dev
Logitech Media Server(Linux-Debian版)のインストール方法
Windows版をインストールした場合は不要です。
インストール方法に関する情報はここにあります。
debian版のパッケージを apt-get でインストールします。
やり方は簡単で、/etc/apt/sources.list に debian.slimdevices.com を追加。
deb http://debian.slimdevices.com unstable main
あとはアップデートしてインストールするだけ。
apt-get update apt-get install logitechmediaserver
途中で verification なしでインストールするか
Install these packages without verification [y/N]?
と聞いてきますので、y と応答える。
これでサーバのインストールは完了です。
ps aux
で
106 8626 0.0 0.2 2672 1116 ? S 19:57 0:00 /bin/bash /usr/sbin/squeezeboxserver_safe /usr/sbin/ 106 8628 2.8 12.4 77356 63760 ? S 19:57 0:04 /usr/bin/perl /usr/sbin/squeezeboxserver --prefsdir
という具合にサーバが立ち上がっていれば、OKです。
squeezeslave のインストール方法
SqueezeSlave は Squeezebox Server(Logitech Media Server) または SqueezeNetwork(MySqueezeBox.com) からの音楽データを再生するための音楽プレーヤです。
マルチプラットフォームでLinux版、Windows版、MAC OSX版などがあります。 GUIがなく、コマンドラインだけで動くという点がSqueezePlayとの大きな相違点です。これは良い音で音楽を鳴らすには利点です。コンパクトなLinuxシステムで動かせば、Voyage MPD などと同じ条件となりますね。
僕は SheevaPlug を使い、ARM用のDebian版で動かしています。これでハード、OSの構成はSqueezeBoxと同じとなりますから「SqueezeBoxを自作する」ことになります(サーバはWindowsのメインマシンで稼働)。
SqueezeSlave に関する情報(インストール方法を含む)はここにあります。 SqueezeSlave の最新版は2012年2月にリリースされた、1.2-311となります。リリースノートはこちら。
インストール方法は簡単でmake一発で出来ます(intelとarmで使うmakefileが変わります)。
svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/trunk/squeezeslave cd squeezeslave/ # for intel make -f makefile.linux26-alsa-display realclean make -f makefile.linux26-alsa-display # for armel make -f makefile.linux26-armel-alsa-display realclean make -f makefile.linux26-armel-alsa-display
これで bin/ に squeezeslave が作られます。
自作したSqueezeBoxの使い方は次回。
p.s. Voyage MPD が 0.85 になっていますね。カーネルが 3.2.17、MPD が 0.16.7 になった以外は大きな変更はないみたいだから、急いでレベルアップする必要はないですかね。
(PC_Audio) 2012/06/08
天皇とパソコン
今日の毎日新聞、「S(ide)ストーリー」(毎日のこの記事は徹底した内部取材による興味深いものが多いので、愛読しています)の「『象徴天皇』像を求めて」という記事から
「式典や行事に述べる『お言葉』は、各省庁の担当者があらかじめ作った原案がある場合が多いが、原形をとどめないくらい書き直すという。昨年11月に陛下は気管支肺炎で東京大病院に入院した。この間は皇太子さまが陛下の名代を努めたが、山梨県の式典で皇太子さまのが読む『お言葉』を、病室でパソコンに打ち込んだ。」
驚きましたね。驚天動地という位。いくら「開かれた皇室」とはいえ、78歳の天皇がパソコンを使っていたとは。知らなかったなぁ。
文脈からみて「パソコンを打ち込んだ」の主語は天皇だと読めるが、ほんとうだろうか。
当然、毎日の記者が天皇の病室に入れたとは考えられないので、宮内庁関係者を取材した情報によるのだろうけど。まあ、こんなことでデタラメな情報を流してもしかたがないだろうから、多分本当なのでしょうね。
しかし、訂正された原稿はEメールで皇太子に送られたのだろうか。東大病院のネットワークセキュリティはどうなっているのだろうか。天皇が使ったパソコンはMACなのかWindowsなのか。などなど謎はどんどん膨らむばかり。是非、毎日新聞にはそのへんの追加取材をお願いしたいですね(^^;;;。
(others) 2012/06/03
SqueezeBoxを自作する(2)
さて、本題の「SqueezeBoxを自作する」方法の説明に入ります。
やり方は二つあって
- Logitech Media Server + squeezeslave を使う
- vortexbox を使う
です。「vortexbox を使う」については、別の投稿で書き込むつもりなので、ここでは一番目の「Logitech Media Server + squeezeslave を使う」について紹介します。
SqueezeBoxを自作する(1)の「SqueezeBox のネットワーク構成」ダイアグラムで説明すると、SlimServerとして Logitech Media Server を使い、JIVEの代わりに squeezeslave を使い、squeezeslave をインストールするパソコンが SqueezeBox になるということになります。
このためコンソールモードでLinuxが動くパソコンが必要です。音を良くするためには省電力で低騒音の機種がお勧めです。ハードウェア性能はあまり要求されませんので、性能的には古くなったノートパソコンなどで十分です。
僕は実験用にはceleronの旧型ノートパソコンを使い、普段はメインのWindows機にサーバを置き、squeezeslave を SheevaPlugにインストールし、インタネットラジオとして使っています。
Logitech Media Server とは
現時点で最新版の SqueezeBox 対応のサーバです。
「SqueezeBoxを自作する(1)」に書いたように、SqueezeBoxのネットワーク接続の方法はダイレクトにSqueezeNetwork(MySqueezeBox.com)に接続するスタンドアロンモードとサーバを経由する方法がありますが、サーバ方式の方が使い勝手がいいので、こちらをお勧めします。
Logitech Media Server には Linux版、Mac OSX版、Windows版などがあります。僕はWindows版を使っています。理由はWindows版だとブラウザの操作で日本語が文字化けしないこととLinux版だとNHK-FMなどの一部のインタネットラジオ局が選局できないからです。理由はよく分かりません(^^;;;。
ただ、Linux版を使った方がサーバとプレーヤ(squeezeslave)が同じ箱に入れることがきるので、運用はスマートです。
Logitech Media Server についてはここに情報があります。
Logitech Media Server(Windows版)のインストール方法
これは通常のWindowsアプリのインストールと同じです。
ダウンロード先についてはここ(Nightly Builds)に情報があります。
7.8の場合、上記のページのリンク先にはなくて、リンク先ページの「Other Versions」というリンクをクリックすると、こんな画面が表示されます。
ここで「Version 7.8」をクリックすると、この画面に変わりますので、
「Logitech Media Server: Windows Executable Installer」というものをダウンロードすればいいです。
上の画面のページへはここをクリックすれば直接いけます。
あとはダウンロードしたLogitechMediaServer-7.8.0-33950.exeを実行すれば、インストールされます。
インストール完了後、表示されるコントロール画面から Logitech社の MySqueezeBox.com にユーザ登録しておく必要があります。
Accountタブを開き、I need to create mysqueezebox.com account というリンクをクリック。登録して下さい。
mysqueezebox.com から登録完了(Activation)のメールが来たら、アクティベートして、上記画面にメールアドレスとパスワードを入力すれば完了です。
以下 Linuxの話になるので、次回。
(PC_Audio) 2012/05/31
SqueezeBoxを自作する(1)
画面はインタネットラジオを聴いている時の SqueezeBoxServer のスナップショットです。FireFoxの画面そのままです。SqueezeBox の look&feelはこんな感じです。
SqueezeBox というのは米国の Logitech社のネットワーク音楽プレーヤ製品のブランド名です。
掲示板でギャップレス再生のやりとりをしていて、yanさんから「SqueezeBoxのソフトはfreeで公開されているから、SheevaPlugにインストールすれば、ハードのアーキテチュアはほぼ同じなので、SqueezeBoxを自作できるよ」とアドバイスされ興味をもちました。
いろいろやってみて、この方法はインタネットラジオを聴くには最適と分かりました。Voyage MPDで聴くより多くの局が自由に選局できるし、音も遜色はないです。
という次第で何回かに分けて SqueezeBoxの自作方法と操作方法を解説したいと思います。
本題に入る前に SqueezeBox とは何か。
SqueezeBox の歴史
SqueezeBoxとは何かについてはここに丁寧な解説があります。
SqueezeBox は2001年に Slim Devices社がネットワーク対応の mp3 player として製品化したものがはじまりです。
network music player としての機能を持つようになったのは、2003年の第2世代以降の製品からです。internet radio や Wi-Fi/Ethernetにより、家庭内LANで digital audio stream を再生できる製品となりました(MPDの最初の版が2004年ですから、こちらの方が早いですね)。
その後、販売元は Slim Devices社を買収した Logitech社に変わり、Pandora, Slacker, Napster, SomaFM, Mediafly, Live365, Rhapsody, Last.fm, Spotify and Sirius というような人気のある音楽配信サービスにも対応するようになりました。
SqueezeBox は直接 SqueezeNetwork(MySqueezebox.com)と繋がるスタンドアロンモードか、家庭内のPCにインストールされた Logitech Media Serverに接続され network-attached storage devices としてか のどちらかで使用されます。
MySqueezebox.com と Logitech Media Serverとの違いについてはこちらを参照。要するに MySqueezebox.com はクラウドコンピューティングのようなものだから、ソフトのインストールやメンテナンス不要で楽だけど、PC内の音楽データの再生では自由度に欠ける(mp3.comを使って可能ではあるが)ということです。
SqueezeBox の H/W
最新の SqueezeBoxTouch の仕様です。
Display : 4.3" color LCD capacitive touchscreen, 24bpp, 480x272 landscape CPU : Freescale i.MX35 533 MHz ARM11 Memory : 128MB 32-bit bus DDR2 ROM : 128MB NAND flash Network : True 100Mbps throughput, 802.11g DAC : AKM4420, 44.1k, 48k & 96k Power : 5V DC, 3A OS : SqueezeOS 7.7.0 (Build r9550)
このページの情報によれば、128MB NAND flash がシステムの格納場所のようです。随分コンパクトですね。OSはARM用のLinuxをベースだと思います。
音楽用のファイルは外付けの SD Cardか USBディスクに置くことができるようです。
SqueezeBoxTouchの外観です。出典はSqueezebox Wiki。
以下は Squeeze Wiki のSqueezeOS Architecture というページからの抜粋です。
SqueezeBox のネットワーク構成
SqueezeOS(A hardware platform or PC emulator running the SqueezePlay application software)のダイアグラムは以下の通りです(出典はSqueezebox Wiki)。
JIVEというのは SqueezePlayと改名されたクライアント本体。
Squeezebox/Transporter とはクライアントデバイスのハードウェアの実態。
SlimServerとはサーバ本体。最新版は Logitech Media Server という名前に変わっています。家庭内LAN内の適当なパソコンにインストールして使う。
SqueezeNetworkとは、Logitech社が運用するSqueezebox用の24H対応のネットワークサービス。
ダイアグラムの上段がサーバを家庭内のPCに置いた構成、下段がスタンドアロンモードで直接Logitech社のネットワークサービスに接続する構成。
違いは SlimServer があるかないかだけで、互換性を保ちながら二つの構成を可能にしています。
SqueezePlay(JIVE)の構成とライセンス
これも出典は Squeezebox Wiki です。 基本的に SqueezeBox関連のソフトウェアは全てソースコードが公開され、自由に使えるライセンスとなっています。
図の通りで、LibraryとAppletsを組み合わせた構成をとり、LUAという言語を使い開発されています。
この結果、Windows、OS X、Linux など様々なOSで動作させることが可能となっています。
LUAはゲームなどの開発に使われるマルチプラットフォームのスクリプト言語で、詳細はここを参照。
SqueezeBox の操作方法
以下の三つの方法で操作可能です。
- ブラウザを使う
- SqueezeBox本体のタッチパネルから操作する
- リモコン、iPad、iPodなどの外部機器からリモートで操作する
リモート操作の詳細については、ここに情報があります。
「SqueezeBoxを自作する」ためには2番目、3番目の方法はとれませんので、ブラウザを使うという方法で操作することになります。
以下、次回。
(PC_Audio) 2012/05/19
sacd ripping(2)
前回の書き込みの後、asoyajiさんから「ISOファイルでPS3-PCのやりとり行い、PC側でdiff変換した方がいいよ」というアドバイスを頂戴しました。
試してみましたが、素晴らしい。お勧めです。
詳細はアドバイスとそのリプライの書き込みのリンク先をご覧いただければ分かりますが、あっちこっち情報が分散していて、情報が古くなっていたり、不足している部分や間違っている部分もあるので、整理してまとめておきます。asoyajiさんに大感謝です。
ISOファイルとは
まず、ISOファイルって何という話ですが、このサイトにアクセスしてくる方には釈迦に説法だと思いますので、解説は省略します。ここに解説があります。要するに市販のCDやDVDに書き込まれているデータフォーマットです。従って、SACDのISOファイルとはSACDに格納されているデータそのものを抜き出したものということになります。
ISOファイルはCD/DVD/SACDプレーヤが読み込むためのフォーマットですので、そのままではパソコンでは処理できません(正確にいうと、ファイルシステムの対応次第なので、最新の OS 例えば Windows 7などでは読めます)。CDからrippingを行う場合、EACなどの専用のソフトを使いますが、これはCDに書き込まれているISOフォーマットを読み出しwaveフォーマットに変換しているから、rippingしたデータはパソコンで処理できるようになるわけです。
DVD/SACDの場合、事情はもうちょっと複雑になってコピープロテクトがかかっていますので、これをデコードする必要があります。PS3のripping処理はこのデコード処理を行い、プロテクトを解除した内容をdiff、dsf、isoなどのファイルにコンバートしてくれるわけです。
ここまでが話の前段。
次に、SACDからどうやってプロテクトを解除したISOファイルを取り出し、PC側でどう取り扱うかという話に移ります。
SACD ISOファイルの抽出方法
sacd_daemon.pkg と sacd-extract を使い、PS3でコピープロテクト解除し、ダイレクトにISOファイルをパソコンに持ってくる方法がお勧めです。Windows側がntfsであれば、ISOファイルがfat32の最大サイズである4GBを超えても分割されることはないし、USBデバイスの取り外しやファイルのコピーなどが不要となりますので、とてもスマートにやりとりできます。
やり方は sacd_daemon.pkgを PS3に、sacd-extractを PCにインストールし、PC側から sacd-extract.exe をipアドレスを指定して起動すればいいです。ISOファイルはカレントディレクトリに保存されます。
sacd_daemon.pkgと sacd-extractのインストール方法と使い方はasoyajiさんのサイトに丁寧な解説があります。ここを参照して下さい。
注意点は sacd_daemon.pkgは暗証キー(dcas_3sp)付きでrar圧縮されているため、解凍には対応したソフトが必要なこと。Windowsであれば Alzipか 7-zipで解凍できるようです。詳しくはこのあたりを参照。
sacd_daemon.pkg はここ(直リンク)、sacd-extractはここにあったものを使いました。
sacd-extract の使い方は –help で表示されます。
Usage: C:\MySoft\scarletbook\sacd_extract_0.3.6_WIN32\sacd_extract.exe [options] [outfile] -2, --2ch-tracks : Export two channel tracks (default) -m, --mch-tracks : Export multi-channel tracks -e, --output-dsdiff-em : output as Philips DSDIFF (Edit Master) file -p, --output-dsdiff : output as Philips DSDIFF file -s, --output-dsf : output as Sony DSF file -I, --output-iso : output as RAW ISO -c, --convert-dst : convert DST to DSD -C, --export-cue : Export a CUE Sheet -i, --input[=FILE] : set source and determine if "iso" image, device or server (ex. -i192.168.1.10:2002) -P, --print : display disc and track information Help options: -?, --help : Show this help message --usage : Display brief usage message
ということなので、Scarletbook(後述)といっしょですね。多分ソースコードを共用しているのでしょう。「-i」オプションでipアドレスを指定して、ISOファイルを取り出すということです。
このページに sacd-extractの仕様が解説されています。sacdがどういう具合にコピープロテクトされているかの記述(Pit Signal Processing)がありますが、とても興味深いです。
SACD ISOファイルの処理方法
Windows環境でfoobar2000を使えば、rippingした SACD ISOファイルを直接再生できます。解説はasoyajiさんのサイトにありますので、そちらを参照して下さい。
「俺は Voyage MPD だ。diffなりdsfじゃなきゃダメだ」という方(僕もです)のためにはScarletbookというソフトがあります。Scarlet Book というのはSACDの規格書の通称のことです。随分、大胆なプログラム名ですね。
このソフトはISOファイルからdiffなりdsfファイルを抽出してくれます。
ダウンロード方法とインストールの仕方についてはここに情報があります。
ダウンロード先はこちら(リンク先のダウンロードリンクと同じですが、直リンクですので、そのままダウンロードできます)。ここからもダウンロードできるようです。リンク先を信頼するかどうかは自己責任でお願いします。僕は直リンクのアーカイブで処理しました。
ダウンロードしたrarファイルは普通に解凍できます。リンク先にあるようにWindows7の場合、管理者権限でモジュールのインストールをする必要があります。このインストール方法ですが
regsvr32 展開フォルダ/scarletbook/DecoderComp.dll
となります(リンク先の記述は間違っています。タイプミスでしょう)。
これでscarletbookは使えるようになります。
使い方は、asoyajiさんのサイトに丁寧な解説があります。ここを参照して下さい。
要するに 「-i」の直後にファイル名を指定。「-m」でマルチチャネルを指定。「-c」でdstへのコンバートを指定。ということです。変換されたdiff/dsfファイルはカレントディレクトリにフォールダー名を付けて保存されます。
SACD ISOファイルの保存方法
ディスク容量が厳しい方は asoyajiさんのサイトに書かれているようにDVDに保存するのがお勧めだと思います。
ここ(SACD-EXTRACTのwiki)にACDRCompatiblePlayersのリストがあります。Confirmed to play のプレーヤを使えば、バックアップしたDVDを使って、再生ができるようですね。
p.s. しかし、読み直してみたらリンク先が14個。「人の褌で相撲をとる」という書き込みですね。まあ、情報を整理して、分かりやすくした(かな ?) ということで大目にみてやって下さい。
(PC_Audio) 2012/05/11
MPD on SheevaPlug(3)
前回紹介した方法はコンパイル済のバイナリをインストーラー(README-PLUG-UPDATE)を使って入れ換えるというやり方をしていますが、もちろんカーネルのソースからビルドすることもできます。こちらの方が、コンパイルに時間はかかりますが(6時間位^^;;;)、より細かくカーネルの構成を設定できます。参考にしたサイトは゜こちら。
以下、その方法です(カーネルのヴァージョンは2.6.38.8)。
コンパイル環境のセットアップ
apt-get install make gcc libc6-dev lzma bzip2 libncurses5-dev
ソースとパッチのダウンロード
cd /usr/local/src/ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.8.tar.bz2 wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/source/0002-Driver-for-Marvell-Libertas-8688-SDIO-micro-AP-suppo-2.6.37-v2.patch wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/source/0003-Initial-defconfig.patch wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/source/mvsdio-1-2.6.30.patch wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/source/mvsdio-2.patch tar jxf linux-2.6.38.8.tar.bz2
パッチをかける
cd linux-2.6.38.8/ patch -p1 <../0002-Driver-for-Marvell-Libertas-8688-SDIO-micro-AP-suppo-2.6.37-v2.patch patch -p1 <../0003-Initial-defconfig.patch patch -p1 <../mvsdio-1-2.6.30.patch patch -p1 <../mvsdio-2.patch
コンフィグを作成
wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/sheeva-2.6.38.8.config mv sheeva-2.6.38.8.config .config make menuconfig
メークとモジュールインストール
make make uImage make modules_install cp arch/arm/boot/uImage /boot/uImage-2.6.38.8
以下は前回と同じ
cp ./.config /boot/config-2.6.38.8 mkinitramfs -o ./initrd 2.6.38.8 mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "2.6.38.8 ramdisk" -d ./initrd /boot/uInitrd-2.6.38.8 cd /boot mv uImage{,-2.6.32-5-kirkwood} mv uInitrd{,-2.6.32-5-kirkwood} ln -s uImage-2.6.38.8 uImage ln -s uInitrd-2.6.38.8 uInitrd
この方法はLinuxのヴァージョンを指定している部分を変えれば、融通がきくので、RTパッチ(ここにあります)とsheevaパッチのヴァージョンを合わせれば(もちろんkernelのソースも)、rt化できるはずです。
写真はSheevaPlugの外箱です。ケーキでも入っていそうな感じで、無愛想な中身に似合わず、なかなかしゃれた箱ですね。
(PC_Audio) 2012/05/07
塔里木(タリム)秘教考 中野美代子
ミステリ小説に仕立て上げられていますが、中国(中華人民共和国)の核実験と少数民族政策を告発する書です。
「核実験と少数民族政策」と書きましたが、具体的には「1960年代から1990年代まで中国新疆ウイグル自治区での40回以上の核実験とそれによって多くのウイグル人住民が被爆、土壌農作物汚染などの甚大な被害を受けた」皆が知っているけど、中国は絶対認めない史実を指します。
まあ、数十年後には中国も民主化され、公知の事実となるのだろうけど。
物語は9世紀末と20世紀後半のウイグル族の二組の双子の兄弟を主役にして展開します。場所はタリム盆地周辺。
20世紀後半の双子兄弟は博物館研究員と鉱山技師。9世紀末は画家と隊商見習い。シンメトリカルな組み合わせになっています。20世紀、博物館研究員の兄が勤めている博物館で不思議な古文書を見つける。そして、20世紀の物語と9世紀の物語が交互に交錯してこの古文書の謎解きをしていくという形で物語は展開します。
ミステリ小説の種明かしは仁義に反するのかもしれませんが、最後にこの謎が核実験と少数民族への弾圧を抗議だった分かるという仕掛けになっています。
『魔界ノ水ハ劫火ヲ生ジ、明界ノ水ヲ得テはじメテコノ世ノ水トナル』というマニ僧の教えが通奏低音のように全体を支配します。
作者は中国文学の研究者で著述家。女性の年をバラすのは申し訳ないけど、中野美代子さんは1933年生まれ。
この本はごく最近(2012年1月)に出版されています。高齢の中国文学者が、何故、ミステリ仕立ての告発の書をなんで書いたのか ?
フクシマの原発事故にインスパイヤされて書かれたのだろうと思います。核と辺境(福島の方、ウイグルの方、ゴメンナサイです)という意味ですぐに想像されるから。
僕が連想したのはヴェルディのイル・トロヴァトーレ。あやしげな魔女vs僧侶(マニ教徒皆様、ゴメンナサイです)、オドロオドロしい背景、主役となる登場人物は皆死ぬという陰惨な物語、にもかかわらず魅力的な旋律vs挿話、など似ているなぁと思いながら読了しました。
(review) 2012/04/30
MPDのギャップレス再生
MPDはギャップレス再生が基本だってご存じですか ?
僕は知りませんでした(というか、意識したことがありませんでした)。
ギャップって何かというとトラック間の隙間のことです。ギャップレスというのはこの隙間がないという意味です。市販の全てのCDプレーヤはギャップレスの仕様になっています。
ところがパソコンで音楽再生するとソフトによっては勝手にギャップ(隙間)を作っちゃうやつがある。
以前Windowsで音楽再生していた時、結構、こういうプレーヤがあって、「使い物にならないなぁ」と直ちに廃棄処分にしていました(代表的なものは Windows Media Player)。
「曲間で多少の隙間があっても問題ないだろう」というの意見もあるかと思いますが、例えばストラヴィンスキーの「春の祭典」をシーン毎にトラック分けしたCDをリッピングして聴いてみると分かります。ギャップ有りではシーンの間に勝手な余白が入って、聴けたものではありません。
MPDは0.16からギャップレス再生が問題なくできるようになったようです。
で、ここまでが話の前段。ここからはこのMPDのギャップレス化の仕様がものすごく過激だという話に移ります。
何で「MPDは0.16からギャップレス再生を基本にしている」と気が付いたかというと、フェーズメーションのIさんから「mpdの設定で曲間のギャップを設けることができないか ?」という質問のメールを頂戴したからです(フェーズテックというブランド名/社名は北米の登録商標とバッティングするので、フェーズメーションという名前に移行中だということです)。
せっかくのギャップレス再生を何故ギャップ有り再生にしたいかというと
プレイリストにサンプリングレートが違う曲を混在させ(例えば44.1Kと96K)、HD-7Aで連続再生させると
HD-7A(Class1/96k)のファームウェアは曲のサンプリングレートは実際にデーター量を 測って特定していますのでギャップレスでサンプリングレートが変わると 判別ができないのです。曲間のギャップが数10msくらいあればいいのですが
ということでした。
で僕の返信です。
mpdでのギャップのコントロールですが、 http://linux.die.net/man/5/mpd.conf に情報があり、mp3フォーマットのデータに対してはギャップレスにするか ギャップ有りにするか指定できるようです。ただ、これはmp3の指定なので、 ご質問の主旨とは違う話になります。 waveやflacだと、cueシートを使うという方法はあると思いますが、 テキストデータを作成する必要があるので、面倒ですかね。 cueシートに関する情報はここにあります。 http://www.musicpd.org/forum/index.php?topic=2237.0 サンプリングレートの変わる直前のトラックでシングルモードにして 強制的にストップさせ、次のトラックからプレイし直すという方法は ありますが、手動になるのでまずいでしょうね。 > 理想的にはサンプリングレートが異なる場合はギャップを入れる > のようなことができれば完璧です(笑 yanさんにパッチを作ってもらうという奥の手はありますが、 ちょっとまずいですかね(笑)。 まあ、ギャップレス再生はライブ録音など切れ目がない録音では必須の機能 ですが、サンプリングレートの異なるデータが送る場合までギャップレスに するというのは、やりすぎでしょうね。 他のプレーヤはどんな作りになっているのでしょうか。
Iさんからの返信です。
mpd.confにはギャップレスの設定はないですね。 バッファーサイズとプリロードくらいです。 これではちょっと難しいようです。 yanさんにパッチを作ってもらう ですか。 これは効きそうですね。ただ、うちのような サンプリングレート検出をしている機種は少ない ので汎用性がなくてちょっと申し訳ないですね。 (略) にしてもサンプリングレートが違うものもくっつけないでいいのに まさかこう来るとは予測できませんでした(笑
には大笑いしました。技術の最前線の世界、虚々実々、水面下の暗闘を繰り広げているのですねぇ(^^;;;。
mpd.confの"hw:0,0"を外せばいいのですが音質が落ちすぎますし。 何か手がないか調べてみます。
なるほど。MPDはalsaを介在させない(余計なことはさせない)ことで、ギャップレスを実現しているわけですね。
とここまでが話の中段。後段はこの問題へのフェーズメーション社の対処方法をご紹介します。以下引用部分は全てIさんのメールからです。
まず、何故HD-7A(Class1/96k)はこのような方法をとっているか。
一般的なUSB機器ですとサンプリングレートが変わると PCから通知が来るので変更されたことが判別できるのですが 連続再生中に切り替えると大抵の場合ポップノイズが出ます。 これが不快な音になるのでオーディオ的には低品質になります。 それを嫌ってリアルタイムに切り替えしない仕様にしたのに 逆を突かれた(笑 というわけです。
続いて、今回のこの件へのフェーズメーション社の対応について
VoyageMPDのギャップレス再生を詳細に確認してみました。 判ったことはサンプリングレートが同じ曲の連続再生では 完全なギャップレスとなっていました。隙間は全くありません。 サンプリングレートが異なる場合は45から50msのギャップが生じています。 これはなかなか優秀な設計だと思います。残念ながらHD-7AやUDIF7は 曲間のギャップが50msですとサンプリングレートを検出できません。 曲のつなぎ目毎にボツ音が出るのを防ぐためもう少し長く設定しています。 PCで再生する場合これが結構不快なのでミュートをかけられる時間で 処理していました。Voyageの動きに対して当方の対策としては50msよりも 短いギャップでもサンプリングレートを検出できるようにしてみました。 現在のところ問題なく動作しています。件のお客様にはこれで対応する予定です。 (HD-7A192では検出方法が違いますのでギャップがゼロでも切り替ります)
ということです。
最後に、Iさんとメールでやりとりして知ったのですが、現在のネッワークプレーヤの大半はこのギャップレス再生に対応できていないのですね。具体的には
他社のネットワークプレーヤーはAppleのAirPlay対応のエンジンを 搭載しているものは全て同じコントローラーでギャップレスになりません。 共同通信社のPCオーディオfan5号に紹介されている各社のNWプレーヤーには ギャップレスに対応 あり/なし と表記されています。 ギャップレスができないと機能はCD以下ということになり音楽再生には 向かないと思います。オペラなんか悲惨ですよね(笑 シンフォニーでも楽章が繋がっているものは多いですしライヴ盤では興醒めします。 SqueezeBoxもギャップレスではないようですし 私の調べた範囲ではYamahaとLinnはギャップレスになっています。
ということです。
意外でしたね。しかし、LinnかYamahaかというのは厳しい選択ですね。200K円以下の機械は使いものにならないということのようです。どっちもいやだとなると Voyage MPD on Alix となるのかしら。
(PC_Audio) 2012/04/22
sacd ripping(1)
asoyajiさんに背中を押されてやってみました。案外簡単ですね。
まあ、かなりマニアックな世界だし、リスクは大なので、積極的にはお勧めしませんが、やってみると、面白いです。
ポイントはsacd再生可能なps3初期型機種の選定とファームウェアのヴァージョン。
機種の選定についてはここの情報が参考になります。ファームウェアのヴァージョンについては掲示板のasoyajiさんの情報とリンク先を参照して下さい。
ps3初期型機の入手方法は悩みましたが、Yahoo! auction で入手。Yahooにした理由はファームウェアのヴァージョンが明記されていたことと初期型トラブルへの対処可能な出品を選べたことです。
手順の詳細はasoyajiさんのサイトを参照して下さい。とても丁寧に解説されています。僕が唯一まよったのは『「ps3free-ps3keys-master.tar.gz」を解凍しUSBメモリにコピーしPS3に挿入する』という部分で、これは解凍したps3free-ps3keys-master.tar配下のps3free-ps3keysというディレクトリにある123個のキーファイルをUSBメモリのルートディレクトリにコピーするという意味でした。他は手順通りやれば問題なしです。
rippingソフトと対応するfwの入手先についてはこことここの書き込みをを参照して下さい。sonyがやっきになって妨害しようとしているようですが、大人げない(?)会社ですねぇ。
インタネット検索ではどこにも書いてなくて、一番困ったのは sacd ripper の終わらせ方。キーボードから F4、alt+F4、ctrl+alt+del、End、alt+f+x、alt+f+e、alt+f+c などいろいろ試したのだけどダメ(^^;;;。結局、掲示板でasoyajiさんに教えてもらいました。
まあ、ゲームユーザなら常識なのだろけど、あのボタンを使うとは思いつきませんでしたね(^^;;;。
手持ちのsacdをrippingしてみて分かったこと。
rippingの出力は
- isoフォーマット
- 2chのdsdiff(dsd)
- 2chのdsdiff(dst)
- 2chのdsf(dsd)
- Mchのdsdiff(dsd)
- Mchのdsdiff(dst)
- Mchのdsf(dsd)
の7通りが指定できます。
この中でdst圧縮するかしないかで ripping時間と容量が大きく変わります。
まず時間ですが、通常のsacdは2ch部分はdst圧縮無しで、multiチャネル部分はdst圧縮有りで収録されています。これに合わせて rippingすれば、sacd再生実時間の1/3~1/4位の時間でripping可能です。しかし、この逆だと、sacd再生実時間と同じ位の時間がかかります。sacd ripperのdst処理はps3のdst処理アルゴリズムをそのまま使っていると思いますが、結構時間のかかる処理のようですね。
このあたりはyanさんの書き込みのリンク先をご覧になると分かると思います。
次に容量ですが、dst圧縮なしのsacd一枚分の2ch録音が2GB~3GBなのに対してdst圧縮すると半分以下の容量となります。マルチチャネルでも同じで、圧縮無しのsacd一枚分が4GB~6GB程度のものが半分以下になります。
dst圧縮した場合の問題点はパソコンでdst圧縮したファイルを再生できるソフトが今のところfoobarだけなこと。
僕の場合どうしているかというとsacdのオリジナルのコピー方式を尊重(?)して2chはdsdiff(dsd)、Mchはdsdiff(dst)で保存しています。理由はこの方法が処理時間が短いし、Mchは圧縮することで容量の節約になるからです。foobar2000はdst圧縮したMchのファイルを問題なく再生できます。ただし、マルチチャネルの録音のdst退縮は相当にcpu負荷を必要とするので、ある程度の性能のパソコンでないと再生はできません。 僕のWindows環境はPentium(R) Dual-Core CPU E5200 @ 2.50GHzで、CPU負荷が70%~80%というギリギリの状況です。それでも問題なく再生できています。
長くなったので、rippingしたファイルの再生方法については次回。
(PC_Audio) 2012/04/17
MPD on SheevaPlug(2)
前回のセットアップ方法の中に
- Alsaを最新版にするためカーネルを入れ換え
という項が入っていますが、このカーネルの入れ換え(アップデート)は、SheevaPlugの場合、PlugComputerのご本家のサイトを使って、簡単にできます。
不思議なのはこの方法を説明したサイトがないこと。SheevaPlugのセットアップ、ブートマネージャの入れ換え方、ハードの改造方法、その他いろいろなTipsなど、英語でも、日本語でもふんだんに情報あるのですが、なぜかこの件だけは丁寧に記述してあるサイトがないのですよね。まあ README がアップデート用のシェルになっていて実行するだけなので、わざわざ解説するまでもないということなのかもしれませんが、それだけでOKというわけではないので、いくつか補足しておきます。
事前準備
前回書いたセットアップ方法はStable版のSheevaPlug用のDebianを踏み台にして、最新版のDebianを入れ換えるという方法をとっています。NANDにプレインストールされているDebianを使ってやるという方法もあるのですが、下手に操作するとNANDの内容を壊してしまうリスクがあるので、一旦Stable版を入れてから最新版にするという方法をとっています。直接やりたいという勇気のある方はこのページとリンク先の情報を利用して挑戦して下さい。
SDカードへのDebianの導入はここに詳しく、正確な、最新の情報があります。
カーネルのアップデート方法
カーネルのアップデートはこのサイトにあるコンパイル済のモジュールをダウンロードし入れ換えるという方法をとります。サイトをご覧になさばお分かりのように、2.6.30以降の大半のヴァージョンに対応したコンパイル済のカーネルモジュールが用意されています。
従って、ここを利用すれば、カーネルをビルドする手間が省けるということになります。
現時点での最新のカーネル3.3.1ですが、僕が使っているヴァージョンは 2.6.38.8 です。理由は当時(2011年7月ころ)それが最新に近い版で、安定していたからです。従って以降の説明は 2.6.38.8 に対するものです。
リンク先のトップページにある README-PLUG-UPDATE.sh というシェルスクリプリトがインストーラとなります。従って、これをダウンロードして、実行すればいいです。やり方は
wget http://sheeva.with-linux.com/sheeva/README-PLUG-UPDATE.sh chmod a+x README-PLUG-UPDATE.sh ./README-PLUG-UPDATE.sh 2.6.38.8 --rootkernel
README-PLUG-UPDATE.sh の起動パラメーターは「ヴァージョン番号 –rootkernel」です。内蔵のフラッシュにインストールしたい場合は「ヴァージョン番号 –nandkernel」とすればいいですが、前述したようにお勧めできません。
README-PLUG-UPDATEは実行すると
- ダウンロードパスを決め
- http://sheeva.with-linux.com/sheeva/ に接続
- コンパイル済のカーネルモジュールをダウンロード
- Md5をチェック
- カーネルモジュールを展開
- /bootにSystem.mapとuImageをコピー
します。上記の通り関数が構成されていますので、解読は簡単だと思います。
「uImageって何 ? 」という方はこちら(Itproの記事)を参照。「System.mapって何 ? 」という方はこちら(Wikipedia)を参照。
このシェルの問題点は sheeva.with-linux.com は結構ディレクトリの構成の変更が頻繁なのに、シェルの更新が追いつかないこと。この場合、二番目のダウンロードパスを決める関数(function GetDownloadPath)を修正すれば、対応できます。
新規カーネルの登録
以下の情報はボンタくんの備忘録に助けられました。作者に感謝します。
README-PLUG-UPDATE.sh を実行するだけでは、新規カーネルでローディング可能になるわけではありません。
新しいカーネルをローディング可能にするには
- uInitrd を作成
- 新しいカーネルにシンボリックリンクをはる
を行う必要があります。
「uInitrdって何 ? 」という方はこちら(Itproの記事)かこちら(Wikipedia)を参照。
それぞれ操作方法は
uInitrd を作成
wget http://sheeva.with-linux.com/sheeva/2.6.38/2.6.38.8/sheeva-2.6.38.8.config mv sheeva-2.6.38.8.config .config cp ./.config /boot/config-2.6.38.8 mkinitramfs -o ./initrd 2.6.38.8 mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "2.6.38.8 ramdisk" -d ./initrd /boot/uInitrd-2.6.38.8
新しいカーネルにシンボリックリンクをはる
cd /boot mv uImage{,-2.6.32-5-kirkwood} mv uInitrd{,-2.6.32-5-kirkwood} mv ./sheeva-2.6.38.8-uImage ./uImage-2.6.38.8 ln -s uImage-2.6.38.8 uImage ln -s uInitrd-2.6.38.8 uInitrd
となります。 あとは
reboot
で新しいカーネルがローディングされます。
(PC_Audio) 2012/04/09
MPD on SheevaPlug(1)
別に anti Alix という訳ではないのだけど。
「MPD on SheevaPlug」とはSheevaPlugというSoC開発キットを使って、PlugComputer用の最新(Unstable)のDebianを入れて、最新版のAlsa、MPDと組み合わせ最強の音楽再生環境を構築しようということです。僕の環境ではAtom機のVoyageMPDよりこちらの方が音はいいです。
SheevaPlugというのは玄柴のOEM元の製品でここで販売しています。日本からも購入できるようですが、送料がバカ高いので、アメリカにいる息子に頼んで買わせて、帰国時にもって帰ってもらいました。この大きさと軽さだと、ほとんど負担にならないからいいですね。
通販価格が99ドル+送料15ドル(アメリカ国内)。円高だから、今のレードだと10K円しません。これで最高級のオーディオ環境が手に入るのだから、良い時代になったものです。電源、ケース込みの価格なので、Alixより安いです。
同じタイプの新しい機種でGuruPlugというのがあるのですが、無線、電源トラブルが多発しているようなので、パス。あえて旧機種にしました。
内容的には玄柴とほぼ同じですが、E-Sata端子はありません。基板はいっしょなので、配線さえすれば、使えるようです。玄柴が真っ黒けなのに対し、こちらは真っ白けというのが外から見た最大の相違点です。
接続できるのは、LAN、USB2.0(オーディオ接続用)、シリアル用のUSB1.0、SDカード接続端子(ディスク代わりに使う)だけと極めてシンプル。MPD音楽サーバ用の必要最低限のものしか繋がりません。
何でおなじようなもの二つ買ったかというと、玄柴がとても気に入ったから。比較してみたいという好奇心と実験用にもう一台欲しかったからです。玄柴の方はファイルサーバ専用機にまわしました。
二台の比較ですが、ほとんど音の差は無いですね。まあ、ハード、OSともにほぼ同じなのだから当たり前ですね。自然なバランスの良い音です。VoyageMPDのAtom機と比較すると、こちらは木造のアンティークな演奏会場で聴く音、Atom機はコンクリートの近代的なコンサートホールで聴く音という感じがします。
「MPD on SheevaPlug」のセットアップ方法はVoyage MPD のページにあります。
大変そうに見えますが、案外簡単です。SoC開発キットに
- Debianをインストール
- 初期設定と日本語環境を設定
- Alsa、MPDをインストール
- Alsaを最新版にするためカーネルを入れ換え
- MPDを最新版に更新
という手順です。
最後の二つの「MPDを最新版に更新」と「Alsaを最新版にするためカーネルを入れ換え」は、非常に重要です。「MPDを最新版に更新」をやらないと、NASからの音楽データの配信が上手く動かないですし、「Alsaを最新版にするためカーネルを入れ換え」をやらないとUSB2.0接続の音源を使えません。
音は素晴らしいので、挑戦してみたいという方にはお勧めします。
写真は日本国内で撮られたとすると、電気取り締まり法(かな?)違反です。まあ、日本国内かどうか分からないだろうから、とぼけるつもり(^^;;;。
p.s. Raspberry Pi もARMですので、多分同じような手順でMPD専用機にできるのではないかと思います。
関係ないけど、エイプリールフールの日でしたね(^^;;;。