初めての方へ
2

Jpsonicとは

READMEに書いてあるような概要/歴史/機能をまとめています。

Jpsonicって何ですか

Jpsonicはフリーのミュージックストリーミングサーバです。

Javaで作成されているため、Windows、Mac、Linux、Raspberry Piなど様々なプラットフォームで動作します。

サーバに標準装備のウェブアプリでHTMLプレイヤーとして使用できます。
またSubsonic用スマホアプリ、DLNA、Sonos等から使用することもできます。


個人用のストリーミングサーバとして、日本でも最初期から知られているSubsonicというサーバがあります。
JpsonicはSubsonicの子孫にあたり、基本的な機能も使い方もほぼ同じの日本人向け対応が行われたサーバです。
日本語を適正にブラウジングするための機能修正や、日本人がよく使う機能の強化が行われています。

Jpsonicのルーツ

JpsonicはOpen Subsonicから派生したAirsonicをベースに開発された、日本語機能強化版Subsonicのようなものです。
Subsonicフォークポイントまとめという記事により詳細な記載があります。

  • Subsonicはもともとオープンソースでしたが現在クローズドソースです。
  • Subsonicクローズ時にフルフォークしたサーバがLibresonicです。
  • AirsonicはLibresonicの後継で、現在最も盛んなコミュニティを持ちます。
  • JpsonicはAirsonicを日本人用に強化したサーバです。

ささやかながら私はAirsonicのメンテナとしても活動しています。
メンテナの私が言うのもなんですが、テスト件数が上流サーバよりも必然的に多くなるため系列のサーバで最も安定しています。
ガンダム語に置き換えるとSubsonicがファーストガンダム、Airsonicがνガンダム、JpsonicがHi-νガンダム位の違いがあります。

どんな方にお勧め?

ほとんどの機能が上位互換であるため、以前Subsonicを使っていた方にとても相性が良いかと思います。
母体のSubsonicは機能に無駄がなく動作が軽快でありメタ処理が強いことで有名ですが、その遺伝子を受け継いでいます。

母体となっているSubsonicのミュージックフォルダの仕様は、癖のない常識的な仕様をしています。
オリジナルのライブラリを特異な規則で管理する必要はなく、他の編集用ソフトやプレイヤーと共用可能です。
プラットフォームを超えて大量の音楽をNASやVPNで管理するときのマスターサーバとして長期利用できます。

こんなサーバ作る人のライブラリは素晴らしく整理されているに違いない
いえ、むしろ正反対です。

私はflacができた頃から、CDをリッピングしてハードディスクに放り込むだけというCDDB頼みのタグ管理をしています。
後編集も行っていないため、タグ管理という文化がそれほど普及していなかった初期リッピングデータは割とひどい状態です。
ある意味これはこれで得難い、歴史が刻印された珠玉のライブラリともいえます。

このようなライブラリをストレスなく使用できるような仕様のサーバになっています。
個人的にはタグが多少乱れていようが、サーバでどうにかすればいいだろうという思考です。

そのため、私のような面倒くさがりには非常に相性が良いかと思います。

機能の特徴

Jpsonicでは、Subsonicの使用感を維持しつつ日本人向けの機能付加や不具合改修が行われています。
以下のような点が重視されています。

  • ミュージックフォルダにリッピングデータを置くだけで、日本人が快適にブラウジングできる機能
  • 全てのプラットフォームやクライアントで一貫した動作が可能な、統一的なメタ処理の仕様と実装
  • 音声入力に対応可能な検索機能

メディアサーバは商用/非商用を問わず、日本語対応が不十分であり実用に難があります。
Webで言う「日本語化」は一般にメッセージの日本語訳のみを指し、内部の処理には言及していません。
Jpsonicは内部の処理を書き換え、日本人が利用しやすいようにローカライズされています。

日本語設定がデフォルト
言語設定のデフォルトを日本語にしてあります。
インストールしてログイン画面を開いたところから日本語です。
もちろん設定の変更により、日本語以外の言語を使用することも可能です。

翻訳が正しく機能
Subsonicはロケーション処理にいくつか不具合を抱えています。
LastFMのバイオグラフィなどは日本語表示ができません。

Jpsonicはデフォルトで正しく日本語表示します。
単なる翻訳ではなく、コンテンツは日本向けです。
日本人に人気のあるシンガーは英語版よりも詳細です。

日本のアーティストの場合、他言語では省略されてしまうような情報があえて記述されることがあります。

LastFMの言語切り替えは単純翻訳ではなく、独立管理されている元のコンテンツの参照切り替えです。
ですのでブラウザの翻訳機能を使えば用が足りるという問題ではありません。

日本語索引の自動作成
正しい日本語読みで日本語索引を作成します。

海外製サーバは日本語は全て「#」に分類され、並び順も不規則です。
Jpsonicでは日本人のイメージに近い英日索引を自動作成します。
索引の表示順はカスタマイズも可能です。


日本語ソート
ソートは閲覧機能の根幹です。
何千何万というファイルを管理するときには必須の機能になります。

Jpsonicは、名称順の箇所は、英語/日本語50音順に並べます。
オプションにより連番にも対応し、全体的に「Windowsより少し賢い」ソート機能を提供します。


日本語での検索
フレーズ検索に対応します。
CDDBから取得したままのファイルのように、ダーティデータや欠落を含むライブラリを特に違和感なく使用できます。

アーティストは読みでの検索にも対応しています。
そのためIME変換中の検索が高精度で動作します。
日本語を正しく扱えるだけでスマホアプリの使い勝手が向上します。

現在のSubsonicには、日本語の検索が正しく行えない欠落ケースが存在します。
Jpsonicはこの点が留意されたおり、検索精度はSubsonicよりも高いです。


DLNA機能の強化
日本においてはDLNAは依然としてポピュラーでありOpenHomeも広がりを見せています。
UPnPプラットフォームはしばらくの間維持されるものと思います。
そのためJpsonicでは、Subsonicのブラウジングの特性を活かせるようにDLNA機能を大幅に作り変えています。

JpsonicのDLNA機能に記載があります。

索引とソートの仕組み

索引やソートをスマートに実現できている例は現実世界に既にたくさんあります。
辞書やカラオケの楽曲一覧が良い例です。
使用者が面倒な工夫をしなくても、最初から一目でわかる不動の並び順です。
大量データの管理はカスタマイズ性以前に一貫性のある統一規則が必要です。

こういった処理の大半は自動化が可能です。
手作業でタグ編集をすることが必ずしも楽曲管理を意味しているわけではありません。

個々のデータを修正すれば全体が上手くいくというボトルネック思考の管理では、全整合性を自力保証する必要があります。
精度を保障する手段がないため、ある程度の分量を超えると手作業では事実上管理が不可能になります。

また、いくらタグを整えたところで、使用するアプリの仕様によっては正しく並びません。
アプリに合わせてデータを作るという本末転倒が起こる場合もあります。

Jpsonicはこういった問題を解決できるような設計になっています。
とにかくスキャンさえすれば使える状態に持っていけます。

その他の付加機能

日本語ローカライズ以外に、いくつかの機能が近代化されています。

汎用的なタグへの対応
Subsonicは伝統的で実績のあるサーバですが、さすがに一世代経ちます。
近代化の一環として、SONYやAPPLEのリッピングソフトで出力される共通のタグをサポートしています。

Jpsonicのタグ仕様に細かい記載があります。

高精度なシャッフル
環境により高精度なシャッフルを利用可能です。
Linux環境では自動で/dev/randomや/dev/randomを使用し、Windowsや古いJDKの場合SHA1を使用します。

確率の問題ですが、一般的なメディアソフトが行うシャッフルよりも比較的バラけた結果を返します。

マルチジャンルのサポート
タグでジャンルを指定する際に、セミコロン区切りで列挙した場合スキャン時に分解しマルチジャンルとして扱います。
最も普及度の高いID3v2.3 セミコロン区切りに対応します。

いつか有料版になるんですか?

なりません。

替わりといっては何ですが、もし使ってみて感触がよければTwitterで呟いて頂けると幸いです。
サーバの知名度が上がると、技術者の目にAirsonicが触れる機会が増え、まわりまわって使用者が得をします。

Airsonicのコントリビュータが増えれば、サーバの品質が向上しやすくなります。
日本語に強くてフリーの良いメディアサーバが欲しい場合、この手のオープン志向のJavaサーバでは最有力株のAirsonicに人を集めるのが比較的現実的な方法です。

インストールしてみた系記事や関連するTipsのご紹介はいつでも大歓迎です。
解説を書いてくれたりスクリプトを作ってくれる方々にはとても感謝しています
この場で謝辞を。

forkしたり魔改造していいですか?

ライセンスの範囲内でご自由に。

Jpsonicは今後も基本機能のほんのちょっとの改善やチューニングといったバックエンドの修正に終始すると思います。
私自身が魔改造をすることはありません。
小さな便利機能は付与していくつもりですが、使い勝手に大きく影響する機能はオプションとして提供されます。

技術的な関心事についてはフォーラムIssuesで同種の情報を収集してみることをお勧めします。
日々盛んな論戦が繰り広げられているという分野でありませんが、Subsonicのフォーラムよりは活発で新しい情報があります。

有益な機能であれば、AirsonicへのPRを検討してください。
オープンソースなので、曖昧な要望よりも可視化可能な提案の方が強いです。

もうちょっと詳しく教えて

SubsonicとJpsonicの違いという記事で、違いについてもう少し細かい記述をしています。

初めまして
いまはSynologyのNASでSubsonicを使ってます。
可能性としてNAS向けって・・・・ありませんか?

ありがとうございます。

私自身がさまざまな製品でテスト可能なわけではないので特定の製品向けというのは考えていないのですが、AirsonicではDockerの自動ビルドが検討されています。
それが実現した場合、Jpsonicでも公式のDockerイメージを作成すると思います。
(Synologyの場合Dockerであれば使いやすい・・・模様?)

既にSubsonicが動いているということなので動かすことが可能なはずですが、環境が手元にないため具体的な手順まではわかりません。。。
すみません。

2件のコメント

コメントを残す

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

初めての方へ
Subsonicとは(2020)

Subsonicとはミュージックストリーミングサーバのひとつです。

初めての方へ
Jpsonicの設定画面

Subsonicの設定画面との比較です。

初めての方へ
SubsonicとJpsonicの違い

SubsonicとJpsonicの違いを解説します。