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

    @kn929658 さん

    すみません。
    v1.0.4にインストールしてあるwebui-baseパッケージの作成ミスが原因でした。


    本来はympd.serviceファイルを同梱すべきところを、誤ってympd.socketファイルを同梱していました。
    このため、webui-baseをアンインストールしたタイミングで、必須ファイルであるympd.socketが削除されてしまい、webui-plusが正常に動作しなくなっておりました。


    v1.0.4正式版のSDイメージではwebui-baseパッケージを修正いたします。

    取り急ぎは、以下のファイルをtar xfで解凍して、/lib/systemd/systemにコピーすれば復旧いたします。
    ympd.socket.tar.gz

  • @sunatomo さん

    業務連絡です。

    webui-plusインストール時に、/opt/plugins/attach下のシンボリックリンクが作られず、Web UIのメニューに表示されないようです。

    porgパッケージにはシンボリックリンクも追加できますので、対応をお願いできればと思います。

  • @パパリウス さま
    ympd.serviceの件含めてお手数おかけします。
    porgパッケージでのシンボリックリンクの件、了解しました。
    もし、ダメならympd.serviceで実行するシェルスクリプトで対応予定でした。😀

  • sunatomoさん           CC.パパリウスさん

    V1.0.4に更新してWebUI-Plusを再テストいたしました。
    以下の対応が必要となりますが、NASからのカバーアート取得も
    問題ありませんでした。 取り急ぎ。

    cd /opt/plugins/attach
    ln -s ../04-webui/ 04-webui

  • SUNATOMO様
    パパリウス様

    ご指導ありがとうございます。
     チャレンジしてみます。

  • ④「MPDの状態表示」

    2020-06-06 22.50.37 192.168.11.162 1467392dd585.png
    おまけ的な機能ですが、mpdの状況ならびに現在のライブラリの規模を表示します。
    表示項目は以下のとおりです。
    ・artists MPDライブラリ内のアーティスト数を表示します
        (あくまで楽曲ベースでalbum artistsではないことに注意)
    ・albums MPDライブラリ内のアルバム数を表示します。
    ・songs MPDライブラリ内の楽曲数を表示します。
    ・playtime MPD起動後の合計再生時間を表示します。
    ・uptime MPD起動から現在までのサーバ起動時間を表示します
    ・dbupdate MPDでのデータベース更新最新日時を表示します。
    ・dbplaytime MPDライブラリの楽曲合計再生時間を示します。

    ちなみに現状のwebui-plusパッケージでは同梱のプラグインの設定が入っていませんのでそのままでは使えません。
    以下のコマンドを投入して下さい。
    (次のパッケージでは標準対応いたします)

    cd /opt/plugins/attatch
    ln -s ../05-stats/ 05-stats
    
  • 06/27時点でのアップデート配信について

    webui-plusのアップデートパッケージ作成しましたので、配信いたします。
    アップデート方法

    app install webui-plus
    reboot
    

    ↑
    本来ならwebuiをインストールすれば新しいympdでデーモンが起動してそのままMPDと通信が出来るはずなのですが、
    再起動しないとMPDがハングする現象が確認されましたので再起動の処理を追記しています。

    変更点は以下のとおりです。

    1. webui-plus特有設定の反映方法修正
       RaspberryPi内で動作しているympdが起動時に設定ファイルを読み込みし、ympdのプログラム内部に格納するようにしました。
       利用者のWebブラウザにはページ表示時(正確にはwebsocket接続時にキューがアップデートされた際)に当該設定を送ります。
       (プラグインで設定値を更新した際はWebブラウザがympdのプログラムへ値を通知します。)
       当方環境ではこれで値が外れる事はなくなりましたが、試行をお願いいたします。
       また、この対応に伴い設定ファイルは/etc/webui.cfgに場所を変更しました。
       (従来から使用いただいている方についてはympd起動前に実行するシェルスクリプトで/opt/plugins/04-webuiから/etcへ自動的に設定ファイルを移動します。)

    2. グリッド以外(キュー・ディレクトリのリスト)での1ページ当りの最大データ表示数の修正(500件に戻しました)
       グリッド←→リスト間表示ページの変換も行っています。
       将来的にはグリッド・リストのスクロール位置から表示位置の調整も考えてみたいですが、
       ちょっとむずかしそうですね。
       06/28 補足)今日は聞き込みながら色々と操作してみましたが、想定外の動きをするケースがあることが分かりました。バグ取りが必要ですね。

    3. 03-search プラグインの機能改良
       複数条件での検索に対応しました。現状では3項目となります。
       (将来的には様々なデバイスの画面解像度に合わせてもう少し検索項目数を増やすことも検討)。
       検索条件はandとなります。ANYとタグを指定した検索を組み合わせが可能です。
       なお、文字列を記載しない項目は検索条件に反映されません。
       最上部のみ検索条件を入れた場合は従来と全く同じです。
       (トピック記載中に気づきましたが、テスト不十分で上の候補の文字列を空にした場合を想定していませんでした。修正までは条件文字の行は隙間を開けずに上から埋めて下さい。)
      ↑
      2020-07-01追記:該当部分関連ソースコード修正中に改めて確認しましたが、
      上から詰めなくても検索対象文字列がない場合は条件から除外することが判明しましたので訂正します。

    03-searchプラグインの機能改良に伴い、webui-plusのインストールをすると、/opt/plugins/03-search/forms.htmlを書き換えします。本書き換え実施後はwebui-baseに戻してもプラグインの外観は元に戻りませんのでご容赦下さい。
    (どうしても戻したい場合は元のforms.htmlのバックアップをwebui-plusのアップデート前に取って頂ければと)

    ↑
    複数項目検索自体はあまりバグが無いと思いますので(従来のソースコードを統合してスッキリと記述できたため)webui-baseの方には比較的早くフィードバック出来ますので、それまで許容頂けるのであればそのまま使用下さい(webui-baseでは最上部の検索条件のみ動作)。

    1. プラグインのインストール時のシンボリックリンク自動作成
      パッケージでのリンク作成もやってみたのですが、もしかしたら失敗しているかもしれなのでympdのデーモン起動前に実行するシェルスクリプトでも念の為の追加対応しています。
  • sunatomo様

    smpdv1.0.5でapp install webui-plusをsshでインストールしましたが、
     nasの70%位しか表示されません。音楽データーの下部にNextが表示されますが
     Nextを押しても何もデーターが表示されません。Next表示はPreviousに代わりますので
     押すと元の音楽データー画面に戻ります。画面上部のTitleの辺りも他のマークは表示
     されません。以上ご報告します。

  • sunamoto様

    rebootしていませんでした。
     rebootしたら以前のように正常に表示されるようになりました。
     お騒がせしました。

  • @kn929658 さま

    nasの70%位しか表示されません。
    音楽データーの下部にNextが表示されますがNextを押しても何もデーターが表示されません。
    Next表示はPreviousに代わりますので押すと元の音楽データー画面に戻ります。
    画面上部のTitleの辺りも他のマークは表示されません。

    途中まで書きかけでお返事頂けましたが
    この現象、お見受けするに「既にブラウザでWebUIを表示したままの状態でwebui-plusをインストールし、リロードボタンを押して」いませんか?

    実はページ間の移動を制御するためのパラメータは近代的なブラウザでは場所(URL) 表示欄の隠しパラメータになっており、
    通常は表示されないようになっています。
    ページリロードをすると自動的に隠しパラメータ込で問い合わせするため、
    本来想定とは異なる表示状態になる可能性があります。
    (空のブラウザのウィンドウ・タブにそのままURLを入力した場合は必ずキュー表示から始まるのですが、
    既にwebuiを使っていてディレクトリ表示を行っていた場合はディレクトリ表示のためのページ等の隠しパラメータが場所欄には入っているため、
    この状態でwebuiの入替を行うとディレクトリ表示で始まってしまう。)

  • sunamoto様

    ご指摘の通りです。
     私は、調子が悪くなるとすぐにOSを再インストールしますので、再インストール前の
     状態でした。再インストールしてリブートしたら正常になりました。

    別の質問があります。spmd v0.9系でSDカードの拡張は如何すればよいのでしょう?
     また、sshでsmpd.localで入れないのは私のPCがおかしいのでしょうか?以前は
     以上の方法が何処かに記載されていたのですが、見当たりません。宜しくお願い
     いたします。

  • @kn929658 さん

    SDカードの拡張はsshで

    sudo raspi-config noint --expand-rootfs
    sudo reboot

    smpd.localで入れないようでしたら、dashboadでraspberry piのipアドレスで接続してみてはいかがでしょう。

  • hirogetg様

    ご指導有難うございます。
     SDカードの拡張が出来ました。
     sshで入れなかったのは、再生を止めずにいたからでした。
     どうも有り難うございました。

  • タグ検索時のアルバムとの対比について

    マイルストーンに記載した「ディレクトリ表示」以外の楽曲表示方法対応ですが、
    試作状態で当方ライブラリ内部の全ジャンルの項目を一覧化するところまでは試行出来ました。
    後はSEARCHプラグインの仕組みを再利用してアルバム・楽曲を抽出するところまで来ましたが、
    ここで一点「表示方法とアルバム選択の方法について」皆さんに操作性・表示方法を伺ってみたい事項が発生しました。

    前提)
    とある単一アーティストのCDアルバムをリッピングしたところ、
    CDDBの問い合わせの結果1枚のアルバム内で複数のジャンルが形成されました。
    (1楽曲1つのジャンルがついているが、楽曲によって異なるジャンルが登録されている。
    もしくは1楽曲に複数のジャンルタグが登録されており、アルバム内で全楽曲統一されたジャンルがなかった。)

    質問1)
    ジャンルの一覧リストから希望のジャンルの絞り込みを行った際に、
    そのジャンルを含むアルバム名が楽曲の前に表示されたほうが良いと思いますか?
    →イメージの例としては現状のキュー(下の画面例)をご覧ください。
    キューの場合、同一アルバムの楽曲が組み合わせされて先頭に「アルバム名」の行が作成されます。
    queue_sample.png

    一方、現在のディレクトリ表示の場合、「アルバム名は上の”パンくずリスト(階層表示)”で分かるので表示しない」仕様になります。
    ↑
    もし希望があれば、検索による絞り込みのみではなく、ディレクトリ表示での楽曲一覧表示についてもキューと同じ仕様にすることは可能です。

    質問2)
    質問1が「はい」の方にお尋ねします。
    検索結果として「アルバム名」が表示されている行で「+」ボタンを押した際の挙動としては
    どちらが望ましいでしょうか?
     a)ジャンルなどで絞り込みを行ったとしても、そのアルバム内全楽曲をキューに追加
     b)絞り込みを行った結果に基づき、当該アルバム内のヒットした結果のみキューに追加

    上記の事項はジャンルだけではなく、アーティストでも発生しうる状況です。
    操作感としてどっちが好ましいか、皆さんの率直な意見をお聞きしたいと思います。

  • @sunatomo さん

    ちょっとご相談があります。

    diyAudioで「複数のマウントポイントに対応できないか」という書き込みがありました。

    プラグインで対応できるかなと思いますが、プラグインで実装するにあたり何か懸案などありますでしょうか?
    もしなにか気になる点があれば教えていただければと思います。

    なお、再生開始/再生停止時の自動マウント・自動アンマウントは対応しなくてよいかなと思います。

    実装できそうだと判断できましたら、diyAudioには「実装できるから、ちょっとまってて」と書き込もうと思います。


    複数のNASをマウントしたいという要望は、smpdのごく初期からいただいておりました。

    v0.2系〜v0.4系当時は以下の理由で実装を見送っていました。

    • NASのマウントポイントは少ないほうが性能測定上有利だった
    • NAS設定のRSIZE選定ロジックが複雑になる
    • 不要プロセス自動停止の処理が複雑になる

    v1.0系に至っては、音質面の肝はドライバが担っていますので、NASのマウントポイントが増えたくらいで音質を台無しにすることはできません。
    不要プロセス自動停止などの細かな部分に目を瞑れば、他の機能に影響を与えずうまく実装できるのではないかなと思うようになった次第です。

  • @パパリウス さま
    私見ですが、現状のNASマウントの仕組みはOS側処理になっており、
    MPDでの処理が介在しないので
    メインシステム側で対応頂けれるのであれば問題は無いかなぁと思います。

    で、新たにNASを追加するとしてマウントポイントは/var/lib/mpd/music配下なのは代わりありませんよね?
    (MPDのライブラリ参照元が変わらず、MPDによるマウント・アンマウントを使わないのなら上手く追従は出来ると考えています。)
    ↑
    どちらにせよ、テストは必要だと思っていますが🤠

  • @sunatomo さん

    mpdのプラグインは使わず、OS側の機能でマウントするつもりです。
    また、マウント先は/var/lib/mpd/music配下です。

    Web UIと競合する部分も無さそうですし、おそらく大丈夫ですよね。
    ちょっと時間をとって取り組んでみようと思います。

    ご意見ありがとうございました!

  • 07/05時点でのアップデート配信について

    webui-plusのアップデートパッケージ作成しましたので、配信いたします。
    アップデート方法

    app install webui-plus
    reboot
    

    変更点は以下のとおりです。

    1. ympd本体(RaspberryPi)側での修正
       ・過去の開発で冗長なパラメータ取得を行っていた部分を簡素化
       ・libmpdclientのドキュメントで判明した安定化処理(使用済み変数の開放)の追加
       ・グリッド表示時にアルバムを取得した場合、制限数(既定値で25)以上のトラック数がある場合に正常に処理されないバグの修正
       ・楽曲組込アルバムアートの暫定対応(あくまでテストです。)
        今回はアルバムアートファイルのサイズが8MB以上もしくは0byteの場合は取得処理をキャンセルするように実装し、安定性を向上させてみました。
        お試しする場合、設定プラグインは修正しておりませんので/etc/webui.cfgのCoverFlgを手動で+1して下さい。

    2. ジャンル・アーティスト検索のネイティブ対応
       これに伴い、キュー・ディレクトリ表示のメニュー部分に改造を加えています。
       (当該部分をクリックすると、下図の通りメニューが表示されるようになりました。)
       「genre」・「artist」をメニューから選択すると、あなたのライブラリのタグ情報から当該カテゴリの全リストがまず表示されます。
      test-menu.png
      表示されたリストをクリックすると、当該文字列を選択カテゴリで検索した結果が表示されます。
      ディレクトリ表示の際の階層(パンくずリスト)にジャンル・アーティストでも一部対応していますが、
      まだ不完全です(トップカテゴリに戻す機能しか無い、現在選択中の文字列表示に対応予定)。
      あとは希望の楽曲をクリックするとキューに追加されるという仕組みです。
      genre-sample.png

    上記機能の実装に伴い、いくつか注意点があります。
    ・ディレクトリ、ジャンル検索、アーティスト検索表示でアルバム内の楽曲一覧を表示する際、キューの場合と同じく最初の行にアルバム名が表示される行が追加表示されています。
    (アルバム名の横に「+」ボタンを置いてボタンクリックでのキューに追加は現状対応していません。)

    ・タッチ系デバイス(スマホ・ipadなど)ではキュー・ディレクトリ・ジャンル・アーティストを選択直後のリスト部分をタップ操作では選択・スクロール出来ません。
    (PCの場合は全く問題ないのですが、メニューを収納する際に画面上のコンポーネントへのフォーカスが外れるのが原因です。
    原因は分かっていますが、対策法はまだ捜索中です。
    一時的な解決策としては楽曲情報の表示欄のようにタップしても何も変わらないところをタップしてからリストの選択・スクロールをしてみて下さい。)

    ちなみに今回は楽曲タグのうち「genre」・「artist」で実装しましたがこれ以外のタグでも同じ機能実装出来ます。
    このあたりは皆さんと使い勝手を確認したいと思いますのでよろしくお願いします。

  • @sunatomo さん

    業務連絡になります。

    次のSDイメージにwebui-plusをデフォルトとして採用したいと思います。

    実装途中の機能がありましたら申し訳ないのですが、いちど区切りの良い形に整えていただけないでしょうか。

    なお、こちらでもちょっとソースを修正したいと思っている箇所があります。

    具体的な進め方についてご相談させてくださいませ。

  • 本当なら、今日付けで新しいパッケージをリリースしようとしていましたが、
    開発環境のPCでのOSアップグレードが入って終わりきっていませんので来週になります。
    (興味本位でありますが、今回はライブラリ周りの入替を試行していました。)

    @パパリウス さま
    とりあえず、現状のソースコードで一旦フリーズ扱いにしてお戻しします。
    ↑
    上記のライブラリについてはとりあえず、今回は採用なしとします。
    (7/5版から機能的には変わっていませんが、UIとしての統一性については前より良くなって
    リリース品質には近づけていると個人的には思っています。)
    という訳で、明日まで時間下さい。