フォーラムへの返信
-
投稿者投稿
-
dari88参加者
Tikiさん、こんにちは。
早速 TuneBrowser(x64)Setup4.15.1.exe にてアップグレードしてUPnPメディアサーバーの動作を確認してみました。
TuneBrowserサーバーが先に起動していてHEOSコントローラを後で起動した場合でも直ちにTuneBrowserサーバーが検出されます。
これにてTuneBrowserサーバーが快適に使えるようになったと思います。どうも有難うございました。
dari88参加者Wiresharkのログを素人ながら分析してみました。
HEOSの問い合わせに対するサーバーとしての応答は以下の通り。USN:の内容に差異を感じます。TuneBrowser:
ST: urn:schemas-upnp-org:device:MediaServer:1
USN: uuid:52267cc4-ffe1-41d5-b7eb320f30e91908::upnp:rootdevicefoober2000:
USN: uuid:9b1148da-b759-4e98-4a63-6b174499fe20::urn:schemas-upnp-org:device:MediaServer:1
ST: urn:schemas-upnp-org:device:MediaServer:1別途TuneBrowserの起動時のブロードキャストを調べました。サーバーとしてのアナウンスに以下の内容あり。
NT: urn:schemas-upnp-org:device:MediaServer:1
USN: uuid:52267cc4-ffe1-41d5-b7eb320f30e91908::urn:schemas-upnp-org:device:MediaServer:1これは上記foober2000の応答とUSN:の内容が似ています。HEOSはこの応答に反応してサーバーとのコミュニケーションを開始しているのではないでしょうか?
dari88参加者おはようございます。
foober2000とTuneBrowserは同じPCで起動して試験しています。
問題の切り分けのためWiresharkを使用して夫々の交信状況を調べてみました。
・Windows MediaPlayerのファイル共有を停止
・TuneBrowserのみ起動状態でスマホのHEOSを起動した場合を2回記録
・foober2000のみ起動状態でスマホのHEOSを起動した場合を2回記録
・PCのアドレス:192.168.11.11
・スマホのアドレス:192.168.11.22記録のダウンロードリンクはメールで連絡します。
何か参考になると良いのですが。
dari88参加者こんにちは。
「人力リコメンド」についてはSpotifyなんかをちょっと覗いてみれば分かります。プレイリストですから曲のリストであって、アルバム集ではないですね。
本件Tikiさんがあまり乗り気でないようでしたらそろそろクローズで構いません。恐らくこのようなニーズを持つ人はごく少数だと思います。
TAGで処理するとなると楽曲ファイルをその都度書き換えることになるのでやりたくないですね。(同様に評価の機能もファイルを書き換えるので使っていません。データベース上だけで記録されるお気に入りの機能があると良いのになと思っています)
CDのリッピングが出来るほどの人であればエクスプローラでフォルダのリンクを作るくらいのことは出来ると思います。
プログラミングする上では「フォルダのリンクは実態ファイルと同等に扱う」と規定するのが一番手間が省けるでしょうね。これをTuneBrowserの隠し機能にしては如何でしょうか。
小生からの提案は以上といたします。
dari88参加者Tikiさん、おはようございます。
話を複雑にしてしまったようで恐縮です。
自分で構築しているフォルダ構成については頭に入っていると思い込んでいますので、普段あまり検索機能は使わないでいました。今回改めて検索機能を試してみましたが、至れり尽くせりで思ったことが何でもできますね。「あれっ、こんな所にこんなの有ったっけ?」なんて発見があったりして、やはり人力より強力だなーと感心しきりです。
今まで気付かなかったのですが、検索履歴の機能はいいですね。フォルダーを検索しているとき「戻る」ボタンが有れば良いのになと思っていたのですが、要らないですね。
話を整理します。演奏者ー作曲者等の分類に関する件は強力な検索機能があるのでクローズにしたいと思います。
コントローラアプリでプレイリストが単純な楽曲リストに見える件に話を絞ります。一般的なプレイリストの使われ方を考えればこれは当たり前だと思います。小生がやりたいことは「あるテーマに沿ったアルバムのリスト」を作りたいということです。もちろん新規にフォルダを作って既存のアルバムデータをコピーすれば作れるわけですが、そうしたくないという我儘な話です。
美術館がコレクションからあるテーマに沿った企画展を行うみたいなイメージでしょうか。コントローラアプリでその企画展のアルバム画像を眺めながら楽しみたいと言ったらご理解頂けますでしょうか?
dari88参加者追記:
本日の投稿で他の方も書いていましたが、小生も通常はフォルダーツリーからアルバムを選んでいます。
演奏者に分類しておいたアルバムが作曲者のフォルダーでも参照できるとよいかなと感じます。dari88参加者Tikiさん、お世話になっております。もう少し具体的に説明させていただきます。
あるテーマに沿ったアルバム集を作る目的でプレイリストにアルバムを集めます。
TuneBrowserでプレイリストを見ると概ねアルバム単位で区切られて見えます。
TuneBrowserをサーバーにして、コントローラアプリでプレイリストを開きます。
すると、アルバム単位ではブラウズ出来ず、長大な楽曲のリストとして見えます。これを何とかならないかと考えた次第です。
単にアルバムを1枚探すだけなら各種の検索方法が充実しているので問題ないです。
「あるテーマに沿ったアルバム集」のリストを見ながら選択できるというのが楽しいかなと感じています。既にリクエスト済ですが、TuneBrowserがコントローラとしても機能すればあるいは不要かもしれません。
見通しが悪いコントローラアプリ対応の改善と言えるでしょうか。dari88参加者追記:
上に「リンクを検出したらデータベース上には同じアルバムのデータを構築するという感じ」と書きましたが、データベース上も単なるリンクで良いかもしれません。リンクに対する表示とか再生とか配信の処理で対応した方が合理的に思えます。dari88参加者こんにちは。
早速TuneBrowseモードにしてcueシートの書込みのテストをしました。
Artist, Composer, Performerを書き換えながら .cueファイルの変化を確認しました。
まず、”REM CUESTYLE TuneBrowser”が書き込まれます。これはよく考えられていますね。
“REM ARTIST”, “REM COMPOSER”, “REM COMPOSER”の書き込みを確認しました。”Artist, Composer, Performer”と夫々対応していて直感的に非常に分かりやすいです。この改善は素晴らしい。小生は現状で申し分ないと思います。4.15.0の正式リリース時には大いにPRしたらよいと思います。
(Tikiさんも従来cueシートの扱いに関してはモヤっぽい気持だったのではないでしょうか?)dari88参加者そうですか、希望の持てるご回答ありがとうございます。
追加の調査が必要でしたらお気軽にお知らせください。また、もしテスト用のコードを書かれた場合は試験のお手伝いをさせて頂きたく思います。よろしくお願いいたします。dari88参加者その後の調査で、BubbleUpnpがM-CR612のキューをコントロールしているというのは小生の錯覚であったことが判明しました。訂正してお詫び申し上げます。
dari88参加者コントローラーアプリがM-CR612にどのような指示をしているのか興味が湧いてきたので以下の方法でちょっと調べてみました。
・アンドロイドエミュレータとしてNoxPlayerを使用。Android7、ネットワークはブリッジモード。
・NoxPlayerにHEOSとBubbleUpnpアプリをインストール。
・ネットワークプロトコルアナライザーとしてWiresharkをインストール。
・メディアサーバーにはTuneBrowserを使用。
・PC 192.168.11.11、NoxPlayer 192.168.11.103、M-CR612 192.168.11.32で、HEOSアプリである曲を「すぐに再生」した時に送信された内容の一部は以下のようでした。
“urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”
xmlns:dc=”http://purl.org/dc/elements/1.1/”
xmlns:upnp=”urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns:dlna=”urn:schemas-dlna-org:metadata-1-0/”
xmlns:aios_media_server=”urn:schemas-denon-com:media-server:metadata-1-0:DIDL-Lite”>
<desc id=”todo” nameSpace=”dc”>
<dc:title>Sonata C Min Adagio</dc:title>
</desc>
<item id=”PTGV:0000019BE37A72F0.00001.0000019BCF84B050″ parentID=”ALBM:0000019BE37A72F0.00001″ restricted=”1″>
<dc:title>けんかをやめて</dc:title>
<upnp:longDescription>1127831230</upnp:longDescription>
<upnp:class>object.item.audioItem.musicTrack</upnp:class>
<dc:creator>竹内まりや</dc:creator>
<upnp:genre>JPop</upnp:genre>
<upnp:album>Impressions</upnp:album>
<upnp:albumArtURI>http://192.168.11.11:10800/Image/9162b775-27d4-4d71-87fe154c6f5036bc.jpg</upnp:albumArtURI>
<res protocolInfo=”http-get:*:audio/mp3:*” duration=”0:04:33″>http://192.168.11.11:10800/TuneID/00009288.mp3</res>
<desc id=”serverID” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”>3997942730</desc>
<desc id=”username” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”></desc>
<desc id=”userAuth” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”></desc>
</item>
<item id=”PTGV:0000019BE37A72F0.00001.0000019BCF84B9B0″ parentID=”ALBM:0000019BE37A72F0.00001″ restricted=”1″>
<dc:title>明日の私</dc:title>
<upnp:longDescription>1737729719</upnp:longDescription>
<upnp:class>object.item.audioItem.musicTrack</upnp:class>
<dc:creator>竹内まりや</dc:creator>
<upnp:genre>JPop</upnp:genre>
<upnp:album>Impressions</upnp:album>
<upnp:albumArtURI>http://192.168.11.11:10800/Image/b9f119f4-23e9-4ac4-ba08b243a50229ee.jpg</upnp:albumArtURI>
<res protocolInfo=”http-get:*:audio/mp3:*” duration=”0:04:49″>http://192.168.11.11:10800/TuneID/00009289.mp3</res>
<desc id=”serverID” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”>3997942730</desc>
<desc id=”username” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”></desc>
<desc id=”userAuth” nameSpace=”urn:schemas-denon-com:metadata/” xmlns:aios=”urn:schemas-denon-com:metadata/”></desc>
</item>
</DIDL-Lite>参考になるかどうか分かりませんが、必要でしたら各種命令実行時の3ノード間の交信全体を保存したWiresharkデータをメールで送ります。お気軽に申し付けください。
dari88参加者「ネットワークオーディオの本質」と題した2016年の言の葉の穴の逆木一さんの記事は実に的を射ていると思います。
曰く、
・『コントロール』こそがネットワークオーディオの本質である。
・ネットワークオーディオにおいて、ネットワークという要素は空間に制約されないコントロールを実現するためにある。
・この時、大切なのは体験であって、音質ではない。
・サーバーやプレーヤー(PCを含む)の設置場所という制約から解放された状態で、自身のライブラリを縦横無尽に駆け巡り、聴きたい曲を自由自在に聴く。
・視聴位置の椅子に身を預けたまま、あるいはその辺に寝っ転がりながら、音楽再生のあらゆる操作を手元の端末から行う。
・音楽を聴く場所に「居ながらにして」、音楽再生のあらゆる操作が可能になるというのが肝になる。この記事が書かれたのが2016年ですが、未だにこの理想は実現していないと思います。
音楽再生に関わるあらゆる操作を手元で行うにはそもそもスマホやタブレットは不向きで、PCの能力が必要でしょう。
TuneBrowserはあと一歩?でこの理想を実現できるはずです。
その時こそネットワークオーディオがついに完成するのだと思います。dari88参加者暇なのでちょっと調べてみました。
以下、TuneBrowseサーバーをTBS、Foover2000サーバーをF2Sと略します。
HEOSアプリ(最近のMarantz/Denonの標準アプリ)
・TBS、F2Sの両方に対応
・サーバーの検出が遅い
・M-CR612のキューをフルにコントロールしている
すぐに再生
今すぐ再生してキューを入れ替え
次に再生
キューの最後に追加BubbleUpnpアプリ
・TBS、F2Sの両方に対応
・M-CR612のキューをコントロールしている
Play
Play next
Play all from her
Enqueue
Enqueue all from her
Enqueue and play
Add to Saved PlaylistHi-Fi Castアプリ
・F2Sに対応。TBSを選択すると意味のあるエラーメッセージを出す。
(Error reading SOAP response message.)
・一曲づつ指令している。M-CR612側にキューは作られない。
・ギャップレス再生ではない。次の曲に変わるときにノイズが出る仰るとおり汎用のUPnPで制御するのではギャップレス再生が出来なかったり厳しそうですね。
しかし、純正ではないBubbleUpnpがキューをコントロールしているのは感心しました。
このあたりはメーカーごと、機種(世代)ごとに制御の方式が違ったり、できることが違ったりするのでしょう。
コントローラー機能を開発するとしても対応する範囲について割り切りが必要だと思います。 -
投稿者投稿