今回は、多くの実装を行った
現在は25バンド表示で、解析方式はMaiMaiとCAVACOREの2種類を切り替えられるようにしている

このスペクトラムは、単純に再生状態を見て適当なアニメーションを動かしているわけではなく実際に再生経路を通っているPCMデータを解析して表示している
現在対応しているのは、MaiMai Music、MPD Renderer、CD DIRECT、Spotifyの4系統
それぞれの再生経路からPCMを解析用に分岐させ、共通のSpectrumエンジンへ送る仕組みにした
重要なのは、スペクトラム表示のために再生する音そのものは加工していないこと
サンプリングレート変換、音量変更、ビット深度変換などは行わず解析用にPCMを横から参照するだけにしている
Spectrum側への転送もノンブロッキングとしているので、Spectrumが停止しても音楽再生側はそのまま継続する設計にした
表示は、音があるときはバーが動き完全な無音部分では下側の緑色のラインだけが残り再生を停止するとSpectrum自体も消える
こういう動きのある表示が入るとオーディオ機器っぽさがかなり増した気がする

ネットワーク共有フォルダだけでなくUSB接続した外部ストレージもMusic Libraryとして登録できるようにした
ネットワークストレージとUSBストレージは同時に利用できるためNASの音源とUSB HDDやUSBメモリ内の音源を1つのMusic Libraryとして扱える
内部では音源そのものをコピーして管理するのではなく、それぞれの保存場所をライブラリのソースとして管理している
そのため大量の音源があってもMaiMai Audio Linux側へ音楽ファイルを複製する必要はない
通常のライブラリ更新では追加や変更された音源を確認し必要な場合には「メタデータを全再読込」からライブラリ情報を作り直すこともできるようにした
NASだけに依存せずUSBストレージを直接つないで単体の音楽プレーヤーとして使うこともできるようになったので、用途はかなり広がったと思う
普段はシンプルなプレーヤー画面だけを表示しているが、2曲目以降を直接選びたい場合には▼をクリックするとCDのトラック一覧が表示されるようにした

もちろん曲をクリックすれば、そのトラックから直接再生が開始される

CD再生そのものは、一般的なデスクトップ用CDプレーヤーを動かしているわけではない
MaiMai Audio LinuxではCDから読み出したPCMをバッファリングし、そのままALSAを経由してDirettaへ送る専用の再生経路を使っている
今回追加した曲一覧もこのCD DIRECTの再生制御と連動しているため一覧から選択したトラック番号をそのままCD再生側へ渡して再生を開始する仕組みになっている
普段は曲一覧を閉じておけるので、CD PLAYERのシンプルな見た目を維持しながら必要なときだけアルバム全体を操作できるようにした
これはBIOSの設定を書き換えるものではなくLinux側が持っているCPUの動作制御機能を利用している
CPUの動作方針をPOWER SAVE、BALANCED、PERFORMANCEから選択できるほかCPUが継続的に使用できる電力上限についてもいくつかのプリセットから選べるようにした
オーディオ用Linuxだからといって常にCPUを最大性能で動かす必要はないので、用途や発熱に合わせて調整できるようにした形になる
そして設定を変えるだけでは実際に何が起きているのか分かりにくいので、System Activityも追加した

ここではCPU負荷、CPUクロック、CPU温度、消費電力などをリアルタイムで確認できる
さらに稼働サービス数、内部サービス数、サービスが使用しているメモリ量、タスク数、リアルタイムカーネルの状態などもまとめて表示するようにした
例えばBALANCEDとPOWER SAVEで実際のクロックや消費電力がどの程度変わったかをブラウザ上ですぐ比較できる
Linuxの設定値だけを並べるのではなく、「設定した結果、現在どう動いているのか」までGUIから確認できるようにしたかった部分でもある
Spectrum、Music Library、CD PLAYER、CPU設定、System Activityとかなり色々な部分に手を入れた
最初はDirettaをLinuxから簡単に使えるようにすることが目的だったが、ここまで来ると単なるDiretta Host用Linuxというよりブラウザだけで操作できる一台のオーディオ機器にかなり近づいてきたと思う
スペクトラム表示
まずは再生中の音をリアルタイムで確認できるスペクトラム表示を追加した現在は25バンド表示で、解析方式はMaiMaiとCAVACOREの2種類を切り替えられるようにしている

このスペクトラムは、単純に再生状態を見て適当なアニメーションを動かしているわけではなく実際に再生経路を通っているPCMデータを解析して表示している
現在対応しているのは、MaiMai Music、MPD Renderer、CD DIRECT、Spotifyの4系統
それぞれの再生経路からPCMを解析用に分岐させ、共通のSpectrumエンジンへ送る仕組みにした
重要なのは、スペクトラム表示のために再生する音そのものは加工していないこと
サンプリングレート変換、音量変更、ビット深度変換などは行わず解析用にPCMを横から参照するだけにしている
Spectrum側への転送もノンブロッキングとしているので、Spectrumが停止しても音楽再生側はそのまま継続する設計にした
表示は、音があるときはバーが動き完全な無音部分では下側の緑色のラインだけが残り再生を停止するとSpectrum自体も消える
こういう動きのある表示が入るとオーディオ機器っぽさがかなり増した気がする
Music Libraryの拡張
Music Libraryまわりもかなり手を入れた
ネットワーク共有フォルダだけでなくUSB接続した外部ストレージもMusic Libraryとして登録できるようにした
ネットワークストレージとUSBストレージは同時に利用できるためNASの音源とUSB HDDやUSBメモリ内の音源を1つのMusic Libraryとして扱える
内部では音源そのものをコピーして管理するのではなく、それぞれの保存場所をライブラリのソースとして管理している
そのため大量の音源があってもMaiMai Audio Linux側へ音楽ファイルを複製する必要はない
通常のライブラリ更新では追加や変更された音源を確認し必要な場合には「メタデータを全再読込」からライブラリ情報を作り直すこともできるようにした
NASだけに依存せずUSBストレージを直接つないで単体の音楽プレーヤーとして使うこともできるようになったので、用途はかなり広がったと思う
CDプレーヤーの機能拡張
CDプレーヤーも機能を追加した普段はシンプルなプレーヤー画面だけを表示しているが、2曲目以降を直接選びたい場合には▼をクリックするとCDのトラック一覧が表示されるようにした

もちろん曲をクリックすれば、そのトラックから直接再生が開始される

CD再生そのものは、一般的なデスクトップ用CDプレーヤーを動かしているわけではない
MaiMai Audio LinuxではCDから読み出したPCMをバッファリングし、そのままALSAを経由してDirettaへ送る専用の再生経路を使っている
今回追加した曲一覧もこのCD DIRECTの再生制御と連動しているため一覧から選択したトラック番号をそのままCD再生側へ渡して再生を開始する仕組みになっている
普段は曲一覧を閉じておけるので、CD PLAYERのシンプルな見た目を維持しながら必要なときだけアルバム全体を操作できるようにした
CPU設定とSystem Activity
省電力化のためのCPU設定も追加したこれはBIOSの設定を書き換えるものではなくLinux側が持っているCPUの動作制御機能を利用している
CPUの動作方針をPOWER SAVE、BALANCED、PERFORMANCEから選択できるほかCPUが継続的に使用できる電力上限についてもいくつかのプリセットから選べるようにした
オーディオ用Linuxだからといって常にCPUを最大性能で動かす必要はないので、用途や発熱に合わせて調整できるようにした形になる
そして設定を変えるだけでは実際に何が起きているのか分かりにくいので、System Activityも追加した

ここではCPU負荷、CPUクロック、CPU温度、消費電力などをリアルタイムで確認できる
さらに稼働サービス数、内部サービス数、サービスが使用しているメモリ量、タスク数、リアルタイムカーネルの状態などもまとめて表示するようにした
例えばBALANCEDとPOWER SAVEで実際のクロックや消費電力がどの程度変わったかをブラウザ上ですぐ比較できる
Linuxの設定値だけを並べるのではなく、「設定した結果、現在どう動いているのか」までGUIから確認できるようにしたかった部分でもある
かなりオーディオ機器らしくなってきた
今回の更新では、新しい再生方式を増やすというよりもこれまで作ってきた機能を実際に使いやすい形へまとめる作業が多かったSpectrum、Music Library、CD PLAYER、CPU設定、System Activityとかなり色々な部分に手を入れた
最初はDirettaをLinuxから簡単に使えるようにすることが目的だったが、ここまで来ると単なるDiretta Host用Linuxというよりブラウザだけで操作できる一台のオーディオ機器にかなり近づいてきたと思う
コメント