• RPi4 Edition ベータテスト

    @sunatomo さん

    開発中だけmpd_client.hの以下を変更するとテストが捗ると思います。

    #define MAX_ELEMENTS_PER_PAGE 500
    

    @ゴンザエモン さん

    動作報告をいただきありがとうございます。

    RPi4版では排他制御の方式がシンプルになりましたので、mpd/AirPlay/Spotify以外の再生ソフトに対応するハードルがグッと下がりました。
    正式リリース後になると思いますが、自動起動やキャッシュファイルなどを整理して、upmpdcliがすぐに動くように整備したいと思います。

    他にも使いたいソフトがあればご要望いただければと思います。


    @ジャイアン さん @Cresson さん

    AirPlay/Spotifyのハングアップの件ですが、Xenomai非対応のドライバが直接の原因です。
    それは例えばネットワークのドライバであったり、ラズパイのVideo Coreの問い合わせに使っているVCHIQドライバなどです。

    作業の終盤にカーネルの最適化を行います。
    ここで使用されているドライバ・処理を全て把握できますので、Xenomaiに対応するための修正を加えて、ハングアップ発生箇所を少しでも潰していければと思います。


    @ジャイアン さん

    ソート順のご要望ありがとうございます。

    私はアーティスト名やアルバム名でディレクトリを作ってファイルを保存しています。
    ジャイアンさんの要望は、曲名の並びだけではなく、ディレクトリについても"The"を省いてソートしたいということですよね。

    Web UI以外のmpdクライアントに影響しないように動作を変えるとすると、ちょっと難しいかもしれません。ちょっと考えてみたいと思います。

  • @パパリウス さん

    ディレクトリについても"The"を省いてソートしたいということですよね。

    ハイ、その通りです。

    私も「アーティスト名」→「アルバム名」のディレクトリ構造で管理しています。頭の「アーティスト名」の「The」が無視される仕様になればなぁというのが要望の趣旨です。

    優先度は低いです。もし可能ならばよろしくお願いいたします。

  • @パパリウス さま
    そうですね。すっかり存在忘れていました(定数)
    mpd.jsの同じ定数も合わせないとダメですよね>テストの際
    一応50にして自分の環境で試した限りでは正常動作しましたので、今のソースコードお返しします。

    ところで、WebSocketの動き見ていて気づいたところがあります。
    ・mpdでの音声出力先の情報を1秒毎にもらっていますが、将来切替対応する予定ありますか?
     無ければ止めては如何かと思いますがどうでしょうか
    ・1秒毎に現状のmpdでのステータスを受領していますが、その際に音源停止中はサーバへ毎秒
    ’MPD_API_SET_STOP’を送っているのを止めてみようと思います。

    @mike さま
    大変申し訳ありません。当方でリリース用に作成したファイルに肝心のWebUIの部分が欠落していました(貼付け前にリリースイメージの動作確認サボっていて気づきませんでした)。
    ympd.release.out_2020-04-05_002.zip

    ちなみにご提示のメッセージですが、「先にympd.serviceを止めたんだけどympd.socketで開いているからまだ有効だよ」って意味です。ympd.socketを止めればちゃんと止まりますのでご安心を。
    なお、この書込に付いているympdでは4/4付の修正も含まれております。

  • v1.0.0 β11 配信

    オンラインアップデートでβ11を配信しました。

     β7より古いバージョンからアップデートすることはできません。事前にβ8のSDイメージからインストールをお願いします。

    <変更点>

    1. オンラインアップデートが一瞬で終わってしまう件を修正しました。次回アップデートからは処理の進捗が分かるようになると思います。(b8で対策したつもりでしたが、反映されていませんでした。。。)

    2. Web UIのセッティング画面にバージョン情報がされないケース、および新バージョンの確認に失敗するケースに対応しました。

    3. mpdのライブラリアップデート中にWeb UIにアイコンを表示するようにしました。画面上部のボリュームアイコンの左側に:fa-refresh: のようなアイコンが表示されます。

    4. app searchコマンドの表示を少し変更しました。

    5. AirPlay/Spotifyの起動に失敗する件を対策しました。リトライのパラメータを少し変更しています。

    6. 排他実行機能を改善しました。Spotifyの曲間に1秒以上のロードが生じてもプロセス再開を行わないようにしています。

    7. @sunatomo さんが進めているWeb UIの修正を一部反映しました。

  • @パパリウス さん

    nzatoですβ11アップデートしました。

    NASやRADIOの中のフォルダーは見えるのですが、中の曲が出てきません。UPDATE LIBRARY をしても曲が見えません。

  • nzatoです

    電源を切ってから再起動したら、フォルダーの中に曲が出てきました。RADIOも同様でした。NASもRADIOも曲の再生ができています。

  • パパリウスさん

    upmpdcliの続報です。

    systemdに登録し、upmpdcli.serviceとして管理できるようにしてみました。(完璧な検証ではありませんが、これでほぼ実用的になりました)

    なお、将来的にはupmpdcliもサポートの意向とのこと感謝、感謝です。
    ・WEB-UIによる環境設定の容易さと簡単操作
    ・mpdクライアントからの極楽操作も選択可能
    :UPnP化による汎用性も確保
    ということでますます「気合」が入ります!

    ------------------------------upmpdcli.service--------------------------------------------

    pi@smpd:~ $ cat /lib/systemd/system/upmpdcli.service

    [Unit]
    Description=UPnP Renderer front-end to MPD
    After=network.target mpd.service

    [Service]
    Type=simple
    ExecStart=/usr/bin/upmpdcli -c /etc/upmpdcli.conf

    Restart=always
    RestartSec=1min

    [Install]
    WantedBy=multi-user.target

    ------------------------------upmpdcli.serviceの有効化手順----------------------------------

    systemctl daemon-reload      (作成したumpdcli.serviceの読み込み)

    systemctl start umpdcli.service (単純起動、これで使えるようになる)

    systemctl enable umpdcli.service  (以後起動を恒常化する場合はこちらで)

  • パパリウス様
    お忙しいところ恐縮ですが、お助けください。
    allo-katanaで聞かせていただいてますが、β8以降DEFAULT_SAMPLE_FORMATをS32に変更してもS16のままのようで、24bitのFLACが再生できません。
    宜しくお願い致します。

  • @tomomy さん

    mpdについては、Web UIの《MPD》からSoX Resampler Formatを*:32:*に設定してください。

    《SOUND CARD⦆のDEFAULT_SAMPLE_FORMATは、Spotify ConnectとAirPlay向けの設定となります。


    Web UIの《MPD》には、サンプルフォーマットを指定する場所が3箇所あります。

    Float PCM Format・・・Floating-Point PCMをSoxで変換するための設定です。

    DSD PCM Format ・・・DSDをpcm変換するための設定です。

    SoX Resampler Format・・・上記の2パターンに該当しないものは全てこの設定が使われます。

  • パパリウス様
    ご返答ありがとうございます。
    Float PCM Formatは、以前からと同様に*:32:*にしております(SSHでmpd.confでもそうなっていると確認しています)。
    DSDはDSDtoPCMで32bitで再生できています。
    SoX Resampler Formatは以前からnoneのままで問題なく再生できていました。
    すぐ思い浮かぶ対策が無いようでしたら、後回しにして下さい。

  • @tomomy さん

    24bit FLACの再生を試みた後で、SUPPORTプラグインでログを取得して送っていただけませんでしょうか。
    こちらで確認してみます。

  • @sunatomoさま

    すみません、試作ビルドにて確認させて頂こうとしましたが、ファイルを/runにコピーする方法が分からず、調査している内にβ11のアップデートが来ていまして、アップデートしましたところ、nextベージでの挙動が修正されており、アップデートで反映して頂いたものと思います。予め確認できず、申し訳ございませんでした。
    ご対応ありがとうございました。

  • @hrsmck さま
    確認有難うございます。
    β11では今回の私の行った修正が反映されているようです。ちょっと安心しました。
    なお、フォルダ選択の履歴についてはブラウザで表示中のJavaScriptに直接格納されているため、
    ページのリロードをしたりした場合は消えてしまいますのでよろしくお願いします。

    ちなみに/runにファイルを複写する方法ですが、filezillaなどを使ってPCからファイルアップロードすると便利だと思いますよ。
    (将来的にはWebUI経由でファイルをRaspberryPiに送るのも対応したいとは思いますが、かなり実装に時間がかかりそうです。)

  • sunatomoさま

    ympd.release.out_2020-04-05_002 を b10 に適用してみました。
    今回はきちんと動作し、一番長いplaylistの一番うしろ、32330 までnextで行き、またpreviousで先頭まで戻ることができました。

    手間のかかるご対応いただきましてありがとうございます。動作も早くこれで気持ちよくymdpを使うことができます。

    また、b10 に上げて全く同じ快適な動作をすることも確認いたしました。どんどんいい感じになってきて操作が楽しくなります。感謝いたします。

    P.S. どうでもいいことですが、置き換え作業中、socket を止めた後cp中に以下のようなエラーが出て、再度serviceを止め作業が完了できました。ご報告まで。
    root [ /run ]# cp /run/ympd.release.out /usr/bin/ympd
    cp: cannot create regular file '/usr/bin/ympd': Text file busy

  • @mike さま
    お試し頂き有難うございます。
    元はと言えば当方のコーディングの際の見積りミスで不具合となりましたので、
    ご不便をおかけし申し訳ありませんでした。
    もしこれでも発生しているようなら、WebSocketのバッファを増やすか、1ページ当たりの表示数を500項目から減らす必要がありますね。

    またご提示のエラーログは仰る通りympdが動作中に実行ファイルを上書きしょうとして失敗したものです。

  • パパリウス様 v.1.0.0.β11をアップ有難うございます。早速インストールさせていただきました。mpdで条件が入力出来るようになったお陰でDSDファイルをDoPにて伝送出来るようになり(今まで設定で失敗ばかりして使えなかった)DSD,DSFファイルを楽しくことが出来ました。もちろん192kHzのPCMファイルも問題ありません。また、私のクラシック音源には長い名前がついているのですが現時点では問題ありません。6TBと云う膨大なデータを全て使えるようになリました。今後色々なファイルを実際に試して不具合が生じないかチェックをしてまいります。

  • またまた私だけだったら嫌なのですが、iPhone の Safari, Chrome それから、Android Chrome で、SETTINGS メニューが表示されません。
    Windows Chrome, Edge ではちゃんと表示されています。
    スマホだけ表示されないのかも。。。

  • @mgroovy さま
    私もこの現象確認しました。
    実はスマホとPC向け画面の場合、メニュー要素が別構成となっており、
    スマホ画面側のSETTINGSのみ要素が消えて表示されなくなっていますね。
    ↑
    寝る前にちょっと見てみたところ、以下の理由でした。
    β11でライブラリアップデートの進捗表示に対応した際、表示項目が1つ増えたためプラグインの初期化の際にSETTINGSが余計に消されていた。

    という訳で、次のバージョンに間に合うようにソースコードを修正して戻します。

  • パパリウスさん

    ちょっとテストしたきことがあって、USBポートを使えるようにしようと思いましたが、案内にあるように/etc/rc.localのhub-ctrl、ならびにuuコマンドのところをコメントアウトしてみましたが、有効にできませんでした。(変更したところは以下のすべてのコマンド行)

    お手数ですがご指導いただければ幸甚です。

    if [ `hub-ctrl |& grep "failed to access USB: Resource temporarily unavailable" |wc -l` -eq 0 ];then
      hub-ctrl -h 0 -P 1 -p 0 # upper right (USB3.0)
      hub-ctrl -h 0 -P 2 -p 0 # lower right (USB3.0)
      hub-ctrl -h 0 -P 3 -p 0 # not use
      hub-ctrl -h 0 -P 4 -p 0 # not use
      hub-ctrl -h 1 -P 1 -p 0 # not use
      hub-ctrl -h 1 -P 2 -p 0 # not use
      hub-ctrl -h 1 -P 3 -p 0 # upper left (USB2.0)
      hub-ctrl -h 1 -P 4 -p 0 # lower left (USB2.0)
       unbind USB2.0 root hub
      uu suspend usb1
       unbind USB3.0 root hub
      uu suspend usb2        
    fi
    

    試しにhub-ctrlコマンドなどを叩いてみましたが、、、
    root [ ~ ]# hub-ctrl -v
    failed to access USB: Resource temporarily unavailable
    No hubs found.

  • @ゴンザエモン さん

    2行、コメントアウトを外してるよう見えますが・・・