search
LoginSignup
0

More than 3 years have passed since last update.

posted at

updated at

Volumioでコンピレーション・アルバムの再生ができない場合の対処方法

結論

コンピレーション・アルバムに対して,以下のどちらかを実行する.

  • albumartistartistを同じ名前にする
  • 設定MY MUSICCompilation Metadata Fieldsalbumartistを追加する

詳細

以下のような現象に遭遇しました.

  • アルバム一覧からあるアルバムを選択してアルバムの再生ボタンを押しても,アルバムの再生が始まらない
  • アルバム一覧からあるアルバムをキューに追加しようとしても,キューに追加できない
  • アーティスト一覧からあるアーティストを選択し,そのアーティストのアルバム一覧からあるアルバムを選択したあと,戻るボタンを押すとエラーが発生して戻れない

問題が発生するのは,複数人のアーティストの作品を集めたアルバム,いわゆるコンピレーションと呼ばれるものだと分かりました.コンピーレーションアルバムの場合

  • artistが複数あるか,1つのartistに複数人設定している
  • artistalbumartistが異なる

という状態になっています.iTunesなんかでもアーティスト毎にアルバムが分離してしまったりすることがあります.

問題を調査するため,SSHを有効にしてログインし,tail -F /var/log/volumio.logでログを確認します.

2018-08-22T15:46:33.615Z - info: CorePlayQueue::addQueueItems
2018-08-22T15:46:33.615Z - info: Adding Item to queue: albums://<albumartist>/<album>
2018-08-22T15:46:33.616Z - info: Exploding uri albums://<albumartist>/<album> in service mpd
2018-08-22T15:46:33.620Z - info:

空のinfoログが出力され,何かに失敗していることがわかります.

直前のログから,ControllerMpd.prototype.explodeUriが呼び出されていることがわかります.

volumio/Volumio2/blob/master/app/plugins/music_service/mpd/index.js#L2049
        if (compilation.indexOf(artistName)>-1) {  //artist is in Various Artists array
            var GetAlbum = "find album \""+safeAlbumName+"\"" + " albumartist \"" +safeArtistName+"\"";
        }
        else {
            var GetAlbum = "find album \""+safeAlbumName+"\"" + " artist \"" +safeArtistName+"\"";
        }

compilationMY MUSICCompilation Metadata Fieldsで設定した値が入っているようです.ヘルプを見ても何に使うのかさっぱりわからなかったのですが,ようやく理解できました.

compilationに追加しておかないと,albumartistartistが一致している場合以外では正しい結果が得られないのだと思います.実際,albumartistartistを同じに設定すると,アルバムを再生できることをすでに確認していたのですが,これが原因のようです.

album://..の仕様には改善の余地があると思われますが(例えば,albumartistやartistをクエリーパラメーターにするとか),設定もしくはタグの編集で回避可能だとわかりました.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0