エキスパート向け

MusicBeeとの連携について

MusicBeeと連携し、Jpsonicのクライアントとして利用する方法についてです。

以前よりMusicBeeはSubsonicのクライアントとして紹介されており、私も何年か毎に試すということをしていました。
長期の間有名無実で動かない状態だったのですが、2019/6時点で多少の改善がみられるようになりました。

MusicBeeのSubsonicプラグインの現状

MusicBeeのSubsonic対応は、SubsonicプラグインとMusicBee本体のプラグインインターフェースとに分かれています。
以前はMusicBee本体の開発者がSubsonicプラグイン部分も担当していたのですが、現在ではプラグインのメンテナンスが他の開発者にパスされています。

現状は以下のようになっています。片目をつぶれば実用可能です。

  • とりきれていないバグがあるため妙な操作をするとエラーが発生したり、更新系の処理は触らない方がよいという欠点はある(本体側の不具合)
  • とりあえずディレクトリからアルバム単位で聴いたり、プレイリストを演奏したりということは可能
  • プレイリストの編集は可能だが、サーバのプレイリストではなくMusicBee側のプレイリスト。Oh…

今後更新が重ねられれば、安定してクライアントとして利用することができるようになるかもしれません。
ですので可能性を見出した方は、実際に使用して不具合報告や要望を上げていくのがベストです。

導入方法

本体のリリースとプラグインのリリースは独立しています。
本体に含まれるプラグインは古いものなので、プラグインを更新する必要があります。

リリースページから、最新版のdllを取得します。
この記事執筆時の最新版はmb_Subsonic_v2.28.zipです。
MusicBeeを終了し、zipを解凍して得られる新しいdllで上書きします。
普通にインストールしたのであれば、
 [ドライブ名]:\Program Files (x86)\MusicBee\Plugins  あたりにmb_Subsonic.dllというファイルがあるはずです。

プラグインのプロパティからバージョンの確認ができます。

設定方法

MusicBeeを起動し、設定 > プラグインを開くとSubsonic Clientという項目があります。

「構成」をクリックすると、接続設定画面がポップアップします。
ここに記入するのはご自分のServerへの接続設定です。
Pathはコンテキストパスです。
単体起動ならスラッシュ一個かなと思います。

正しく登録されていればPingが通ります。

設定を閉じるとエクスプローラのウィンドウにSubsonicが表示されるようになります。

メリット

  • MusicBeeはフリーのプレイヤーでも比較的世間に受け入れられています。使い方に関して調べるのが簡単です
  • ネイティプアプリなので、演奏に関してWindowsができることは大体できるでしょう
  • ブラウザのプレイヤーを経由しないというのは大きいです。ブラウザのメディア実装を迂回できます
  • 今は一応担当者が動いている風味。そのため不備は改善される可能性がある。可能性がある。

デメリット

Web APIが活用可能な設計になってはいないことがデメリットかと思います。

例えば索引は使用されていません。

日本人の感覚であれば不具合レベルなのですが、UNICODE順にソートすればオッケーやろという国々も多いので修正の可能性は薄いです。
(一応、指摘はした。)

Subsonic Music StreamerはさすがにSubsonicの作者が作成しているので、索引の利用が可能です。
概ねスマホアプリやHTML系のクライアントはきちんと索引が利用できます。
そういったものの作者は大抵Web系に強いのでAPI見てサーバの想定しているフローを読み取って作っていますし、ミニマムにSubsonic専用クライアントとして作るので自然とそうなります。


また検索もサーバに投げるのではなく、接続後に全てのノードをダウンロードしてきてローカルにキャッシュしたものを検索するという方式です。
ローカルキャッシュというと早くて賢そうですが、色々と問題が発生します。
(Web屋ならこれはアカンかもなーと考えそうなレベル)

ローカル検索エンジンの仕様や曲数によってはローカルの方が遅い場合もありますし、サーバの更新には追随しません。
(グーグルのデータ全部持ってきてローカル検索しますか、私は嫌です。)
そしてそもそも、サーバのAPI実装を叩くのとローカルで文字検索するのでは処理が別物です。

PC上のSubsonicクライアントでプラグイン形式のものはこのような設計を取られていることが多いのですが。
もともとあるローカルのモデル設計に無理やりSubsonicのデータを突っ込んで動かす思想だからだと思います。

Web APIの検索に対応する予定はないか質問は投げていますが(紳士的に)、答えが即返ってこないのが回答かと。
メインのMusicBee側も設計変更が必要、というより作る前に考えることなので対応される可能性は低いのではないかと思います。

Subsonicが使いにくい、否、ほとんどがGUIの設計思想の問題です。
何を重視しているかはクライアントによるので、一方的に不満をぶちまけるようなものでもありません。

致命的なデメリット

Musicフォルダの最上位に配置されたファイルは現状アクセスできません。
そんなとこ置かないから大丈夫とも考えられますが。
(一応、指摘はした。)

どちらかというと、このレベルの仕様誤認がある=RESTのモデル設計に目を通していないことの方が問題です。

おそらく本体の設計に問題が多々あるため、現象が見えていても一連の問題をプラグインのフォークで解決するということは困難です。
直すか直す予定であるなら何も問題はないですけれども。

タグの互換性について

御質問にもあったのですが、MusicBeeでこう登録すると他のソフトではこうなってしまう、という現象についてです。
お話をうかがう限り、MusicBeeのタグ書き込み仕様はこのような状態にあると想像できます。

MusicBeeのタグ仕様

果たしてこの図が精確であるかは不明ですが、現象を聞く限りではということで。

設定画面 : 音楽フォルダにもありますが、Jpsonicは一般的なタグを対象にしています。
id3のタグ仕様はあくまで仕様であり、通常のソフトは「大体普通の人はこの項目を頻繁に使う」という慣例に則って実装されています。

一応時間の経過とともに少しずつ変化していくものですが、タグデータのライフサイクルは非常に長いです。
ユーザにとってはサーバやクライアントより長い間付き合うものなので、慣例がそんなに急に変更されるものではありません。

ですので互換性を重視するのであればid3のタグ仕様内でなんでもアリではなく、世間一般のストライクゾーンに入るようにデータを作ればよいことになります。

これはプログラミングの世界にも通じるものがあります。
たとえ礎となる膨大な言語仕様があっても、それとは別に「そのような書き方は普通しない」というラインは存在します。
サブのガイドラインやらプロジェクトごとの取り決めやらを決めて、会社間でやりとりしながら開発するので時間が経つとコーディングの常識のようなものが形成されます。

ではどのようなタグデータを作ればよいかですが、自分の使うソフトの仕様を把握して使うということになります。
自分のソフトでどんなことができるか把握して、世間一般のタグの常識のような枠内に収めるか、あえて我が道を行くかを決めることになります。

パッと検索したら以下のようなものが引っかかりました。

MusicBeeについてのただのメモ帳
多分〇ch系のコピペですが。
ゴシップと言えばゴシップですけれども、マニアックな話題では往々にして個人サイトより有益な情報だったりします。

上書きを避けるための設定について記載があります。

一部引用ついでにバックアップしておきます。
MusicBeeでタグをできる限りいじらないという観点が重要です。

Music Centerでタグの設定ができません

どっちがどっちに合わせるのがよいかということです。

注意深く観察すると、世にはしばしば非常に重要な機能があえてつけられていないプロダクトが存在します。

かつて私が学生時代にお世話になったバイクにZZR250というものがあります。
記録的なロングランの名機ですがこのバイクには燃料計がついていません。

理由は「航続可能距離最強だからツーリング行ったとき他のバイクが給油してるときに給油すればOK」というものです。
(夏で信号がないとこだとリッター30キロ以上走ってたので、コンディションがよいと東京から大阪まで無給油で行ける)

つまりMusic Centerにタグ出力の設定が最低限なのは、オレについてこいができる地盤があると読めます。
つけるの忘れたのかもしれませんが、そこまでうっかりさんではないでしょう。

あまり難しいことを考えたくないのであれば、業界内でも伝統があって信頼のおけるベンダーの製品でリッピングして、他のソフトで使うときは上書きをしないようにすればよいです。
書き込み仕様はソフトによって異なるので、仕様が把握できていなければ書き込みを行うソフトを一つに絞るのも手です。
(どうせ何年も使うものなので。あれこれ使ってるとライブラリに色々なデータができる。)

MusicBeeはMusicBee on Windowsでローカル管理をするのに向いており、ニーズがマッチした人にはヒットします。
MusicBee依存で他のソフトに読み込ませたときに困った場合、MusicBeeの使い方で解決できる場合がほとんどです。

汎用の域を超えた使い方を他の環境でも再現したい場合は、それ相応のソフトを探すか自前で作る対応が必要です。

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

エキスパート向け
Jpsonicのスキャンの特徴

Jpsonicのスキャンの特徴に関する記事です。