MusicBee UPnP Plugin ヘルプ

ヘルプ

MusicBee UPnP Plugin の目的

MusicBee 用のオープンソースプラグインで、クラウドやログインなしで、ホームネットワーク上の UPnP/DLNA デバイス(スマートフォン、スマートテレビ、ハイファイストリーマー、ネットワークスピーカーなど)にライブラリを接続します。これはSteven Mayall氏のオリジナルUPnPプラグインのフォークであり、大規模で多様なライブラリを他のデバイスから快適に閲覧できるように再構築されています。

このフォークが通常のUPnPサーバーと異なる点は2つあり、それがこれを選ぶ理由です。

  • MusicBeeのすべてを公開します — 「音楽」だけではありません。 あなたの FiltersPodcastsAudiobooksRadio stations、Inbox、そしてPlaylists のすべてが、音楽と並んで、他のデバイス上でそれぞれ独自の閲覧可能なコンテナとして表示されます。ほとんどのサーバーは、フラットな音楽ライブラリしか表示しません。
  • これらのノードはすべて、個別に表示、非表示、および形状を設定できます。 デバイスがどのノードを見るかを決定し、それぞれに独自のディスカバリーパス(アルバムアーティスト → アルバム → トラック、フラットなトラックリスト、ジャンル別、年別など、そのノードをドリルダウンするルート)を設定します。30万トラックのライブラリでも、フラットなデータダンプではなく、よく整理されたもののように閲覧できるようになります。

これら2つの主要なアイデアの根底には、プラグインが1つの構造的事実に基づいて構成されているということがあります。MusicBeeは3つの異なるネットワークロールを果たすことができ、設定ダイアログのすべての画面は、そのいずれかに属しています。これら3つのロールを理解すれば、ダイアログの残りの部分は自ずと説明されます。

  • Server — 他のデバイスがMusicBeeライブラリを閲覧し、そこからトラックを取得します。上記の2つの主要機能はここにあります。
  • Renderer — MusicBeeが、ネットワークスピーカーのように、他のアプリが再生先として利用できるターゲットになります。
  • Control point — MusicBeeが自身のオーディオをリモートスピーカーやストリーマーに出力します。

1つのロールだけを使用することも、3つすべてを使用することもできます。必要なものだけを有効にしてください。このガイド全体を通して、各設定はそれが属する機能のすぐ隣で説明されています — 相互参照するための個別の「設定」リストはありません。

インストール

  1. リリースページから mb_UPnP_yaiol.dll をダウンロードします。
  2. MusicBee のプラグインフォルダ (通常は C:\Users\<you>\AppData\Roaming\MusicBee\Plugins\) にコピーします。
  3. MusicBee を再起動します。
  4. 編集 → 環境設定 → プラグイン を開き、MusicBee UPnP Plugin を見つけて 設定 をクリックします。

yaiol DLL はファイル名が異なるため、元のプラグインと競合することなくディスク上に配置して実行できます。

サーバー — 他のデバイスがライブラリを閲覧する

UPnP は、オーディオデバイスがローカルネットワーク上で互いを検出して駆動するためのプロトコルであり、その中で各参加者は定義された役割を担います。サーバーの役割をオンにすると(UPnP サーバースイッチ)、MusicBee は メディアサーバー の役割を果たします。LAN 上の検出要求に応答し、要求するすべてのデバイスにライブラリを提供します。他のデバイスからはメディアツリーが表示され、タップして再生します。オーディオは MusicBee の組み込み HTTP サーバーからデバイスに直接ストリーミングされます。MusicBee は単なるソースであり、他のデバイスが主導権を握ります。

使用する理由。 コレクション全体を保持する 1 台の PC を、ファイルをコピーしたり、何かにサインインしたりすることなく、他のすべてのガジェットがアクセスできるネットワークソースに変えます。これは、プラグインのフォークが最も力を入れている部分であり、公開する内容(下記)と 各ノードの形状 という 2 つの主要な機能がここにあります。

オフにするタイミング。 他のデバイスから MusicBee を閲覧しない場合にのみオフにします。この役割は他の 2 つの役割とは独立しています。ライブラリを提供しながら、レンダラーとコントロールポイントの役割をオフにしておくことができます。

いくつかのサーバー全体の設定がスイッチと並んで配置されています。他のデバイスがリストに表示するサーバー名、MusicBee がバインドするネットワークインターフェースとポート(「ネットワーク上での互いの発見」を参照)、およびサーバーが一度に提供する同時ストリームの最大数を制限する最大接続数です。

「一般」タブ — 3 つの役割スイッチとサーバー設定

設定

コントロール 機能
UPnPサーバー: UPnPデバイスがMusicBeeライブラリを参照して再生できるようにする サーバー役割のマスター スイッチ — UPnP デバイスが MusicBee ライブラリを閲覧して再生できるようにします。
サーバー名 他のデバイスが MusicBee を検出したときに表示する名前。
最大接続数 サーバーが提供する同時ファイル ストリームの最大数 (デフォルト 16、範囲 1~256)。多くの並列要求を発行するデバイスが ⚠ Max Conn バッジをトリップする場合は、これを増やします。再起動後に有効になります。
MusicBeeの再生統計を更新 UPnP 経由で再生されたトラックを MusicBee の再生回数と最終再生タイムスタンプにカウントします。

MusicBeeのすべてを公開、Musicだけではなく

これは、このフォークの2つの主要機能のうちの1つです。通常のUPnPサーバーは、単一のフラットな「Music」ライブラリをネットワークに提供します。これは、MusicBeeが整理するすべてのコンテンツ領域を、それぞれ独自のトップレベルコンテナとして閲覧デバイス上に表示します。

MusicBeeが公開できる7つのもの

デバイスがMusicBeeを閲覧すると、そのルートにはこれらすべてが並んで表示されます。

  • ミュージック — メインライブラリ。好きなように構成できます(以下のディスカバリパスを参照)。
  • フィルター — MusicBeeのメインビュー上部で既に使用しているフィルタータブ(MusicALLFAV、ジャズフィルター、クラシックフィルターなど、設定したものすべて)がエントリポイントとして表示され、ライブラリについて既に考えている方法を反映します。フィルターはMusicBee自体が使用するファイルからライブで読み取られるため、設定なしで同期が保たれます。
  • ポッドキャスト — ポッドキャストのサブスクリプション。それぞれがエピソードに開き、サブスクリプションのアートワークも表示されます。
  • オーディオブック — MusicBeeのオーディオブックカテゴリ。
  • ラジオ — 保存したインターネットラジオ局。
  • 受信トレイ — MusicBeeの、新しく追加されたがまだ整理されていないトラックの受信トレイ。
  • プレイリスト — MusicBeeのプレイリスト。

これらはMusicBeeから直接提供されるため、個別の設定は不要です。MusicBeeでポッドキャストを購読したり、ラジオ局を追加したりすると、デバイスが次に閲覧したときにネットワークからアクセスできるようになります。それぞれが実際に表示されるか、そしてどのような形をとるかは、次の機能の役割です。

既定では、フィルターとプレイリストはそれぞれ独自の整頓されたラッパーフォルダー内に配置されます。各ソースが実際に表示されるかどうか、どこに配置されるか(最もよく使うものをブラウズルートの最上位にピン留めし、同じ種類のものとグループ化することを含め)、そしてどのような形をとるかは、すべて次の機能によってノードごとに決定されます。

このヘルプの以前のバージョンでは、「ポッドキャストのルートコンテナがない」ことが制限として挙げられていました。これはもはや真実ではありません — ポッドキャストは他のすべてのソースと同様に公開されます。

各ノードの表示、非表示、および整形

これは2番目の主要機能であり、このフォークの名前の由来となった機能です。7つのソースを公開しても、それらを制御できなければノイズになってしまいます。そのため、公開されたすべてのノードは個別に切り替え可能で、ルートに固定でき、独自の検出パスを持っています。

これらすべては、設定ダイアログの表示タブで管理します。このタブには、公開されたツリー全体がチェックリストとして表示されます。パターンは常に同じです。操作したいノードにチェックを入れ、ツリーの横にあるコントロールを使用して、それらすべてを一度に設定します。表示/非表示にしたり、ツリーの最上部に固定したり、パステンプレートを適用したりできます。たとえば、音楽、フィルター、プレイリストを公開し、受信トレイとラジオを非表示にし、ジャズフィルターをルートに固定し、ポッドキャストをサブスクリプションごとに整形するといったことが、それぞれ独立して可能です。

ライブラリパス — 表示サブタブ、チェックリストとしての公開ツリー

各ノードの表示、非表示、ピン留め

ノードの表示方法とは別に、ノードが表示されるかどうかどこに表示されるかを決定する2つのスイッチがあります。どちらも表示タブにあり、ツリーでチェックしたすべてのノードに作用する3状態チェックボックスとして機能します。

  • 表示 — デバイスがノードを認識するかどうか。ノードを非表示にするにはチェックを外します。ライブラリには残りますが、単にアドバタイズされなくなります。(チェックされたセットに対して機能するため、選択が一部表示、一部非表示の場合、チェックボックスは網掛けの「混合」状態を示します。)非表示のノードはツリー内で灰色表示されます — そして、フォルダ内のすべてのノードが非表示になると、そのフォルダも灰色表示されます — そのため、一目で何がまだ公開されているかがわかります。
  • トップレベル — ノードがブラウズルートの最上位にピン留めされるかどうか。ピン留めは追加的です。ノードは通常のラッパーフォルダに表示されたまま、ルートの最上位近くにコピーが作成され、その種類ごとにグループ化されます — ピン留めされたフィルターはFiltersフォルダの直下に、ピン留めされたプレイリストはPlaylistsフォルダの直下に配置されます — これにより、ショートカットは関連するものと並んで配置されます。ピン留めされたノードはダイアログで**★**でマークされるため、一目でどれが昇格されているかを確認できます。

フィルターまたはプレイリストがルートにピン留めされている場合、通常のトップレベルソースと区別するのが難しいことがあるため、表示名に短いプレフィックスを付加できます(ライブラリオプションタブで設定)。プレフィックスはリテラルです。入力した内容はそのまま名前の前に配置されるため、必要であれば末尾のスペースを含めてください。

使用例。 あなたは主にJazzフィルターとFriday Nightプレイリストを使ってナビゲートしますが、これらは現在、FiltersPlaylistsというラッパーフォルダーの中にあります。

ビューツリーで両方のノードにチェックを入れ、トップレベルをクリックします。すると、ダイアログにはそれぞれ★が表示されます。ブラウジングデバイス上では、以前と同様にラッパーフォルダー内に表示されますが、さらにルートの上の階層にコピーが作成され、それぞれが自身の種類(フォルダー)の隣に表示されます。ピン留めされたJazzフィルターはFiltersフォルダーの直下に、ピン留めされたFriday NightプレイリストはPlaylistsフォルダーの直下に配置されます。フィルタープレフィックスがFilter: に、プレイリストプレフィックスがPlaylist: に設定されている場合、2つのピン留めされたコピーはFilter: JazzPlaylist: Friday Nightと表示されます。これらはラッパー内のコピーとは異なり、それぞれが自身の種類(フォルダー)の隣に配置されます。どちらかのトップレベルのチェックを外すと、そのピン留めされたコピーは消え、ラッパーフォルダー内のコピーはそのまま残ります。

これは、以前のグローバルな「ルートでフィルターを公開」/「ルートでプレイリストを公開」スイッチに代わるものです。ピン留めは、フィルターやプレイリストに対するすべてかゼロかの切り替えではなく、任意のソースに対してノードごとに選択するようになりました。

設定

Control 何をするか
表示 チェックされたすべてのノードを表示または非表示にします。非表示のノードはライブラリに残りますが、デバイスには通知されません。選択範囲が部分的に表示されている場合、網掛けの「混合」状態になります。
トップレベル チェックされたすべてのノードをブラウズルートの上位に、種類ごとにグループ化してピン留めします — フィルターは「Filters」フォルダーの下に、プレイリストは「Playlists」フォルダーの下にピン留めされます (追加的 — ノードは通常の場所にも残ります)。ピン留めされたノードはダイアログに ★ が表示されます。
フィルタープレフィックス (ルートの場合) フィルターがルートにピン留めされたときに、その名前の前に配置されるリテラルテキストのプレフィックスです (ピン留めされたコピーをグループ化するのに役立ちます)。
プレイリストプレフィックス (ルートの場合) プレイリストがルートにピン留めされたときに、その名前の前に配置されるリテラルテキストのプレフィックスです。

ディスカバリーパス — 各ノードのドリルダウンルート

ディスカバリーパスとは、ブラウザがノードをたどるルートのことです。同じノードでも、アルバムアーティスト → アルバム → トラックとして表示したり、単一のフラットなトラックリストとして表示したり、ジャンル別、次にアーティスト別、または年別にグループ化して表示したりできます。パスは1つ以上のレベル(各レベルがグループ化するフィールド)から構築され、リーフ(最も深いレベルが表示するもの — アルバムとそのトラック、またはフラットなトラックリスト)で終わります。ノードは複数のパスを同時に持つこともできるため、複数の入り口を提供します。

コンテンツが異なれば望ましい形状も異なり、間違った形状ではノードは使用不能になります。音楽はアルバムアーティストによるグループ化を望み、プレイリストはフラットな順序付きリストを望み、ポッドキャストはサブスクリプションを望みます。各ノードは独自のパスを保持しているため、それぞれに適切な答えが得られます。

実例。 5,000トラックのジャズフィルターと30トラックの「フライデーナイト」プレイリストがあり、どちらも公開されています。

  • ジャズフィルターには、パスがアルバムアーティスト → アルバム → トラックであるテンプレートを適用します。デバイスでは、アーティスト、次にそのアーティストのアルバム、次にアルバムのトラックをディスクとトラックの順序でドリルダウンします。
  • プレイリストには、代わりにフラットトラックテンプレートを適用します。開くと、プレイリストの順序で30トラックが表示され、アーティストやアルバムのレイヤーは間にありません — プレイリストがまさにそうあるべき姿です。

同じプラグイン、同じダイアログ、2つのノード、2つの全く異なる形状 — パスはノードのプロパティであり、グローバル設定ではないからです。ノードがどのテンプレートを保持しているかを知らなければ、デバイス上でのノードのレイアウトを予測することはできません。そのため、これを明確にする必要があります。

ノードはテンプレートのコピーを受け取るだけでなく、それをフォローします。ビューツリーは、各ノードがどのテンプレートをフォローしているかをノード名の直後に表示し、パスタブでテンプレートを編集すると、それをフォローしているすべてのノードが即座に再形成されます — ノードごとに再適用する必要はありません。非表示のノードにテンプレートを適用すると、そのノードも再び表示されます。適用は「これをこのように整形して表示する」というジェスチャーであり、非表示は「表示」チェックボックスで制御されます。各テンプレート行には、それをフォローしているノードのライブ**(n)**カウントが表示され、そのカウントがゼロの場合にのみテンプレートを削除できます — 何かがテンプレートをフォローしている間は削除ボタンは無効のままであり、削除によってノードが孤立することはありません。どのノードがテンプレートをフォローしているかを正確に確認するには、ビューツリーの横にある漏斗ボタンでツリーをそれらのノードのみにフィルタリングします。別のテンプレートを選択すると再フィルタリングされ、漏斗をオフに切り替えると完全なツリーが復元されます。未使用のテンプレートの削除も機能するようになりました — 出荷時のデフォルトは、プラグインが次にロードされたときに静かに再作成されることはありません。

パスがアルバム → トラックリーフで終わる場合、何が1つのアルバムと見なされるかも決定します。厳密にアルバムタイトルでグループ化する代わりに、アルバム、ソートアルバム、年、アルバムアーティストなど、1つ以上のフィールドを選択します。これらのフィールドが一緒になって、どのトラックが単一のアルバムに融合するか、その見出しがどのように表示されるか、アルバムが表示される順序を決定し、各フィールドは昇順または降順でソート可能です。アルバムアーティストを追加すると、異なるアーティストによる同じ名前の2つのアルバムが区別されます。を降順で追加すると、アーティストのアルバムが最新のものからリストされます。年でグループ化する場合、MusicBeeは独自のものを反映する2つのフィールドを提供します — 完全な日付タグである2024-03-15のような完全な日付を保持できます)と、4桁の年のみである年 (yyyy) — したがって、*年 (yyyy)*を選択すると、正確な日付で分割する代わりに、その年のすべてのリリースがまとめられます。

デフォルトは合理的です — 新しいフィルターはアルバムアーティストによって整形され、プレイリストと受信トレイは合理的なデフォルトを取得します — したがって、一般的なケースでは何も変更しません。特定のノードを異なる形状にしたい場合は、ビュータブにアクセスしてください。

設定

パスタブで名前付きの再利用可能なパステンプレートを構築し、ビュータブでノードに適用します。

ライブラリパス — パスサブタブ、テンプレートの編集

コントロール 機能
チェックされたエンドポイントに適用 ツリーでチェックしたすべてのノードが現在選択されているテンプレートをフォローするようにします(非表示だった場合は再表示します)。
すべて展開 / すべて折りたたむ エンドポイントツリー全体を展開または折りたたみます。
選択したテンプレートに一致するノードのみ表示 漏斗の切り替え:エンドポイントツリーを選択したテンプレートをフォローしているノードのみにフィルタリングします。別のテンプレートを選択して再フィルタリングします。オフに切り替えて完全なツリーを復元します。
テンプレート 編集中の名前付きパステンプレート。
/ 選択したテンプレートをリスト内で上下に移動し、テンプレートの表示順序を決定します。
グループ化 レベルがグループ化するフィールド(例:アルバムアーティスト)。
リーフ 最も深いレベルが表示するもの。
アルバム → トラック (AT) リーフモード:アルバム → トラック — アルバムをドリルスルーしてそのトラックを表示します。
フラットトラック (T) リーフモード:フラットトラック — 単一のフラットなトラックリスト。
各レベルで[すべてのトラック]を含める 各レベルに**[すべてのトラック]**ショートカットを追加します。アルバム → トラックモードでのみ表示されます。
アルバムをグループ化 1つのアルバムと見なされるもの、そのタイトルがどのように表示されるか、アルバムが表示される順序を定義します — 1つ以上のフィールド(アルバム、ソートアルバム、年、アルバムアーティスト…)を選択し、それぞれに独自の昇順/降順切り替えがあります。アルバム → トラックモードでのみ表示されます。
追加 / 削除 テンプレートにパスを追加または削除します。

パスは適合するノードに型付けされます

すべてのフィールドがすべての種類のノードに意味を持つわけではありません。ラジオ局にはアルバムや年がなく、ポッドキャストのエピソードには購読、フォルダー、公開日がありますが、アルバムアーティストはありません。そのため、各パスは3つのカテゴリのいずれかに属します標準(完全なタグを持つ音楽、フィルター、オーディオブック、受信トレイ、プレイリスト)、ラジオ、またはポッドキャスト — そして、そのカテゴリによって、グループ化できるフィールドと、パスを適用できるノードの2つのことが同時に決定されます。

パスタブでは、テンプレートリストが2つの帯で描画されます。標準 — 独自のテンプレートが存在し、すべての新しいテンプレートが作成される場所 — と、ラジオおよびポッドキャストのテンプレートを保持する予約済み帯です。標準テンプレートを編集している間は、フィールドメニューにすべてが表示されます。ラジオテンプレートでは、局が実際に持っているフィールドのみが提供されます。ポッドキャストテンプレートでは、エピソードが持っているもの(フォルダー、購読、公開年)のみが提供されます。表示タブでは、テンプレートを適用すると、適合するノードのみが点灯し、残りはグレーアウトしてチェックできません。そのため、標準パスはラジオまたはポッドキャストノードに着地することはありません。

実際、ラジオやポッドキャストには何も適用しません。それぞれがそのカテゴリのテンプレートと永続的にペアになっています。パス*タブでラジオまたはポッドキャストのテンプレートを再形成すると、ノードは自動的に追従します。予約済みテンプレートが選択されている場合、適用ボタンは単に無効になります。適用するものがないからです。これにより、ノードが埋めることのできないフィールドでグループ化することで、何も生成しないパスを作成することを防ぎます。また、追従されたテンプレートは削除できないため(上記のディスカバリーパス*を参照)、ラジオとポッドキャストのテンプレートは常に再形成可能です。

ソート名で整理されるアーティスト

音楽関連のノード内では、アーティストは表示名ではなく、Sort Album Artistタグによってグループ化され、アルファベット順に並べられます。これが人々を驚かせる部分ですので、何が起こるのかを正確に説明します。

実例。 あるトラックが次のようにタグ付けされているとします。

  • Artist = Bob Dylan
  • Sort Album Artist = Dylan, Bob

ブラウジングツリーでは、ディランは文字DDylan, Bobから)の下に整理され、BBob Dylanから)の下にはありません。ソートタグは、グループ化とアルファベット順の両方を決定します。これは、ハイファイブラウザやレコード店が整理する方法とまったく同じです。

これは自動であり、既存のMusicBeeタグによって完全に駆動されます — 設定することは何もありません。

複数値タグの展開

トラックのアルバムアーティスト(またはジャンル)が複数の値を持つ場合、統合された1つのエントリを作成するのではなく、そのトラックはそれぞれの値の下に個別に表示されます。

具体例。 あるトラックのアルバムアーティストyaiol; Ars Ricercataという2つの値を持っています。そのトラックは、「yaiol; Ars Ricercata」という単一の偽のアーティストの下に表示されるのではなく、yaiolArs Ricercata両方の下に — 各アーティストのブランチに1回ずつ — 表示されます。複数値のアーティストタグは、複数ジャンルタグと同様に展開されます。

ソート名によるグループ化と同様に、これは自動的でタグ駆動です。

長いリストを頭文字で分類する

レベルが携帯電話で快適にスクロールできないほど長くなった場合、それは頭文字で分類できます — エントリの上に ABC、… のレイヤーを挿入し、最初に文字を選択するようにします。これはテンプレート内のフィールドごとに、フィールドのコンテキストメニューから設定されます: [フィールド]を頭文字で分割。短いリストの場合はオフにし、リストが膨大になるレベル — 通常はアーティスト — の場合はオンにします。

タグをネストされたツリーとして参照する

一部のタグは、セパレーターを使用して階層を単一の値にパックします。たとえば、Jazz/Cool JazzGrouping タグや、Electronic/Ambient/Drone のカスタムジャンルなどです。デフォルトでは、この文字列全体が1つのフラットなエントリであるため、タグにエンコードされた構造は無駄になります。フィールドを 階層的 としてマークすると、プラグインは選択した区切り文字で各値を分割し、代わりにドリルダウンツリーに変換します。タグに書かれているとおり、Jazz を選択し、次に Cool Jazz を選択します。

これは ライブラリオプション タブで設定します。フィールドを選択し、そのレベルを区切る1文字(例: /)を入力してリストに追加します。その後、そのフィールドが任意の検出パスでグループ化レベルとして使用される場所すべてに適用されます。サブジャンルなしで Jazz のように、リーフではなく ブランチ でタグ付けされたトラックは、より深いブランチの横にある角括弧で囲まれた [Jazz] エントリの下に表示されるため、何も隠されません。1つの子のみを持つブランチは自動的に折りたたまれ(他の場所と同じ1選択ルール)、; は区切り文字として使用できません。これはMusicBee独自の複数値セパレーターであるため、Rock; Jazz/Cool Jazz のような値は最初に2つのタグに分割され、その後それぞれがドリルダウンされます。

実例。 トラックに Jazz/Cool JazzJazz/Hard BopClassical/Baroque のような Grouping タグがあり、Grouping でグループ化する検出パスがあるとします。フラットな場合、ノードには3つの長いエントリがリストされます。Grouping/ で階層的にマークすると、同じノードが JazzClassical に開きます。Jazz を開くと Cool JazzHard Bop が表示されます。Jazz のみでタグ付けされたトラックは、それらの横にある [Jazz] エントリの下に表示されます。このレイアウトはタグだけでは予測できません。どのフィールドをどの区切り文字でマークしたかに完全に依存するため、意図的に設定する価値があります。

ライブラリオプションタブ — プレフィックスと階層フィールド

設定

コントロール 機能
階層フィールド ドリルダウンツリーとしてレンダリングされるフィールドのリスト。それぞれが1文字の区切り文字とペアになっています。フィールドを選択し、区切り文字(; ではない)を入力して追加します。その後、検出パスがそのフィールドでグループ化される場所すべてで、フィールドはレベルごとにドリルダウンされます。

単一選択レベルは自動的に折りたたまれる

閲覧している項目に対して、グループ化レベルに1つのエントリしかない場合、プラグインは単一のフォルダを含むフォルダを開かせる代わりにそれをスキップし、次の実際の選択肢に直接移動します。設定は不要で、すべてのパスで自動的に行われます。

例。 パスはレコードタイプ → アルバム → トラックでグループ化されます。LPのみをリリースしたアーティストの場合、アルバムに到達するためだけに、単独のレコードタイプ → LPフォルダを開くことになります。代わりに、そのアーティストを開くと直接アルバムに移動します — そのアーティストにとって冗長なレベルは消滅します。一方、LPとEPの両方を持つアーティストには、レコードタイプの選択肢が表示されます。連続する複数の単一エントリレベルはまとめて折りたたまれ、1つの文字しか含まれない頭文字レベルも同様に消滅します。

ブラウズツリー内のアルバムサムネイル

アルバムはアートワークをブラウズ応答に含めるため、リストにサムネイルを表示するデバイスは実際にそれらを表示します。(元のプラグインは個々のトラックにのみアートを添付していたため、アルバムリストはプレーンテキストとして表示されていました。) 設定は不要です — アルバムと一緒に転送されます。

ほとんどのコントロールアプリでは、ブラウズツリーの横に検索ボックスと「ランダム」または「シャッフル」フォルダーが配置されています。どちらも同じ種類のUPnPリクエストとしてMusicBeeに到達し、どちらも事前に構築されたインデックスからではなく、ライブラリからライブで応答されるため、1分前にリタグしたトラックもすぐに見つかります。

検索タイトルまたはアーティストに一致します。タイトル検索は、アプリがトラックを検索している場合はトラックタイトルを、アルバムを検索している場合はアルバムタイトルを調べます。アーティスト検索は、トラックのアーティストまたはアルバムのアルバムアーティストのいずれかに一致するため、コンピレーションは、演奏者の名前を入力しても、アルバムが登録されている名前を入力しても表示されます。結果はスクロールするたびに1ページずつ返されるため、数千のトラックに一致する用語でも、停止したり最初の結果に戻ったりすることなく、応答性を維持します。

**例。**コントロールアプリのアルバムビューからBlueを検索します。Kind of BlueBlue Trainなど、Blueという名前のアルバムが表示され、「Blue」というトラックを含むすべてのアルバムが表示されるわけではありません。アプリをトラックビューに切り替えて同じ単語を検索すると、代わりにトラックが表示されます。一致するフィールドは、入力した内容ではなく、アプリが要求した内容に従います。

シャッフルフォルダー — 一部のアプリが表示するランダムトラックおよびランダムアルバムエントリ — は、検索語を付けずにすべてのスライスを要求するものです。デフォルトでは、その「すべて」は音楽ライブラリ全体であり、その半分が話し言葉やシャッフルしない素材である場合、それはめったに望ましくありません。ライブラリオプションタブのランダム再生元を使用すると、MusicBeeフィルターの1つを指すように設定できるため、すべてのランダムリクエストはそのフィルターのコンテンツからのみ取得されます。非表示のフィルターもここで提供されます。シャッフルのスコープ設定は、そのフィルターをブラウズツリーに表示するかどうかとは関係ありません。デバイス上のフィルターからシャッフルフォルダーを開くと、そのフィルターがシャッフルされます。ブラウズ中に明示的に選択されたものが常に設定よりも優先されます。

設定

コントロール 機能
ランダム再生元 デバイスのシャッフルリクエストがどこから取得されるか — すべての音楽 (ライブラリ全体、デフォルト) または名前付きのMusicBeeフィルター。選択したフィルターがMusicBeeで後で削除または名前変更された場合、設定は自動的にライブラリ全体に戻ります。

各デバイスにストリームを適応させる

閲覧は仕事の半分に過ぎません。オーディオは、受け入れるものが大きく異なるハードウェアで再生される必要があります。この機能は、MusicBeeが各ストリームを調整する方法であり、共有されています。これは、Serverの役割が閲覧デバイスにトラックを提供する際にも、Control pointの役割がリモートレンダラーに再生する際にも適用されます。2つの概念がこれを推進します:デバイスプロファイル (デバイスが処理できるもの) と トランスコーディング優先順位チェーン (トラックが再エンコードされるかどうか) です。

デバイスプロファイル — 各デバイスへの適応

実際のUPnPハードウェアは、受け入れるものについて一貫性がありません。あるストリーマーは24ビットFLACを要求し、別のストリーマーは16ビットPCMしか再生せず、3番目のストリーマーはサポートするコーデックについて嘘をつきます。デバイスプロファイルは、1つのデバイスの制限と癖をプラグインに教える方法です。

プロファイルの選択方法。 すべてのデバイスは、接続時にUser-Agent文字列で自身を識別します。プロファイルは「ユーザーエージェントにこのフラグメントが含まれている場合に適用する」と指定します。デバイスが接続すると、プラグインは一致するプロファイルを見つけます。一致するものがない場合、組み込みの汎用デバイスプロファイルがフォールバックとして使用されます。|で区切られた複数のフラグメント(例:Linn|ChorusDS|BubbleDS)をリストできるため、1つのプロファイルで関連するデバイスのファミリーをカバーできます。

プロファイルが制御するもの。 デバイスが超えることのできない制限(アルバムアートの最大画像サイズ、許可されるサンプルレート範囲、最大ビット深度、ステレオのみのダウンミキシング)に加えて、トラックの変換が必要な場合に、どの出力形式とサンプルレートに変換するかを制御します。「問題のあるデバイス」スイッチの別のグループは、特定のハードウェアバグ(生PCM処理、バイト順、HTTPコンテンツ長ヘッダー)を回避します。これらは、実際のUPnP準拠が不完全であるために存在します。ほとんどの人はこれらを触ることはありません。

プロファイルを触るべきとき。 特定のデバイスが誤動作する場合のみです。既製の汎用プロファイルと、一般的なハードウェア用に提供されるデバイスごとのデフォルトで、ほとんどのケースをカバーします。デバイスのユーザーエージェントを見つけてターゲットにするには、デバッグログをオンにし(「診断」を参照)、デバイスから何かを再生し、ログのuseragent=行を読み取ります。

プロファイルの最も重要なスイッチであるネイティブストリームを強制するは、実際には制限とはまったく関係ありません。上記のいずれかが適用されるかどうかを決定します。それが次の概念です。

デバイスプロファイル — デバイスサブタブ、1つのプロファイルの制限

デバイスプロファイル — 詳細サブタブ、問題のあるデバイススイッチ

設定

コントロール 機能
名前 プロファイルの表示名。
ユーザーエージェントに以下が含まれる場合に適用 このプロファイルに一致するためにデバイスが含む必要があるユーザーエージェントフラグメント。複数の選択肢は|で区切ります。一致しないデバイスは汎用プロファイルにフォールバックします。
最大画像サイズ このデバイスに送信されるアルバムアートの最大ピクセルサイズ(160 pxはDLNA標準です。それより大きいサイズは普遍的にサポートされていません)。
出力サンプルレート / ~ デバイスが受け入れるサンプルレート範囲。範囲外のソースは変換されます(トランスコーディングを強制します)。
チャンネル / ステレオのみ 2チャンネルのみのデバイスの場合、マルチチャンネルをステレオにダウンミックスします。
最大ビット深度 デバイスが受け入れる最高のビット深度。より深いソースは変換されます。
出力フォーマット トランスコードが必要な場合、変換する形式(PCM、FLAC、MP3、AAC、Ogg)。
出力サンプルレート トランスコーディング時に使用するサンプルレート。「ソースと同じ」はオリジナルを保持します。
RAW PCMを使用しない 生のL16/L24を送信する代わりに、PCMをWAVコンテナにラップします。生のPCMを破損するデバイス(一部のマランツ)用。
PCMストリームにリトルエンディアンを強制 仕様のビッグエンディアンではなく、PCMをリトルエンディアンで送信します。リトルエンディアンを期待するデバイスでのホワイトノイズ再生を修正します。
コンテンツ長 HTTP Content-Lengthヘッダーの入力方法:Default(正しい値)、None(省略)、PCM Only、またはFixed(センチネル「巨大」値)。ヘッダーを誤って処理するデバイス用。

トランスコードするか否か — 優先順位チェーン

「トランスコード」とは、デバイスが再生できる形式に、またはMusicBeeのEQと音量調整を適用できるように、トラックをその場で再エンコードすることです。プラグインはトランスコードを行わないことを望む(元のファイルを送信する方が速く、ロスレスであるため)、そのため、固定されたルールチェーンをたどって決定します。上位のルールが優先され、下位のルールを黙って上書きします。 いくつかの設定が協力するように見えるのにそうではないため、これはプラグインで最も誤解されている部分です。

優先度 ルール 効果
1 (最高) トランスコードを強制 (デバイスプロファイルごと) 常にトランスコードします。以下のすべてを上書きします。ネイティブ強制とは相互排他的です — 一方を選択するともう一方は選択解除されます。
2 ネイティブストリームを強制 (デバイスプロファイルごと、デフォルトON) このデバイスではトランスコードを絶対に行いません。ルール3~5を完全に抑制します — 形式、エフェクト、制限に関係なく、元のバイトを送信します。
3 EQ/DSP および ReplayGain (ライブラリ) オーディオを処理できるようにトランスコードを強制します。ルール2が優先される場合、黙って無視されます。
4 サンプルレート / ビット深度 / ステレオのみ (デバイスプロファイル) ソースが範囲外 → 適合するようにトランスコードします。ルール2が優先される場合、黙って無視されます。
5 (最低) コーデックサポート (デバイスプロファイル) デバイスが再生できないソースコーデック → プロファイルの出力形式にトランスコードします。ルール2が優先される場合、黙って無視されます。

ネイティブストリーム強制はすべてのプロファイルでデフォルトでONになっているため、初期設定の動作は、デバイスに元のファイルを渡し、それ以外のことは何もしない、というものです。これは、良好なネットワーク上の最新のデバイスにとってはまさに正しいですが、ルール2を変更するまで、ライブラリのエフェクトとプロファイルのオーディオ制限が「何もしない」ように見えることを意味します。

具体例。 MusicBeeのReplayGain音量調整をストリーマーに適用したいとします。ライブラリの下にあるMusicBeeでアクティブなリプレイゲインモードを使用して再生音量を調整するにチェックを入れます。トラックを再生すると、音量はまったく調整されません。

理由:ストリーマーのプロファイルでは、まだネイティブストリーム強制がONになっています(ルール2)。ルール2はReplayGainルール(ルール3)よりも優先されるため、プラグインは未加工のファイルを送信し、ReplayGain設定は黙ってスキップされます。

修正方法:そのデバイスのプロファイルを開き、ネイティブストリーム強制のチェックを外します。ネイティブ強制はプロファイルごとであるため、ビットパーフェクトなハイファイDACではオンのままにし、ReplayGainが必要なポータブルスピーカーではオフにすることができます — 各デバイスは正しい応答を得ます。

経験則:

  • EQ/DSPまたはReplayGainをデバイスに適用したいですか?そのデバイスのプロファイルでネイティブストリーム強制をオフにします。
  • 新しいトランスコードを保証したいですか(テストのため、またはネイティブファイルで詰まるデバイスのため)?そのプロファイルでトランスコードを強制にチェックを入れます — それはすべてに優先します。
  • それ以外の場合は、ネイティブストリーム強制をオンのままにします。これはプラグインで最も影響の大きい設定であり、ほとんどの最新機器ではデフォルトが適切です。

デバイスプロファイル — トランスコーディングサブタブ

設定

コントロール 動作
ネイティブストリームを強制 (トランスコーダーをバイパス) トランスコーダー、エフェクト、ReplayGain、およびプロファイルのオーディオ制限をバイパスして、元のファイルバイトを送信します。デフォルトON。 最も影響の大きい再生設定。上記のチェーンのルール2。
トランスコーディングを強制 (ネイティブストリーム強制とは排他的) このデバイスへのすべてのストリームをトランスコーダー経由で強制します。ネイティブ強制よりも優先されます。これら2つは相互排他的です(一方を選択するともう一方は選択解除されます)。ルール1。
MusicBeeで有効なイコライザーとDSPエフェクトを使用 [トランスコーディングを強制] MusicBeeのイコライザーとDSPエフェクトを出力オーディオに適用します。トランスコーディングを強制します(ルール3)。プロファイルでネイティブ強制がオンになっているデバイスでは抑制されます。
MusicBeeで有効なリプレイゲインモードを使用して再生音量を調整 [トランスコーディングを強制] MusicBeeのReplayGain音量調整を適用します。トランスコーディングを強制します(ルール3)。プロファイルでネイティブ強制がオンになっているデバイスでは抑制されます。
ラジオにネイティブストリームを強制 (放送局のトランスコーダーをバイパス) ラジオ/ストリームソースを未加工で送信し、特にステーションのトランスコーダーをバイパスします。

レンダラー — 再生ターゲットとしてのMusicBee

レンダラーの役割をオンにすると(UPnP レンダラースイッチ)、MusicBeeはネットワークに「私は再生可能なデバイスです」と伝えます。別のコントロールポイントアプリ(電話のリモート、別のメディアコントローラーなど)は、MusicBeeを選択し、このPCで再生するためのオーディオをプッシュできます。ターゲットに分かりやすいレンダラー名を付けて、他のアプリのリストで認識できるようにします。

再生できるもの。 制御アプリが送信する可能性のある両方の種類のトラック。トラックがMusicBee自身のライブラリからのものである場合(電話でこのPCのライブラリを閲覧し、曲をタップした場合)、MusicBeeはネットワークを介した往復で発生する可能性のある品質の損失なしに、自身のディスクからファイルを直接再生します。トラックが他のどこかにある場合(電話自体に保存されているファイル、NAS、別のメディアサーバーなど)、MusicBeeはそれをフェッチしてここで再生します。

他の場所から送信されたトラックは最初にコピーされ、それが重要な理由。 ライブラリにないトラックの場合、MusicBeeは一時フォルダーにコピーを静かにダウンロードしてそれを再生し、ネットワーク経由でリアルタイムで聞くことはしません。そうする必要があるのです。MusicBeeがライブネットワークストリームとして扱うものは、開始および停止できますが、移動することはできません。そのため、曲の異なるポイントにジャンプすることは不可能になり、トラックはタイトルではなく単なるウェブアドレスとして表示されます。自身のディスク上の実際のファイルを再生することで、両方を回避できます。コピーはホームネットワークで約1秒かかります。再生中のもの、次にキューに入っているもの、そして巻き戻しが瞬時に行われるように1つ後ろに、数個が並行して保持され、新しいトラックが到着すると古いものは削除されます。残ったものはMusicBeeが次回起動するときにクリアされます。トラックの長さは障害になりません。長い高解像度またはDSDファイルも他のファイルと同様にフェッチされます。

インターネットラジオは認識され、そのままにされます。 ライブ放送は決してコピーされません。ダウンロードする終わりがなく、いずれにせよジャンプするものがないためです。MusicBeeは単にストリームとして再生します。制御アプリはどちらを送信しているかを伝えるため、これには設定も推測も必要ありません。他の理由でコピーをフェッチできない場合も同様です。再生はネットワーク経由で続行され、その場合にのみタイトルと位置スライダーが信頼できなくなります。

アルバムはギャップなしで再生されます。 制御アプリがMusicBeeに次に何が来るかを伝えると(ほとんどのアプリはそうします)、現在のトラックがまだ再生されている間にそのトラックがフェッチされ、MusicBee自身のプレーヤーが境界を越えます。そのため、電話から送信されたライブ録音、DJセット、または連続したクラシック作品は、各トラックで一時停止することなく、あるべき通りに再生されます。

使用する理由。 この機能により、電話やタブレットがこのPCをUPnPスピーカーとして使用できます。PCが良いスピーカーに接続されており、音楽がPC上にあるか手元の電話上にあるかにかかわらず、ソファから操作したい場合に便利です。

オフにするタイミング。 別のアプリからこのPCにオーディオを送信したい場合を除き、オフにしておいてください。オフにすると、MusicBeeはどこにもターゲットとして表示されず、通常はそれが望ましい動作です。

一度に1つの制御アプリを使用してください。 UPnPには、アプリがレンダラーを「所有する」という概念はありません。ネットワーク上のどのアプリでもMusicBeeにトラックを送信でき、監視しているどのアプリでもそれを見て反応できます。したがって、2つのプレーヤーが同時にMusicBeeを指している場合、バグのように見えるがそうではない動作が発生します。MusicBeeを選択したままの2番目のアプリは監視を続け、送信したトラックが停止したことを確認し、その曲が終了したと結論付け、そのキューから次の曲を親切に送信します。そのため、音楽が突然別のアルバムにジャンプしたり、1つのアプリで次へを押すと、別のアプリで曲が開始されたりします。2番目のアプリで再生を停止しても十分ではありません。なぜなら、それは選択されたままで監視を続けるからです。電話自身のスピーカー、別のデバイスに戻すか、適切に閉じてください。

成熟度に関する注意。 レンダラーはサーバーの役割よりも新しく、実際のハードウェアでのテストが少ないです。特定のコントローラーアプリが奇妙に動作する場合は、報告すると役立ちます。

設定

コントロール 機能
UPnPレンダラー : 他のアプリがMusicBeeに再生できるようにする レンダラー役割のマスター スイッチ — 他のアプリがMusicBeeに再生できるようにします。MusicBeeの再起動後に有効になります。
レンダラー名 このPCがレンダラーとして宣伝する名前で、他のアプリのデバイスリストに表示されます。

コントロールポイント — リモートスピーカーへ再生

コントロールポイントの役割がオンになっている場合(UPnP Control Pointスイッチ)、ネットワーク上のUPnP/DLNAレンダラーは、サウンドカードを選択するのと同じ場所であるMusicBee内の出力デバイスとして表示されます。1つ選択し、再生を押すと、MusicBeeはそのリモートスピーカーまたはストリーマーにオーディオをストリーミングし、その間、MusicBee自身のインターフェースをリモコンとして使い続けることができます。

**使用する理由。**これにより、ハイファイストリーマーやネットワークスピーカーが、間に余分なソフトウェアを挟むことなく、MusicBeeの別の出力のように動作します。

**オフにするタイミング。**このPC自身のスピーカーからのみ再生する場合は、オフのままにしてください。

この役割の動作を決定する要素は2つあります。1つ目はギャップレス再生(下記参照)です。2つ目は各デバイスにストリームを適合させることです — プラグインが再びリモートデバイスにオーディオを供給するため、サーバーを管理するのと同じデバイスプロファイルトランスコーディングの優先順位がここにも適用されます。コントロールポイントは、MusicBeeのHTTPサーバーを再利用してオーディオを出力するため、サーバーの役割をオンにしない場合でも、サーバーのポートとファイアウォールルールがここで重要になります。

設定

コントロール 機能
UPnPコントロールポイント : ネットワーク上のUPnP/DLNAレンダラーをMusicBeeの出力デバイスとして追加 コントロールポイントの役割のマスター切り替えスイッチ — ネットワーク上のUPnP/DLNAレンダラーをMusicBeeの出力デバイスとして追加します。

ギャップレス再生 — 2つの異なるメカニズム

ライブアルバム、クラシックの楽章、DJセット、コンセプトレコードなど、一部の音楽は中断なしで再生されるように意図されています。トラック間に0.5秒の無音があると、それらは台無しになります。このプラグインは、そのギャップをなくす2つの方法を提供し、それらは非常に異なる動作をします。

真のギャップレス (NextURI)。 レンダラーがそれをサポートしていると宣言すると、プラグインは現在のトラックが終了する前に次のトラックをデバイスにプリロードするため、デバイスは無音で内部的に境界を越えます — CDプレーヤーのように。これが推奨されるメカニズムです。各トラックは独自のメタデータを保持し、シークとスキップは引き続き機能し、オンにするものは何もありません — プラグインは対応デバイスで自動的にそれを使用します。デバイスごとに、それをオフにする (実装にバグがあるハードウェアの場合) か、リストが空になったときにキューに入れられたトラックをクリアしないようにプラグインに指示する (空のキューを「停止」として扱うデバイスの回避策) ことができます。

連続ストリーム。 古いフォールバックは、すべてを1つの無限ストリームに連結します。これはどのデバイスでもギャップがないことを保証しますが、実際のコストがかかります。レンダラーはセッション全体で最初のトラックの情報を表示し、「次へ/前へ」コントロールは機能しなくなり、すべてが1つのストリームに結合されるため、すべてをトランスコードする必要があります (強制ネイティブは適用できません)。画面上のラベルはトレードオフを明記しています。

どちらを使用するか。 真のギャップレスを優先してください — 自動でロスレスです。NextURIを実行できないデバイスで、ギャップが本当に気になる場合にのみ、連続ストリームにフォールバックし、トラックごとのメタデータとトランスポートコントロールを失うことを受け入れてください。この2つは相互に排他的です。連続ストリームをオンにするとNextURIが無効になるため、誤って両方を実行することはありません。

再生タブ

設定

コントロール 機能
このデバイスでギャップレス再生 (NextURI) を有効にする このデバイスで真のギャップレス (NextURI) を有効にします。対応デバイスではオン。デバイスの実装にバグがある場合はオフにします。
キューが空になったときに空のNextURIを送信しない キューが空になったときにプラグインが空白のNextURIを送信するのを停止します — それを「停止」として扱うデバイス (例: Denon) の回避策です。
連続ストリームとして出力 個別のトラックではなく、1つの連続した連結ストリームを送信します。どのデバイスでもギャップをなくしますが、レンダラーは最初のトラックの情報のみを表示し、トランスポートコントロールは機能しなくなり、すべてがトランスコードされます。オンの間はNextURIを無効にします。

ネットワーク上でお互いを見つける

いずれの役割も機能する前に、デバイスは互いを見つける必要があります。MusicBeeのサーバーはネットワークアドレスとTCPポートにバインドし、SSDPを介してLANに自身をアナウンスして、デバイスがそれを発見できるようにします。デフォルトのポートは9779です。そのポートがすでに使用されている場合、プラグインは自動的に近くの空いているポートを選択し、デバイスは引き続きそれを見つけます(セットアップで固定ポートが必要な場合にのみ、固定ポートを設定する必要があります)。

特殊なネットワークを持つマシンでは、2つの設定が重要になります。

  • IPアドレス / ネットワークインターフェース。「自動」はすべてのインターフェースで機能し、ほとんどのPCで適切です。Wi-FiイーサネットVPNなど、複数のネットワークを同時に持つマシンでは、オーディオデバイスが実際に接続されているインターフェースを選択してください。そうすることで、MusicBeeはデバイスが到達できるアドレスをアドバタイズします。
  • **ポート。**デフォルトのポートを別のプログラムがすでに使用している場合、またはファイアウォールが特定の番号を要求する場合にのみ変更してください。

**デバイスが「MusicBeeを見つけられない」一番の理由は、UPnPではなくファイアウォールです。Windowsファイアウォールは、プライベートパブリックの**両方のネットワークプロファイルでMusicBeeのポートを許可する必要があります。ファイアウォールルールを変更した後、通常はMusicBeeを再起動する必要があります。プラグイン内で何かを変更する前に、これを確認してください。

設定

コントロール 機能
IPアドレス サーバーがバインドするネットワークインターフェース。「自動」はすべてのインターフェースを使用します。MusicBeeの再起動後に有効になります。
ポート HTTPサーバーがリッスンするTCPポート(デフォルトは9779)。ポートが使用されている場合、プラグインは自動的に空いているポートを選択します。再起動後に有効になります。

診断

特定のデバイスが誤動作している場合、ログに記録するまでプラグインの動作は目に見えません。これらのツールはすべての役割を果たすため、特定の機能の下ではなく、独自のデバッグタブに配置されています。

  • デバッグ情報をログに記録すると、すべてのリクエスト、デバイスのユーザーエージェント、および各コーデック/トランスコードの決定がログファイルに記録され、表示で開くことができます。トラブルシューティング中(およびプロファイル用のデバイスのユーザーエージェントを検出するため)にオンにし、その後オフに戻します。ログはすぐに大きくなります。起動ごとにクリアすることもできます。
  • ネットワークは帯域幅が制限されています(再生)は、プラグインがトランスコードするたびに、大きなロスレス出力ではなく、デバイスプロファイルのロッシー出力(MP3/AAC/Ogg)を使用するように指示します。低速のWi-Fiリンクでオンにします。
  • デバッグタブには、開発を目的とした低レベルのクエリツールも含まれています。通常の使用では無視できます(「その他の設定」を参照)。

日常的な診断のパターンは、ログを有効にする → 問題を再現する → ログを読み取る → 関連するデバイスプロファイルを調整する → ログを無効にする、です。

デバッグタブ — ログ記録と低レベルクエリツール

設定

コントロール 機能
デバッグ情報をログに記録 すべてのリクエスト、ユーザーエージェント、コーデックの決定をファイルにログ記録します。トラブルシューティング中はオン、それ以外はオフ。
プラグイン起動時にログをクリア プラグインが起動するたびにログを空にします。
表示 現在のログファイルを開きます。
ログをクリア 今すぐログをクリアします。
ネットワーク帯域幅が制限されています - 出力を上記のデバイスプロファイルで設定されたロッシー形式にトランスコードします トランスコードが発生した場合、デバイスプロファイルのロッシー出力形式を使用します。低速リンク用。プロファイルのトランスコードセクションでロッシー形式が選択されている必要があります。

クイックトラブルシューティング

症状 まず試すこと
デバイスがMusicBeeを全く認識しない プライベートネットワークとパブリックネットワークの両方でWindowsファイアウォールを確認してください。プラグインのポート(デフォルトは9779)に到達可能である必要があります。ファイアウォールの変更後、MusicBeeを再起動してください。
ソース(ポッドキャスト、ラジオ、受信トレイなど)がツリーに表示されない おそらく非表示になっています。表示タブでノードにチェックを入れ、表示チェックボックスがオンになっていることを確認してください。
ノードが間違った形状でブラウズされる 表示タブで別の検出パスを適用してください — 例:プレイリストの場合はフラットトラック、音楽フィルターの場合はアルバムアーティスト → アルバム → トラック
デバイスがMusicBeeを認識するが、トラックを再生しない デバイスのプロファイルが間違っているか、force-nativeがオフでトランスコードが失敗している可能性があります。そのデバイスのプロファイルでネイティブストリームを強制にチェックを入れ、再試行してください。
音声が静的ノイズ/ホワイトノイズとして再生される デバイスのプロファイルでPCMストリームにリトルエンディアンを強制を試してください。それでも解決しない場合は、RAW PCMを使用しないを試してください。
トラック間のギャップ NextURIをサポートするデバイスでは、真のギャップレス再生が自動的に実行されます。それでもギャップが聞こえる場合、デバイスがそれをサポートしていないか、その実装にバグがある可能性があります — 連続ストリームとして出力にフォールバックしてください(ギャップレスは保証されますが、トラック情報と次/前のコントロールは機能しなくなります)。
EQ / DSP / ReplayGainが「何も機能しない」 そのデバイスでネイティブストリームの強制がオンになっています — それらが優先されます。デバイスのプロファイルでネイティブストリームを強制のチェックを外してください。トランスコードするかどうかを参照してください。
最新の(2020年以降の)デバイスがMusicBeeのコントロールを無視する MediaRenderer:2/3としてアドバタイズするデバイスの修正はこのフォークに含まれており、機能するはずです。機能しない場合は、デバッグログをキャプチャして問題を報告してください。
プラグインはロードされるが、設定が開かない MusicBeeのErrorLog.datを確認してください — プラグインがロード時にクラッシュした可能性があります。プラグインの設定ファイルを削除して再設定すると、通常は解決します。
英語以外の言語 プラグインは22の言語に対応しており、MusicBee自身の言語に従います。このヘルプはそれらすべてで利用可能です。別の言語を使用するには、一般タブで言語を設定してください。

テスト状況

予期せぬ事態を避けるため、このプラグインが実際にどれだけ使用されてきたかを正直にお伝えします。

すべてのテストはBubbleUPnPに対して行われ、foobar2000が2番目の参照として使用されました。これら3つの役割はすべてそこで機能しますが、BubbleUPnPはプラグインが検証された唯一の相手であるため、他のコントロールアプリ、他のプレーヤー、およびこれら2つ以外のブラウジングデバイスはテストされておらず、コミュニティテストの恩恵を受けるでしょう。

実際に最も重要なのは、物理的なストリーマーへの再生(コントロールポイントの役割)です。BubbleUPnPでは真のギャップレスなトラック遷移が確認されましたが、WiiM、Sonos、Cambridge、Eversolo、Marantz、Denonなどの実際のストリーマーは、トラック間のハンドオフをそれぞれわずかに異なる方法で処理し、実際のハードウェアではテストされていません。それらのいずれかでギャップレスが誤動作する場合は、そのデバイスのNextURIをオフにして、一度に1つのトラックを再生するようにフォールバックさせてください。

その他の設定

いくつかのコントロールは、どの機能にも属しません。

コントロール 機能
ヘルプ このヘルプページをWebブラウザで開きます。MusicBeeの言語で表示され、翻訳がまだ準備できていない場合は英語にフォールバックします。
最後のクエリを読み込む、クエリを実行、最初の5件のタグを取得 デバッグタブにある低レベルのクエリツールで、開発用です。通常の使用では無視してください。
保存 変更を保存します。起動時にバインドされる設定(ポート、IP、最大接続数、レンダラー)は、MusicBeeを再起動するまで**⚠ 再起動が必要です**バッジを表示します。
キャンセル 保存せずにダイアログを閉じます。

クレジット

  • オリジナルプラグインはSteven Mayall氏によるものです。このフォークでは、ライブラリの閲覧と設定ダイアログを書き直し、レンダラーを追加しましたが、その基盤となるUPnP、HTTP、SSDPのコアは、依然として彼のコードが大部分を占めています。
  • BoringName氏によるクローズドソースのUPnP 2025フォーク。彼の公開フォーラムスレッドがバグカタログを提供しました。
目次