MinimServer 2018年04月30日 23:31 編集
MinimServerが音楽ライブラリ内のファイルをどのように処理するかを説明しています
パターンには、ワイルドカード(*)文字とリテラル文字(*を除くすべて)の任意の組み合わせを含めることができます。パターン内のすべてのリテラル文字がファイル名またはフォルダ名のリテラル文字と正確に一致し、パターン内の各ワイルドカード文字がファイル名またはフォルダ名の0個以上のリテラル文字と一致する場合、パターンはファイル名またはフォルダ名と一致します。
たとえば、有効なパターンマッチングは次のとおりです。
以下は有効なパターンマッチではありません:
リスト内の各パターンは、オプションでシングルクォート(')またはダブルクォート(")で囲むことができます。これによって、カンマ(,)、シングルクォート(')、ダブルクォート(")を含むすべての可能なリテラル文字を含む特定のパターンを使うことができます。 たとえば、パターンリスト
'*,*', '"Hello"*', "'*"
はパターン *,*, "Hello"* and '*. を指定します。
オーディオファイルごとに、MinimServerは次の検索順序を使用して情報ファイルを探します。
ファイル名に使用できない文字の規則は、プラットフォーム(Windows、Mac、Linux)によって異なります。 また、MinimServerが実行されているプラットフォームは、ライブラリファイルをホストしているプラットフォームとは異なる場合があります。 すべてのプラットフォームでファイル名を一貫して扱うために、MinimServerはサポートされているプラットフォームでは無効なすべての文字に対して特別な処理を使用します。 これらの文字は次のとおりです。
たとえばアルバム名
場合によっては、アルバムの内容が複数のフォルダにまたがっている場合があります。 たとえば、マルチディスクにはそれぞれのディスクが別のフォルダに入っていたり、ライブラリフォルダの構造がアルバムではなくアーティストや作曲家に基づいている場合があります。 これらのケースを可能にするために、MinimServerは次のいずれかに該当する場合、異なるフォルダのアルバムコンテンツをマージします。
ライブラリをブラウズ中にマルチディスクアルバムの内容を表示するためのさまざまなオプションについては、マルチディスクアルバムセクションを参照してください。
TXX、TXXXおよび----は、その説明フィールドに対応するタグ名にマッピングされ、大文字に変換されます。 たとえば、記述フィールドが「出演者」で値フィールドが「Yo-Yo Ma」のTXXXタグは、PERFORMER = Yo-Yo Maとしてマップされます。 descriptionフィールドには任意の名前を入れることができます。
このようにエイリアス化されたタグは、元の(ソース)名では使用できなくなります。 タグ名はソースとして複数回表示することはできませんが、同じタグ名をターゲットとして表示できる回数に制限はありません。
ターゲット名がファイルに表示されているタグ名と一致すると、予期しない重複または矛盾するタグエントリが表示されることがあります。 たとえば、ファイルにReleaseDateタグとDateタグの両方が含まれていて、aliasTagsプロパティにReleaseDate:Dateを設定している場合、MinimServerはエイリアス化されたReleaseDateタグとunaliased DateタグをDateタグのように扱います。 これを防ぐには、ターゲットタグ名の前にマイナス記号( - )を付けることができます。 この例では、ReleaseDate:-Dateを設定すると、ファイルにReleaseDateタグがある場合、MinimServerはファイル内のDateタグを無視します。
MinimServerでタグを完全に無視したい場合は、indexTagsやitemTagsには表示されない別の名前(nilなど)に別名を付けることができます。
タグエイリアスの置換は、ID3v2およびMPEG-4 / iTunesタグマッピングが適用された後に行われます(タグマッピングのセクションを参照)。 これにより、タグエイリアシングを使用して、MinimServerがID3v2フレームとMPEG-4 / iTunesタグ用に用意した定義済みのマッピングをカスタマイズできます。 たとえば、ID3v2.3 TPUBフレームをLABELではなくPUBLISHERにマップする場合は、タグ別名Label:Publisherを追加できます。
デフォルトでは、タグのインデックス、ソート、および表示の値は、MinimServerがオーディオファイルから読み込むタグの値と同じです。 オプションで、タグのインデックスをカスタマイズし、次のセクションで説明するtagOptionsプロパティとtagValueプロパティを使用して値をソートまたは表示できます。
インデックス値、ソート値、または表示値(またはこれらの組み合わせ)をカスタマイズする必要があるかどうかを指定するための特別なオプション構文があります。 この仕様は、オプション名の後に '.display'、 '.sort'、 '.index'、またはこれらの接尾辞の任意の組み合わせをつけることによって提供されます。 特別な接尾辞 '.*' は、これらすべての接尾辞の組み合わせを表すために省略形として使用できます。
たとえば、ComposerSortタグの「姓」の最初のフォームでタグ付けされた作者名を反転し、逆の名前をインデックスとして使用してタグの値を表示するには、tagOptionsオプションにComposerSort.reverseName.index.displayオプションを指定します プロパティ。 逆の名前をインデックスとして使用して値を並べ替えて表示するには、ComposerSort.reverseName。*を指定します。
値を持たないオプションの場合、オプションの前にオプションで「+」を付けるか、オプションで「 - 」でオプションを無効にすることができます。 どちらも指定されていない場合、 '+'が仮定されます。 たとえば、Date.yearOnly.indexは、Dateタグの 'yearOnly.index'オプションを有効にします。
いくつかのオプションは、タグ名として特別な値 'all'または '[all]'を使用することによって、すべてのタグに適用できます。 たとえば、タグオプションall.ignore.sort = {The}は、すべてのオーディオファイルタグに対して 'ignore.sort = {The}'オプションを有効にします。 この 'all'オプションは個々のタグに対してオーバーライドすることができます。 たとえば、オプション文字列
all.ignore.sort = {The}、-Album.ignore.sort
アルバム以外のすべてのタグに対して 'ignore.sort = {The}'オプションを有効にします。 このようにオプションを無効にする場合、オプション値を省略する必要があります。
次のタグオプションを使用できます。
オプションタグ名はターゲットタグ(その値が変更されているため)とし、中括弧内のタグはソースタグ(変更された値を提供するため)と呼ばれます。 上記の例では、ターゲットタグはComposerであり、ソースタグはComposerSortです。
次のオプションを使用できます。
オーディオファイルごとに、すべてのオプション設定が、tagValueオプションの表示順に適用されます。 各オプション設定はタグ値を変更または追加することができ、次のオプション設定を処理するときに変更または追加されたタグ値が含まれるため、この順序付けは重要です。 たとえば、設定
Composer.value.sort = {ComposerSort}、Composer.default = {ComposerSort}
(ファイルにそのような一致が含まれている場合)、次にComposerSort値を使用してComposer値を提供します(Composer値がファイルに存在しない場合)。 これらの手順の順序を逆にすると、value.sortオプションの設定を処理するときに、デフォルトのオプション設定によって追加されたComposer値がすべて含まれるため、別の結果が生成されます。
タグオプションセクションで説明したdecade、ignore、reverseName、yearMonth、またはyearOnlyオプションを使用してソースタグ値をカスタマイズする場合、またはこのセクションで説明するオプションを使用して、これらのカスタマイズをデフォルトで保持するかどうか、このセクションで説明されているオプションをマージして置き換えます。これらのカスタマイズを保持するには、ソースタグ名に接尾辞.customを追加する必要があります。たとえば、tagOptionsプロパティがComposerSort.reverseName.displayに設定され、tagValueプロパティがComposer.default = {ComposerSort.custom}に設定されている場合、Composerのデフォルト値として使用されるComposerSortタグ値は、その反転表示を保持します名。 .custom接尾辞は、いくつかのターゲットタグで使用することはできません(次の段落を参照してください)。
Album、AlbumArtist、Date、DiscNumber、DiscSubtitle、Group、Title、およびTrackNumberタグは、MinimServerによって特別に処理されます。このため、これらのターゲットタグのデフォルト、マージ、および置換オプションは、ソースタグ値のカスタマイズを保持できません。このため、前の段落で説明した.custom接尾辞は、これらのターゲットタグでは使用できません。たとえば、tagOptionsプロパティがDate.yearOnly.index、OriginalDate.yearMonth.indexに設定され、tagValueプロパティがDate.replace = {OriginalDate}に設定されている場合、Dateの置換値として使用されるOriginalDateタグ値には、 Dateインデックスの "年のみ"のインデックス値とOriginalDateインデックスの "年月"のインデックス値。
同様に、オプション設定Title.value.sort = {TitleSort}は、TitleSortタグ値(ファイル内に存在する場合)を使用して、Titleタグ値のソート値を提供します。
1つの解決策は、Composerタグの名前の順序を"lastname(s), firstname(s)"に手動で戻すことです。 これは余分な手作業のステップが発生し、コントロールポイントの「再生中」画面で同じように逆順に表示されるという欠点(一部の人の見解では)があります。
これを避けるためにライブラリのComposerSortタグに"lastname(s), firstname(s)"形式で、同様にComposer タグに"firstname(s) lastname(s)"形式で代入することができます。これによって望む結果が得られますが、ライブラリ内のすべてのクラシック音楽ファイルについて同じ情報を2つの異なるフォーマットで維持する必要があり、いくつかのファイルについては首尾一貫しないか不完全な情報を含むことが避けられないという問題が発生します。
ArtistとAlbumArtistタグでも同様の考慮事項とトレードオフが発生します。
MinimServerは、"lastname(s), firstname(s)"形式の自動逆転をサポートすることにより、これらの問題に対する洗練された解決法を提供します。 この形式のComposerタグがすでにある場合は、tagOptionsプロパティのComposer.reverseName.display設定を使用して、コントロールポイントのNow Playing画面に表示するためにこれらの名前を自動的に逆転させることができます。 Composerインデックスに逆の名前を表示する場合は、Composer.reverseName.display.index設定を使用できます。
このアプローチでは、MinimServerの自動反転が目的の結果を生成できない例外的なケースは処理されません。 これらのケースを処理できるようにするには、次のやや複雑なタグ付け手法を使用します。
ほとんどのコントロールポイントでは、displayFormat設定では、Now Playing画面のコントロールポイントとプレイリストとアルバムのコンテンツの値を制御し、indexFormat設定はライブラリを参照しながらインデックスリストに表示される値を制御します。
このオプションの完全な構文は、
tag-name.displayFormat = {フォーマット文字列}
または
tag-name.indexFormat = {フォーマット文字列}
です。ここで、フォーマット文字列は、1つ以上のフォーマット項目のシーケンスです。 各書式項目にはタグリストが含まれ、オプションで接頭辞、接尾辞、および区切り記号を含めることができます。 書式項目は、次のいずれかの形式で記述することができます。
$tag-list^prefix^suffix^separator
$tag-list^prefix^suffix
$tag-list^prefix
$tag-list
これらの最後(^なし)は、最終的な書式項目に対してのみ使用できます。
たとえば、書式文字列
$artist$ensemble^$date^ [^]
には、次の2つの書式の項目が含まれています。
$artist$ensemble^
$date^ [^]
各書式項目に対して、MinimServerはタグリスト内のすべてのタグを検索し、タグ値を結合して重複を除去した単一の文字列にします。 タグ値はセパレータで区切られ、タグ値の文字列の前に接頭辞が続き、接尾辞が続きます。 タグ値の文字列が空の場合、接頭辞と接尾辞は使用されません。 タグリスト内のタグは、indexTagsまたはitemTagsプロパティのいずれかになければなりません。
例を見てみましょう。 フォーマット設定
Artist.displayFormat={$artist$orchestra$conductor}
はデフォルトのセパレータ、接頭辞および接尾辞を使用して、タグ付きアーティスト、オーケストラおよび指揮者の値(存在する場合)をすべて組み合わせて、アーティストの表示文字列を作成するようにMinimServerに指示します。 デフォルトの区切り文字は ', '(カンマとスペース)で、デフォルトの接頭辞と接尾辞は両方ともヌル文字列です。 たとえば、2人のアーティストとオーケストラや指揮者のいない表示文字列は、以下のようなものかもしれません。
Andrew Manze, Richard Egarr
アーティストをコンマではなくスラッシュで区切って表示したい場合は、フォーマット設定を使用できます
Artist.displayFormat={$artist$orchestra$conductor^^^ / }
前の例では、これは以下のようになります。
Andrew Manze / Richard Egarr
書式文字列を拡張して、追加の書式項目を含めることができます。 たとえば、ソングタイトルの一部として録音日付を表示するには、フォーマット設定を使用します
Title.displayFormat={$title^$date^ [^]}
この書式設定では、2つの書式項目を含む書式文字列を使用します。
$title^
$date^ [^]
結果の表示文字列は次のようになります。
Let It Be [1970]
*infoFileURI このアイテム、アルバムまたはアルバムディスクに関連付けられた情報ファイルのURI
* infoFileURIフォーマットプロパティを使用して、一部のUPnPコントロールポイントで情報ファイル(デジタルブックレット)の表示を有効にすることができます。 ライブラリ内のアイテムやアルバムに情報ファイルを関連付ける方法の詳細については、情報ファイルのセクションを参照してください。 情報ファイルの場所をUPnPコントロールポイントに送信するには、itemTagsプロパティのタグリストにCommentを追加し、tagFormatプロパティに適切なComment.displayFormat設定を定義します。 たとえば、次の形式設定を使用できます。
関連付けられた情報ファイルを持つアイテム、アルバム、およびアルバムディスクの場合、このフォーマット設定で作成されたコメント表示値は、UPnP記述情報の一部としてコントロールポイントに送信されます。 コントロールポイントは、ユーザがリンクを選択したときに、説明内のHTMLリンクを使用してWebブラウザで情報ファイルを開くことができます。 この「クリックして見る」サポートは現在、Android用のBubbleUPnPおよびBubbleDSコントロールポイントで利用できます。
indexFormatオプションは、アイテム内の既存のタグを置き換えません。 たとえば、オプション
WorkByTitle.indexFormat = {$ title $ tonality $ opusnumber $ subtitle}
このアイテムにWorkByTitleタグが存在しない場合は、WorkByTitleタグを追加します。 アイテムに既にWorkByTitleタグがある場合、タグは追加されません。 この制限はArtistタグには適用されません。
tagFormatプロパティに複数のindexFormatオプションが含まれている場合、これらのオプションは各項目(トラックまたはグループ)に、tagFormatプロパティの表示順に左から右に適用されます。
indexFormatの処理は、tagOptionsおよびtagValueの処理後に行われるため、indexFormatで作成された新しいタグには、tagOptionsまたはtagValueのカスタマイズが適用されません。
indexFormat形式の文字列でタグを処理する場合、これらのタグのインデックス値が使用されます。 書式文字列で処理される最初のタグにカスタムソート値が適用されている場合、このカスタムソート値はindexFormatオプションで作成された新しいタグに適用されます。
indexFormatオプションは、ライブラリのスキャン中に各ファイルに対して処理されます。 これは、ブラウズ中に発生するdisplayFormat処理とは異なり、コントロールポイントが参照しているアイテムにのみ適用されます。 大きなライブラリがある場合、indexFormat処理のオーバーヘッドにより、スキャン時間とメモリー使用量が大幅に増加する可能性があります。
オーディオファイル
MinimServerは、次のファイルタイプを、以下にリストされているオーディオデータフォーマットおよびタグ付けフォーマットを含むオーディオファイルとして認識します。| .aac | タグなしのAAC(Advanced Audio Coding)オーディオデータを含むオーディオデータトランスポートストリーム(ADTS)ファイル |
| .aif .aiff | ID3v2.2、ID3v2.3、またはID3v2.4タグを持つAIFF(Audio Interchange File Format)ファイル |
| .dff | ダイレクトストリームデジタルインターチェンジファイル形式(DSDIFF)ファイル(タグなし) |
| .dsf | ID3v2.2、ID3v2.3またはID3v2.4タグ付きDSDストリーム形式ファイル |
| .flac | 無料のロスレスオーディオコーデック(FLAC)ファイル、Vorbisのコメントタグ付き |
| .mp3 | ID3v2.2、ID3v2.3、またはID3v2.4タグを持つMPEG-1、MPEG-2またはMPEG 2.5ファイル(レイヤーI、IIおよびIII) |
| .mp4 .m4a .m4b [NEW] | MPEG-4 / iTunesタグ付き、AAC(Advanced Audio Coding)またはALAC(Apple Lossless)オーディオデータを含むMPEG-4オーディオファイル |
| .ogg | Ogg / Vorbisファイル、Vorbisコメントタグ |
| .wav | Waveformオーディオファイル形式ファイル(ID3v2.2、ID3v2.3またはID3v2.4タグ付き) |
プレイリスト
MinimServerは次のファイルタイプをプレイリストとして認識します。| .m3u | Windows-1252またはISO 8859-1文字セットを使用する標準または拡張M3Uプレイリスト |
| .m3u8 | UTF-8文字セットを使用する標準または拡張M3Uプレイリスト |
ファイルスキャン
デフォルトでは、MinimServerは各コンテンツディレクトリ内のすべてのファイルとそのサブフォルダをスキャンして、ライブラリ内のオーディオファイルとプレイリストを識別しますが、次の例外があります。- Windows上で実行すると、隠しファイルとシステムファイルとフォルダはスキャン対象から除外されます
- QNAP NAS上で実行すると、.@__thumb と@Recycleという名前のフォルダはスキャンから除外されます
- Synology NASで実行している場合、@eaDir と #Recycleという名前のフォルダはスキャンから除外されます
- ASUSTOR NAS上で動作している場合、#Recycleという名前のフォルダはスキャン対象から除外されます
パターンには、ワイルドカード(*)文字とリテラル文字(*を除くすべて)の任意の組み合わせを含めることができます。パターン内のすべてのリテラル文字がファイル名またはフォルダ名のリテラル文字と正確に一致し、パターン内の各ワイルドカード文字がファイル名またはフォルダ名の0個以上のリテラル文字と一致する場合、パターンはファイル名またはフォルダ名と一致します。
たとえば、有効なパターンマッチングは次のとおりです。
| パターン | ファイル名またはフォルダ名 |
|---|---|
| .* | .myfile.flac |
| *.mp3 | myfile.mp3 |
| *.aif* | myfile.aiff |
| backup* | backup2 |
| exclude | exclude |
| *-old.* | myfile-old.aiff |
| パターン | ファイル名またはフォルダ名 |
|---|---|
| *.mp3 | myfile.flac |
| *.aif | myfile.aiff |
| file.* | myfile.mp3 |
'*,*', '"Hello"*', "'*"
はパターン *,*, "Hello"* and '*. を指定します。
アートワーク
オーディオファイルを表示する場合、MinimServerは次の検索順序を使用してアートワークを検索します。- オーディオファイルに埋め込まれたJPEG、PNG、GIFまたはBMP形式のアートワーク
- オーディオファイルと同じディレクトリ(フォルダ)にあるfilename.jpgまたはfilename.pngという名前のファイル(大文字と小文字を区別する一致のみ)。ここでfilenameはアイテムのファイル名の拡張子を外したものです。たとえば、オーディオファイルMagnificat.flacは、Magnificat.jpgファイルまたはMagnificat.pngファイルにアートワークを持つことができます。
- オーディオファイルがアルバムの一部である場合、アルバムのアートワーク(下記参照)
- オーディオファイルがアルバムの一部ではなくグループの一部である場合、グループのアートワーク(下記参照)は、
- オーディオファイルと同じディレクトリ(フォルダ)にあるfolder.jpgという名前のファイル(可能であれば大文字と小文字を区別した一致、あるいは大文字と小文字を区別しない一致)
- オーディオファイルと同じディレクトリ(フォルダ)にあるfolder.pngという名前のファイル(上記と同じ大文字と小文字が一致する検索順序)
- オーディオファイルと同じディレクトリ(フォルダ)にあるcover.jpgという名前のファイル(上記と同じ大文字と小文字の一致する検索順序)
- オーディオファイルと同じディレクトリ(フォルダ)内にあるcover.pngという名前のファイル(上記と同じ大文字と小文字の一致する検索順序)
- アルバムのトラックのオーディオファイルに埋め込まれたJPEG、PNG、GIFまたはBMP形式のアートワーク。 アルバムの複数のトラックにアートワークが埋め込まれている場合は、最も小さい番号のトラックのアートワークが使用されます。
- アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)にalbumname.jpgまたはalbumname.pngという名前のファイル(大文字と小文字の区別のみ)。albumnameはアルバムの名前です。 ファイル名で使用できない文字を含むアルバム名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- 上記の手順5〜8で説明した大文字と小文字を区別した検索順序を使用して、アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)にfolder.jpg、folder.png、cover.jpgまたはcover.pngという名前のファイルを作成します。
- グループのトラックのオーディオファイルに埋め込まれたJPEG、PNG、GIFまたはBMP形式のアートワーク。 グループアルバムの複数のトラックにアートワークが埋め込まれている場合は、最も小さい番号のトラックのアートワークが使用されます。
- グループ内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のgroupname.jpgまたはgroupname.png(大文字と小文字の区別のみ)というファイル。ここで、groupnameはグループの名前です。 ファイル名で使用できない文字を含むグループ名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- 上記の手順5〜8で説明した大文字と小文字を区別する検索順序を使用して、グループ内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のfolder.jpg、folder.png、cover.jpgまたはcover.pngという名前のファイル。
- アルバムディスクのトラックのオーディオファイルに埋め込まれたJPEG、PNG、GIFまたはBMP形式のアートワーク。 アルバムディスクの複数のトラックにアートワークが埋め込まれている場合は、最も小さい番号のトラックのアートワークが使用されます。
- アルバムディスク内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のdiscname.jpgまたはdiscname.png(大文字と小文字の区別のみ)というファイル。ここで、discnameはDISCSUBTITLEタグで指定されたアルバムディスクの名前です 。 ファイル名で使用できない文字を含むアルバムディスク名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- 上記の手順5〜8で説明した大文字と小文字を区別した検索順序を使用して、アルバムディスク内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のfolder.jpg、folder.png、cover.jpgまたはcover.pngという名前のファイル 。
- プレイリストと同じディレクトリ(フォルダ)にfilename.jpgまたはfilename.png(大文字と小文字のみが一致する)という名前のファイル。filenameは、ファイルタイプの拡張子を持たないプレイリストのファイル名です。 例えば、プレイリストRadio.m3uはRadio.jpgまたはRadio.pngファイルにアートワークを持つことができます。
- 上記の手順5〜8で説明した大文字と小文字を区別した検索順序を使用して、プレイリストと同じディレクトリ(フォルダ)にfolder.jpg、folder.png、cover.jpgまたはcover.pngという名前のファイルを作成します。
- プレイリストと同じディレクトリ(フォルダ)内のentryname.jpgまたはentryname.png(大文字と小文字の区別のみ)という名前のファイル。entrynameは、プレイリストエントリのために#EXTINF 記述で指定されたプレイリストのタイトルです(システムID接頭語は含みません)。 ファイル名で使用できない文字を含むプレイリストエントリ名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
たとえば、プレイリストエントリ
#EXTINF:-1、[Naim] Naim Radio
http://37.130.228.60:8090/
はファイルNaim Radio.jpgまたはNaim Radio.pngにアートワークがある可能性があります。 - 上記の手順5〜8で説明した大文字と小文字を区別した検索順序を使用して、プレイリストと同じディレクトリ(フォルダ)にfolder.jpg、folder.png、cover.jpgまたはcover.pngという名前のファイルを作成します。
情報ファイル
音楽ライブラリに情報ファイル(デジタルブックレット)を含めることができます。 これらの情報ファイルをUPnPコントロールポイントで表示する方法の詳細については、「フォーマットプロパティ」セクションを参照してください。オーディオファイルごとに、MinimServerは次の検索順序を使用して情報ファイルを探します。
- オーディオファイルと同じディレクトリ(フォルダ)にfilename.pdf(大文字小文字一致のみ)という名前のファイル。filenameはファイルタイプの接尾辞を持たないオーディオファイルのファイル名です。 たとえば、オーディオファイルMagnificat.flacの情報ファイルは、Magnificat.pdfという名前になります。
- グループの一部であるオーディオファイルの場合、グループ内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のgroupname.pdf(大文字小文字一致のみ)という名前のファイル。ここで、groupnameは、 オーディオファイル。 ファイル名で使用できない文字を含むグループ名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- アルバムの一部であるオーディオファイルの場合、アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のalbumname.pdfという名前のファイル(大文字小文字一致のみ)。albumnameは、 オーディオファイル。 ファイル名で使用できない文字を含むアルバム名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- マルチディスクアルバムに含まれるオーディオファイルについては、いずれかのアルバムディスクにあるオーディオファイルと同じディレクトリ(フォルダ)内にあるdiscname.pdf という名前のファイル(大文字も小文字も一致する場合のみ)。discnameはDISCSUBTITLEタグに指定されたアルバムディスクの名前です。ファイル名で使用できない文字を含むアルバムディスク名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- オーディオファイルと同じディレクトリ(フォルダ)にあるfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能であれば大文字と小文字とも一致、さもなければ大文字と小文字を区別しない一致)
- グループの一部であるオーディオファイルの場合、グループ内のいずれかのオーディオファイルに相当する同じディレクトリ(フォルダ)にあるfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能であれば大文字と小文字とも一致、さもなければ大文字と小文字を区別しない一致)
- アルバムの一部であるオーディオファイルの場合、アルバム内のいずれかのオーディオファイルに相当する同じディレクトリ(フォルダ)にあるfolder.pdfまたはbooklet.pdfという名前のファイル使用可能であれば大文字と小文字とも一致、さもなければ大文字と小文字を区別しない一致)
- グループ内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のgroupname.pdf(大文字小文字ともに一致)というファイル。ここで、groupnameはグループの名前です。 ファイル名で使用できない文字を含むグループ名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- アルバムの一部であるグループの場合、アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のalbumname.pdfという名前のファイル(大文字小文字とも一致)。ここで、albumnameは グループを含むアルバムの名前。 ファイル名で使用できない文字を含むアルバム名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- グループ内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能な場合は大文字小文字ともに一致、そうでない場合は大文字と小文字が一致)
- アルバムの一部であるグループの場合、アルバム内のいずれかのオーディオファイルと同じディレクトリ(フォルダ)内のfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能な場合は大文字と小文字を区別、大文字と小文字を区別しない一致)
- アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のalbumname.pdfという名前のファイル(大文字と小文字のみが一致します)。albumnameはアルバムの名前です。 ファイル名で使用できない文字を含むアルバム名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- アルバム内のいずれかのオーディオファイルと同じディレクトリ(フォルダ)内のfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能であれば大文字と小文字を区別、大文字と小文字を区別しない一致)
-
アルバムディスク内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のdiscname.pdf(大文字と小文字の区別のみ)というファイル。ここで、discnameはDISCSUBTITLEタグで指定されたアルバムディスクの名前です。 ファイル名で使用できない文字を含むアルバムディスク名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- アルバム内の任意のオーディオファイルと同じディレクトリ(フォルダ)にalbumname.pdfという名前のファイル(大文字と小文字のみが一致します)。albumnameはアルバムの名前です。 ファイル名で使用できない文字を含むアルバム名を処理する方法の詳細については、不正なファイル名文字セクションを参照してください。
- アルバムディスク内の任意のオーディオファイルと同じディレクトリ(フォルダ)内のfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能であれば大文字と小文字を区別、大文字と小文字を区別しない一致)
- アルバム内のいずれかのオーディオファイルと同じディレクトリ(フォルダ)内のfolder.pdfまたはbooklet.pdfという名前のファイル(使用可能であれば大文字と小文字を区別、大文字と小文字を区別しない一致)
不正なファイル名文字
アルバム、グループ、アルバムディスク、またはプレイリストエントリのアートワークファイル(アートワークセクションを参照)または情報ファイル(情報ファイルセクションを参照)を作成するときに、アルバム、グループ、アルバムディスクまたはプレイリストのエントリの名前に、ファイル名には使用できない文字が含まれている可能性があります。ファイル名に使用できない文字の規則は、プラットフォーム(Windows、Mac、Linux)によって異なります。 また、MinimServerが実行されているプラットフォームは、ライブラリファイルをホストしているプラットフォームとは異なる場合があります。 すべてのプラットフォームでファイル名を一貫して扱うために、MinimServerはサポートされているプラットフォームでは無効なすべての文字に対して特別な処理を使用します。 これらの文字は次のとおりです。
" (double quote)上記のリストの文字がアルバム、グループ、アルバムディスク、またはプレイリストエントリの名前に表示されている場合は、一致する.jpg、.png、または.pdfファイルの名前部分からこれらの文字を省略する必要があります。
* (asterisk)
/ (slash)
: (colon)
< (less than)
> (greater than)
? (question mark)
\ (backslash)
| (vertical bar)
たとえばアルバム名
Beethoven: Symphony 9 "Choral"と一致するブックレットファイルは、すべてのプラットフォーム上で
Beethoven Symphony 9 Choral.pdfとなります。
アルバムとフォルダ
MinimServerは、次のフォルダまたはサブフォルダの処理を開始する前に、各フォルダの内容全体を処理してライブラリをスキャンします。 各フォルダ内で、オーディオファイルは、アルバム名(アルバムタグの値)に基づいてアルバムにグループ化されます。場合によっては、アルバムの内容が複数のフォルダにまたがっている場合があります。 たとえば、マルチディスクにはそれぞれのディスクが別のフォルダに入っていたり、ライブラリフォルダの構造がアルバムではなくアーティストや作曲家に基づいている場合があります。 これらのケースを可能にするために、MinimServerは次のいずれかに該当する場合、異なるフォルダのアルバムコンテンツをマージします。
- DISCNUMBERタグを含むフォルダアルバムコンテンツ
- 文字列の末尾が、[disc <n>]、(disc <n>)、またはdisc<n>となっているフォルダのアルバム名。<n>は正の整数です(Multidiscのアルバムセクションを参照)
- DISCSUBTITLEタグを含むフォルダアルバムコンテンツ
- 文字列[part]を含むフォルダ名
- mergeFolderAlbumsプロパティがtrueに設定されている
- アルバム名は、末尾の[disc <n>]、(disc <n>)、またはdisc<n>を除いて同じ
- アーティストの値が同じ(この値はAlbumArtistタグが存在するならその値、またはArtistタグの値がフォルダアルバム内のすべてのオーディオファイルについて同じならArtistタグの値)
- フォルダマッチフィルタ(存在する場合)が同じ。 マッチフィルタは、フォルダー名に追加できる['<filter>']という形式のオプションの接尾辞です。
ライブラリをブラウズ中にマルチディスクアルバムの内容を表示するためのさまざまなオプションについては、マルチディスクアルバムセクションを参照してください。
タグマッピング
FLACファイルとOgg / Vorbisファイルは、Vorbisコメントを使用してタグ付けされ、MinimServerはファイルに表示されるタグ名を使用します。 ID3v2タグまたはMPEG-4 / iTunesタグを含むファイルの場合、MinimServerはID3v2フレームとMPEG-4 / iTunesタグからFLAC / Vorbisタグ名に次のマッピングを提供します。| FLAC/Vorbis name | ID3v2.2 frame | ID3v2.3 frame | ID3v2.4 frame | MPEG-4/iTunes tag |
|---|---|---|---|---|
| ALBUM | TAL | TALB | TALB | ゥalb |
| ALBUMARTIST | TP2 | TPE2 | TPE2 | aART |
| ALBUMARTISTSORT | TS2 | TSO2 | TSO2 | soaa |
| ALBUMSORT | TSA | TSOA | TSOA | soal |
| ARTIST | TP1 | TPE1 | TPE1 | ゥART |
| ARTISTSORT | TSP | TSOP | TSOP | soar |
| BPM | TBP | TBPM | TBPM | tmpo |
| COMMENT | COM | COMM | COMM | ゥcmt |
| COMPILATION | TCP | TCMP | TCMP | cpil |
| COMPOSER | TCM | TCOM | TCOM | ゥwrt |
| COMPOSERSORT | TSC | TSOC | TSOC | soco |
| CONDUCTOR | TP3 | TPE3 | TPE3 | ゥcon |
| CONTENTGROUP | TT1 | TIT1 | TIT1 | ゥgrp |
| COPYRIGHT | TCR | TCOP | TCOP | cprt |
| DATE | TYE, TDA | TYER, TDAT | TDRC | ゥday |
| DISCNUMBER | TPA | TPOS | TPOS | disk |
| DISCSUBTITLE | TSST | |||
| ENCODEDBY | TEN | TENC | TENC | ゥtoo |
| GENRE | TCO | TCON | TCON | gnre, ゥgen |
| ISRC | TRC | TSRC | TSRC | |
| LABEL | TPB | TPUB | TPUB | |
| LANGUAGE | TLA | TLAN | TLAN | |
| LYRICIST | TXT | TEXT | TEXT | |
| LYRICS | ULT | USLT | USLT | ゥlyr |
| MOOD | TMOO | |||
| ORIGINALARTIST | TOA | TOPE | TOPE | ゥope |
| ORIGINALDATE | TOR | TORY | TDOR | |
| RELEASEDATE | TDRL | |||
| REMIXER | TP4 | TPE4 | TPE4 | |
| SUBTITLE | TT3 | TIT3 | TIT3 | |
| TOTALDISCS | TPA | TPOS | TPOS | disk |
| TOTALTRACKS | TRK | TRCK | TRCK | trkn |
| TRACKNUMBER | TRK | TRCK | TRCK | trkn |
| TITLE | TT2 | TIT2 | TIT2 | ゥnam |
| TITLESORT | TST | TSOT | TSOT | sonm |
| see below | TXX | TXXX | TXXX | ---- |
タグエイリアス
aliasTagsプロパティには、カンマで区切られたタグエイリアスのリストが含まれています。 各タグエイリアスは、コロンで区切られたタグ名のペアです。 たとえば、タグの別名ReleaseDate:Dateは、ReleaseDateをDateのエイリアスとして定義します。これにより、MinimServerはReleaseDateタグ(ソース)のすべての出現をDateタグ(ターゲット)のように扱います。このようにエイリアス化されたタグは、元の(ソース)名では使用できなくなります。 タグ名はソースとして複数回表示することはできませんが、同じタグ名をターゲットとして表示できる回数に制限はありません。
ターゲット名がファイルに表示されているタグ名と一致すると、予期しない重複または矛盾するタグエントリが表示されることがあります。 たとえば、ファイルにReleaseDateタグとDateタグの両方が含まれていて、aliasTagsプロパティにReleaseDate:Dateを設定している場合、MinimServerはエイリアス化されたReleaseDateタグとunaliased DateタグをDateタグのように扱います。 これを防ぐには、ターゲットタグ名の前にマイナス記号( - )を付けることができます。 この例では、ReleaseDate:-Dateを設定すると、ファイルにReleaseDateタグがある場合、MinimServerはファイル内のDateタグを無視します。
MinimServerでタグを完全に無視したい場合は、indexTagsやitemTagsには表示されない別の名前(nilなど)に別名を付けることができます。
タグエイリアスの置換は、ID3v2およびMPEG-4 / iTunesタグマッピングが適用された後に行われます(タグマッピングのセクションを参照)。 これにより、タグエイリアシングを使用して、MinimServerがID3v2フレームとMPEG-4 / iTunesタグ用に用意した定義済みのマッピングをカスタマイズできます。 たとえば、ID3v2.3 TPUBフレームをLABELではなくPUBLISHERにマップする場合は、タグ別名Label:Publisherを追加できます。
タグ値のカスタマイズ
MinimServerは、以下のセクションで説明するオプション設定を使用して、タグ値のカスタマイズをサポートしています。 カスタマイズをサポートするため、MinimServerは各タグにインデックス値、ソート値、および表示値を与えます。 インデックス値は、ライブラリをブラウズ中のインデックスリストに表示される値で、ソート値はインデックスリストの並べ替えに使用される値で、表示値はコントロールポイントのプレイリストおよび再生中の画面に表示される値です。デフォルトでは、タグのインデックス、ソート、および表示の値は、MinimServerがオーディオファイルから読み込むタグの値と同じです。 オプションで、タグのインデックスをカスタマイズし、次のセクションで説明するtagOptionsプロパティとtagValueプロパティを使用して値をソートまたは表示できます。
インデックス値、ソート値、または表示値(またはこれらの組み合わせ)をカスタマイズする必要があるかどうかを指定するための特別なオプション構文があります。 この仕様は、オプション名の後に '.display'、 '.sort'、 '.index'、またはこれらの接尾辞の任意の組み合わせをつけることによって提供されます。 特別な接尾辞 '.*' は、これらすべての接尾辞の組み合わせを表すために省略形として使用できます。
たとえば、ComposerSortタグの「姓」の最初のフォームでタグ付けされた作者名を反転し、逆の名前をインデックスとして使用してタグの値を表示するには、tagOptionsオプションにComposerSort.reverseName.index.displayオプションを指定します プロパティ。 逆の名前をインデックスとして使用して値を並べ替えて表示するには、ComposerSort.reverseName。*を指定します。
タグオプション
tagOptionsプロパティを使用すると、オーディオファイルタグを特別に扱うためのカンマ区切りのオプションリストを指定できます。 各タグオプションは、それが適用されるタグ(アーティストや日付など)と、その後にオプション名で構成されます。 このオプションに値が必要な場合は、オプション名の後に等号と中括弧が続きます。 たとえば、Album.sortTags = {Date、Artist}は、Albumタグの 'sortTags'オプションの値 'Date、Artist'を指定します。値を持たないオプションの場合、オプションの前にオプションで「+」を付けるか、オプションで「 - 」でオプションを無効にすることができます。 どちらも指定されていない場合、 '+'が仮定されます。 たとえば、Date.yearOnly.indexは、Dateタグの 'yearOnly.index'オプションを有効にします。
いくつかのオプションは、タグ名として特別な値 'all'または '[all]'を使用することによって、すべてのタグに適用できます。 たとえば、タグオプションall.ignore.sort = {The}は、すべてのオーディオファイルタグに対して 'ignore.sort = {The}'オプションを有効にします。 この 'all'オプションは個々のタグに対してオーバーライドすることができます。 たとえば、オプション文字列
all.ignore.sort = {The}、-Album.ignore.sort
アルバム以外のすべてのタグに対して 'ignore.sort = {The}'オプションを有効にします。 このようにオプションを無効にする場合、オプション値を省略する必要があります。
次のタグオプションを使用できます。
| decade | decadeをタグのインデックス値、表示値、またはソート値として使用します。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 たとえば、Date.decade.indexオプションを指定すると、 '1970s'という値を使用して '1973年'と '1979-04-05'の索引付けが行われます。 このオプションには値はありません。 |
| ignore | このオプションの値は、並べ替え、索引付け、または表示の目的で無視する必要がある、最初の単語または接頭辞のコンマ区切りのリストです。 単語の後にはスペース(たとえばThe Beatles)が続き、接頭辞はアポストロフィ( ')文字で終わります(たとえばL'estro)。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 たとえば、Artist.ignore.sort = {The}オプションを使用して、アーティストタグ値「The Beatles」を「Beatles、The」のようにソートし、インデックスに「Beatles」として表示することができます。 インデックス値を「Beatles、The」としたい場合は、Artist.ignore.sort.index = {The}オプションを使用できます。 |
| reverseName | 表示、索引付けまたはソートの目的で、「姓、名」フォームから「姓」フォームにタグ値を再フォーマットします。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 たとえば、Composer.reverseName.displayオプションを使用して、コントロールポイントのNow Playing画面でタグ値 "Bach、Johann Sebastian"を "Johann Sebastian Bach"として表示することができます。 Composerインデックスでこの名前を "Johann Sebastian Bach"としたい場合は、Composer.reverseName.display.indexオプションを使用できます。 このオプションには値はありません。 |
| sortTags | このオプションの値は、並べ替えの目的で比較を行う際に(リストされた順序で)使用されるカンマで区切られたタグ名のリストです。このオプションはアルバムタグにのみ適用できます。また、特別な値「フォルダ」または「[フォルダ]」をタグ名として使用して、フォルダビューでのアイテムの比較に使用することができます。また、<n>アイテムリストでアイテムの比較に使用することもできます値 'items'または '[items]'をタグ名として使用します。たとえば、DateおよびTitleタグでフォルダ項目をソートするには、folder.sortTags = {Date、Title}というオプションを指定します。詳細については、リストのソート順のセクションを参照してください。 デフォルトでは、リストのソート方向はindexTagsまたはitemTagsプロパティの '+'および ' - 'タグ接頭辞によって制御されます。このソート方向をアルバムまたはフォルダーのリストに対してオーバーライドするには、sortTagsオプションでタグ名の接頭辞「+」または「 - 」を指定します。たとえば、Date値を降順で並べ替えるときにDateタグの値を昇順にソートするには、Album.sortTags = {+ Date、Title}のタグオプションを指定します。 |
| yearMonth | タグのインデックス値、表示値またはソート値として、4桁の年の後に2桁の月を使用します。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 たとえば、オプションDate.yearMonth.indexを指定すると、日付 '1984-02-05'と '1984-02-26'は '1984-02'の値を使用して索引付けされます。 このオプションには値はありません。 |
| yearOnly | タグのインデックス値、表示値またはソート値として4桁の年を使用します。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 たとえば、Date.yearOnly.indexオプションを指定すると、日付 '1984-02-05'と '1984-09-07'は '1984'という値を使用して索引付けされます。 このオプションには値はありません。 |
タグの値
tagValueプロパティを使用すると、個々のオーディオ項目のオーディオファイルタグのカスタム処理のオプションをコンマで区切って指定できます。 各オプションの設定は、適用するオプションのタグ名(ArtistやComposerなど)とオプション名、その後に等号と中カッコで囲まれた値タグ名のカンマ区切りリストで構成されます。 たとえば、Composer.default = {ComposerSort}は、ComposerSortタグの 'default'オプションに 'ComposerSort'という値を指定します。オプションタグ名はターゲットタグ(その値が変更されているため)とし、中括弧内のタグはソースタグ(変更された値を提供するため)と呼ばれます。 上記の例では、ターゲットタグはComposerであり、ソースタグはComposerSortです。
次のオプションを使用できます。
| default | ターゲットタグがオーディオファイルに存在しない場合は、ファイルに存在する最初のソースタグ名(存在する場合)が、ターゲットタグの値を提供するために使用されます。 たとえば、オプション設定Artist.default={Soloist,Performer}は、各オーディオファイルにArtistタグが含まれているかどうかを調べます。 Artistタグが見つからない場合、オーディオファイルのソロリストタグがチェックされます。 ソリストタグが見つかった場合は、その値がオーディオファイルのアーティスト値として使用されます。 ソリストタグが見つからない場合は、オーディオファイルのPerformerタグがチェックされ、見つかった場合はArtist値が提供されます。 最初のソースタグの一致が検出されたとき、またはすべてのソースタグ名がチェックされたときに処理が終了します。 ソースタグとその値は変更されません。 |
| merge | オーディオファイルに存在するすべてのソースタグ名(存在する場合)のすべてのタグ値は、重複値を無視してターゲットタグ値にマージされます。 たとえば、Artist.merge={Soloist,Performer}のオプション設定では、各オーディオファイルにSoloistタグが含まれているかどうかを調べます。 ソロリストタグが見つかった場合は、その値がオーディオファイルのアーティスト値(ある場合)に追加されます。 次に、オーディオファイルのPerformerタグがチェックされ、見つかった場合はArtist値に追加されます。 すべてのソースタグ名がチェックされたら処理が終了します。 ソースタグとその値は変更されません。 |
| replace | オーディオファイルに存在する最初のソースタグ名(存在する場合)が、ターゲットタグの値を提供または置換するために使用されます。 たとえば、Artist.replace = {Soloist、Performer}のオプション設定では、各オーディオファイルにSoloistタグが含まれているかどうかを調べます。 ソリストタグが見つかった場合は、その値がオーディオファイルのアーティスト値として使用され、タグ付きArtist値が置き換えられます。 ソリストタグが見つからない場合、オーディオファイルはPerformerタグがチェックされ、見つかった場合、これらのタグがArtist Tagのタグ値を置き換えるために使用されます。 最初のソースタグ名が一致したとき、またはすべてのソースタグ名がチェックされたときに処理が終了します。 ソースタグとその値は変更されません。 |
| value | オーディオファイルに存在する最初のソースタグ名(存在する場合)が、ターゲットタグのカスタム値または値を提供するために使用されます。 このオプションは、ターゲットタグのインデックス値、ソート値、表示値、またはこれらの値の任意の組み合わせをカスタマイズするために使用できます。 このオプションは、「タグ値のカスタマイズ」セクションの説明に従って接尾辞を付ける必要があります。 ソースおよび/またはターゲットタグが複数の値を有する場合、ソースタグ値およびターゲットタグ値は位置的にマッチングされるので、n番目のソースタグ値は、両方のタグが少なくともn個の値を有する場合、n番目のターゲットタグ値の値を提供する。 たとえば、オプション設定Artist.value.sort = {ArtistSort}は、ファイルに存在するArtistSort値を使用して、対応するArtist値のソート値を提供します。 最初のソースタグ名が一致したとき、またはすべてのソースタグ名がチェックされたときに処理が終了します。 ソースタグとその値は変更されません。 |
Composer.value.sort = {ComposerSort}、Composer.default = {ComposerSort}
(ファイルにそのような一致が含まれている場合)、次にComposerSort値を使用してComposer値を提供します(Composer値がファイルに存在しない場合)。 これらの手順の順序を逆にすると、value.sortオプションの設定を処理するときに、デフォルトのオプション設定によって追加されたComposer値がすべて含まれるため、別の結果が生成されます。
タグオプションセクションで説明したdecade、ignore、reverseName、yearMonth、またはyearOnlyオプションを使用してソースタグ値をカスタマイズする場合、またはこのセクションで説明するオプションを使用して、これらのカスタマイズをデフォルトで保持するかどうか、このセクションで説明されているオプションをマージして置き換えます。これらのカスタマイズを保持するには、ソースタグ名に接尾辞.customを追加する必要があります。たとえば、tagOptionsプロパティがComposerSort.reverseName.displayに設定され、tagValueプロパティがComposer.default = {ComposerSort.custom}に設定されている場合、Composerのデフォルト値として使用されるComposerSortタグ値は、その反転表示を保持します名。 .custom接尾辞は、いくつかのターゲットタグで使用することはできません(次の段落を参照してください)。
Album、AlbumArtist、Date、DiscNumber、DiscSubtitle、Group、Title、およびTrackNumberタグは、MinimServerによって特別に処理されます。このため、これらのターゲットタグのデフォルト、マージ、および置換オプションは、ソースタグ値のカスタマイズを保持できません。このため、前の段落で説明した.custom接尾辞は、これらのターゲットタグでは使用できません。たとえば、tagOptionsプロパティがDate.yearOnly.index、OriginalDate.yearMonth.indexに設定され、tagValueプロパティがDate.replace = {OriginalDate}に設定されている場合、Dateの置換値として使用されるOriginalDateタグ値には、 Dateインデックスの "年のみ"のインデックス値とOriginalDateインデックスの "年月"のインデックス値。
同様に、オプション設定Title.value.sort = {TitleSort}は、TitleSortタグ値(ファイル内に存在する場合)を使用して、Titleタグ値のソート値を提供します。
タグ値のカスタムソート
任意のタグ値にカスタムソート値を指定するには、tagValueプロパティのvalue.sortオプションを使用します。 たとえば、 「...It's Too Late To Stop Now...」というタイトルのアルバムをソートしたい場合、「...」ではなく「I」の下に並べるには、次のようにすることができます:- itemTagsリストにAlbumSortを追加する
- tagValueプロパティで、以下の設定を追加します。
Album.value.sort = {AlbumSort} - このアルバムのタグでは、It's Too Late To Stop Nowという値のAlbumSortタグを追加します
カスタムアーティストインデックスのソート
ライブラリにArtistSortタグが含まれている場合は、tagValueプロパティのvalue.sortオプション設定を使用して、ArtistSortタグの値を使用してArtistインデックスのエントリを並べ替えることができます。これを設定するには、次のようにします。- indexTagsリストにアーティストがまだない場合は、追加します。
- ライブラリにAlbumArtistタグが含まれている場合は、albumArtistをitemTagsリスト(AlbumArtist値にアーティストインデックスを使用する場合)またはindexTagsリスト(別のAlbumArtistインデックスを使用する場合)に設定してください。
- まだ存在していない場合は、itemTagsリストにArtistSortを追加します。
- tagValueプロパティを次のように設定します。
Artist.value.sort = {ArtistSort}、AlbumArtist.value.sort = {ArtistSort}
AlbumArtistタグがない場合は、AlbumArtist.value.sort設定を省略できます。
reverseNameオプションの使用
多くの人は、作曲者のlastnameで作曲者インデックスリストをソートする方が好きです。 ライブラリ内のComposerタグに "firstname(s) lastname(s)"形式の値が入力されている場合、これはあまり簡単ではありません。1つの解決策は、Composerタグの名前の順序を"lastname(s), firstname(s)"に手動で戻すことです。 これは余分な手作業のステップが発生し、コントロールポイントの「再生中」画面で同じように逆順に表示されるという欠点(一部の人の見解では)があります。
これを避けるためにライブラリのComposerSortタグに"lastname(s), firstname(s)"形式で、同様にComposer タグに"firstname(s) lastname(s)"形式で代入することができます。これによって望む結果が得られますが、ライブラリ内のすべてのクラシック音楽ファイルについて同じ情報を2つの異なるフォーマットで維持する必要があり、いくつかのファイルについては首尾一貫しないか不完全な情報を含むことが避けられないという問題が発生します。
ArtistとAlbumArtistタグでも同様の考慮事項とトレードオフが発生します。
MinimServerは、"lastname(s), firstname(s)"形式の自動逆転をサポートすることにより、これらの問題に対する洗練された解決法を提供します。 この形式のComposerタグがすでにある場合は、tagOptionsプロパティのComposer.reverseName.display設定を使用して、コントロールポイントのNow Playing画面に表示するためにこれらの名前を自動的に逆転させることができます。 Composerインデックスに逆の名前を表示する場合は、Composer.reverseName.display.index設定を使用できます。
このアプローチでは、MinimServerの自動反転が目的の結果を生成できない例外的なケースは処理されません。 これらのケースを処理できるようにするには、次のやや複雑なタグ付け手法を使用します。
- ComposerSortタグには、可能な場合は"lastnames(s), firstnames(s)"という形式の名前が入力されます。 (Josquin des Prezのように作曲家の何人かはfirstnamesを持っていません)
- ComposerSort値がNow Playing画面に望ましい値を生成しない例外的な場合にのみ、Composerタグが設定されます。
- ComposerSort.reverseName.displayの設定は、tagOptionsプロパティに追加されます。この設定では、MinimServerは自動的に各ComposerSortタグに"firstname(s) lastname(s)"の表示値を与えます。
- Composer.value.sort = {ComposerSort}とComposer.default = {ComposerSort.custom}の設定が、この順序でtagValueプロパティに追加されます。
- 各オーディオファイルが読み込まれると、MinimServerはそのファイルにComposerタグとComposerSortタグがあるかどうかを確認します。ファイルには、これらのタグの両方がある場合、MinimServerは作曲タグのソート値を設定するComposerSortタグからソート値を使用し、そのまま作曲タグの表示とインデックス値を残します。ファイルにComposerSortタグがあり、Composerタグがない場合、MinimServerはComposerSortタグのソートおよび表示値をデフォルトのソートとして使用し、Composerタグの値を表示します。ファイルにComposerタグがあり、ComposerSortタグがない場合、MinimServerはComposerタグ値を表示およびソートに使用します。
- 上記の設定では、ComposerSortタグの元の値がインデックス値として使用されます。つまり、インデックスエントリは「姓、名」として表示されます。インデックスエントリを「名前の姓」として表示したい場合は、ComposerSort.reverseName.displayの代わりにtagValue設定ComposerSort.reverseName.display.indexを使用できます。
- ArtistおよびArtistSortタグ、および/またはAlbumArtistタグとAlbumArtistSortタグでも同様の方法を適用できます。ソート順をカスタマイズする他のカスタムタグでもこの操作を行うことができます。
タグのフォーマット
tagFormatプロパティを使用して、オーディオファイルタグのカスタムフォーマット設定のコンマ区切りリストを指定できます。 各書式の設定は、適用するタグ名(Album、Artist、Titleなど)と書式タイプ(displayFormatまたはindexFormatのいずれか)とフォーマット文字列で構成されます。ほとんどのコントロールポイントでは、displayFormat設定では、Now Playing画面のコントロールポイントとプレイリストとアルバムのコンテンツの値を制御し、indexFormat設定はライブラリを参照しながらインデックスリストに表示される値を制御します。
このオプションの完全な構文は、
tag-name.displayFormat = {フォーマット文字列}
または
tag-name.indexFormat = {フォーマット文字列}
です。ここで、フォーマット文字列は、1つ以上のフォーマット項目のシーケンスです。 各書式項目にはタグリストが含まれ、オプションで接頭辞、接尾辞、および区切り記号を含めることができます。 書式項目は、次のいずれかの形式で記述することができます。
$tag-list^prefix^suffix^separator
$tag-list^prefix^suffix
$tag-list^prefix
$tag-list
これらの最後(^なし)は、最終的な書式項目に対してのみ使用できます。
たとえば、書式文字列
$artist$ensemble^$date^ [^]
には、次の2つの書式の項目が含まれています。
$artist$ensemble^
$date^ [^]
各書式項目に対して、MinimServerはタグリスト内のすべてのタグを検索し、タグ値を結合して重複を除去した単一の文字列にします。 タグ値はセパレータで区切られ、タグ値の文字列の前に接頭辞が続き、接尾辞が続きます。 タグ値の文字列が空の場合、接頭辞と接尾辞は使用されません。 タグリスト内のタグは、indexTagsまたはitemTagsプロパティのいずれかになければなりません。
例を見てみましょう。 フォーマット設定
Artist.displayFormat={$artist$orchestra$conductor}
はデフォルトのセパレータ、接頭辞および接尾辞を使用して、タグ付きアーティスト、オーケストラおよび指揮者の値(存在する場合)をすべて組み合わせて、アーティストの表示文字列を作成するようにMinimServerに指示します。 デフォルトの区切り文字は ', '(カンマとスペース)で、デフォルトの接頭辞と接尾辞は両方ともヌル文字列です。 たとえば、2人のアーティストとオーケストラや指揮者のいない表示文字列は、以下のようなものかもしれません。
Andrew Manze, Richard Egarr
アーティストをコンマではなくスラッシュで区切って表示したい場合は、フォーマット設定を使用できます
Artist.displayFormat={$artist$orchestra$conductor^^^ / }
前の例では、これは以下のようになります。
Andrew Manze / Richard Egarr
書式文字列を拡張して、追加の書式項目を含めることができます。 たとえば、ソングタイトルの一部として録音日付を表示するには、フォーマット設定を使用します
Title.displayFormat={$title^$date^ [^]}
この書式設定では、2つの書式項目を含む書式文字列を使用します。
$title^
$date^ [^]
結果の表示文字列は次のようになります。
Let It Be [1970]
フォーマットプロパティ
書式文字列には、書式プロパティとタグ名を使用できます。 書式プロパティは、アスタリスク( '*')文字で始まります。 次のフォーマットプロパティを使用できます。*infoFileURI このアイテム、アルバムまたはアルバムディスクに関連付けられた情報ファイルのURI
* infoFileURIフォーマットプロパティを使用して、一部のUPnPコントロールポイントで情報ファイル(デジタルブックレット)の表示を有効にすることができます。 ライブラリ内のアイテムやアルバムに情報ファイルを関連付ける方法の詳細については、情報ファイルのセクションを参照してください。 情報ファイルの場所をUPnPコントロールポイントに送信するには、itemTagsプロパティのタグリストにCommentを追加し、tagFormatプロパティに適切なComment.displayFormat設定を定義します。 たとえば、次の形式設定を使用できます。
Comment.displayFormat={$*infoFileURI^<a href="^">Digital booklet</a>$comment}
または情報ファイルへの正しい形式のHTMLリンクを生成するその他の形式設定を使用します。関連付けられた情報ファイルを持つアイテム、アルバム、およびアルバムディスクの場合、このフォーマット設定で作成されたコメント表示値は、UPnP記述情報の一部としてコントロールポイントに送信されます。 コントロールポイントは、ユーザがリンクを選択したときに、説明内のHTMLリンクを使用してWebブラウザで情報ファイルを開くことができます。 この「クリックして見る」サポートは現在、Android用のBubbleUPnPおよびBubbleDSコントロールポイントで利用できます。
インデックスタグの書式設定
tagFormatプロパティのindexFormatオプションを使用してMinimServerインデックスをカスタマイズする場合、いくつかの追加の考慮事項が適用されます。 これらの考慮事項については、このセクションで説明します。indexFormatオプションは、アイテム内の既存のタグを置き換えません。 たとえば、オプション
WorkByTitle.indexFormat = {$ title $ tonality $ opusnumber $ subtitle}
このアイテムにWorkByTitleタグが存在しない場合は、WorkByTitleタグを追加します。 アイテムに既にWorkByTitleタグがある場合、タグは追加されません。 この制限はArtistタグには適用されません。
tagFormatプロパティに複数のindexFormatオプションが含まれている場合、これらのオプションは各項目(トラックまたはグループ)に、tagFormatプロパティの表示順に左から右に適用されます。
indexFormatの処理は、tagOptionsおよびtagValueの処理後に行われるため、indexFormatで作成された新しいタグには、tagOptionsまたはtagValueのカスタマイズが適用されません。
indexFormat形式の文字列でタグを処理する場合、これらのタグのインデックス値が使用されます。 書式文字列で処理される最初のタグにカスタムソート値が適用されている場合、このカスタムソート値はindexFormatオプションで作成された新しいタグに適用されます。
indexFormatオプションは、ライブラリのスキャン中に各ファイルに対して処理されます。 これは、ブラウズ中に発生するdisplayFormat処理とは異なり、コントロールポイントが参照しているアイテムにのみ適用されます。 大きなライブラリがある場合、indexFormat処理のオーバーヘッドにより、スキャン時間とメモリー使用量が大幅に増加する可能性があります。
counter:8,385