• webui-plus開発/サポート(webui-plus development/support)

    インターネット経由でのカバーアート取得について

    今まで食指があまり動いていなかった部分でしたが、
    やっとやる気になりまして一気に拡張できそうかなぁと思っています。
    現状の取り組みについて、ご紹介します。

    ※参考情報webuiでのMusicBrainzID対応について
    各楽曲のタグにアルバムのmbidタグが保存されており、mpdで本タグの認識がサポートされている場合はwebuiで活用可能なようにwebui側のプログラムを拡張しました(具体的には楽曲変更時に当該楽曲のアーティスト名・アルバム名・総再生時間などの情報と共にmbidを各端末に返すので、mbidを使用した問い合わせが可能になります)。
    ただし、私の手元ではまだ動作確認中です。
    (MusicBrainzPicardでタグの書替した楽曲をsmpdのライブラリに転送し、楽曲情報を更新しましたが、smpd は mbid を返してくれませんでした。
    後程 Arch Linux AoE の mpd での動作確認と「他のタグエディタ」でそもそもmbidが格納されているのかの確認を行います。)
    補足:MusicBrainzPicardでMusicBrainzサーバから情報を取得して書込した楽曲ファイルのうち、mp3ファイルについては以下のタグが追加されることが判明しました(それ以外のフォーマットの楽曲については追って解析)。

    名称 解説
    MusicBrainz Album Artist id アルバムアーティストのid
    MusicBrainz Album id アルバム(リリース)のid
    MusicBranz Album Release Country リリースされた国(2文字コード)
    MusicBrainz Album Status 不明(手元ではofficialと記載)
    MusicBrainz Album Type 不明(手元ではalbumと記載)
    MusicBrainz Artist id アーティストのid
    MusicBrainz Release Group id 不明
    MusicBrainz Release Track id 不明(恐らく個別トラック(楽曲)のid)

    ※webui-plusでのカバーアート表示優先度について
     カバーアートは css の background-image 属性を使用しており、当該属性内の url文 書込順序に基づき表示されます。
    (以下のリスト昇順に表示される。
    当然1〜5はフラグが有効な場合はbackground-image属性内にurl文が存在しますが、無効時は存在しません。)

    順位 画像名
    1. folder.jpg
    2. Folder.jpg
    3. cover.jpg
    4. (アーティスト名) - (楽曲名).jpg
    5. 楽曲ファイル組込画像(/RAM/cover-art.jpg)
    6. インターネットサービス経由で取得したカバーアートのURL
    7. noimage*.jpg ←webui初期起動時などに表示されるお姉さんの画像
    また、各インターネットサービスは最終的には5種類のサービスから選択可能ですが、そのうち1個のみ使用できます(インターネットサービスを全く使用しない選択肢もあり)

    ※インターネットサービスでのアルバム特定用パラメータについて
    どのサービスでも「アーティスト名」+「アルバム名」の2つが必要ですが、今回より「アーティスト名」は「アルバムアーティスト名」が存在する場合は、こちらを使用するアルゴリズムを試験採用しています。

    • last.fm
      従来よりサポートしていましたが、追加で解説します。
      アルバム情報を取得する album.getinfo で返った結果より カバーアートの URL を抽出して表示します。
      当該 API の必須パラメータは「アーティスト名+アルバム名」(従来より継続サポート)と「MusicBrainzのID (mbid) 単独指定」の2種類があります。
      今回より、mbidもサポートすることとしました(mbidが正確ならば、間違いないカバーアートが取得可能)。

    • CoverArtArchive
      Musicbrainz と internet archive の合同作業成果です。
      一旦MusicBrainzのAPIでアルバム情報を取得してmbidを抽出してから、CoverArtArchiveのURLにmbidを埋め込みすればカバーアートは表示されます。

    • Discogs
      インディレーベルの販売等で実績がありますが、実はカバーアートが取得できます。
      アルバムの指定・カバーアートの抽出方法は last.fm とほぼ同等(アルバム情報をクエリすると、返された結果にカバーアートのURLがふくまれるため、これを抽出)です。Discogs はmbid には対応しません。

    • fanart.tv
      内部的には mbid でアーティスト・アルバムを管理しています。
      ただし、fanart.tv 単独では last.fm のようなクエリ(検索)のAPIがないため若干の工夫が必要です。
      (現在検討中ですが、MusicBrainzで情報検索 → 得たmbidでfanart.tvからカバーアート取得でしょうか?)

    • Spotify
      独自IDでアーティスト・アルバムを管理しています。
      IDクエリ用のAPI + 指定IDを使用したアルバム情報取得方法は判明しましたが、認証の都合で「トークン」が必要です(アプリのIDとパスワードから一時的にアクセスを許可する別パスワードを生成)。
      トークンには有効期限(3600秒=1時間)があるため、切れる前に再取得の手続きをするなどちょっとだけハードルが高そうです。

    という訳で、今の実装では Spotify を除くインターネットサービスは実装し、利用者に希望のものを選んでもらう方向性でリリースしたいと思います。

    2021-10-31_webui.png
    上記の仕様に対応するため、web-uiのプラグインを上図のように拡張いたします(fanart.tvがグレーアウトしているのは開発中のため)。

  • 2021-11-03版のwebui-plus 配信について

    インターネットからのカバーアート取得がとりあえず実装完了しましたので、
    リリースさせて頂きます。

    • インターネット経由のカバーアート取得(機能拡張)
      従来の「last.fm」に追加し「CoverArtArchive(MusicBrainz)」・「Discogs」・「Spotify」・「fanart.tv」の計5種類に対応しました。

    これに伴い、インターネット経由でのカバーアート取得はこれら5つのうちどれか1個のみ選択(もしくは非選択)となります。

    先の投稿の画像通り、今回web-uiのプラグインを拡張しました。
    従来どおりカバーアートの設定を変更せず使用し続けることも可能ですが、last.fm以外のインターネットサービスを使用したい場合はweb-uiプラグインにて設定変更して下さい。

    ※正直な話、インターネットで検索した際にカバーアートが表示可能であるかは「不安定要素が多すぎてよく分からない」のが事実です。

    まず、相手先のサービスに当方でタグ付けした結果(アーティスト名+アルバム名)と一致する記録が掲載されているか、
    またアルバムを特定出来たとしてもカバーアート画像が格納されているかに寄ります。
    確実にカバーアートを表示させたい場合は、NASと同じディレクトリに自分で格納するのが確実だと思って下さい。
    (言い訳になりますが、楽曲への埋め込みカバーアートについても、MPD側の実装の不安定さにより正常に生成出来ない場合が有るようです。)

    • インターネットラジオでのアーティスト名表示の改良
      トラック名として”「アーティスト名」 - 「曲名」”を文字列として返すラジオ局に対応し、上記の文字列を分離して「アーティスト名」・「曲名」が表示できるようにしました。

    ※上記の拡張は今後の布石になりますが、ラジオで上記の情報が揃った場合にカバーアートが取得できないのか実験を行いたいと思います。

    • ディレクトリ名やアルバム名に"+"を含む場合、リンクをクリックしても操作できなかったバグの修正。

    • カバーアートモードでのカバーアートで、現在取得中のカバーアートのリストをツールチップとして表示
      (主にカバーアート周りの機能デバッグ用にちょっと付け加えてみました。)
      スマホ向けの最小画面では表示されませんが、
      それ以外の端末でカバーアートにマウスカーソルを合わせるとカバーアート上部にツールチップが表示され、
      当該ツールチップに現在設定でのカバーアート取得候補が文字列表示されます。
      2021-11-03.png
      (ツールチップの背景からはみ出しているのと、文字列が化けているように見えるのは、とりあえず「実験的機能」のためご容赦下さい。
      ちなみに文字化けはURLエンコードされたためで、実際にブラウザに渡されているものです。)
      ↑
      カバーアートモードのカバーについてはもし希望があれば、
      「取得出来た画像をカルーセルで切替出来るようにする」というのを実装したいと思います。
      カルーセルによる切替は当然ながらスマホ以上の解像度向けになります。

  • @sunatomo さん
    アップデートありがとうございます!

    いつもの3曲を選択してのテストを実施してみましたのでご報告です。
    WebUIのCoverArt FilenameでFolder.jpgのみを選択し、CoverArt (Internet)で各種選択した場合での結果です。

    ・none: 3曲ともカバーアートが表示される
    ・last.fm:3曲ともデフォルトの女性表示(以前は1曲目のみカバーアートが表示されましたが、今回はデフォルト表示になっていました)
    ・Cover Art Archive:3曲ともカバーアートが表示される
    ・Discogs:3曲ともデフォルトの女性表示
    ・Spotify:3曲ともデフォルトの女性表示
    ・fanart.tv:3曲ともデフォルトの女性表示

    ということで、none, Cover Art Archive はローカルのカバーアートは問題なく表示され、それ以外はデフォルト表示になっておりました。

  • @mgroovy さま
    お試しありがとうございます。

    急告:last.fm他の処理でバグを見つけましたので、以下のお試しは差替版にアップデート後にやってみて下さい。
    先程差替え版に更新しました。

    申し訳ありませんが、PCで動作させることが出来た場合
    カバーアートモードにしてカバーアートにマウスカーソルを合わせてみて
    ツールチップで表示される文字列を確認してみて下さい。

    url(/NAS/%E8%8F%85%E9%87%8E%20%E3%82%88%E3%81%86%E5%AD%90/COWBOY%20BEBOP%20SOUNDTRACK%201/Folder.jpg)
    url(http://coverartarchive.org/release/944bdbd6-72be-48cd-8f4a-d4647eaf0334/front)
    url(/assets/no-image0.jpg)
    

    もし、上記のようにurl()で囲まれた文字列が3行有った場合は、 @mgroovy さまの環境では正常にカバーアートを請求していると思われます
    (urlの中身は私のライブラリの場合ですので、文字列自体は一致しません)
    上記を確認頂くことにより、単純にカバーアートの取得にだけ失敗しているのか、今回のプログラム記述で問題が有るのかを切り分けたいと思います。

  • @sunatomo さん、お久しぶりです。
    このところ余裕がなかったので、webui-plusに手を入れられなかったのですが、先ほど適用させていただきました。
    sunatomo さんの精力的な開発のおかげで素敵な画面になりました。感謝申し上げます。

    2a3a0064-faf9-4603-aaae-e26cf7e4c69d-image.png

  • @sunatomo さん

    いつもの3曲を選択してのテスト結果です。
    WebUIのCover Art FilenameでFolder.jpgのみを選択し、CoverArt (Internet)で各種選択した場合です。
    none、last.fm、Cover Art Archive、Discogs、Spotify、fanart.tvの全てで、3曲ともカバーアートが表示されました!私の希望通りの動作となりました!!!

    それでマウスカーソルを合わせた際に表示される文字列ですが、全て2行で、内容もまったく同じものでした。
    ちなみに、全曲再生が終わりデフォルトの女の人の絵が表示されている時も、その後ラジオを再生させている時も同じ内容になります。

    url(/NAS/Jazz/Varioius/HD%20Jazz%20Volume%203/Folder.jpg)
    url(/assets/no-image0.jpg)
    なお、最初の行が指しているのは、最初の一曲目のFolder.jpgです。

    ご尽力いただき、ありがとうございました。本当に感謝です!

  • @hiroget9 さま
    ツインビュー、PCの場合は横方向に解像度が有ってもて余している感があるので「アリ」だと思いませんか?
    将来的には画面の向きを検知して自動切替も考えたいと思いますが、もう少し時間がかかりそうです。

    @mgroovy さま
    一昨日にリリースした版はリリース直前の土壇場で内部整理のために変数名を変更してしまい自分で動作環境を破壊していました。

    また、今まで気づいていなかったのですが、各インターネットサービスのAPIから検索結果を受領する際にjqueryのgetJSONという関数を使用しているのですが、
    当該関数で仮に相手先のURLから応答が返ってこなかった場合の処理が不十分でした。

  • @sunatomo さん、PCの画面ですとツインビュー良いと思います。画面が賑やかで、プレイリストも幅が狭まり使いやすいと感じています。
    友人宅にもインストールしましたが好評価です。

  • リリース予告について

    立て続けになりますが、リリース予告です。
    以下の機能が何とかものになりそうなためです。
    明日〜明後日でリリースを目指します。

    • UPDATE-LIBRARYのBACKUP/RESTOREで使用するNASの指定
      従来の「BACKUP」・「RESTORE」ボタンの横にセレクターを配置し、
      ここからNASを選択出来るようにします。
      (当然現状ライブラリととして使用中のNASのみ選択可能)
      ↑
      従来はNAS0(/var/lib/mpd/music/NAS)のみ指定可能であったが、
      何らかの理由でNAS0が無くなった場合でも今回対応で使えるようになります。

    • インターネットラジオでのインターネット経由でのカバーアート表示対応
      ラジオストリームだと判断した場合、ローカルのパスは参照せず(noimage*.jpgは参照します)、
      インターネット経由でカバーアートを取得するようにコーディングしました。
      このときのクエリパラメータは現状インターネットラジオから返される「アーティスト」+「トラック」の2つになります。
      (とりあえず上記パラメータでアルバムが特定できたMusicbrainz → Cover Art Archive を採用してみます)
      動作確認は「linn - radio」 と 「Radio Swiss Pop」で行っていますが、Radio Swiss Pop の場合だと半分以上のヒット率ですね。
      (linn - radioはちょっと難しいようです。)

    • カバーアートモードでのカバーアート取得リストのツールチップ表示
      文字列をデコードさせることにしました。
      (エンコード状態だと冗長ですし、見ていて頭で変換するのが面倒くさいので)

    ※おまけ
    インターネットサービスでカバーアートがヒットする確率をざっくり見ていると以下のように見えます。

    高:CoverArtArchive, Discogs
      ↓
    中:last.fm
      ↓
    低:Spotify, fanart.tv
    これについては長期的に様子を見ながら、ライブラリ(NAS)側での提供サービスの絞り込み+インターネットラジオでの提供サービスの決定で考慮したいと思います。
    (希望があれば残しますが、ヒット率が低いものは廃止するかも)

  • 2021-11-07 版のwebui-plus配信について

    リリースノートはこちら

    • UPDATE-LIBRARYの「BACKUP」/「RESTORE」ボタンでの使用NAS設定を追加
      従来は NAS0 (/var/lib/mpd/music/NAS)のみ直接指定されていましたが、
      今回の拡張により「何らかの理由でNAS0を使用しなかった場合でも、バックアップとレストアが使用可能」になりました。
      ちなみに、選択肢として有効なNASは現状ライブラリとして使用中のものに限ります(/etc/fstabにマウントポイント設定として追加されているものに限るため)。
      2021-11-07_01.png

    • インターネットラジオ向けインターネット経由でのカバーアート取得・表示対応
      前回予告の通り、CoverArtArchive に対応して、「楽曲名」+「アーティスト名」が取得できた場合のみインターネットへカバーアート検索を行うようにしました。
      ヒット率は正直「あまり期待しない」でください(前に半分等と言っていましたが、楽曲次第で全然ヒットしないことがありました)。

    • カバーアートモードでのカバーアート取得リストのツールチップ表示強化
      インターネット経由でも文字化けしないようにしたのと、
      今まで曲が切り替わってもリストが正常に更新されなかったバグを修正しました。
      (ツールチップを使用した動作検証は大変申し訳ございませんが、今回から正式対応とします。
      もし不具合と思われる事象を見つけましたら、こちらをご覧になってから一言申し出くださると大変助かります。)

    • 楽曲情報の情報追加(15:00追記 忘れていました)
      従来は「コーデック」・「ビットレート」・「ビット数」・「サンプルレート」の4項目のみ表示でしたが、
      「アルバム名」・「アルバムアーティスト名」・「楽曲名」・「アーティスト名」・「URL」の5項目を表示するように機能拡張しました。
      (個人的にインターネットラジオでストリーム追加してしばらく視聴後にラジオのURLがわからなくなるのを防ぎたかったため)
      2021-11-07_02.png

    • ツインビューの正式対応(限定的ですが)
      従来のようにブラウザの場所に直接指定することなく、キーボードの"t"をクリックすることで切り替わるようにしました。
      (従来のURL直接指定でも動作します。)

    ※ちょっとだけ解説すると、現状のツインビューの HTML は従来の HTML を一部書替(タグのclass要素+style要素の差替)です。
    今回キーボードでjavascript関数を走らせ、従来のHTMLに対してこの書替を自動実行する様に調整して限定対応しました。
    ただし、従来の「シングルビュー」→「ツインビュー」の切替はスムーズに出来ましたが、「ツインビュー」→「シングルビュー」は分割されたコンポーネントの横幅サイズが半分のママとなってしまうため、「ページの再読込」で対応させています。
    今後も、ツインビューの開発自体はindex2.htmlを使用し、従来のindex.htmlとの差異はjavascript関数で定義する方向を考えています。
    (致命的な差が発生した場合は、別途対応を考えます)

    余談:no-image*.jpgについて
    個人的にはもう少し選択肢が欲しくなってきました。

    ただし、画像の都合上「フリーで使用可能なもの」かつ「従来の印象から違和感のないもの」を選択する必要が有ると思います。
    no-image2.jpg
    ↑
    インターネットからフリーの画像をダウンロードし、グレースケール化した例ですが、こういう感じの画像を追加してみるのはアリでしょうか?
    (あまりたくさん置くのはちょっと...と思いますが、全部で5枚(従来2枚+追加3枚)くらいなら「ちょっとした楽しみ」に出来ますよね?)

    ちなみにno-image*.jpgはwebuiの実行ファイルにリソースとして結合されているため、ビルドの際に追加する必要があります(RPiの何処かに自由に配置する設計では現状ありません)。

    余談2:インターネットラジオ検索用のサイト・サービスについて
    ラジオストリームのURLが返ってくるようなサービス、ご存知の方おられますか?
    (上手く webui と結合できないか考えています。)

  • @sunatomo さん
    ラジオまで対応いただきありがとうございました!
    Swiss Radio Classic ですが、時折カバーアートにヒットするものもあり、楽しませていただいております。

    no-image*.jpgについてですが、個人的には自分の好みの写真とかに入れ替えられるようにできたら良いなぁと思っています。
    もし可能であればno-image*.jpgのホルダを教えていただけたら、勝手に入れ替えもできるかなと思いますが、いかがでしょうか?

  • @sunatomo さん、webui-plus配信ありがとうございます。

    no-image*.jpgの場合の画像を選択できると良いですね。

    mgroovyさんと同じ希望なのですが、自分で画像を用意して、no-image*.jpgの場合にそれを表示させることは可能でしょうか?
    でも、用意する画像のフォーマット、サイズや名前等を指定しないと面倒ですよね。

  • @mgroovy , @hiroget9 さま
    ちょっと作り込みをサボろうと実行ファイルに+3枚追加の方向を考えていました😬
    でもよくよく考えましたが、「元々 パパリウス さまが作っていた画像にシステムとして新たなものを追加する」よりは
    「利用者が自分の趣向で画像を追加する」ほうが良いですよね。

    no-image*.jpgを外だしする場合ですが、以下の対応が必要です。

    • /var/lib/mpd/music/assets フォルダを追加作成し、ここに当該画像ファイルを置いた場合に対応するかの確認
      現状「webui-plusの実行ファイルに統合されている既定の/assets/no-image*.jpg」が正常に動作し、「追加ディレクトリ内のファイルも認識する」かがポイントになります。
      (これは早速手元で実験してみます)
      ↑
      実験の結果、イケることを確認しました。
      (実行ファイル統合のjpgファイルも、新たにディレクトリを作成して追加したファイルもどちらも読込されますね)

    • Javascript 側の拡張
      現状ランダムに表示されるno-image*.jpgは実行ファイル統合のjpgファイル総数(2)をハードコードされています。
      上の検証が動作した前提で利用者がファイル名の命名ルールに基づき自由にファイルを配置したとすると、その数量を検知・設定する必要があります。
      (表示される画像は画像総数から乱数で表示されるように設計されていますが、
      「総枚数」>「実際のフォルダ内格納値」+「デフォルト枚数(2)」の場合表示されないケースが生じる)
      ↑
      (21:00記述変更)ココについてはwebuiの起動時に/var/lib/mpd/music/assets/ディレクトリ内のno-image*.jpgのファイル数をカウントして保持し、各端末のwebuiに対して内部パラメータとして返す仕様とします。
      各ユーザには下記のルールでファイルを作ってもらうのを遵守して頂くこととします。

    ちなみに画像ファイル生成のルールは以下のとおりです(現状のno-image*.jpgに準拠)

    • ファイル名
      "no-image" に続き、数字を指定(0,1 は既にシステム予約、これ以降を間が開かないように指定する)、
      拡張子は必ず".jpg"にする

    • ファイル形式
      グレースケールのjpeg形式を基本とする(ただし、利用者が自由に追加する場合はカラーを許容する)。
      ファイルサイズは縦横等倍(1:1)であれば特に問題なし。一応640×640ピクセルを推奨する。

  • I am liking the split screen Thank you for doing that.

    RaspPi4b x 2 / IanCanada Stack powered by LiFEPo4 & Ultracaps /
    Bisek Output Transformers

  • no-image*.jpg対応について

    手元の試作では /var/lib/mpd/music/assets/ への no-image*.jpg 追加で新たな不明時カバーアートの表示は成功しましたが、
    やはり一般的な機能として提供するためにプラグイン化することとしました。
    機能としては以下の4つでしょうか。

    • カバーアート用画像ファイルのアップロード
    • 保存済みカバーアート用画像ファイルの内容確認(プレビュー)
    • 保存済みカバーアート用画像ファイルのダウンロード
    • 保存済みカバーアート用画像ファイルの削除

    (アップロード・ファイル削除の度に端末側のJavascriptには現在のディレクトリ内のファイル数が伝達されます)

    プラグイン化する理由は「本機能が不要な方は無効化すれば良い」ということと、
    「画像ファイルの名前付けをwebuiで規則的に行わせる」という目的になります。
    仮に1:1ではないファイルをアップした場合にプレビューでおおよその見え方も分かるでしょうし。

    というわけで、プラグインの設計に入ります。

  • 2021-11-10.png
    とりあえずのプラグインデザイン作成しました。
    機能実装もほぼ出来ています。あとはデバッグを行ってちゃんと動くようにします(今週末にリリース出来そうです。)

    ※イメージファイルのサイズ制限とファイル数の上限をどうしようか考えています。
    SDカードの余裕があればたくさん入れても良いかもしれませんが、
    美女カレンダーではないので30枚とか入れても仕方ないと思います。

  • @sunatomo さん
    さっそくインプリいただき、ありがとうございます。

    「利用者が自分の趣向で画像を追加する」という件なのですが、実は「追加」ではなくて「交換」したいのです。

    デフォルトの女の人の絵は、私個人としてはまったく問題なく、逆に好きな方なのですが、家族構成が私以外女ばかりで、このデフォルトの女の人の絵を見られてしまうと、ちょっと恥ずかしいという、全然技術的ではない問題を解決したかったのです。

    そうしますと、乱数でカバーアートを表示させる際に、no-image0.jpgとno-image1.jpgを除外するボタンがあれば解決できるかな?と思っている次第です。
    よろしくお願い致します。

  • @mgroovy さま
    当方の実験では /var/lib/mpd/music/assets/ にno-image0.jpgを置いても、ympd 組込のイメージが表示されました。

    という訳で、まずは「ブラウザでリロードした場合は設定が元(組込画像を使用)に戻る」+「リロード時の初期表示、キューの初期化時は従来(no-image0.jpg)のまま」という条件でもよければ、
    本プラグインの下に組込(Built-in)画像を使用/不使用のチェックボックスを追加しますので、これを操作して頂ければと。

    11/11 19:50追記
    どうも歳を取ると忘れっぽくてダメですね。
    /usr/bin/ympd-plus.sh でympd.service 起動前の下準備を行っているのですが、
    その際に/etc/webui.cfg に必要なコンフィグの記載がなければ追記する様にしていました。
    という訳で、起動時に組込カバーアートを使用するかの設定を吸い上げ出来るようにします(また、設定後は /etc/webui.cfg の設定を書替するようにも整備します)。

    従来は組込+ユーザ追加の画像の合計で取得する画像を乱数化していましたが、
    本チェックを外すことでユーザ追加の画像数のみで乱数化するようにします。
    (例えば、ユーザ追加の画像が3枚の場合、従来の考え方だと0〜4の数字で乱数化、
    チェックを外して組込画像不使用にした場合、2〜4の数字で乱数化という形になります。
    この結果、no-image*.jpgの*の部分が乱数で置き換わるという仕組)
    ↑
    最終的には/etc/webui.cfgに設定を保存させることで、リロード直後にも組込画像を使用しないことも出来るようにしてみたいと思います。

  • 11/13 版のwebui-plus 配信について

    一通りバグが取れたと判断し、リリースいたします。

    • no_image*.jpgの拡張
      従来、webuiの実行ファイルに組込されていたno-image0.jpg・no-image1.jpgに対して、
      別なjpgファイルを利用者が自由に追加・削除出来るようにしました。
      これらの追加されたjpgファイルは /var/lib/mpd/music/assets フォルダに保存されます。
      保存される際のファイル名は no-image*.jpg ("*"の部分には2以降の整数が順に続く)となります。
      また、 @mgroovy さまリクエストに対応し、組込の no-image0,1.jpg を使用しないように指定することも可能です。
      (当該オプション設定指定には事前にjpgファイルを追加しておいて下さい。)

    • /usr/bin/ympd-plus.sh の機能追加
      今回/etc/webui.cfg に”組込no-image0,1.jpgを使用しない設定を追加するためにinnerFlgという設定を追加しました。
      これに伴い、ympd-plus.sh の記述を修正しています。
      (設定ファイルに必要な設定がない場合は追記する。
      また、webui-plusで追加したプラグインのon/offに必要なシンボリックリンクが/opt/plugins/attach,detach にない場合は追記。
      /var/lib/mpd/music/assets ディレクトリがない場合は作成等。)

    • webuiプラグインのアイコン変更
      今回のカバーアートと被ってわかりにくそうだったので変更しています。

    2021-11-13-01.png

    CoverArt(no-image)プラグインの解説を行います。

    • 当該プラグインを使用する際、PLUGIN プラグインで有効化して下さい。

    • no-image プラグインを開くと、現状の /var/lib/mpd/music/assets フォルダ内部のno-image*.jpg ファイル数を検知してmaint-image が当該ファイルのリストになります。

    • リストから操作したいファイル名を選択し、「download」・「delete」・「preview」ボタンで希望操作を行って下さい。
      (この時、「delete」ボタンで選択したファイルを削除した場合、リストの最も老番のファイル名が削除したファイル名に変わる仕様になっています。
      これは、削除したファイル名に合わせてそれ以降のファイル名を全て変更するのが面倒なため。)

    • ファイルを追加する場合は「upload image」のファイルボタンでファイルダイアログを表示させて希望ファイルを選択し、「Send」ボタンで行って下さい。

    • Built-in Image では標準で「use Built-in image」にチェックが入っています。これは組込画像ファイルを(従来どおり)使用するという意味です。
      本プラグインで別な画像ファイルを追加した場合、当該チェックボックスが操作可能になりますので、その際に「組み込み画像ファイルを使用したくない」場合はチェックを外してプラグイン下部の「OK」ボタンを押すとチェックボックスの設定が保存されます。
      (逆に言うと、ユーザが追加画像ファイルを追加しない限り、本オプションは選択できません。
      仮に過去に「use Built-in image」をオフにしてから、全てのユーザ画像を削除した場合、内部的に当該フラグはOnになります。)

    • 上記の記載内容を理解すればftp経由やSSHによるシェルで手動でのno-image*.jpg転送は可能ですが、ナンバリング等のサポートの都合上、
      本プラグインを使用したファイル転送・削除をお願いします。
      (なお、ファイル転送・削除が必要なくなり、「use Built-in image」の設定も変更不要の場合は本プラグインをOffにしても動作には影響ありません)

    • no_image*.jpgに使用する際の推奨画像設定について
      画像サイズ:縦・横 1:1、640×640ピクセル程度を推奨(大きくてもよいですが、表示の際に縮小されます)
      画像形式:jpeg形式
      色味:組込画像との統一性を図るなら、グレーイメージを推奨します。(ココは完全に好みですが)

  • @sunatomo さん、希望を実現していただき、ありがとうございます。
    とりあえず、サクッと作ったテスト用画像を入れてみました。

    9dd1d3b9-dc11-48a4-9eab-b8855b8baf15-image.png