設定画面・仕様

設定画面 : 基本設定(v112.0.0)

設定画面「サーバの基本設定」に関する解説です。

「サーバの基本設定」にはいくつかの設定項目が追加されていますが、日本人が使用する場合はほとんどの場合デフォルトのままで問題ありません。場合によっては、作曲者を検索に含めるオプションを有効にすると良いかもしれない、程度です。

この記事にはJpsonicに新たに追加されている「言語とテーマ」「索引の設定」「ソートの設定」「検索の設定」というセクションの説明と、それぞれの仕様に関する付加的な情報が記載されています。
「抑制されているレガシー機能」は分量が多いためWikiのSuppressed or Removed Featuresという別記事にまとめられています。

言語とテーマ

このセクションではサーバのWeb表示で使用されるデフォルトの言語とテーマを指定することができます。個人設定にも同様の設定がありますが、個人設定で「デフォルト」を選択したときにここで設定されているものが使用されます。Jpsonicではこの値がインストール直後で日本語になっています。

「高度な設定」画面にある「Danger Zone」ではタグ解析の方式を変更できます。デフォルトでは「日本語解析を行う」になっていますが、ローマ字変換/解析スキップが可能です。その設定によっては、この設定画面で選択できる設定項目のいくつかが変化します。

ほとんどの方が日本語解析を使うと思うので、高度な設定に関する詳細は割愛します。この記事は「日本語解析を行う」前提で記載されています。

索引の設定

索引の入力項目はSubsonicと変わりませんが、内部の処理はより多くの言語に対応できるよう変更されています。日本語向けの索引として「あいうえお」と「あかさたな」が簡単に選べるようになっています。

索引の仕様

Jpsonicは索引やソートにおいてアーティストの表記文字列だけを使用するのではなく、個別に表記と読みのいずれを優先して使用するかどうかを判定しています。
そのため英語名のアーティストに対して日本語の読みをタグ登録しても、索引とソートは崩れない仕様になっています。
「高度な設定」で処理方式を変更可能
ラテン以外の外来語は、話者が日本人の場合日本語読みするのが通例です。習近平(しゅう きんぺい)等。

この規則は「高度な設定」で変更が可能であり、欧米向けのローマ字日本語設定に変更した場合、内部的に日本語はローマ字化されます。この場合中国語はピンインを使用すべきでしょう。
索引はほとんどの国でアルファベットもしくはアルファベット+母国語の形式で利用されるものですが、複数の国の言語を分けたい場合、日本語処理をバイパスしてSubsonicのようにある程度索引をカスタマイズをすることも可能です(ただしこの場合、日本人にとっては多くの機能が劣化します)。

索引は個人の好みというより国語が支配するもの、という考えです。またもともとタグデータに国コードが埋め込まれているわけではないため、システム仕様には限界があります。現在提供されている以上のカスタマイズの拡張は予定されていません。

索引分類不可能な名称

英語もしくは日本語に分類不可能な場合、索引項目の「#」に分類されます。タグの修正で回避できます。

捨て仮名
「ァィゥェォ」のような小さい母音は、一部のスマホのアドレス帳の索引では禁則文字とされていたりします。
日本人が使うアーティスト索引を作るときには、これらはあらかじめ考慮されるべきデータです。
分解不可能な合字
合字は日本人にはなじみが薄いですが、ラテンな曲やクラシック楽曲のアーティスト名ではしばしば使用されます。日本人にとって楽曲管理分野で遭遇する特有の問題ともいえますが、これらの表記はおそらく数百年後も変わりません。
一般的に日本人はこれらを英語読みするため、Jpsonicでは可能な限りアルファベット分類します。UNICODEで定められた分解規則で解決が不能な合字は「#」にはじき出されます。
難解な漢字

「倖田來未」のように、標準的な解析エンジンで処理困難な漢字に読みが登録されていない場合「#」に分類されることがあります。誤読する確率は(読みがタグで登録されていないアーティストのうち)概ね数パーセントです。タグなしデータを100人読ませれば、そのうち数人程度は間違える可能性があるということです。

ソートの設定

いくつかの機能が追加されています。デフォルトでは全て有効化されています。
項目名 概要
アルバムを年でソート アルバムをリリース順に並べます(大抵のソフトは普通この並び順)。オフで辞書順
ジャンルを辞書順でソート ジャンルを辞書順で並べます。ジャンルに読みのタグはないので精度はJpsonicの処理頼みになります。オフで件数順
variousで始まるアーティストのアルバムは年でソートしない 「アルバムを年でソート」の例外ともいえるソート規則。「Various Artists」「Various Classical Artists」「Various アニメ」などVariousから始まるアーティストのディレクトリではアルバムを辞書順ソートします。コンピレーションアルバムはCDDBのデータ精度が低かったり隔年リリースされたりという事情があるため。「Various ~」というネーミングはかつてGracenoteのデータガイドラインにも記載があった、広く普及している慣例規則です。

Jpsonicのソート例

タグなしデータのソート例

以下の例は20項目のサンプルを例にした、環境差によるソート差異を示した例です

  • もしタグがなくてもJpsonicは日本語ソートが可能です。タグによって読みが指定されていればそちらが優先されます
  • 万単位のライブラリではしばしば数十/数百の項目が並び、スマホでフリップして探すという作業が発生します
  • リストというものは前提として「正しいソート」という機能を内包します。大規模ライブラリでは超重要機能の一つです
パターンA(Windows) パターンB(Subsonic) パターンC(Jpsonic)
♂くんつ abcde abcde
abcde DEABC BCDEA
BCDEA eabcd ĆĎÉÁḄ
ĆĎÉÁḄ ĆĎÉÁḄ DEABC
DEABC αβγ eabcd
eabcd ♂くんつ 亜伊鵜絵尾
αβγ いうえおあ αβγ
いうえおあ ぉぁぃぅぇ いうえおあ
ゥェォァィ はるなつあきふゆ ゥェォァィ
ェォァィゥ ゥェォァィ エオアイウ
エオアイウ オアイウエ ェォァィゥ
ぉぁぃぅぇ パラレル ぉぁぃぅぇ
オアイウエ 亜伊鵜絵尾 オアイウエ
パラレル 張り切る 春夏秋冬
はるなつあきふゆ 春夏秋冬 貼られる
亜伊鵜絵尾 貼られる パラレル
春夏秋冬 馬力 馬力
張り切る BCDEA 張り切る
貼られる ェォァィゥ はるなつあきふゆ
馬力 エオアイウ ♂くんつ

αβγ(アルファベータガンマ)/春夏秋冬(シュンカシュウトウ)

ジャンルのソート例
この例はCDDBから取得したデータをそのまま利用した場合の例です。ジャンルをきちんと整理している場合、もう少し美しく表示されるかもしれません。

このビューエリアでは17項目表示されていますが、あくまで縦長Experiaの場合です。目安として20項目を超えるようなリストでは、何らかのソートの仕様がなければフラストレーションを感じるかもしれません。健常者の感覚ではその程度ですが、スクリーンリーダ前提であれば状況はより深刻になります。

連番ソートの例

実際にこのような高度なソートが必要になるケースは稀ですが、10巻以上あるリーディングブックなどが該当します(スピードラーニングのようなリスニング学習CDがライブラリ内にある場合など)。あるいは自撮りの音声ファイルや動画で、機械的なネーミングがされたファイルを管理する場合などが該当します。

パターンA(Subsonic/Airsonic) パターンB(Winsows/Jpsonic)
09X Radonius 09X Radonius
1000X Radonius Maximus 10X Radonius
10X Radonius 20X Radonius
200X Radonius 20X Radonius Prime
20X Radonius 30X Radonius
20X Radonius Prime 40X Radonius
30X Radonius 200X Radonius
40X Radonius 1000X Radonius Maximus
Allegia 50 Clasteron Allegia 6R Clasteron
Allegia 500 Clasteron Allegia 50B Clasteron
Allegia 50B Clasteron Allegia 50 Clasteron
Allegia 51 Clasteron Allegia 51 Clasteron
Allegia 6R Clasteron Allegia 500 Clasteron
Alpha 100 Alpha 2
Alpha 2 Alpha 2A
Alpha 200 Alpha 2A-900
Alpha 2A Alpha 2A-8000
Alpha 2A-8000 Alpha 100
Alpha 2A-900 Alpha 200
Callisto Morphamax Callisto Morphamax
Callisto Morphamax 500 Callisto Morphamax 500
Callisto Morphamax 5000 Callisto Morphamax 600
Callisto Morphamax 600 Callisto Morphamax 700
Callisto Morphamax 6000 SE Callisto Morphamax 5000
Callisto Morphamax 6000 SE2 Callisto Morphamax 6000 SE
Callisto Morphamax 700 Callisto Morphamax 6000 SE2
Callisto Morphamax 7000 Callisto Morphamax 7000
Xiph Xlater 10000 Xiph Xlater 5
Xiph Xlater 2000 Xiph Xlater 40
Xiph Xlater 300 Xiph Xlater 50
Xiph Xlater 40 Xiph Xlater 58
Xiph Xlater 5 Xiph Xlater 300
Xiph Xlater 50 Xiph Xlater 500
Xiph Xlater 500 Xiph Xlater 2000
Xiph Xlater 5000 Xiph Xlater 5000
Xiph Xlater 58 Xiph Xlater 10000

検索の設定

現在2つのオプションが存在します。

  • 作曲者を検索対象に含める
  • 入力されたクエリをログに出力する

タグ項目は仕様上おびただしい量の定義が存在しているのですが、一般的なプレイヤの表示項目に使用されるタグ項目は20年前からそれほど変わっていません。
「作曲者」は比較的最近になってサポートされるようになってきた項目です。そのためSubsonicにはこの項目が存在しません。WindowsのExplorerやMedia Player、Music Center for PCにはこの項目が存在しています。ユーザによって使う使わないが分かれそうなため、デフォルトでは有効化されていません。

クエリのログ出力はデバッグ機能です。主に音声入力時の入力を確認するためのものです。

検索の仕様

Sonic系サーバは数十万曲のライブラリを想定して設計されています。なおかつJpsonicは他のSonic系サーバよりも検索フィールドが多いです。そのため高速な検索方式が必要になります。

特定のデータベースに依存した実装は不可能なため、Luceneという専用の検索エンジンを使用しフレーズ検索が実装されています。また楽曲検索に特化したいくつかのユニーク仕様を持ちます。

単語単位で探します
Head Over Feet という曲を検索するとき、「Head」「Over」「Feet」どれかひとつの入力でヒットします。

日本語の場合「東京」は「東」ではなく「東京」という入力でヒットします。「東」という入力だけの場合、例えば「東へ西へ(井上陽水)」という曲があればヒットするでしょう。

語順が考慮されます
Head Over Feet という曲を検索するとき、「Feet Over Head 」ではヒットしません。「Head Over」「Over Feet」という入力はヒットします。簡単に言えば単語単位の前方一致のような動きです。単語だけを見ているわけではないので誤検索が少なく、数フレーズの入力で十分な精度が確保しやすいです。
語と語の距離が考慮されます
Head Over Feet という曲を検索するとき、「Head Feet」でもヒットします。このような検索を行いたいがために考慮されている仕様ではなく、ストップワードとの兼ね合いをとるための仕様です。もし入力されたフレーズが連続していなくても、ある一定距離まではセーフとみなします。
ストップワード
検索システムでは「この語は無視するよ」という言葉があらかじめ決められていることがあります。Jpsonicはストップワードが楽曲検索向けに最適化されており、フィールドごとに異なるものが設定されています。
たとえば「with 」という語を入力すると、以下のようにwithを含む曲がヒットします。

「H Jungle with t」はヒットしません。アーティスト(人名)では、逆にwithが邪魔になります。アーティストのフィールドでは他にも「cv」「feat」や冠詞もストップワードです。Subsonicにはこのような設計が存在しないため、楽曲検索向けとしては使いづらいものとなっています(これ以外にも問題は多々あるため、Subsonicでの日本語検索にはもともと無理があります。検索を2次利用した拡張機能などは望めません)

自然に記号が無視されます
「In The Forest (君の声が聞こえる)」というタイトルをフル入力した場合、例えば以下のようにヒットします。

CDDBから取得したままのデータには、しばしば「あるあるダーティデータ」が含まれます(ハイフン等の派生形もアリ)。ニアピン入力で探し出すことができるため、記号が不揃いなライブラリに対する検索が強いです。

整合性を突き詰めるうえでは「ひたすらデータを修正する」というのがあるべき姿ではあります。
とはいえ万単位のライブラリのデータをこのレベルまで統一修正してからでなくては検索が使えないというというのは「データに忠実」を通り越してユースケースに対する仕様が未熟で柔軟性に欠けているだけとも言えます。

Jpsonicの検索方式は「とりあえずリッピングしサーバに放り込み、使いつつ気になる箇所があればいつか直す」という緩い運用を可能にします。

人名は読みも検索します
人名は読みも検索対象になります。これは音声入力を意識した仕様です。

Androidの音声認識エンジンでは一般的なアーティストでは、忖度し可能な限り表記名を返そうとします。

半面、音声認識エンジンの解析は絶対ではないので、必ずしも表記名が返されずそのまま「読み」が返される場合もあります。(たとえば「シャンプー」など。日本語では前後の文脈がない音声入力で完全にアーティストの表記名を引き当てることは不可能です。)

そのため人名は読みと表記名の両方が検索対象です。人名以外の読みに対応しないのはデータ削減のためです。(実用性でいえば人名のケアだけでもおそらく十分です)

前方一致や完全一致はサポートしません
不要なためです。

Jpsonicの検索はスマホからのせいぜい数フレーズの入力、もしくは音声入力といった現実的なニーズが想定されています。前方一致や完全一致、正規表現といったものは強力な検索エンジンを持たないソフトウェアのための仕様です。
ちなみにUPnPガイドラインの検索仕様で定義されているのはcontainsとnot containsのみです。それ以外は必要性が下がるためです。

BubbleUPnPには、曲から曲・アルバムへのジャンプ機能が存在します。これはUPnPのcontains検索で実装されていますが(idによるリレーション検索ではない)、Jpsonicの検索精度で十分に期待動作します。

拡張子とショートカット

拡張子指定されたファイルはスキャンによりブラウジングが可能になります。またこれらのうち解析可能な音楽フォーマットについてはタグ解析が行われ、より詳細な音楽情報が利用可能になります。

楽曲の拡張子

Jpsonicの場合、デフォルトでスキャン対象に指定されているファイルのうち解析可能なフォーマットは以下のようになります。解析可能なファイルをスキャンした場合、ファイルサイズ等の基礎情報の他にオーディオヘッダとタグの解析が行われデータベースに登録されます。

スキャン対象(デフォルト) mp3 ogg oga m4a m4b flac wav wma aif aiff aifc dsf dff ape shn mka opus aac
解析可能 mp3 ogg oga m4a m4b flac wav wma aif aiff aifc dsf dff
解析不能ファイルの制限事項

パスが読める限り「探す」「聴く」に関する処理は実行可能です。ただしいくつかの機能が制限を受けます。

  • オーディオヘッダが読めない場合シーク等に影響が出る場合があります
  • タグが読めないファイルではタグ由来の曲情報が利用できません。アーティストやアルバムはパス情報が転用される場合があります

「探す」「聴く」の機能にそれぞれ影響が出るということです。

これは特にJpsonicに限った話ではありません。汎用性の高い音楽フォーマットを利用すれば機器間の差異は少なくなります。
WavはID3チャンクを採用
JpsonicではWavにID3チャンクが含まれている場合にのみタグを解析します。したがって、LISTINFOチャンクのみで構成されている古い形式の場合タグは解析されません。

  • WavにID3チャンクが含まれていない場合、INFOメッセージがログに出力されます
  • Id3Tag等のID3チャンクが使用可能なエディタを使用しタグ形式を変更するとログにメッセージは出力されなくなります
  • 最も一般的で最良の解決策は、Wavでの楽曲管理をやめてFLACに移行することです

代表的な警告メッセージ

Jpsomnicではパースエラーが発生した場合ログに警告を出力します。警告は1件につき1行の情報であり、簡単な内容とファイル名(***が短縮名、”***”はフルパス)が出力されます。このようなログが出力された場合データが破損している可能性があります。ライブラリ内のファイルやタグの修正が必要です。

WARN Unable to read ***: [No audio header found within “***”] 音楽ファイル以外を読み込もうとした場合等
WARN Unable to read ***: [Unable to read file because it is too small to be valid audio file: “***”] ファイル破損等で音楽ファイルとして扱えないファイルを読み込もうとした場合等
WARN Unable to read cover art in ***: [Unable to read file because it is too small to be valid audio “***”] 破損ファイルからカバーアートを読み込もうとした場合等
WARN Unable to read ***: [“***” Not a valid dsf file. Content does not start with ‘DSD ‘] タグ形式が不正な場合、拡張子偽装でタグ形式と一致していない場合等
WARN Unable to read ***: [Invalid Identification header for this Ogg File]
WARN Unable to read ***: [OggS Header could not be found, not an ogg stream]
WARN Unable to read ***: [“***” :java.lang.IllegalArgumentException: provided GUID is not supported by this reader.]
WARN Unable to read ***: [“***” Wav RIFF Header not valid]
INFO Only ID3 chunk is supported: *** ID3チャンクが含まれないWavを読み込もうとした場合

カバーアートの拡張子、除外するカバーアート

楽曲と同じ階層に存在する画像ファイルをカバーアートとして利用できます。カバーアートの配置は必須ではありません。もし存在しない場合、利用可能な埋め込み画像を参照します。

カバーアートの拡張子 cover.jpg cover.png cover.gif folder.jpg jpg jpeg gif png
除外するカバーアート AlbumArtSmall.jpg small.jpg large.jpg

除外するカバーアートには、カバーアートとして利用したくない画像のファイル名のパターンを登録します(後方一致)。この指定は「カバーアートの拡張子」よりも優先されます。

  • WMP(Windows Media Player)のように、デフォルト設定で音楽ライブラリに隠し属性の画像ファイルを生成するプレイヤーがあります。(楽曲ファイルから埋め込み画像を抽出し、キャッシュ目的で解像度の低いAlbumArtSmall.jpgというアイコンファイルを作成する)
  • このような仕様を持つプレイヤはいくつかありますが、接尾辞が「small」「large」であることが多いです

Sonic系のサーバはリクエスト時に取得する画像サイズを指定可能です。それらのキャッシュはデータディレクトリ内で画像サイズごとに自前で管理されています。Webページで使用されている画像サイズにもいくつかのバリエーションがありますが、それとは別に、UPnPやSubsonicアプリから明示的なサイズ指定があればそのサイズ用のキャッシュ画像が作成されるようになっています。解像度が高い画像が埋め込みで管理されていても、オンデマンドで最適な解像度の画像が返される仕組みです。

ただしWMPのように解像度が高い埋め込み画像から解像度の低いサムネイルをライブラリに書き込むプレイヤと併用した場合、WMPのサムネイルをカバーアートと認識してしまいます。この場合、Sonic系のサーバは意図に反して解像度の低いカバーアートを生成する場合があります。「除外するカバーアート」はこれを回避するための仕組みです。

更新履歴

この記事を書き換えたときに以下に追記します。

v112.0.0
「Jpsonicのスキャンの特徴」に「拡張子とショートカット#レガシーサーバとの違い」を移動
「Jpsonicのスキャンの特徴」に「拡張子とショートカット#タグマッピング」を移動
v111.6.0
「カバーアートの拡張子、除外するカバーアート」を追加
「高度な設定 – Danger Zone」に移動した為「ソートの設定」の゛連番を考慮したソートを行う」「スキャン時にソートを解決する」を削除
v111.1.0
「拡張子とショートカット」を追加
v111.0.0
「ソートと索引の仕様(v107.2.0)」と「Jpsonicの検索仕様(v109.1.0)」を併合し、記事内容を圧縮
コメントはまだありません

コメントを残す

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

設定画面・仕様
起動オプション(v111.6.0)

Jpsonicの起動オプションに関する注意点です。

設定画面・仕様
Web画面の概要(v111.0.0)

Web画面を使用したブラウジングの概要です。

設定画面・仕様
設定画面の概要 (v112.0.0)

SubsonicとJpsonicの設定方法はほぼ同じですが、画面構成が少し異なります。