海上忍のラズパイ・オーディオ通信(54)

PCをクライアントにして、ラズパイを強力無比なミュージックボックスに!

海上 忍

前のページ 1 2 次のページ

2019年01月15日
ラズパイ・オーディオの操作アプリは奥が深い

ラズパイ・オーディオをどう操作するかは、一見単純そうで奥が深いテーマだ。この連載でもスマートフォンの利用を前提に説明してはいるが、操作対象はWEBブラウザのこともあればスマホアプリのこともある。

アプリもさまざまで、直接ファイルシステムを行き来して選曲するスタイルもあれば、OpenHome/UPnPのスタイルもある。第48回で紹介した赤外線リモコンという全く異なるアプローチもあるから、とても一口では語れない。

また、操作/選曲といっても単純ではない。ラズパイ・オーディオの核となるソフトウェア「MPD」にはlibmpdclientというCライブラリが用意されており、その機能には各種スクリプト言語からアクセスすることもできる。オーディオ用Linuxディストリビューションを例に挙げると、Volumioはサーバサイド JavaScriptのnode.js、MoodeAudioはPHPでフロントエンド(MPDに命令するための画面)を構築している。

MPDクライアント(アプリ)を利用すれば、ディストリビューションお仕着せのUIは使わずに済む(画面はiOS版「MPD js」

「1bc」にiPhoneのWEBブラウザでアクセスしたところ。開発初期段階のため、機能は限定的だ

そのフロントエンドの受け皿、クライアントからの信号を受け取る役割を果たすのは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に対応、コンパイル済パッケージも配布されているので、導入はかんたんだ。

MPDクライアント「Cantata」(画面はMac版)

ソースコードは全プラットフォーム共通のため、Windows版とMac版、Linux版に大きな機能差はないが、Linux版のみCDリッピング機能やUSBマスストレージ対応が実装されている。

MPDクライアントだから、サーバ側(Raspberry Pi)ではMPDが稼働していればよく、どのようなディストリビューションが実行されているかは基本的に問題にならず、HTTPサーバの有無も関係ない。

「充実したアーティスト情報」と「ローカルファイル再生機能」が特徴

前のページ 1 2 次のページ

関連記事