海上忍のラズパイ・オーディオ通信(54)
PCをクライアントにして、ラズパイを強力無比なミュージックボックスに!
海上 忍
2019年01月15日
■ラズパイ・オーディオの操作アプリは奥が深い
ラズパイ・オーディオをどう操作するかは、一見単純そうで奥が深いテーマだ。この連載でもスマートフォンの利用を前提に説明してはいるが、操作対象はWEBブラウザのこともあればスマホアプリのこともある。
アプリもさまざまで、直接ファイルシステムを行き来して選曲するスタイルもあれば、OpenHome/UPnPのスタイルもある。第48回で紹介した赤外線リモコンという全く異なるアプローチもあるから、とても一口では語れない。
また、操作/選曲といっても単純ではない。ラズパイ・オーディオの核となるソフトウェア「MPD」にはlibmpdclientというCライブラリが用意されており、その機能には各種スクリプト言語からアクセスすることもできる。オーディオ用Linuxディストリビューションを例に挙げると、Volumioはサーバサイド JavaScriptのnode.js、MoodeAudioはPHPでフロントエンド(MPDに命令するための画面)を構築している。
そのフロントエンドの受け皿、クライアントからの信号を受け取る役割を果たすのはHTTPサーバだ。サーバといっても大げさな規模ではなく、「Nginx(エンジンエックス)」など高速・軽量なものは、常駐させておいてもシステムに大きな負荷をかけない。
Mongoose(軽量なHTTPサーバ)を内包するMPDフロントエンド「ympd」などの例外はあるが、システムの起動とともにHTTPサーバを立ち上げ、クライアントからのアクセスをJavaScriptやPHPでさばいてMPDに伝えることが、ラズパイ・オーディオにおける操作/選曲用UIの典型的な“型”となっている。
この“型”は、JavaScriptを実行可能なWEBブラウザを用意すればクライアントを選ばないという点で強力だ。iPhoneやAndroidでも、WindowsやMacでも構わない。テレビに付属のブラウザ機能も使えるし、3DSのようなゲーム機でもいい。どのような機能/操作性を持つかは、ディストリビューションにおけるフロントエンド部分の作り込みで決まる。
我らがワンボード・オーディオ・コンソーシアムもフロントエンド部分の開発を進めており、実装するかしないかはさておき、色々な機能の採用を検討している。しかし、自前のフロントエンドを持たない選択肢もあるし、参考にすべき独自機能を備えたクライアント(アプリ)も存在する。前置きが長くなったが、今回はそんな独自機能を持つクライアントを紹介してみよう。
■PC用クライアント「Cantata」
どちらかといえば、ラズパイ・オーディオにおけるPC(Windows/Mac)の利用について、筆者のスタンスはネガティブだ。オーディオ機器が主役である以上、操作/選曲用クライアントに大型ディスプレイは不要だし、嵩張るキーボードもいらない。しかし、PC用MPDクライアントアプリには見るべき機能を備えたものがあり、それをスルーするのは誤りとも考える。
ここに紹介する「Cantata」は、Qt(キュート)というGUIフレームワークを利用したフリーのMPDクライアント。LinuxのほかWindowsとMacに対応、コンパイル済パッケージも配布されているので、導入はかんたんだ。
ソースコードは全プラットフォーム共通のため、Windows版とMac版、Linux版に大きな機能差はないが、Linux版のみCDリッピング機能やUSBマスストレージ対応が実装されている。
MPDクライアントだから、サーバ側(Raspberry Pi)ではMPDが稼働していればよく、どのようなディストリビューションが実行されているかは基本的に問題にならず、HTTPサーバの有無も関係ない。
ラズパイ・オーディオをどう操作するかは、一見単純そうで奥が深いテーマだ。この連載でもスマートフォンの利用を前提に説明してはいるが、操作対象はWEBブラウザのこともあればスマホアプリのこともある。
アプリもさまざまで、直接ファイルシステムを行き来して選曲するスタイルもあれば、OpenHome/UPnPのスタイルもある。第48回で紹介した赤外線リモコンという全く異なるアプローチもあるから、とても一口では語れない。
また、操作/選曲といっても単純ではない。ラズパイ・オーディオの核となるソフトウェア「MPD」にはlibmpdclientというCライブラリが用意されており、その機能には各種スクリプト言語からアクセスすることもできる。オーディオ用Linuxディストリビューションを例に挙げると、Volumioはサーバサイド JavaScriptのnode.js、MoodeAudioはPHPでフロントエンド(MPDに命令するための画面)を構築している。
そのフロントエンドの受け皿、クライアントからの信号を受け取る役割を果たすのはHTTPサーバだ。サーバといっても大げさな規模ではなく、「Nginx(エンジンエックス)」など高速・軽量なものは、常駐させておいてもシステムに大きな負荷をかけない。
Mongoose(軽量なHTTPサーバ)を内包するMPDフロントエンド「ympd」などの例外はあるが、システムの起動とともにHTTPサーバを立ち上げ、クライアントからのアクセスをJavaScriptやPHPでさばいてMPDに伝えることが、ラズパイ・オーディオにおける操作/選曲用UIの典型的な“型”となっている。
この“型”は、JavaScriptを実行可能なWEBブラウザを用意すればクライアントを選ばないという点で強力だ。iPhoneやAndroidでも、WindowsやMacでも構わない。テレビに付属のブラウザ機能も使えるし、3DSのようなゲーム機でもいい。どのような機能/操作性を持つかは、ディストリビューションにおけるフロントエンド部分の作り込みで決まる。
我らがワンボード・オーディオ・コンソーシアムもフロントエンド部分の開発を進めており、実装するかしないかはさておき、色々な機能の採用を検討している。しかし、自前のフロントエンドを持たない選択肢もあるし、参考にすべき独自機能を備えたクライアント(アプリ)も存在する。前置きが長くなったが、今回はそんな独自機能を持つクライアントを紹介してみよう。
■PC用クライアント「Cantata」
どちらかといえば、ラズパイ・オーディオにおけるPC(Windows/Mac)の利用について、筆者のスタンスはネガティブだ。オーディオ機器が主役である以上、操作/選曲用クライアントに大型ディスプレイは不要だし、嵩張るキーボードもいらない。しかし、PC用MPDクライアントアプリには見るべき機能を備えたものがあり、それをスルーするのは誤りとも考える。
ここに紹介する「Cantata」は、Qt(キュート)というGUIフレームワークを利用したフリーのMPDクライアント。LinuxのほかWindowsとMacに対応、コンパイル済パッケージも配布されているので、導入はかんたんだ。
ソースコードは全プラットフォーム共通のため、Windows版とMac版、Linux版に大きな機能差はないが、Linux版のみCDリッピング機能やUSBマスストレージ対応が実装されている。
MPDクライアントだから、サーバ側(Raspberry Pi)ではMPDが稼働していればよく、どのようなディストリビューションが実行されているかは基本的に問題にならず、HTTPサーバの有無も関係ない。
「充実したアーティスト情報」と「ローカルファイル再生機能」が特徴
- トピック
- Raspberry Pi
- ラズパイ・オーディオ
関連リンク
関連記事
-
ラックスマンのラズパイオーディオ「AUDIO OSECHI BOX」“次の重箱” はコレ!『CDトランスポート』を開発中
2018年04月25日 -
Google Play Musicをラズパイで。ストリーミングならではの“音楽との出会い”を体験
2018年05月31日 -
I2Sスレーブに対応、ASUSの最新シングルボードコンピュータ「TinkerBoard S」を試す
2018年05月30日 -
ワイヤレスもAudio over IP時代へ、ラズパイのいまと次フェーズを考える
2019年06月28日 -
話題のAudio over IP規格「Diretta」で、ラズパイが“ネットワークDAC”になる
2019年05月28日 -
オーディオ伝送の最新トレンド、Audio over IP。 ラズパイで「RAWストリーミング」を試す
2019年02月23日 -
DACのキモ、デジタルフィルター。ラズパイオーディオなら自在に変えて音の違いを楽しめる
2018年12月04日 -
ラズパイでDSD 5.6MHzのネイティブ再生も可能! DACカードに期待の新モデル登場
2018年11月22日