« ◆状態表示か機能表示か-2 | トップページ | ◆VisualStudioで標準C++64bitアプリ作成:メモ »

◆iTunesからfoobar2000サーバへ移行:メモ

とりあえずの自分用メモです。近日中に読みやすく書きなおします

2014/10/5 緊急メモ追加:
プレーヤーとして使う場合のプレイリストの為の2つの注意点:必須!
(1) Prefernce/MediaLibraryで必ず、
   Library viewer selection playlist
   をEnableにすること。
(2) foo_utils(foo_utils-0.6.2_beta_6-20080310.zip)をComponentsでインストールし
   各プレイリストでEdit->Read Onlyとすること。
詳細手順はいずれ。

 現状のDLNAサーバの問題点とfoobar2000

ネットワークオーディオに対応したDLNAサーバ/NAS装置は多くありますが、 殆どのものは根本的な問題点があります。

問題点としては次のようなものがあります。

  • ディスク番号が無視される
  • アーティストではなくアルバムアーティストでまとめられ,選択できない
  • プレイリストがサポートされない
  • 1万曲までしか取り扱えない
  • iTunesからの移行では(おそらく文字コードの問題で)取り扱えないフォルダ、曲がある
  • 作曲家でまとめるといった事ができない

幾つか試したのですが使えないものばかりでした。当初ネットワークオーディオ用の アンプの購入にあたって疑問点をお店で訊いたのですが、明確な答えは得られません でした。

そんな中、無料の「foobar2000+UPnPプラグイン」だと、致命的な問題はなく動作させることが 出来ました。

 foobar2000の設定(iTunesからの移行)

この項目、残してあったメモをそのまま置きます。 環境、好みによって設定法は異なります。 後で図なども入れ分かりやすくします。

インストール後
===============
(最初に表示形式の設定が出る場合)
  AlbumList + Properties + Visualisations

ライブラリ設定
  File
    Preference
      Media Library
        Pathに
      O:\iTunes\iTunes Music\Music\
        設定(注意:自分のシステムでのパス設定のこと)

表示形式の設定
 View - Layout - Quiq setup
     AlbumList + Properties + Visualisations

音の確認:
 プレイリストに曲を設定し、再生。
 単純に曲リスト上でクリックしても直ぐに[Playnack stopped]
  となり再生できない。(OSの問題だという記事もある)

リスト表示の設定
  File
    Preference
      Media Library
        AlbumList
           by genre    %<genre>%|%artist%|%album%|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%
           by composer %composer%|%album%

================
サーバ機能を付加する

http://www.hydrogenaud.io/forums/index.php?showtopic=69664
からダウンロードする。迷路に迷わぬよう (※)
 (1)開いた窓でDownload latest version of plugin 0.99.48 の0.99.48をクリック
 (2)開いた窓で「Components」をクリック
 (3)開いた窓でリスト後半にある「UPnP/DLNA Rendere,Server...」をクリック
 (4)最初の窓とそっくりな窓が開くので驚かないよう
    良く見るとUPnP/DLNA Renderer,Server,...と書かれている
 (5)下の方にある Links の中のDownloadをクリック
 (6)foo_upnp.fb2k-component がダウンロードされる

foobar2000を立ち上げインストール
 (1)立ち上げ、File-Preferenceクリック
 (2)開いたPreferenceでComponentsをクリック
 (3)Installed componentsが表示される
 (4)ダウンロードしたfoo_upnp.fb2k-componentをリスト部へ
    ドラッグ
 (5)unkown please ... と出るので[Apply]をクリック
    ([Install]でファイルを探す手もあるらしい)
 (6)PreferenceのToolsにUPnP->Sereverが追加されたことを
    確認
 (7)Tools->UPnP->Serever->BasicSettingでサービスの開始/停止ができる
        Networknameなども適切名前に変更
    [Start server/Stop server]で開始/停止

クライアントに見せるツリーを設定
 (1)Tools->UPnP->Server->Contentsをクリック
 (2)開いた窓で[Customize Media Libary Tree]をクリック
 (3)エディタが開くので見せたい形に修正(※)
--------  以下 記述例 ---------
<MediaLibraryTree>
   <SubTree label="ジャンル">
      <spec type="object.container.genre.musicGenre"
              >%genre%</spec>
      <spec type="object.container.person.musicArtist"
              >%artist%</spec>
      <spec type="object.container.album.musicAlbum"
              >%album%</spec>
   </SubTree>
   <SubTree label="アルバム">
      <spec type="object.container.album.musicAlbum"
              >%album%[ '['%album artist%']']</spec>
   </SubTree>
   <SubTree label="アーティスト">
      <spec type="object.container.person.musicArtist"
              >%artist%</spec>
      <spec type="object.container.album.musicAlbum"
              >%album%</spec>
   </SubTree>
   <SubTree label="アルバムアーティスト">
      <spec type="object.container.album.musicAlbum"
            >[%album artist% - ]['['%date%']' ]%album%</spec>
   </SubTree>
   <SubTree label="作曲家">
      <spec type="object.container.person.musicArtist"
              >%composer%</spec>
      <spec type="object.container.person.musicArtist"
              >%album artist%</spec>
      <spec type="object.container.album.musicAlbum"
              >%album%</spec>
   </SubTree>
</MediaLibraryTree>
-------- 以上 記述例 ---------
  (4)保存し、サービスを停止/開始する

(※).xmlでエディタを起動するように設定してある場合です。
   .xmlでIEが起動する場合、設定を変えるか、当該ファイル
   を別途エディタで編集します。
     ファイルは通常 C:\Users\ユーザ\AppData\Roaming
                      \foobar2000\foo_upnp_ml_tree.xmlです
   日本語を入れる場合UTF-8で保存する必要があります。

その他見せ方設定
   Tools->UPnP->Server->Contentsで幾つかの設定があります。
  [ ]Show Playback Stream Captureは必要がなければ
    チェックを外します。
===================================
プレイリスト設定
 (0)iTunesプレイリストをM3U形式のファイルに落とす
        無料ツールあり(問題があり自作に変更:後述)
 (1)fooba2000でFile->Load Playlistでロード

(※)
foobar2000 mobile FOUND RAISER の「Components」タグから最新版 "UPnP/DNLA Renderer,Server,Contol Point" を拾う方がよい

 iTunesプレイリストをM3Uファイルにするツール

無料のツールがあり使ってみたのですが、残念ながら(多分文字コード の関係で)曲落ちが出るため自作しました。

ツールは PlaylistConverter.zipダウンロード でダウンロードできます。

PlaylistConverter.zipにはクリックにより実行可能な
 PlaylistConverter.jar
と念のための起動コマンド
 A50_run.bat
(中身はjava -jar PlaylistConverter.jar)
が入っています。

iTunesで「ファイル」⇒「ライブラリ」⇒「ライブラリをエクスポート」 操作で吐き出したライブラリ情報からM3Uファイルを作成します。

複数のプレイリストがある場合(通常そうですが)複数のM3Uファイルが 作成されます。

----
PlaylistConverter.jarは実行可能jarの形となっています。
クリックで起動できない場合はA50_run.batで起動します。

使い方
(1)iTunesを起動し
    ファイル⇒ライブラリ⇒ライブラリをエクスポート
   でプレイリストを含むライブラリ情報をファイルに落とす
(2)PlaylistConverter.jarをクリックし起動
   ライブラリ.xml[...]の項にライブラリ情報ファイルを
   ドロップ。[参照]で探すこともできる。
(3)出力フォルダを確認。必要に応じ変更。[参照]で探すこと
   もできる。
(4)[項目読み込み]をクリック。プレイリスト一覧が出る。
(5)[m3uファイル生成]をクリック。出力フォルダにm3uファイル群
   が生成される

補足:
 ・生成するプレイリストは一覧の中から選ぶこともできます。
 ・m3uの文字コードはUTF-8固定としています。
 ・m3u内でのファイルセパレータ表現はデフォルトでは\ですが、
  /に置き換えることもできます。
 ・標準ではm3uの先頭にUTF-8のBOMを付けます。付けない指定も
  できます。
----

M3Uは行単位定義であり、先頭行が"#EXTM3U"でそれ以降に#EXTINF行と実ファイル名が 続きます。#EXTINF行には秒数の後曲名などが付きます。曲名部の書き方は一応の 習慣はあるようですが規約となってはいないようです。
M3Uファイル名はUTF-8の場合"M3U8"とすることになっていますが、foobar2000では 名前での判断はせず先頭にUTF-8のBOMが必要となるようです。

--- M3Uの例(先頭部抜出)---
#EXTM3U
#EXTINF:348,ソロバイオリン曲集 ;VICTORIA MULLOVA(Vn) - Partita No. 1 h-moll, BWV 1002 - Allemanda,
O:\iTunes\iTunes Music\Music\Vn. VICTORIA MULLOVA\ソロバイオリン曲集 _VICTORIA MULLOVA(Vn)\01 Partita No. 1 h-moll, BWV 1002 -.m4a
#EXTINF:170,ソロバイオリン曲集 ;VICTORIA MULLOVA(Vn) - - Double
O:\iTunes\iTunes Music\Music\Vn. VICTORIA MULLOVA\ソロバイオリン曲集 _VICTORIA MULLOVA(Vn)\02 - Double.m4a

テキストファイル(XML)を読んでテキストファイル群(M3U)を吐き出す 単純なプログラムです。iTunesとの通信なども行いません。
15000曲程度のシステムではライブラリXMLは56万行、28Mバイトといった規模となり、 JavaのDOMでの取り扱いは困難となるのでSAXを用いています。
その内、少しコメントなどを追加し、ソースを公開する予定です。

|

« ◆状態表示か機能表示か-2 | トップページ | ◆VisualStudioで標準C++64bitアプリ作成:メモ »

トラックバック


この記事へのトラックバック一覧です: ◆iTunesからfoobar2000サーバへ移行:メモ:

« ◆状態表示か機能表示か-2 | トップページ | ◆VisualStudioで標準C++64bitアプリ作成:メモ »