JPLAY(4)
ようやくWindowsServerのインストールまでたどり着きました。
以下の解説は僕の環境、つまりデュアルモードで ControlPCのOSは Windows10、既設のものをそのまま流用、AudioPCはWindowsServer、新規にインストールという条件です。既設部分のWindows10については省略して、新規のWindowsServerについてのみ解説します。
WindowsServerのインストールは 7/8/10 のWindowsクライアントのインストールと大きな差はありません。また、WindowsServer2008r2、2012r2についてはネット上の あっち こっち にスナップショット入りでインストールの仕方を解説しているサイトがあります。従って、ハードルの高さは意外に低いです。
リンク先のサイトと同じような図をこのサイトでも紹介しても仕方がないので、2016 Desktop版のインストール風景をお見せします。もっとも、2016でもインストールの仕方に2008r2、2012r2との差はほとんどありません。
WindowsServerのインストール
さて、本題に入る前の準備を。インストール用のメディアについて。実はWindowsServer2016のインストールに関しては、これが一番高いハードルでした(^^;;;。
WindowsのインストールはDVDを使うのが普通です。ネットワークからisoイメージのファイルをダウンロードしてそれをDVD-Rに書き込み、使います。書き込みは、以前は、ブータブルCD作成可能な書き込みソフトを使っていましたが、最近のWindows(7,8,10)だとOSの機能で出来るようになっています。具体的にはダウンロードしたisoファイルを右クリック。表示されたメニューから「ディスクイメージの書き込み」を選択すればいいです。簡単ですね。
WindowsServerのisoイメージの名前はご覧のように無闇矢鱈と長いというのが特徴です。マイクロソフトにはファイルの大きさに対応してファイル名は長くしないといけないという内規でもあるのかしら(^^;;;。
ところが、Windows Server 2016 Technical Preview 4 はサイズが5GBを超えているため、普通のDVD-Rには書き込みが出来なくなっています。困りましたね(^^;;;。
「そういえばWindows 10のインストールメディアはUSBメモリだったな」と思い出して、調べてみました。ブータブル可能な形でUSBメモリを作成するソフトがあるのですね。rufusというソフトを使いました。このソフト、USBメモリにブータブル可能な形でISOファイルを書き込むことが出来ます。操作は簡単なのでお勧めです。使い方の解説はあちこちにありますが、ここがお勧めです。
本題に戻ります。Windows Server 2016 Technical Preview 4 のインストールのスライドショーです。
インストール終わりに行うパスワードの入力前までは coreモード、desktopモード共に共通です。
インストール開始前に言語やキーボードを確認する画面が表示されます。普通はそのまま「次に」。英語キーボードを使っているとか、「俺は日本語は嫌いだ」という方は適当に変更して下さい。
「今すぐインストール」をクリック。
この画面は前回説明しましたね。CoreモードかDesktopモードを選択して下さい。上がCoreモードです。
ライセンス内容の確認画面です。受け入れるしかありません。チェックボックスををクリックして「次に」。
新規のインストールかどうか確認する画面です。カスタムをクリックして下さい。
どのハードディスクのどの場所(パーティション)にインストールするか確認する画面です。マルチブートするのでなければ、シンプルに一台のハードディスク、一つのパーティションが表示されますので、そのまま「次に」。そうでない人は自力で対応して下さい。
以上で初期の設定はお終いです。
このようなインストールの進捗状況を示す画面が表示されます。終わるまで待つしかありません。時間は僕の環境で10分位でした。
ここまではcoreモード、desktopモード共通です。以降は異なりますので、まずdesktopモード。
インストールが完了すると、パスワードを確認する画面が表示されます。入力して、「完了」。パスワードは英大文字、英小文字、数字が入っていないとエラーになるようです。これも合わせるしかありません。
Windows10のログイン前に表示される画面といっしょですね。画面にある通りで、ここでctrl+alt+delを押せば次のログイン画面が表示されます。
先程入力したパスワードをもう一度入力。
最初にログインするとデスクトップ右側にこんな表示が出てきます。これはオンにしないと、ControlPCがAudioPCを見つけられなくなりますので、「はい」をクリック。
クリックした後、ネットワークに繋がると自動的にライセンス認証されます。
インストールの初期設定処理が完了すると、サーバとしての機能を設定するため、ダッシュボードが起動表示されます。AudioPCとしてはサーバ設定は不要なので、何もする必要はありません。
画面右下のスピーカアイコンが赤く表示されていると思います。これを右クリックして「再生デバイス」を選んで下さい。上図のようにオーディオ機能を有効にするか確認する問い合わせられますので、「はい」をクリック。
次にcoreモードのインストール完了後のパスワード指定画面です。こっちは殺風景ですよーー。
洞窟からの美しい島の景色はなくなりました。
カーソルで上下に行を移動できます。OKに移動して改行。
パスワードを入力する画面です。僕の環境では入力開始位置が多少ずれるのですが、バグですかね。
これがcoreモードのログイン直後の初画面です。コンソールだけ。
desktopモードとは異なりこの状態でネットワークの共用とオーディオ機能はオンになっているようです。ただし、ライセンス認証は自動的には行われませんので、自力で行う必要があります。詳しくは次回に。
p.s. 本題とは全然関係がありせんが、今月号(3月号)の「レコード芸術」の表紙がクルレンティスの不気味な(^^;;;写真で、巻頭のインタビュイーになっています。わざわざベルリンまで行って、インタビューしてきたようです。レコ芸も変わったものですね。
クルレンティスって、なるほどこういう感じの人物であったかと、つくづく感心。1月号で伊東さんが「クルレンティス本人は、メフィストフェレスを地のままで演じられそうな、どこか不気味な男だ」と書いてますが、同感。クラシック音楽ファンの魂を奪う現代のメフィストフェレすって感じですねぇ(^^;;;(^^;;;。
「ルクレンティスって誰だ ? 」という方は僕の書き込みがあります。ここやここを参照。21世紀のフルトベングラーです。
(PC_Audio) 2016/03/12
JPLAY(3)
AudioPCのシステムですが、専用機とすること強くお勧めします。その理由は以下の図を見ていただくと明らかでしょう。
Windows7共用マシン(インストール後7年経過)–ControlPC,i5-3470
Windows7Ultimate専用マシン(今回構築したシステム)–AudioPC,i3-3225
WindowsServer2008r2WebSever DeskTop版(今回構築したシステム)–AudioPC,i3-3225
図はdpclat.exeというリアルタイムのレイテンシーを測定するプログラムのJPLAY演奏中の実行結果です。このプログラムはThesycon社というxmos(*)対応のドライバを開発している会社が作成したものです。リンク先に詳しい情報があります。簡単に説明すると、DPC割り込みを1000㎲周期で発生させ、その遅延具合をリアルタイムに測定し、秒単位の最大値をグラフ表示するというものです。棒グラフは色分けして表示され、交通信号機と同じ見方をします。赤だと危険、止まれ。黄色は渡れないことはないけど、要注意。緑は問題なし、渡ってよし。です。
* xmosというのJPLAY日本サイトご推奨のDD変換チップです。音が良いことで評判のチップですね。
どうですか。ご覧の通り、共用システムに問題のあることは明らかでしょ。赤、黄、緑の信号機はオーディオ、ヴィディオストリームでドロップアウトの発生する確率を意味します。リンク先のThesycon社のページにはドロップアウトが起きるメカニズムと対処方法についても記述されています。ここを参照して下さい。
一番上のWindows7の共用システムは2009年にインストールしてから6年間以上そのまま使い続けたシステムです。さすがにゴミだらけ、1500㎲位の遅延が定常状態になっていますね。これで音楽再生しても、ドロップアウトなどは発生しませんが、音に良くないことは明確でしょうね。
下の二つは今回構築したシステムです。レイテンシーは200㎲以下に抑えられています。どちらも緑信号。問題なく音楽用に使えるということです。ここで興味深いのはWindows7UltinateとWindowsServer2008r2の差です。明らかにServerの方が安定しています。こんなに明確に差が出るとは思いませんでした。これを見たら、なにがなんでも最高峰を目指そうという気になりますね。
WindowsServerの入手
WindowsServerというのはパソコン屋に行って、「WindowsServer2012r2 ちょうだい ! 」と言って、すぐ買えるという商品ではありません。サーバの数はどれだけで、どんな構成をとるか、ネットワークの規模は、ユーザ数は何人かなど様々な条件を明確にして、はじめてお値段が決まるというソフトです。「音楽用に使うので、パソコンは2台、ネットワークは直結、ユーザ数は一人」なんて答えたら、「何しに来たんだ」という顔をされて、追い返されるの関の山でしょうね。
値段も小さい構成でも数百K円位、大構成になれば数M円ということになるから、個人が手を出せるしろものではありません。企業や団体がコンピュータとネットワーク利用の効率化を目的とし、経営会議で慎重に判断して、投資するという案件ですね。ユーザ数25人までの極小規模の顧客用のEssentialsという版はあるが、あこがれ(?)のcoreモードは付いていないし、それでも60K円位するのですよね。
それではどうするか。
AmazonとかYahoo!、あるいは海外ですが、AliExpressなどでは数K円でWindowsServerのライセンス販売されています(Aliだと10ドル以下ですね)。これはVL(ボリュームライセンス)の切り売りですかね。だとすると、ライセンス違反になりそうだけど、マイクロソフトが黙認しているということは限りなくグレーに近い灰色(?)ということなのでしょうか。
まあ、JPLAYのAudioPCとしては、常時のネットワーク接続はControlと直結回線だけですむので、ライセンス認証時だけインタネット接続する。あとは外部ネットワークとは繋がないという運用するならOKだけど、すっきりはしませんね。
というわけで、評価版をお勧めします。
WindowsServerはユーザの環境に合わせてインストールし、カスタマイズする必要があります。マイクロソフトが顧客向け対応これをやってくれるわけがありません。お金持ちユーザは外部のIT業者に委託するのでしょうが、そんな無駄な投資の出来ない企業では、管理部門からIT/ネットワーク知識のある犠牲者(^^;;;が選ばれ「お前なんとかしろ」となる。この時、どういう具合に「なんとかすれば」いいのか試す必要があるのですが、そんなものに金が出るわけがない。
このあたり事情はマイクロソフトも十分に承知していて、だから評価版という仕組みを用意しているのですね。
従って、インストールすると180日間(お試し版にしてはかなり長い期間です)使い続けることが出来ます。さらに4回まで期限の延長することが可能で、延長する度に、同じ期間使い続けられます。つまり、5×180日=900日間使い続けられられます。その後もインストールし直せば、同じことを繰り返せるようです。まあ、PCオーディオの世界、2年もたてば世の中変わっていますから、そのまま使い続けることはない思います。従って、これで十分でしょうね。太っ腹なマイクロソフトに感謝して、ありがたく使うことにしましょう。
次に「評価版ってどこにあるの ? 」というご質問への回答。全てマイクロソフトの日本語サイトです。
それぞれの版については次の章で説明します。
ダウンロードするにはマイクロソフトのアカウントが必要です。アカウントはマイクロソフトのクライアントOSをインストールしたことがあれば、無理矢理作成させられます。「俺、アカウントなんて持ってないよ」という方は上記サイトで何とかできるのではないかと思いますので、ご健闘下さい。
WindowsServerの版の選択
JPLAYが動くWindowsServerには2008r2、2012r2、2016の三つの版があります。それぞれWindowsクライアントの 7、8、10と対応しています。「対応している」とはカーネル部分は同じものを共通に使っているという意味です。インストール画面などはそれぞれ対応するものと共通している画面が多いです。例えば 2016 Technical Preview 4 のインストールしていて、「なるほどこれはWindows10と同じだなぁ」と感じます。
WindowsServerの各版はそれぞれ適用されるネットワーク規模に合わせたサブヴァージョンに分かれ、さらに、desktopモードで動かす版とcoreモードで動かす版が用意されています。ただし、2016はまだ正式リリース前の Technical Preview 4 というステータスなので、サブヴァージョンには分かれず、desktopモード版とcoreモード版が用意されているだけです。またこれらの核となる版とは別に上記したEssentialsという版があり、この評価版は独立してダウンロードできるようになっています。
このあたり、言葉で解説するより、OSをインストールする時の版の選択画面を見てもらった方が分かりやすいと思いますので、下に並べます。
WindowsServer2016 Technical Preview 4 の選択画面
WindowsServer2012r2 の選択画面
WindowsServer2008r2 の選択画面
ご覧の通りです。
2016はdesktopモード版とcoreモード版だけ、2012r2はStandardとDatacenterに分かれそれぞれdesktopモード版とcoreモード版がある、2008r2はさらに種類が多く、Standard、Enterprise、Datacenter、WebServerに分かれ、それぞれdesktopモード版とcoreモード版があるということです。
話を先に進める前に、coreモードとは何か。
このサイトの紹介記事が分かりやすいと思います。要するに、ネットワークサーバの効率化、必要な資源(CPU、メモリ、ディスクなど)の縮小、安全性(セキュリティ)の向上などを狙い、操作性の向上は犠牲にしてデストトップ関連の不要なコンポーネントを削除し、コマンドコンソールだけで動くようにしたシステムのことです。結果として、音楽再生にも最適なOSとなるわけです。
さて、これだけ種類があると、「どれを使えばいいのか」という話になります。
僕の答えは「全部試したわけではないので、よく分かりません」となります。これじゃ何の参考にもならないので(^^;;;、僕がどうしているかをご紹介します。
2012r2と2016については、Standardのdesktopモード版とcoreモード版しか試したことはありません(2016の場合は1種類しかないので、これをStandardと呼ぶことにします)。desktopモードとcoreモードで若干の音の差があるので、coreモードを使っています。2012r2coreモードと2016coreモードではほとんど差はないと思います。立ち上げ時間に関しては2012r2coreモードの方が速いので(2012r2は10秒位なのに2016は30秒以上かかります。まだ2016coreはブラッシュアップ中であるということかと思います)、2012r2をお勧めします。僕は最新版も試してみたいので、二つをデュアルブート可能にしてあります(正確にいうと、次に述べる2008r2WebServerのdesktopも入れてトリプルブートさせています)。
2008r2についてはStandardとWebServerのdesktopモード版とcoreモード版を試しました。coreモードで音が出るのはWebServerだけです。desktopモードは両方とも音は出ます。音質に差は感じません。webServerのcoreモードとdesktopモードの差ですがこれは2012r2/2016とは逆にdesktopモードの方が音が良く感じます。下図が証拠写真です。
2008r2WebServerのCore版の演奏中のスナップショット。
この図を最初に掲載したWindowsServer2008r2WebSever DeskTop版のdpclat.exeの出力結果と比較していただければ、差は明らかでしょう。desktopモードはレイテンシー値が50㎲程度なのにCoreモードは500㎲を超えています。この他に 2008r2のcoreモードでは、JPLAYのカーネルストリームのドライバが認識されないという問題は発生しています。何故こういう差が発生するのか不思議ですが、2008r2に関してはcoreモードは音楽再生に向いてないようです。このため、僕は2008r2に関しては、WebSever DeskTop版を使っています。
2008r2を使う理由はこの書き込みの第2回目に書きましたが、Phasemation HD7a-192 が2008r2でないと動かないからです。
(PC_Audio) 2016/03/06
JPLAY(2)
突然ですが、前回の説明で「JPLAYとは何か」お分かりいただけたでしょうから、ここからはいきなり最高峰を目指します。最高峰とはJPLAYを使って一番良い音を出す方法のことです。具体的には、パソコンを2台使ったデュアルモード、AudioPCで動くOSはWindowsServer、JPLAYStreamerを使ったレンダラ動作といったところです。
「お前何を考えているのだ。前回の説明だけでJPLAYとは何かわかるわけがないだろう」(おっしゃる通りだとは思いますが)という方にはJPLAY日本語サイトの「ASIO対応ミュージック・プレーヤーの設定」と「単体PCモードでのJPLAY設定」をご覧いただき、JPLAYをシングルモードで動作させてみることをお勧めします。これでも十分にJPLAYが高音質であることがご理解いただけると思います。
シングルモードであれば、JPLAYを動かすハードルは比較的低いので、JPLAYを自力でインストール出来る方なら、お使いのOS(Windows7/8/10)でJPLAYを動作させることは十分可能かと思います。
「ASIO対応ミュージック・プレーヤーの設定」では対応するプレーヤとしてfoobarとBugHeadがあげられています。他に、ASIO対応の高音質プレーヤとしてはAIMPやJRiverがあります(AIMPは日本ではあまり知られていないようなので、ご本家にリンクしておきます)。これらも対応可能です。ただ、JRIVERに関しては非公式の話になるので、最高峰登頂後に別の話題で取り上げますかね。
下図は、Minimserver、JPLAYStreamer、Kazooが動作中のWindows10のControlPCでWindowsServer2016coreのAudioPCをリモートデストトップ接続し、コンソールにタスクマネージャとNotePadを加えマルチウィンドウ動作させているスナップショットです。なかなかシュールでしょ。
さて、それではJPLAY最高峰のハードルとは何か。
- コンピュータハードウェアの選択
- デュアルモードでは外部から音楽データ受け取り相手のパソコンに受け取ったデータを送り出すのControlPCとControlPCから音楽データを受け取り音源に送り出す側のAudioPCのパソコン2台が必要です。この2台のCPU、メモリ、ディスク、ネットワーク装置などをどう構成するかが最初のハードルです。
- WindowsServerの入手
- WindowsServerはパソコンショップで手軽に買えるという商品ではありません。評価版を使うというのが解決策です。その方法を解説します。
- WindowsServerの版の選択
- JPLAYが動くServerOSとしては、2008r2、2012r2、2016Previewがあります。またそれぞれのヴァージョンはStandard、Datacenterなどの版に分かれます。さらに、全ての版はcoreモードとdesktopモードに分かれます。あまり多すぎて、何が何やらさっぱり分からんという状態になりますが、とりあえず、standard&coreモードでトライ。だだし2008r2はWebServer&desktopモードでないと問題ありです。
- WindowsServerのインストール
- 普通の人は使わないOSをインストールしないといけませんが、意外にハードルは低いです。
- WindowsServerの設定
- マザーボード、音源、ソフトのインストールと設定について。基本的にはWindowsクライアントといっしょですので、ハードルは低いです。
- ネットワークの設定
- 2台のパソコンの繋ぎかた。ipアドレスとファイヤウォールの設定。これも意外に簡単。
- JPLAYの設定
- 基本的にはシングルモードといっしょです。ちょっと罠が待ち受けているのは2台の接続確認方法ですが、慣れればどうということはありません。
というところです。大変なのは準備段階の前半の部分で、OSのインストール以降はハードルは低いです。やってみると案外簡単ですよ。
コンピュータハードウェアの選択
- CPU
- 僕はJPLAYを使ったシステムをパソコン部屋で動かしているのですが、これには理由があります。自由に使えるパソコンが3台あるからです。3台とはCore i5-3470(Asus P8H77-M))、Core i3-3225(Asrock H77M-ITX)、Core2Quad Q9550(Asus P5P43TD)です(括弧内はマーザーボード機種)。この三台を使用目的で使い分けていますが、メインに使っていたのはi3 でした。理由は省エネです。最近のパソコンはi3クラスでも普通の使い方では十分ですね。
さて、この3台をどう選んだかですが、最終的にAudioPCをi3-3225、ControlPCをi5-3470としました。i5-3470とQ9550を組み合わせて専用化するという案も考えたのですが、省エネに反するのでやめました。
ControlPCはそれなりに性能を要求されます。i5-3470で演奏中の負荷は低い方の数%位です。ただ瞬間的に10%を超えることもあります。i3だとちょっと厳しいかもしれません。AudioPCはそれほど負荷は要求されません。僕のi3環境で1%程度です(上のスナップショットをご覧下さい)。問題はi3のAudioPCを専用化させる必要があるので、メインマシンとしての作業環境をi5に移行する必要があったのですが、本題と関係ないので、省略。 - メモリ
- i3、i5共にメモリを16GBに増設しました。フォーラムなどでは32GBが必要との書き込みもありますが、演奏中の状態をパフォーマンスモニタで確認。最大で4GB~5GBしか使ってないと分かったので、16GBとしました。8GBでも十分かもしれません。上のスナップショットで使っているのは1.6GB位ですね。
- ディスク
- 全てSSDを使っています。速い、省エネ、静かと三拍子揃っているので。
容量はWindowsServer2016を使っても、AudioPCとしてJPLAYを動かすだけなら20GB以下で十分です。僕は実験用にソニーのプレイステーション3から取り外した20GBのハードディスクを使っていますが、これで問題なく動きました。 SSDの問題点(?)はコスト対容量がアンバラスなことですね。128GB以上になると比例するようになるのですが、それ以下だと大して差が出ない。32GBで十分なのに128GBとほとんど価格が変わらない。勢いで、250GBと500GBのものを買っちゃったのですが、余った容量どうしますかね(^^;;;。 - LAN
- i5のAsusのマザーはMicroATXなのでPCI-eタイプのLANカードを増設。結果的にマザー内蔵のものと同じチップとなりました。
i3はITXタイプで、PCI-eが一つだけ。これはMytec用のIEEE1394に使う必要があるので、LANカードの増設が出来ません。仕方がないので、手持ちのUSB-LAN変換アダプタを使うことにしました。このアダプタのドライバ捜しで苦労しましたね。後述します。
さて、以上は手持ちの機材をいかしてデュアルモードのPCシステムを構築する例をご紹介しましたが、ゼロからやるのでしたら、AudioPCにはこういうハード(intel NUC)を使うのがスマートかもしれませんね。CPUは省エネ最新鋭i3でメモリはddr4 最大32GB、SSDがディフォルトと要件はすべてクリア。組み立ても簡単そうだし、あとは価格次第かな。もっとコンパクトな構成もありそうなので、調べてみたらいかがでしょうか。
* リンク先を一世代前のハードに間違えてリンクしていました。最新版をこちらに再リンクしておくます。
参考までに僕の構成を下図でご紹介します。
次回以降はこの構成のAudioPC側のセットアップを中心に解説します。
p.s. デスクトップのスナップショットで演奏中の曲はオネゲル「火刑台上のジャンヌ・ダルク」です。バルセロナ(スペイン)のオーケストラがバーゼル(スイス)で2012年に上演したライブ録音ですが、とても音がいいです。ジャンヌ役のコティヤールが凄い熱演で素晴らしいです。指揮はスーストロというフランス人。いい演奏だと思います。
(PC_Audio) 2016/02/28
JPLAY(1)
JPLAYとは何か
「JPLAYとは何か」が簡単に分からないのがこのソフトの特徴です。
この「簡単に分からない」という理由で、JPLAYは一部の先鋭なオーディオマニアのアイドルソフトにはなるけど、一般には普及しそうもないですね。日本ではオーディオマニアにも相手にしてもらえない。
まず、音の良さを無視して、罵詈雑言をならべながら、特徴を羅列すると….
- JPLAYMiniという音の良いプレーヤは付いているが、GUIはなく、操作性は最悪。こんなものが100ユーロ。とてもオーディオプレーヤとはいえそうもない。
- オーディオ用ドライバとして使えるというが、使えるのはASIO対応しているプレーヤだけです。駄目ならASIO対応のケーブルプラグインを入れろとか、我が儘な要求をする。
- ヴァージョン6.0からOpenHome規格のネットワークストリームに対応というが、外部のネットワークと繋ぐとバグだらけ。
- 音が良いとのうたい文句のデュアルモードはパソコン2台使用。オーディオ用PCは音を良くするためオーディオ機能以外を全部眠らせ専用化。OSは素人には手を出せないWindowsServerCoreモード推奨と、無理難題の贅沢三昧。普通の音楽好きにはとても近づけない。
というところですかね(^^;;;(^^;;;。
「JPLAYとは何か」、JPLAY日本語公式サイトでもまとめるのに困ったようで、「JPLAYとは」というページで上記のドライバとストリーム再生機能を紹介し、高音質モードとしてデュアルモードとハイバーネートモードの解説をして、お茶を濁しています。
英語のサイトはどうなっているのかと調べたら、
Instantly transform your PC into hi-end digital transport
だそうです。「なるほどねぇ」とは思うけど、「JPLAYとは何か」に答えてはいないですよね。
僕が「JPLAYって凄いソフトだなぁ」と驚いたのは、Version6.0のリリースノートのWhat’s Newで次のフレーズを読んだ時です。
No need to go to registry anymore – New JPLAYSettings panel provides easy access to all parameters!
凄いですねぇ。最後にビックリマーク(!)が付いているのに、ただただ感嘆。
「レジストリは、OSの核になる情報もつまっているから、一般人はいじるな。」というのがマイクロソフトOSと付き合う時の仁義です。v1からv5までは「仁義なき戦い」の世界だったのでしょうね。こういうソフトが欧米のオーディオマニアに支持され、5回もヴァージョンアップを繰り返してきたとは。立派ですね。
* ここにJPLAY英語フォーラムのVersion6.0のリリースノートとそれに対するやりとりがあります。興味深い内容ですのでリンクしておきます。
「JPLAYとは何か」が簡単に説明できないのは、この5回もヴァージョンアップを繰り返してきたためだと思います。最初はASIOのオーディオドライバのふりをする高音質化の仕組みだけだったものが、デュアルモードとかハイバーネートモードとかストリーム再生とか次々とレベルアップを繰り返した。古い機能は残したままだから、増築を重ねた温泉旅館。迷路みたいになり、「いろいろ使い方はあるが、どう使っていいのか分からん」となったのではないのでしょうか。
JPLAYの設計思想については日本語公式サイトに要領よくまとめられています。詳しくはリンク先を読んで頂ければと思いますが、JPLAYとはカーネルレベルで割り込みを操作しオーディオ処理を最優先させる仕組みとして誕生したようです。基本になる仕組みは維持して、対外的な見せ方をプレーヤ、ドライバ、レンダラという具合に変え、さらにデュアルモードとかハイバーネートモードというような音を良くするための仕掛けを用意してきたということになるのですかね。
このレビュー記事にJPLAYの作者へのインタビューがあります。JPLAYの作者はJosef Piriさん(オランダ)とMarcin Ostapowiczさん(ポーランド)のお二人です。二人ともソフトウェア技術者で、マイクロソフトのOSの専門家のようです。Ostapowiczさんは音楽関連のドライバ開発に関わった経験もある。JPLAYは良い音のプレーヤを作成することが目的として、余暇の時間を使って、趣味で開発されています。二人は10年位前に XXHighEnd という当時高音質で知られたプレーヤを使っていて、そのフォーラムで知り合ったとようです。Windowsでどう音質よくするかという議論をしていて、意見を交換するようになった。その後、数百通のメールのやりとりし、コードをかためて、JPLAYが完成した。というのがJPLAY誕生のストーリーのようです。詳しくはリンク先を参照して下さい。
終わりに、僕の定義した「JPLAYとは何か」….
JPLAYとは、音を良くするため、カーネルレベルでOSを乗っ取り、割り込みを操作し、他のアプリケーションの実行に介入する仕組みを中核機能とするソフトェアである。音を良くするためには、他のアプリケーションの迷惑は省みず、やれる事はなんでも行うという仕様になっている。例えば...
JPLAYに音楽を再生するプレーヤ機能はあるが、必要最小限の機能しかなく、使い物にならない。このため、JPLAYは一般のミュージックプレーヤにASIOドライバとして寄生するという方式をとってきた。
しかし、このようなJPLAYの勝手気ままな振る舞いが、JRiverやfoorbarといったASIO対応の大所のプレーヤから顰蹙をかう結果となった。このため、最新版では、ハイエンドオーディオメーカLINN社が提唱するネットワークオーディオ規格「OpenHome」に準拠するミュージックレンダラに方向転換した。この方向転換の結果、 TIDALやQobuzなどの音楽配信サービス、インタネットラジオなどとパソコンでの音楽再生がシームレスに処理出来るようになっため、最新版は好評である。
しかし、OpenHome規格を標榜しているのに、使えるサーバやコントロールポイントに制限が多いとか、繋いでみたらバグだらけとか(必ずしもJPLAYが悪いというわけではなさそうですが)など、問題だらけで先行きは不透明である。
貴公にこのソフトが向いているかどうかは、こういうJPLAYの無理難題に対する許容度次第である。貴公が、音のためなら何でも犠牲ににするという太っ腹の持ち主なら、お勧めする。
うーーむ。ちょっと書きすぎたかな(^^;;;(^^;;;。
p.s. 写真は前回ご紹介した僕の使っているEBTB Terraというスピーカです。こういう変わった形のスピーカを使っていると、JPLAYの無理難題も気になりませんね。
このスピーカ、ブルガリア製です。JPLAYはオランダとポーランドの合作。EUはドイツとフランスだけじゃない。経済的には小国でも逸材はいっぱいいらっしゃるということですかね。
(PC_Audio) 2016/02/21
JPLAY(0)
一年以上書き込みを中断していましたが、再開します。JPLAYというWindowsの素晴らしい音楽再生用プログラムを紹介したいと思います。
「何、Windowsだって。お前、Windowsは駄目だといって、Linuxの音楽環境の紹介をするようになったのじゃないの」といわれそうですが、このソフトを究極の環境で動かした時の音はLinux音楽環境を軽く凌駕します。
ただ、究極の環境(PC二台を独立したネットワーク接続し、AudioPCはWindowsServerのCoreモードで動かす)にたどり着くには、限りない茨の道(^^;;;が待ち受けています。残念ながら、この茨の道を解決する日本語情報はあまりありません。という次第で、この話題で書き込みを再開することにします。
書き込みを中断していた間、音楽は聴き続けていました。インタネットウォッチングも続けていました。PC/ネットワークオーディオの話題を取り扱うサイトは増え、情報量はどんどん増大する。「僕が新しい情報を付け加える余地はあまり無いな。『老兵は死なず、消え去るのみ』」という感想で、サイトの更新する気にならなかったのですよね。
ちょっと脱線します。最近のLinux音楽再生の世界はRaspberryPiばかりですね。2014年の雑誌インタフェースのLinuxの音楽環境特集号のタイトルは「ハイレゾ本格デビューLinuxオーディオ」。同じ雑誌の2015年の12月音楽環境特集号のタイトルは「自分専用Lnux×ラズパイ・オーディオ」です。一昨年の雑誌の内容についてはここに紹介しました。RaspberryPiがメインですが、BeagleBoneBlackなどの紹介もありました。しかし去年は完全にRaspberryPi一色。BBBもCuboxも登場しない。apuだのalixなんてのはまったく相手にもされていませんね。ここでもグローバル世界市場、巨大化したガリバーが全世界を席巻するという構図なのですかね(^^;;;(^^;;;。
もっとも、新しいRaspberryPiはいろいろ可能性があり、面白そうです。
例えば、「Windows 10 IoT Core for Raspberry Pi 2」というのがあります。これは多分WindowsServerベースの移植ですね。これを基にJPLAYのような音楽再生システムを構築すれば、WindowsServer + JPLAY を上回るものになる可能性がありそうです。ハードは安いし、DACとRaspberry Piをi2sで直結させれば、相当いい線いけると思います。誰かやらないかな。
本題に戻ります。最近、JPLAYというWindowsのソフトを発見。あまりの音の良さに驚嘆しました。このソフト、日本では話題にはなることはありますが、使い方に関して詳しい紹介をあまり見かけません。日本語で販売とサポートを取り扱うサイト(JPLAY日本語公式サイト)はあり、使い方の情報は提供されていますが、ソフト(JPLAY)に直接関連する情報に限定されているため、この情報だけで使えるようになるのは、マイクロソフトのOSとネットワーク関係の知識がある人に限定されます。そのため、素晴らしく音が良いのに、他のWindowsの普通(?)に音の良い音楽ソフト(JRiver、foobar、BugHeadなど)と比較して普及していないのは残念です。そこで、余計なお節介かもしれないが、このサイトでJPLAYの使い方を紹介することにしました。
ところで、僕はJPLAY日本語公式サイトのリンクからJPLAYの購入を申し込みしました。購入にはPAYPALを使う必要があります。この時、JPLAY日本サイトのPAYPALのリンク先はEUドメインの英語のサイトと同じと思っていました。申し込みの時に英語の住所名の記載を忘れたので、あわてて英文でPALPALの支払い連絡先にメールしたら、日本語で返事が返ってきてビックリ。まあ、僕の早とちりが悪いのですが。日本語対応のため日本専用の支払い先が指定されているのですね。
従って、PAYPALのアドレスをもっていれば、JPLAY日本語公式サイトから購入する方が楽に購入出来ますので、お勧めです。支払いをするとすぐに自分の名前入りの公式版のzipファイルが送られてきます。
JPLAY日本語公式サイトにはJPLAYのインストールと使い方の解説があります。英語版サイトより丁寧な解説がされていると思います。英語版は過去の積み重ねのためか、当たり前の情報は省略されているので、いきなりこちらから読むと戸惑います。しかし、英語版にしかない情報もあり、両方を読み比べながら使い方を探るということになります。
どちらのサイトも、マイクロソフトOSの使い方とか、ネットワークの設定の仕方など、JPLAYを動かすのに必須の知識に関しては、自分で調べてくれというスタンスです。
従って、僕のサイトではそのあたりから初めて、JPLAYをとりまく周辺の情報を中心に話を進めていきたいと思います。
さて本題に入る前に、今回、JPLAYを使ったシステムはWindowsで動くので、パソコン部屋のオーディオシステムを使って鳴らしています。どんなシステムかご紹介しておきます。
写真はパソコンとスピーカ以外のJPLAY接続に使っている全ての機器です。MytecのDACを除いてどれも旧製品で古道具屋に追い掛けられそうなシステムですが(^^;;;(^^;;;。
メーカ | 機種 | |
---|---|---|
DAC | Phasemation | HD7a-192 |
Mytec | 192DSD-DAC | |
AMP | AudioResearch | UNICO-Primo |
Speaker | EBTB | Terra |
- Phasemation HD7a-192
- 以前、この記事でご紹介したことがあります。僕がCDプレーヤを取っ払って、パソコンだけで音楽を聴くようになったのはこのハードのおかげです。それ以前にも高音質といわれるサウンドカードやUSB接続のDACをいろいろ試しましたが、CDプレーヤをパソコンに入れ換えるまではならなかった。このハードの音質は、これならCDは全てパソコンに取り込んで、おさらばしようという気にさせてくれるものでしたね。その後外付けのルビジウムクロックを追加して、使っています(ここを参照)。
- Mytec Srereo192DSD-DAC
- HD7a-192はDSD対応していないので、DSD再生専用に使っています。メインシステムのAitLaboのDACと同じ感じの解像度が高く明快な音がします。上に乗っているIntona社のUSBアイソレーター(これもそのうち紹介しますかね)とJPLAYのおかげでPCMもそれなりに聴ける音になり、愛用しています。
- AudioResearch UNICO-Primo
- プリアンプ部分に真空管が使われているプリメインアンプです。柔らかい音と繊細な空間表現が特徴です。真空管をムラード製に差し替えて使っています(ここに差し替えのレビュー)。このアンプは10年以上使い続けていますが、変える気になりません。
- EBTB Terra
- 僕の使っているオーディオ機器の中でも最古参の方だと思います。15年位。ブルガリア製。変わった形のスピーカです。ニアフィールドリスニング向けなので、パソコン部屋で活躍しています。小編成の室内楽や声などをとてもリアルに再生出来るのが特徴ですね。
右側、キーボードの後ろ、ルビジウムクロックの上に乗っている木目カバーの四角い箱はインタネットラジオです。以前にこの記事で紹介したことがあります。聴き疲れしないスピーカが上に付いていて、パソコンで作業をしている時のバックグラウンドミュージック用に重宝しています。ポーランドとかルーマニアなどのクラシック専門局がお勧め。言葉が分からないので余計な雑念なしに音楽を聴けます。
p.s. 直前の記事は一昨年12月に書いたのですが、アップロードし忘れていたものです。これも、そのままアップしておきます。
この演奏、素晴らしい内容だと思いますが、日本国内ではまったく無視されています。レコード芸術などでもとりあげられていないですね。JPLAY以上に国内と海外で知名度の違いがあります。リンク先のタワーレコードのCDの在り処はまだ存在していますが、販売中止となっています。海外では有名な団体なので、検索すれば出てくるのでないかと思います。興味をお持ちになった方は自力で対応して下さい。
(PC_Audio) 2016/02/13
ブノア・アレールの「ヨハネ受難曲」
ブノワ・アレール指揮、ラ・シャぺル・レナーヌ古楽合奏団が演奏するバッハの「ヨハネ受難曲」のCDを聴きました(もちろんリッピングした状態で)。この曲の解釈の革命といってよい程の出来です。素晴らしい演奏ですね。
ブノワ・アレール指揮、ラ・シャペル・レナーヌ古楽合奏団といってもなじみのない人が多いと思いますが、フランス、ストラスブールを拠点に活動している団体です。僕はこのCDで初めて名前を知りました。ストラスブールはアルザス地方の中心地ですが、フランスとドイツの中間地帯で、両方の文化が混在する地域のようです。この演奏もドイツ風のカッチリした部分とフランス風の柔らかい響きが共存しています。これが革命的解釈の演奏に見事にマッチしています。
バッハのヨハネ受難曲はマタイ受難曲と比較すると、平板な合唱(コラール)中心の曲という評価が一般的かと思います。「革命的解釈」と書いたのはこの演奏を聞くとその印象がまったく改められるからです。ヨハネはマタイと同じようにドラマチックで人間的な感情を巧みに描写した音楽であるということがよく分かる演奏です。
冒頭「主よ、わたしたちの主よ、あなたの栄光は」の低弦のビートのきいたリズムにビックリ。「まるでモダンジャズだね」と感嘆。このリズムにのって、各声部二人の合唱が透明度の高い響きで歌いだす。凄い緊張感です。「何、これ、ほんとにヨハネなの」という感想。
続くエヴァンジェリストを中心とするレシタチーボ部分、普通は通奏低音をオルガンで演奏するわけですが、この演奏では、曲想に合わせて、オルガンに、低音楽器、チェンバロなどを加えて、強化。これがとても効果的です。イエスキリストの死に至るドラマが、生き生きと描写される。エヴァンジェリストを歌うプレガルディエンもうつまいです。小編成の合唱との掛け合いも凄い迫力。
独唱部分は1726年の第二稿のものを使っています。従って、通常使われる第一稿のものはとはことなります。これもビックリですが、ドラマチックな演奏という観点では適切な判断ですね。クイケンの第一稿の演奏と比較して聴きましたが、劇的表現を重視するならこちらの方が正解だと思います。ヨハネの稿による違いについては、このサイトの記事がとても丁寧に説明しています。この演奏は第一曲目を除いては基本的には第二稿を使っているようです。
という次第で二時間の演奏をただただ感嘆しながら、一気に聴き通しました。21世紀の新しいバッハ解釈がここからはじまるという気がしました。
レオンハルト、ブリュッヘンが亡くなり、アルノンクールも時間の問題(^^;;;;。代わって、こういう新しい世代の演奏家(前回フィガロで初回したクルレンツィスもそうですね。あと、ミンコフスキーとか)が21世紀の革新的演奏スタイルを築き上げていくのでしょうね。
このCDの録音は抜群。i2s接続だと、生演奏以上にきれいに全ての音が聞き取れます。お勧めです。
amazonでは取り扱っていないようなので、タワーへリンクはこちら。
(review) 2014/12/19
クルレンツィスの「フィガロの結婚」
古楽器を使ったモーツアルトというと、珍しくはありませんが、このcdの演奏は凄いですね。この曲の革新性を全面的に明らかにした衝撃的な演奏です。ロココ趣味の優美な古典的作品が革命前夜の大胆な主張の現代的作品として生まれ変わります。
例えば、この曲、フィガロの「もう飛ぶまいぞ、この蝶々」とか、ケルビーノの「恋とはどんなものかしら」とか、スザンナと伯爵夫人の「手紙の二重唱」とか、誰でも知っている名曲がありますが、これらの曲がまったく違って、聞こえます。フィガロ「この蝶々」はずっと辛辣、刺激的。ケルビーノ「恋とは」はロココ風の甘ったるさがゼロ。「手紙の二重唱」はずっと深刻、緊張感いっぱい。というように。従来の演奏と比較すると、同じ曲とは思えない程、様変わりしています。声のヴィブラートをほとんど無くした演奏がこういう印象を一層強めますね。
今までチェンバロで演奏されていた通奏低音は、フォルテピアノに変えられて、レシタティーヴォの伴奏だけでなく、アリアでも即興のフレーズをつける。これがとても印象的で、ビックリです。モーツアルトがオーケストラピットに入って演奏しているという感じ。チェンバロの優雅典雅さからピアノフォルテの大胆華麗さに変わる。レシタティーヴォの印象が全く変わります。聴いていてハラハラドキドキ。凄いです。
ピッチは430㎐、ノンビィブラート、鋭い強弱法、歯切れのよいテンポ などの古楽奏法はこういう革新性を強めるために極めて有効に使われています。この曲は二幕、三幕、四幕 それぞれ長いフィナーレで素晴らしいアンサンブルが続くのですが、これが面白くて、全く退屈しない。例えばベームの演奏なかんだと、こういうところが優美なのだけど、単調なので、あきてくるのですよね(ベームファンの保守頑迷な方々にはごめんなさいですが^^;;;)。
このcd、録音も素晴らしいです。定位が明確で、音像がしっかりした録音で、声や楽器のニュアンスの細部をとても良く聞き取れる録音です。生の演奏でもこれだけクリアに聞き取ることは不可能だろうから、この録音があって、この演奏が成り立つといえるかもしれませんね。i2s接続 aitlabo dacで聞くと目の前で演奏されているという雰囲気ですね。
21世紀、モーツアルトの新しい演奏スタイルがここからはじまるのかなと思います。
(review) 2014/10/26
TinyCore linux on apu1(5)
まず、nasを接続。
tce s-> nfs -> q -> i -> q tce s-> cifs -> 2 -> q -> i -> q
cifsはこれだけで動くようになりますが、nfsは次のコマンドで起動する必要があります。
sudo /usr/local/etc/init.d/nfs-client start
「俺はnfsだけ」という方はcifs関連の操作は省略可能です(逆もその通り)。
ついでに、これもやっておきます。
nano /opt/bootlocal.sh /usr/local/etc/init.d/nfs-client start
mountの仕方ですが、fstabを使い、mount -aでmountは出来ます。問題はブート起動でfstabを使ったマウントがnasのオープンより先に行われてしまうこと。結果的にmountはエラーとなってしまいます。仕方がないので、bootlocal.shでmountすることにします。
nano /opt/bootlocal.sh mkdir /music mount -t nfs -o rsize=8192,wsize=4096 192.168.0.36:/mnt/sda/CD /music
これで上手くいきそうなものですが、残念ながらエラーになります。bootlocal.shのはしるタイミングが早過ぎて、ネットワークの設定前になってしまうためのようです。仕方がないので時間稼ぎの呪文を唱える。
nano /opt/bootlocal.sh mkdir /music /home/tc/start.sh nano /home/tc/start.sh sudo sleep 5 sudo mount -t nfs -o rsize=8192,wsize=4096 192.168.0.36:/mnt/sda/CD /music 保存して、終了 sudo chmod 777 /home/tc/start.sh
スリープする時間はネットワーク構成次第ですので、適当に調整して下さい。
次にalsaをインストールします。tceでやると選択メニューが出力されるので、コマンドラインで選択します。
tce-load -wi alsa-config.tcz alsa-plugins-dev.tcz alsaconf.tcz alsa-dev.tcz
mpdをインストールします。これもコマンドラインで行った方が簡単でしょう。
tce-load -wi mpd-minimal
mpd-minimalという名前のわりには、機能豊富だと思います。刈り込みたければ、自力でビルドすればいいです。
tc@box:~$ mpd -V Music Player Daemon 0.18.7 Copyright (C) 2003-2007 Warren DukesCopyright (C) 2008-2013 Max Kellermann This is free software; see the source for copying conditions. There is NO warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Decoders plugins: [mad] mp3 mp2 [mpg123] mp3 [vorbis] ogg oga [oggflac] ogg oga [flac] flac [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2 [audiofile] wav au aiff aif [dsdiff] dff [dsf] dsf [faad] aac [wavpack] wv [pcm] Output plugins: null fifo alsa ao oss httpd recorder Encoder plugins: null vorbis lame wave flac Input plugins: file curl cdio_paranoia Playlist plugins: extm3u m3u xspf pls asx rss cue cue Protocols: file:// http:// https:// cdda://
あと、これはお好みで。
tce-load -wi mpdclient ncmpc
システムのサイズは次の通り。
tc@box:~$ sudo du -csh / 51.9M / 51.9M total tc@box:~$ sudo du -csh /mnt/sdc2 14.4M /mnt/sdc2 14.4M total
次にmpdの設定。いろいろやり方はあると思いますが、僕はメンテが楽なので、/home/tc(ホームディレクトリ)に関連ファイルを集めることにしました。
cp /usr/local/etc/mpd.conf.sample ./mpd.conf nano ./mpd.conf music_directory "/home/tc/.mpd/music" playlist_directory "/home/tc/.mpd/playlists" db_file "/home/tc/.mpd/database" log_file "/home/tc/.mpd/log" pid_file "/home/tc/.mpd/pid" state_file "/home/tc/.mpd/state" sticker_file "/home/tc/.mpd/sticker.sql" port "6600" follow_outside_symlinks "yes" follow_inside_symlinks "yes" zeroconf_enabled "yes" audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional } audio_buffer_size "4096" buffer_before_play "95%" filesystem_charset "UTF-8" オリジナルの内容を前提に必須項目をコメントイン。ディレクトリは一意に指定。buffer_before_playはチューニング値。 mkdir ./.mpd mkdir ./.mpd/music ln -s /music/ ./.mpd/music/ 最後にmpdを起動 mpd ./mpd.conf
mpd関連の設定ファイルは全てホームディレクトリに起きます。ちなみに、mpdの在り処は
tc@box:~$ which mpd /usr/local/bin/mpd
最後にデータベース更新し、設定内容を保存しておきます。
nano /home/tc/start.sh 以下を追加 sudo sleep 1 sudo mpd ./mpd.conf 保存して終了。 バックアップ filetool.sh -b
今回弄った内容は全てホームディレクトリか/optですので、/opt/.filetool.lstの編集は不要です。
これでmpdのインストールは完了しました。次回はusbに作成したシステムをssdに移し起動させる方法です。
(PC_Audio) 2014/10/20
TinyCore linux on apu1(4)
TinyCoreのヘッドレス化の話の前に前回書き忘れたことを補足します。lanネットワークの接続について。
TinyCoreはdhcp接続がディフォルトです。接続されたipアドレスはifconfigで知ることが出来ます。
debianやarchの場合ネットワーク関連の設定は/etc/network/interfacesと/etc/hosts、/etc/hostnameで設定出来ますが、TinyCoreの場合異なるようです。ホスト名による接続ですが、avahiをインストールしてみましたが、上手くいきません。ipアドレスを固定化するのも同様にできません。但し、ipアドレスの固定化についてはコマンドを使い強制的に設定するという方法がとれるようです。
情報はここ(piCorePlayer:IPアドレスを固定する)にあります。サイトの作者に感謝です。詳しくはリンク先を参照して頂くとして、備忘用にbootlocal.shに追加した内容を残しておきます。
nano /opt/bootlocal.sh pkill udhcpc ifconfig eth0 192.168.0.9 netmask 255.255.255.0 broadcast 192.168.0.255 up route add default gw 192.168.0.1 echo nameserver 192.168.0.1 > /etc/resolv.conf
ネットワーク関連の他のコマンド(sshやnfsのオープン)を実行する前に上記コマンドを実行する必要があります。リンク先のようにコマンドを独立したスクリプトにして呼び出す方法もとれると思います。
さて補足はここまで。本題に戻ります。
TinyCoreのシリアルコンソールの設定に関しての情報リンクです。
全てTinyCoreの掲示板の記事です。この掲示板は情報の宝庫で大抵の問題はここを検索することで、解決します。
上記リンク先の内容を順番に実行します。
ブートの設定ファイルにシリアルを指定
これについては過去の記事で取り扱っていますので、ここではextlinuxの場合。
ブートパーティションをマウント(環境によっては不要、dfで確認) sudo mount /dev/sdd1 /mnt/sdd1 extlinux.confを編集 最初に追加 SERIAL 0 115200 APPEND行に追加 console=ttyS0,115200n8 ついでに hpetも設定 clocksource=hpet
securettyの編集
ttyS0を有効にします。コメントインするだけです。
sudo nano /etc/securetty # For people with serial port consoles ttyS0
autologinの設定
38400 tty1 を 115200 ttyS0 に変更します。
sudo nano /sbin/autologin exec /sbin/getty 115200 ttyS0 # exec /sbin/getty 38400 tty1
inittabの設定
inittabも 115200 ttyS0 に変更します。
sudo nano /etc/inittab ttyS0::respawn:/sbin/getty -nl /sbin/autologin 115200 ttyS0 #tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1
オートログインの停止
これをやらないと、busyBox側gettyが走りシリアルコンソールがだんまりコン状態となる。ssh接続で使えるので問題はないのですが、対応した方がよいでしょう。
nano /opt/bootsync.sh echo "booting" > /etc/sysconfig/noautologin
ここでバックアップ。
nano /opt/.filetool.lst opt home usr/local/etc/ etc/shadow etc/passwd etc/fstab etc/securetty etc/inittab sbin/autologin filetool.sh -b tc@box:~$ sudo du -csh / 18.8M / 18.8M total tc@box:~$ sudo du -csh /mnt/sdc2 2.9M /mnt/sdc2 2.9M total
これでヘッドレス、シリアルコンソールを使ってログインできるシステムが作成できました。
次回はいよいよmpdシステムをインストールします。
10/12 追加
ipアドレス固定化のリンク先のpiCorePlayerというのは面白そうですね。
TinyCoreとSqueezelite playerを組み合わせて、高音質化を狙ったパッケージです。Raspberry pi用ですが、i2s接続対応しているようだからIrberryやHifiberryをお持ちの方にはお勧めかもしれません。
ご本家はこちらです。
(PC_Audio) 2014/10/11
TinyCore linux on apu1(3)
ここからははいくつかのやり方があるかと思いますが、僕の方法をご紹介します。ヘッドレス化、基本アプリのインストール、mpd関連アプリのインストールなど大部分は開発環境側(空いているx86が必要です)で行い、最後にusbメモリをapu1に差し替え、mpd環境の設定をするという方法です。
USBメモリにインストールしたシステムはmicro-coreという9MB(!)のカーネルの核の部分だけです。これを空いたx86マシンに差して起動します。usbメモリからの起動方法は機種によってさまざまですので、ご自身で調べて対応して下さい。
起動が完了すると自動的にログインされます。
login as: tc (- //\ Core is distributed with ABSOLUTELY NO WARRANTY. v_/_ www.tinycorelinux.com tc@box:~$ tc@box:~$ sudo du -csh / 10.1M / 10.1M total tc@box:~$ sudo du -csh /mnt/sdd2 16.0K /mnt/sdd2 16.0K total
こんな感じです。ユーザ名 tc、パスワード無しでログインされます。rootでログインすることはできません。また、sshログインするためには、パスワードを入力する必要がありますが、パスワードはそれなりの強度(数字、文字、特殊文字を組あわて、8文字以上)が要求されますので、ご注意ください。とりあえず、sshで作業をしたいので、パスワードを設定します。
passwd
あと、rootでログインしているわけではないので、大半の操作はsudo付きでやらないと駄目です。このあたりの真面目さはubuntuに近いです。
nanoとopensshをインストールします。nanoは「俺はviが好きだ」という変態(^^;;;な方を除いて必須です。
TinyCoreですが、パッケージのインストールはtce(TinyCore Extensionの略称ですかね)というコマンドで行います。コマンドラインで全部指定するという方法もとれますが、メニュー方式でパッケージを捜し、見つけたもの中から必要なものをインストールという方法をとれますので、操作は楽です。「->」は対応するメニューに合わせたキー操作の内容を示します。コマンドラインで無いというのは、こういう時は逆に説明しづらいですね。まあ実際に操作してみれば簡単に分かると思います。
tce s-> nano -> i -> q tce s-> openssh -> i -> q
次にsshが動くようにシステムを設定。
sudo cp /usr/local/etc/ssh/sshd_config.example /usr/local/etc/ssh/sshd_config sudo /usr/local/etc/init.d/openssh start
これでsshが動くようになりました。ここからはssh接続で作業した方が楽だと思います。
さて、次にusbメモリをヘッドレスに変える方法の解説です。しかし、その前に、TinyCoreのrootfs部分のバックアップ方法に関して若干の説明をする必要があります。
前回書いたようにTinyCoreのrootfs部分は/homeと/optを除き、ram動作しますので、writeしてもメモリの内容が変更されるだけで、再起動すると内容は消えてしまいます。その意味ではリードオンリー状態です。オンライン中に電源ボタンで電源を落すと、内容は消えます。
このro状態をrw可能に変更するツールがfiletoolというプログラムです。使い方は
filetool -b # 今すぐ環境をファイルへ保存(バックアップ) filetool -r # 保存していた環境を復元
です。このfiletoolで保存するファイル、ディレクトリは /opt/.filetool.lst で設定できます。ちなみに初期状態の /opt/.filetool.lst の内容は
nano /opt/.filetool.lst opt home
となっています。ところで、先程「/homeと/optを除き」と書きましたが、/homeと/optもこの仕組みを利用して保存されていることが分かります。ここに、保存するrootfsのファイル名なり、ディレクトリ名を記述すればいいです。
その前に起動時のsshの自動スタートも入れておいた方がいいでしょう。debianのrc.localに相当するTinyCoreのファイルは /opt/bootlocal.sh です。以下の編集をします。
nano /opt/bootlocal.sh /usr/local/etc/init.d/openssh start
次に、rootfsのどのファイルを保存すればよいか確認します。操作したのはpasswdとnano、opensshのインストールだけですから、それらに関連する設定ファイルの変更ということになります(tceでインストールされたバッケージは/mnt/sdx2/optionalに保存され、/mnt/sdx2/onboot.lstで管理されています)。
nano /opt/.filetool.lst opt home etc/shadow etc/passwd usr/local/etc/ssh/sshd_config
保存します。
filetool.sh -b
これでちゃんと保存されたか、rebootして確認してみます。
sudo reboot
再起動後、sshでログインできれば、okです。ちなみに
tc@box:~$ df Filesystem Size Used Available Use% Mounted on rootfs 2.3G 10.5M 2.3G 0% / tmpfs 1.3G 0 1.3G 0% /dev/shm /dev/sdd2 1.8G 2.9M 1.8G 0% /mnt/sdd2 /dev/loop0 12.0K 12.0K 0 100% /tmp/tcloop/ncurses-common /dev/loop1 148.0K 148.0K 0 100% /tmp/tcloop/ncurses /dev/loop2 88.0K 88.0K 0 100% /tmp/tcloop/nano /dev/loop3 316.0K 316.0K 0 100% /tmp/tcloop/gcc_libs /dev/loop4 1.4M 1.4M 0 100% /tmp/tcloop/openssl-1.0.0 /dev/loop5 876.0K 876.0K 0 100% /tmp/tcloop/openssh tc@box:~$ sudo du -csh / 18.9M / 18.9M total tc@box:~$ sudo du -csh /mnt/sdd2 2.9M /mnt/sdd2 2.9M total tc@box:~$ nano /mnt/sdd2/tce/onboot.lst nano.tcz openssh.tcz
となっています。さすがに小さいですね。
次はヘッドレス対応の為の設定ですが、次回に。
(PC_Audio) 2014/10/04
TinyCore linux on apu1(2)
Live CDイメージを使えば、TinyCore linux のインストールは簡単です。空いているx86マシンか仮想マシンが必要です。ここではVmwarePlayerを使って、usbメモリにインストールします。
x86マシンの場合はイメージをCDに焼く必要がありますが、VmwarePlayerを使えば、イメージファイルから直接起動できます。設定の仕方は以前書いたことがあるので、このあたりを参考にして下さい。
イメージのダウンロード先はご本家のダウンロードのページです。リンク先からインストールエクステンション有りのCorePlusというイメージをダウンロードします。
Live CDイメージから起動するとメニュー画面が表示されます。
「Boot Core withX/GUI (TinyCore) + Instllation Extension」というメニューを選んで下さい。
これがTinyCore GUIのメニュー画面です。画面中央下にアイコンが並んでいます。一番右端の丸い土星みたいなやつ(Instllation Extension)をクリック。
インストール開始画面が表示されます。USB-ZIPを選択して、インストール先のUSBメモリのデバイス名を指定します(この場合はsda)。デバイス名を指定すると、下の矢印ボタンが使えるようになるので右側(次へ)をクリック。
ブートオプションを設定する画面に変わります。ここでいろいろTinyCoreの動作条件を設定出来ますが、何も中味を知らない人には「豚に真珠」(^^;;;。何も入力しないで、次へ。
Install TypeとExtensionを指定する画面になります。Install TypeにGUIは不要ですので、Core Onlyを指定します。Extensionも基本的には全部不要ですが、NoneUS Keyboardは使えるようにした方がいいかもしれません。但し、ここで設定しただけで NoneUS Keyboard になるわけでは無いようです。次に
これがインストールを開始する画面です。Proceedボタンを押せばインストールが開始されます。インストールの完了はメッセージで通知されます。これでめでたくTinyCore linuxの実行用usbメモリが作成されました。さinyCoreの終了は最初の画面の左端のアイコンをクリックすればいいです。
どうです。GUIだけで完結。簡単でしょ。但し、これだけではapu1で実行できないので、ヘッドレスにする必要があります。続きは次回。
(PC_Audio) 2014/09/27
TinyCore linux on apu1(1)
TinyCore linuxというのは名前の通り、最小限の核となるソフトウェアだけで構成された超軽量のlinuxディストリビューションです。WikiPediaの情報はこちら、ご本家のサイトはこちらです。
さて、本論に入る前に少し脱線します。
何故TinyCore linuxなのか。極小のシンプルな構成により、音をよく出来る可能性が高いからです。
一般的に音楽再生用のソフトウェアは構成がシンプルになればなるほど、再生の流れがスムーズになり、音には良いはずです。Windowsを使わずにlinuxを使うのはそのためですし、linuxでもGUIは取り外し、CUIだけでソフトウェアを構成するのもそれが理由です。
次に説明の都合の為に単純化します。linux-CUI構成のソフトウェアの構成要素は三つ。カーネル、ディストリビューション、音楽再生用のパッケージの三つです。カーネルというのはブート直後に起動されるvmlinuxによる初期化プロセスとinitrdによるrootfsを準備作業のことです。ディストリビューションはカーネルによる初期化が終わった後起動され、rootfsの作成、アプリケーションの起動などを行います。音楽再生用のパッケージ(mpdのことです)はこのアプリケーションの起動処理の中でデーモンとして起動されます。いちいち解説すると、疲れ果てるので(^^;;;、テクニカルタームを多用しています。意味については、リンク先を参照して下さい。
何でこのような一般の人には縁のないブートプロセスの中のlinuxの構成要素の説明をするかというと、この三つの要素がソフトウェアのチューニング作業の基本要素だからです。 具体的には
- カーネル
- 音の良いカーネルを選択。音を良くするための構成(例えばhpetを選択)と必要最小限にビルドすることによりチューニング。これはmenuconfigで相当レベル弄れますので、いろいろ試すことができます。
- ディストリビューション
- 音の良いディストリビューションを選択。必要最小限に構成することによりチューニング。ディストリビューションを決めると、あと出来るのは、必要最小限に構成とは使用するネットワーク機能を最小限にする、mpdと関連するモジュールの切り刻む位で選択の余地はあまりありません。
- 音楽再生用のパッケージ
- mpdの他にはSqueezeBoxやVortexBoxなどが選択できますが、プレーヤ部分はmpdと同じということになり、選択の余地があまりありません(シンプルなプレーヤだけで構成するという手はありますが、操作性が極端に悪くなるので却下)。mpdを必要最小限にビルドすることによりチューニングすることになります。mpdのバージョンの選択でかなり大きく音は変わりますので、いろいろ試せます。
となります。
僕がTinyCoreに興味をもったのは、旧cuboxのイメージを公開していたころ、掲示板でロシアのオーディオマニアから「TinyCore linuxがいいよ。VoyageMPDと比較しても、圧倒的にいい音がする。cubox用に移植してみたらどうか」という書き込みを頂戴したからです。調べてみたら、随分風変わりなディストリビューションで、「何がなんだかサッパリ分からん」という感想。移植は断念しました。しかし、「超軽量、超シンプルという可能性は大きいな」と思い、気になっていました。
それで、apu1を使いはじめて、早速試してみました。案外簡単に出来ますね。素晴らしいです。これは十分に音楽用につかえそうです。TinuCoreはx86アーキ専用と思っていましたが、ftpサイトに行ってみたら、RaspberryPI用のなんてのがあるのですね。ビックリ。
TinyCore linux 使うためのポイントはこのディストリビューションのコンセプトを理解することです。ご本家のこのページ(Core Concept)に丁寧に解説されています。要熟読です。特に下図は内容を理解する上で必見だと思います(TinyCoreはGPLで、引用は問題ないと思いますので、直接貼り付けます)。
図を参考に簡単に紹介すると
となります。誤解を恐れず、簡略化すると、TinyCoreとはディスクにインストール/保存されたソフトやデータをメモリ上に展開し、オンメモリで実行する仕組みということになります。技術的な手法を箇条書きすると、
- busybox(ここを参照)によるコンパクトで軽い(tiny)rootfs
- rootfsを全てinitrd化しram展開
- vmlinuxとinitrdのみのカーネル(core)によるオンメモリ動作
- ブートパーティションを隠蔽化(unmount)し、リードオンリーシステムを実現
- アプリケーションはループバック・デバイスとして動作、オンメモリ化
- mydata.tgzにより/homeと/optディレクトリを保存(可能)
となります。
さて、以上紹介した技法はディストリビューションのチューニングに最適なのですよね。debianやarchはこのような技法をとっていませんので、minimalにしても、同じことはできません。選択の余地があまりなかったディストビューションのチューニングに大きな可能性をもたらします。
以上がTinyCoreを試してみようと思った理由でした。
さて、これはまよったのですが、書いておきます。
上記の箇条書きした手法の一番目から三番目はlightMPDと同じです。また、基本的にオンメモリで動作するという点も共通です。つまり両者はほぼ同じようなコンセプトで構成されているということになります。lightMPDの作者はTinyCoreから影響を受けたことを否定されていますので、これは両者がシステムをシンプルに構成するための組み込みシステム(組み込みシステムについてはこことここを参照)の設計手法を参考にして、開発されたということでしょう。
組み込みシステムはハードの制約よりコンパクトに構成され、軽量に動作することが求められます。TinyCoreとlightMPDのどちらもコンパクト化、軽量化をとことん追求するため、組み込みシステムの設計手法を参考にして作られたのでしょう。そういう意味で両者はたまたま共通のコンセプトになったということだと思います。
このコンパクト、軽量ですが、音を良くするための必須要件です。TinyCoreはこれがディストビューションレベルで保証されているので、micro-core部分のみを使って、音楽専用システムにすることにより、音を良くすることが出来る筈です。
大分、長くなったので、次回以降その方法をご紹介することにします。
ところで、ここから先は冗談(^^;;;(^^;;;。
TinyCoreとlightMPDは同じような傾向の音ですね。解像度の高い、クリアな音です。音像型でなく音場型というのも共通です。両者共にやりすぎると、線の細い、貧弱な音になるのも共通ですね(lightMPDの場合、旧cubox対応した版などはこういう傾向があったと思います)。
lightMPDのapu1版は安定しています。インストールはusbメモリにイメージを書き込むだけ。簡単な初期設定で音は鳴りますので、お勧めです。
それでは、lightMPDで十分なのに、何故TinyCoreを使うか。それは「自由への遁走」(^^;;;のためです(念のため書いておくと、フロムの代表作のタイトルを間違えたわけじゃありませんよ)。
linuxを使った組み込みシステムを改造し、直接linuxを見える(使える)ようにすることを「Jail Break」といいます。例えば、android端末を改造し、linuxマシンにして、組み込みの世界から「脱獄」するわけです。もちろん大部分のandroidユーザは何もしないで、牢獄の平和(Peace In Jail)を楽しんでいるわけで、これをとやかくいうことはありません。しかし、「外に自由な世界があり、何でもできるのに、俺は牢屋に閉じ込められるのは嫌だ。好きなことをやってみたい」という方はいらっしゃるでしょう。この記事はそのためですよ。
cdやsacdのリッピングなども広義には「Jail Break」の一種ですね。これが出来無ければ、PC Audioのこれだけの発展はなかったでしょうね。
(PC_Audio) 2014/09/23
チューニングあれこれ
「64Bitにしたらどうか」とか「強制的にプログラムの動作するコア(cpu)を固定して動かしたらどうか(CPU affinity)」とか、カーネルに関連するチューニングがはやっているようです。ここでは掲示板の情報をベースにチューニングに関して、他ではあまりかかれていないことを落ち穂拾い式に解説します。
io scheduler の設定
内容は掲示板でtwlさんに教えてもらった情報によります。twlさんに感謝です。
カーネルビルドによるチューニングやった人には常識ですが、io scheduler に何を選ぶかで、音は変わります(io scheduler って何という方はこちらを参照して下さい)。3.xの場合、cfq(これがディフォルトのようです)、deadline、noneの三つが選択可能です。話を単純化すると、ioスケジューリングにおいて、cfqというのは効率を優先する仕組み、deadlineはスムーズさを優先する仕組みです。従って、音はcfq->鮮度重視、deadline->雰囲気重視、none->cfqとdeadlineの中間 となります(超大雑把な表現で、環境により変わります。簡単に変更できますので、実際に試してみて下さい)。
今まで、この変更はカーネルをビルドし直さないと駄目だと勘違いしていたのですが、twlさんに簡単に変更する方法を教えて頂きました。
自分のシステムでどのスケジューラが設定されているかチェック。
root@voyage:~# cat /sys/block/sda/queue/scheduler noop deadline [cfq]
設定内容を変更
root@voyage:~# echo deadline > /sys/block/sda/queue/scheduler root@voyage:~# cat /sys/block/sda/queue/scheduler noop [deadline] cfq
という具合です。sdaの部分は僕のapu1環境の場合ですので適当に変更して下さい。bootに使うディスクのデバイス名です。
但し、設定を変更出来るためには、カーネルのビルドで io scheduler の cfq と deadline が含まれている必要があります。
menuconfigで Enable the block layer -> IO Schedulers が画面のようになっていれば問題ありません。
9/15追記
起動時点で指定したい場合はブートオプションのelevatorを使えば良いようです。twlさんのこの書き込みを参照して下さい。
音の良いmpd
これも自分でmpdのビルドをする人にはよく知られている内容です。
mpdのdsd対応の責任者のlintweakerさんが、公式版とは別に公開しているソースがあります。これが音が良いので、お勧めです。mpdをビルドしないといけないというハードルはありますが、出てくる音は素晴らしいですよ。
関係はありませんが、bbbのi2s対応するbotic版のmpdもlintweakerさんが対応されているようです。これも、とてもクリアな音で、いいですね。
mpdのビルド方法については、このサイトに記事がありますので、そちら(debianだとここ、archだとここ)を参照して下さい。「サル」以前の記事はちょっと古いので、読み替える必要があります。
Preemptionとrt優先度
この件は、以前、掲示板に書き込みました。
VoyageMPDは0.9.xからrtoptパッチがかけられています。このパッチはrtカーネルのためのものです。VoyageMPDはrtカーネルではありません。従って、パッチをかける意味がないように見えます。しかし、カーネルの動作モードがpreemptであれば、ソフトプロセス間での優先度の指定にはなりますので、適用したということでしょうかね。
Preemption
preemptとは何かについて。preemptionというタームの専門的な意味についてはWikiPediaの解説を参照して下さい。例によって、乱暴に要約すると、これは io scheduler の os版です。プログラムを効率よくかつスムーズに動かすための管理の仕組みとなります。
カーネル 3.x では、Processor type and features -> 次の画面から選択します。
ご覧のように五つのモードが選べます。
- No Forced Preemption (Server)
- Voluntary Kernel Preemption (Desktop)
- Preemptible Kernel (Low-Latency Desktop)
- Preemptible Kernel (Basic RT)
- Fully Preemptible Kernel (RT)
上から順に方が効率重視、下から順にスムーズさを重視。となります。
ハードにもよりますが、この選択はかなり音に影響します。特に上の二つと下の三つのは違いが大きく、上二つはかなり荒っぽい音で音楽向きではありません。
下三つの中で、Basic RT というのは RT のデバッグ用モードなので、通常は指定しません。無視してかまいません。3番目の単なる Preemptible と最後の Fully Preemptible(RT) の違いですが、Fully Preemptible はハード処理を行うプロセスまでプリエンプティブになっているという点です。
これは両刃の剣で、上手く使えば効果は大きいですが、下手をするととんでない問題を抱える可能性があります。音楽の再生では、設定次第で素晴らしい音にもノイズだらけの音にもなる可能性があるということです。この点で、3番目の単なる Preemptible の方が問題を起こす可能性は低くなり、使いやすいです。VoyageMPDがカーネルをrt化するのを止めたのはこの理由だと思います(確か初期の0.6のころはrtカーネルでした)。
rtカーネルですが、apu1ではハードがマルチコアになった為か、効果は薄くなったという気がします。僕の環境では単なるPreemptibleと差はほとんど無いです。となるとトラブルが発生しやすいrtより、Preemptibleを使うという選択もありだと思います。
rt優先度
それでもrt化し、最高レベルを目指すというのなら、ハードの優先度も正しく設定しましょう。やり方は簡単で /etc/rc.local に以下の行を追加(exit文の前に入れて下さい)。
nano /etc/rc.local ps -eLo pid,lwp,rtprio,priority,cmd | grep "irq\/17-ehci_hcd"| sed -e "s/^ \([0-9][0-9]*\) .*/chrt -f -p 52 \1/" > hw_prio sh ./hw_prio chrt -f -p 53 `pgrep irq/40-eth0` #chrt -f -p 48 `pgrep cifsd`
一行目の「-p 52」という部分が優先度の指定なので、必要ならこの数字を変えて下さい。3行目はcifsを使っているなら、コメントイン。
スクリプトの内容についてはこの書き込みとリンク先のこの書き込みを参照して下さい。同じ名前の割り込みがあるので、両方共対応させているというのがポイントです。
Voyage MPD はrtoptパッチがかかっているので、mpdの優先度の設定は楽です。/etc/mpd.confに以下の行を追加して下さい。
nano /etc/mpd.conf realtime_optionを追加 realtime_option { memlock "yes" stack_reserve "4096" heap_reserve "10240" main_priority "OTHER:0" player_priority "FIFO:47" decoder_priority "FIFO:46" update_priority "OTHER:0" } audio_outputに以下の行を追加 priority "FIFO:45"
尚、rt処理とプロセスの優先度についてはこの記事とそのリンク先を参考にして下さい。
シングルコアでの動作
システムは単純なほどスムーズに動作するという考え方で、システム全体をシングルコアで動かしみようということです。
やり方は簡単で、ブートオプションで maxcpus=1 を指定すればいいです。効果の程はよく分かりません(^^;;;。
hpetの設定
これは常識に近いですね。効果はあるので、お勧めです。
利用可能なクロックの確認
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
現用クロックの確認
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
となります。設定にはブート設定ファイルの変更が必要です。
grubの場合
nano /boot/grub/menu.lst (from) APPEND console=ttyS0,115200 root=UUID=xxxx rw ( to ) APPEND console=ttyS0,115200 root=UUID=xxxx rw clocksource=hpet
syslinuxの場合
nano /boot/syslinux/syslinux.cfg (from) kernel /vmlinuz root=LABEL=ROOT_FS ( to ) kernel /vmlinuz root=LABEL=ROOT_FS clocksource=hpet
となります。
NASを直結
syuさんが掲示板に紹介された手法です。nasとmpdサーバを直結し、lan上を流れる不要なパケットによる悪影響を断ち切ろうというもの。syuさんに感謝です。
ハードを1ランク上のものにレベルアップした位の効果があるので、お勧めです。ただ、nasを自作する必要があり、理想的にはnas用のapu1とmpdサーバ用のapu1が必要になりますので、ハードルは高いです。
やり方を紹介しだすと、この記事2回分位になりそうなので省略。syuさんが丁寧に解説されていますので、リンク先をご覧ください。syuさん作のapu1をサーバとして動作させるカーネルもアップされています。
あと、これを試していて分かったのですが、apu1を使ったnasは音がいいですね。cuboxやsheevaとの比較ですが、断然apu1の方が音がいいです。解像度が変わります。apu1はもともとルータやnasなどの素材として開発されたものですから、nasに向いているということなのですかね。
I2S接続
これが究極のスーパーチューニングだろうと思っています。
内容についてはこのサイトの記事で書き込みをしてきたので、そちらを参照して下さい。また掲示板に情報は山ほどあります。
i2s接続可能なdacが必要で、接続には専門的なハードの知識が必要なので、ハードルはとても高いです。僕はハードの知識はサッパリなので、掲示板で皆様に教えて頂き、何とかなりました。
I2S接続の最大の課題はI2S接続を標準とするハードがないということです。もともとハード内部での接続仕様ですから標準がないのですよね。リンク先にI2S接続可能なキットをいろいろ紹介していますが、紹介し忘れた主要なキットについて書いておきます。
- Buffalo III( Twisted Pear Audio)
- 米国マサチューセッツ州のガレージメーカ(Twisted Pear Audio)が配布しているもの。TPAの代表者はdiyAudioの掲示板でI2S接続に関して積極的に支援していまので、このハードがI2S接続の本命だと思います。Buffalo III dacは、基板を重ねて配置するなど、もともとI2Sを前提にした設計になっているようですね。基板と部品のみで構成されるキットですので、ケースの調達、組み立てなどは自前で行う必要があり、ある程度のハード知識のある人が前提になります。
- Aitlabo dac
- 僕はこれを使っています。こちらは日本のガレージ。パソコンと繫ぐ場合、ddc基板とdacはI2Sで接続することになっていますので、それを利用して、パソコンと簡単にI2S接続できます。基板は組み立て済、ケースもありますので、比較的簡単に組み立てられる筈です。ケースはかなり大きいものが使われていますのでbbb位なら楽に内蔵できます。
- 美武クリエイト dac
- こちらも日本のガレージ。上記二社との相違点はdacチップがバーブラウン社の PCM1794 である点です(上記二社はES9018S)。基板は組み立て済みですが、ケースなどは自分で用意する必要があります。
こうして並べるとガレージメーカばかりですね。まあ、実験的な内容なので、仕方がないと思います。
64Bitカーネル
lightMPDで対応しているので、他のディストりビューションだとどうだろうと、Arch Linux 64Bit版を試してみました。
なかなか効果的ですね。解像度があがり、透明感もアップ。素晴らしいです。
ただし、カーネルをカリカリにチューニングすると逆効果なようです。オリジナルのコンフィグをベースにチューニングし、軽くしてみたのですが、貧弱な音になり、使えませんね。lightMPDの64Bit版がパッとしないのも同じ理由ですかね。
CPU affinity
lightMPDで指定可能なパラメータで、強制的にプログラム(プロセス)の動作するコア(cpu)を固定して動かしてみようというものです。他のディストリビューションでも、tasksetコマンドを使えば、設定可能です。
いろいろやってみましたが、効果の程はunknownです。
以上、音に対する感想は僕の環境で、僕の耳での判断ですので、ご了解を。
(PC_Audio) 2014/09/13
arch linux on apu1(3)
ここから先は、x86アーキとarmアーキという違いはありますが、以前「サルでも作れる MPD on Arch Linux」で書いた内容と同じです。という訳で相違点を中心に説明します。
mpdシステムを作成するために必要なパッケージのインストール。これは「サル」と同じですね。
pacman -Syy pacman -S cifs-utils nfs-utils ntfs-3g pacman -S alsa-plugins alsa-utils alsaplayer pacman -S mpd mpc ncmpc
これで、環境設定すればmpdは起動できるようになります。最新版はカーネルが3.16.1.1、mpdが0.18.12ですから、さすがローリングリリースほとんど最新です。このまま使えそう。
これで終わりにしていいのですが、ちょっと脱線。上記パッケージのインストール時に次のようなエラーが発生。
error: PackageName: signature from "User" is invalid error: failed to commit transaction (invalid or corrupted package (PGP signature)) Errors occured, no packages were upgraded.
「これ、なんじゃいな」と、調べたら、
Warning: Pacman-key は時刻を使っているので、システムクロックが間違っている場合、以下のエラーが発生します
ということが分かりました。情報はこちら。apu1のクロックがちゃんと設定されていないとこうなるということです。解決策は時間をあわせること。
date --set="2014-09-01 19:50"
上記時刻をハードに設定するには、archの場合
hwclock -w
とする必要があるようです。あと、ntpを使う場合は
pacman -S ntp ntpdate time.nist.gov
となります。
mpdのビルドは基本的にはarm or voyageと同じですが、v0.17 の場合は以下のバッチが必要です。
archでmpdビルド時のパッチ sed 's:AVCODEC_MAX_AUDIO_FRAME_SIZE:192000:g' -i src/decoder/ffmpeg_decoder_plugin.c
ビルドするためのパッケージも「サル」と同じです。
pacman -S git make autoconf automake libtool pkg-config patch
ただし、make autoconf automake libtool pkg-config patch はreinstallになるので不要(要するにgitだけが必要ということです)。
次に、カーネルのビルド。参考にした情報はこちら。開発環境を使わず、apu1実機で3.12.26rt40カーネル(これが現時点の最新版)をビルトする場合です。
pacman -S git wget bc wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.12.26.tar.xz wget ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/3.12/patch-3.12.26-rt40.patch.gz tar -Jxvf linux-3.12.26.tar.xz cd linux-3.12.26 zcat /proc/config.gz > .config gzip -dc ../patch-3.12.26-rt40.tar.gz | patch -p1 make menuconfig make -j3 make modules_install cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.12.26 mkinitcpio -k 3.12.26-rt40-ARCH -c /etc/mkinitcpio.conf -g /boot/initramfs-3.12.26.img cp System.map /boot/System.map-3.12.26 nano /boot/syslinux/syslinux.cfg
となります。最新版カーネルは3.16.1ですのが、rt化は古い3.12.26で対応させることになります。
mpdの起動ですが、僕は疑似rc.localを作り、そこで起動するという方法をとっています。これが一番トラブルなく動くし、rt化した時のハード優先度指定なども簡単なので。
[root@arch ~]# nano /etc/rc.local #!/bin/bash mpd /root/mpd.conf [root@arch ~]# chmod +x /etc/rc.local [root@arch ~]# nano /usr/lib/systemd/system/rc-local.service [Unit] Description=/etc/rc.local Compatibility Wants=network.target [Service] Type=oneshot ExecStart=/etc/rc.local TimeoutSec=0 #StandardInput=tty RemainAfterExit=yes [Install] WantedBy=multi-user.target [root@arch ~]# ln -s /usr/lib/systemd/system/rc-local.service /etc/systemd/system/multi-user.target.wants/ [root@arch ~]# systemctl --system daemon-reload [root@arch ~]# systemctl enable rc-local.service
内容が説明するまでもないと思いますので、省略。
これでarch linuxはお終いです。次回はtiny-core linux。
さて、「arch linuxってどんな音なの ?」という質問があるかと思います。「お前、そんなこと書くなら、イメージを公開しろ」という乱暴な(^^;;;オネダリは無しよという条件で(16GBマルチパーティション・マルチブートのssdイメージなんて公開できません)、僕の環境での感想です。
第1回目に書いた標準のcdをヘッドレス対応のシステムに入れ換える方法はかなり有効です。第2回目、第3回目の書き込みをベースに同じように作成したシステムで差があります。僕の環境では、ヘッドレス対応のシステムの方が、解像度が上がり、音場が深くなります。このシステムを使い、rootfsの構成を必要最低限にして(二回目の書き込みのbase-develは外した方がよい)、カーネルを64ビットにすると(-a 64)、もっと良くなります。この状態だと、TinyCore linuxやlightMPDに十分匹敵するというレベル。僕の環境ではこちらの方が力強い音がしますので、好ましいです。
興味のある方は是非お試し下さい。 僕の環境は
Phasemation HD-7a192改 + HD-7Rb, amp UnisonResearch Unico-P, sp EBTB Terra2 + SW(AAD)
です(aitlabo dac + uda3 のシステムも有りますが、そちらはi2s専用)。
(PC_Audio) 2014/09/06
arch linux on apu1(2)
さて、ここからが本題です。さらば、Voyage MPD (^^:::。
前回、「別のx86マシンにesata接続のディスクをつなぎ、標準のインストール用cdからインストールする」方法を省略しましたが、usbメモリ作成後のやり方は共通の部分が多いので、インストール用cdからのインストール方法をベースに解説します。参考にした情報はこちら(Arch Linuxインストールメモ)です。
インストール用cdのイメージはここからダウンロードできます。ご存じのように、arch linuxはローリングリリースですので、最新版しかありません。特にこだわりがなければ、日本のミラー(ftp.tsukuba.wide.ad.jp 又は jaist.ac.jp)からisoファイルをダウンロードすればいいと思います(現時点での最新版は archlinux-2014.08.01-dual.iso です)。isoファイルのcdへの書き込み方法はググればいくらでも情報はありますので、省略。適当なx86マシンにインストールしたいディスクを繋ぎ、cdイメージから起動します。このあたりのやり方はハード次第だし、ググればいっぱい情報はあるので、省略。
起動するとメニュー画面が表示されます。僕は32ビット版(x686)を選択しましたが、メモリが4Gのapu1dだったら、64ビット版(x86_64)を選んだ方がいいのかもしれません(写真はインストールCDをVmwarePlayerで起動しているので32ビット版のみのメニューになります)。ブート完了後、rootで自動ログインされます。
さて、インストールをはじめる前に、ここで是非行うことをお勧めする操作があります。
passwd systemctl start sshd
パスワードの設定とsshの起動です。これで、ネットワークを使った操作が出来るようになりますので、操作が楽になると思います。
インストールするディスク(例はsdd)の準備。
fdisk -l fdisk /dev/sdd mkfs.ext4 /dev/sdd1 tune2fs -c 0 -o journal_data_writeback /dev/sdd1 mount /dev/sdd1 /mnt
ディスクのフォーマットはarchの場合ext4がディフォルトのようです。ここから先がarch特有のインストールの仕方になります。
pacstrapスクリプトで必要なパッケージを指定し、インストールする。
pacstrap /mnt base base-devel pacstrap /mnt net-tools netctl dnsutils sysstat mlocate openssh syslog-ng pacstrap /mnt syslinux
fstabの設定を行います。
genfstab -p /mnt >> /mnt/etc/fstab
次にブートローダのインストールと初期設定を行います。やり方はインストールしたシステムにchrootして作業するという方法をとります。これも変わった方法なので、初めての方は面食らうかもしれませんね。
arch-chroot /mnt syslinux-install_update -i -a -m echo "arch" >> /etc/hostname ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime nano /boot/syslinux/syslinux.cfg 先頭に追加 serial 0 115200 append行を修正 APPEND console=ttyS0,115200n8 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw clocksource=hpet passwd exit reboot
ブートローダを変える場合はここで変えます。
extlinuxの場合
mkdir -p /boot/extlinux extlinux --install /boot/extlinux dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdxn nano /boot/extlinux/extlinux.conf あとはsyslinuxと同じです
これで基本的なインストールは完了しました。再起動後します。
ところが、ここでトラブルが発生。何故かネットワークを認識できなくなります。eth0の設定が奇怪しくなっているようです。しかたがないので、シリアルで入って、
ip link show cp -p /etc/netctl/examples/ethernet-dhcp /etc/netctl/dhcp nano /etc/netctl/dhcp Interface=enp1s0 netctl enable dhcp netctl start dhcp ip addr show systemctl enable sshd systemctl start sshd
なんとかリカバリできたようです。
(PC_Audio) 2014/08/30
Interface 9月号
今月号の特集は「ハイレゾ本格デビューLinuxオーディオ」です。
サブタイトルが「ラズベリーパイが最高」とか「なんとCDの1000倍なめらか! 」とあります。ちょっとやりすぎという感じはするけど。1000倍の根拠は16bits->24bitsで256倍、44.1KHz->192KHzで4倍だからということです。凄い理屈だなぁ。
表紙には、LinuxペンギンがRaspberry-PIらしき基板の上に乗って、指揮棒を振り回しているというなかなかいい感じのイラストが描かれています。これはザブトン一枚ものです。
本屋で、パラパラ、ページをめくっていたら、IrBerry作者の西新さんが記事を書いているのを発見。「これはgetしなくちゃ」とレジに直行しました。PC/Net Audio関係の雑誌は内容がないので、買う気にならない。本屋で立ち読みするだけですが、これは例外。
西新さんは7本も記事を書いているのですね。イントロ部分に2本、IrBerry関連が3本、volumioの紹介、I2Sの解説。いつものサイトでの書き込みとはちょっと趣が変わって、なんか真面目にネクタイを締めて書いているのかなという感想。編集部のチェックが厳しかったのかな。内容は充実しています。I2S接続に興味があるかたは必読でしょうね。
ちょっと残念なのはr-PIが中心で、bbbの記事が一つありますが、それ以外のarmマシンの記事がないこと。まあ、グローバルに見れば、これがスタンダードだからしかたがないですかね。その他、GStreamerやxmos社のxCoreの解説も参考になりました。
これだけ素晴らしい内容で、お値段はたったの1K円。技術雑誌なので、余計な写真とか、無駄なイラストが一切ないというシンプルさのおかげだと思います。Linuxを使ったAudio再生に興味のある方には必携の一冊です。変な付録をつけないと売れなくなったオーディオ雑誌とは違い、中味で勝負。価値ある雑誌ですね。
(review) 2014/08/22
arch linux on apu1(1)
このトピックの機種名ですが、今年の2月、試作機の段階のハードを入手した時に書き始めたので、これまでNewAlixと呼んできましたが、正式名称のapu1に切り替えます。
さて、このapu1にarch linuxをインストールする方法をご紹介します。以前、armアーキテチャのための「サルでも作れる MPD on Arch Linux」という記事を書いたことがあります。今回はその続編で、x86ヘッドレス機対応ということになります。
x86機にarch linuxをインストールするやり方はいろいろありまして、ご本家のWikiに詳しく紹介(Install from Existing Linux)されています。
僕は二つの方法を
- 別のx86マシンにesata接続のディスクをつなぎ、標準のインストール用cdからインストールする
- ヘッドレス対応の起動用usbメモリを作成する
試してみました。
最初の方法はリンク先でも書かれています。
NewAlixと別にインストール用のハード環境(x86マシン + インストール用ディスクを接続できるハード)が必要です。当たり前の方法ですので、情報はググれば、いっぱいあります。というわけで、ここでは二番目の方法をご紹介します。
まず、arch linuxをusbメモリから起動出来るインストール用システムの作成方法。
arch linuxのヘッドレス化についてはここに情報があります。そのリンクを辿って、ここに通常のarch linuxのisoイメージをヘッドレスに対応させるスクリプトがあることを発見。ありがたく頂戴することにします。スクリプトの内容についてはreadmeを参照して下さい。
arch環境(インストール用cdで立ち上げた環境でOKだと思います。仮想環境を使うのが便利でしょう)で上記スクリプトを実行。ヘッドレスシステムのインストール用isoを作成します。
pacman -S squashfs-tools pacman -S cdrkit
スクリプト実行に必要なパッケージをインストールします。
nano arch-headless リンク先のコードを貼り付け chmod 777 arch-headless ダウンロードしたisoイメージをカレントにコピー cp /data/archlinux-2014.08.01-dual.iso ./ ./arch-headless -a 32 archlinux-2014.08.01-dual.iso
これでカレントに
/home/arch-i686-20140815-0229.iso has been created.
となります。
次にこのisoの書き込み方法です。isoの作成はスクリプトのおかげで簡単に出来るのですが、難所はこのisoイメージの書き込み方法でした。何故かddで
dd bs=4M if=/mnt/data/arch-i686-20140815-0229.iso of=/dev/sde && sync
やろうとすると失敗(/dev/sdeとあるのは僕の環境の場合です。以降、適当に読み替えて下さい)。
解決策の情報はここ(USB Installation Media)にあります。このwikiの「手動フォーマットを使う (もうひとつの方法)でUSBメモリに書き込みしないといけないようです。
usbメモリの準備 fdisk /dev/sde Command (m for help): a Selected partition 1 The bootable flag on partition 1 is enabled now. mkfs.ext2 /dev/sde1 tune2fs -c 0 /dev/sde1 loopでマウント mkdir -p /mnt/iso mount -o loop ./arch-i686-20140815-0229.iso /mnt/iso mount: /dev/loop0 is write-protected, mounting read-only mkdir /mnt/usb mount /dev/sde1 /mnt/usb cp -a /mnt/iso/* /mnt/usb sync umount /mnt/*
最後にブートローダをインストールします。この部分の操作がちょっとややこしいです。
何度か書き込みましたが、linux標準のブートローダのgrubはヘッドレスシステムとは相性が悪いので、syslinuxを使います。情報はここ(arch wiki Syslinux)にあります。リンク先の「手動インストール」と「MBR パーティションテーブル」を実行します。まず、mbrであることを確認
blkid -s PTTYPE -o value /dev/sde
dosと表示されるのを確認して、ブートローダを書き込み
dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sde
ついでにblkidもget
blkid
xxxx-xxxxxxという感じでコードが表示されますので、保存しておきます。
次にsyslinuxのブート設定ファイルを修正する。上記リンク先ではファイル名がarchiso_sys32.cfgとなっていますが、archiso.cfgに変わったようですね。要注意です。
mount /dev/sde1 /mnt/usb nano /mnt/usb/arch/boot/syslinux/archiso.cfg
変更内容はシリアル起動する場合と基本的には同じですが、多少変える必要があります
serial 0 115200 PROMPT 0 DEFAULT arch-i686 LABEL arch-i686 LINUX boot/i686/vmlinuz INITRD boot/i686/archiso.img #APPEND archisobasedir=arch archisolabel=ARCH_201408 APPEND console=ttyS0,115200n8 archisobasedir=arch archisodevice=/dev/disk/by-uuid/xxxxx rw clocksource=hpet
APPEND文の書式が変わっていますので、ご注意を。先程保存したuuidはここに書き込みます。
この部分はリンク先ではsedを使って
sed -i "s|label=ARCH_.*|device=/dev/disk/by-uuid/$(blkid -o value -s UUID /dev/sdX1)|" archiso_sys{32,64}.cfg
となっています。
最後に、extlinuxをインストール。
extlinux --install /mnt/usb/arch/boot/syslinux /mnt/usb/arch/boot/syslinux is device /dev/sde1 umount /mnt/usb
これでインストール用usbが作成できました。
と書いたあと、最新のcdイメージ(0801)で確認したら、エラーになりますね。起動直後に
SYSLINUX 6.02 EDD Copyright (C) 1994-2013 H. Peter Anvin et al Probing EDD (edd=off to disable)... ok
というメッセージを出してハングしてしまう。
もっとも、まったく駄目という訳ではなくapu1以外のハードであれば起動できます。調べたら、
nano /mnt/usb/arch/boot/syslinux/archiso.cfg LINUX boot/i686/vmlinuz edd=off
としないといけないようですね。さすがNewAlixじゃなくてapu1、手強い。ウームだなぁ(^^;;;。
usbメモリからのインストール方法については次回。