公開日 2019/01/15 12:17
PCをクライアントにして、ラズパイを強力無比なミュージックボックスに!
海上忍のラズパイ・オーディオ通信(54)
■ラズパイ・オーディオの操作アプリは奥が深い
ラズパイ・オーディオをどう操作するかは、一見単純そうで奥が深いテーマだ。この連載でもスマートフォンの利用を前提に説明してはいるが、操作対象は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サーバの有無も関係ない。
次ページ「充実したアーティスト情報」と「ローカルファイル再生機能」が特徴