﻿********************************************************************************
   mpdweb Readme
                                              2017.09.08→2019.08.11→2023.07.15
                                                              by.Mikio.Shiratori
********************************************************************************

MPD (music player daemon) のWebClientです。

作成の経緯
  現在、Android/Web/PC版などMPDのクライアントは多数あります。
  アルファベットの間に日本語が配置される、アルバムアートをクライアント側に配置する、インストールが難しいなど
  個人的にみるとスキルが高いものが多い現状です。
  現在保有している端末はAndroidですが、iPadも欲しい。プレイリスト編集はキーインが面倒なのでPCで行いたい。

  Webにしたメリットについて、ワイアレス環境での動作でパケットの軽減もあると考えています。
  mpdとの交信はHtml Server上で行っています。定期的にクライアントから画面の更新のリクエストがあったとしても
  サーバ上でmpdの交信を行い、クライアントには画面の更新の必要があった場合にのみフル送ります。またほとんどの
  端末でブラウザはキャシュが良くできているので速度の点で有利です。
  実際、使用しているAndroid上で、アルバムが多くなると速度が激減します。今回作成のソフトは現状でのは、まだ
  改善できるのですが速度的には使用に耐えています。
これらを考えた末にWeb版を作成することにしました。

1.動作環境
・Linux ： voyagempd volumio volumio2 moOdeAudio:2023-01-20-moode-r825-arm64版 : テストしているバージョン)
・httpd ： apache2 , nginx
・php5  ： 5.3以上
・mpd   ： 0.18～0.19 (テストしているバージョン) Web実行環境と別のPCでも良い
※php5.3以上でHttpｄが実行できれば動作できると考えている。
  現在、volumio2についてインストール方法を作成中。

2.リソース
・mpd , PHP間で Protocol：TCP/IP Port：6600を使用しています。
  MpdとWebPHP実行環境が別の場合解放してください・

3.制限
・volumio   ： WebRadio .pls形式に未対応
・volumio2  ： Volumio2 Playlist形式 / Queueには未対応。本モジュールではmpdのI/Fを使用する。

4.本モジュールアーカイブ
  mpdweb_{Version}_{Date}.tar.gz （アーカイブファイル)
     {Version}:バージョン
     {Date}   :アーカイブした日付

  同封モジュール
    Module.txt を参照

5,アルバムアートの準備
・アルバムアートを表示する場合、ミュジックと同じディレクトリにFolder.jpgなどと同じファイル名で配置してください。

6.未対応/対応計画
 調べて分かれば対応予定
 ・VoyageMPD mpd0.17環境で再生中カウント/一定時間監視などが動かないことがある。再起動で動き出す
   NowMusicでstatusが帰ってこないと考えられるが再現待ち
 ・行数が大きくなると遅くなるが,タブレットはメモリ/CPUスピードを考慮しページネーション&Ajax的な方法を考える。
 ・mpd Connect Passwordの検証

 対応予定なし
 ・VolumioRc2でUSBDacの電源On/Off環境で,Volumが表示されなくなる。このとき他のMPD ClintもVolumが動作しない
   VolumioRc2 GUIも同様。Volumio Rebootで復旧した。App/Volumio...原因不明(BitPerfect環境なので未対応)
 ・DispFileで表示内容がなく不要なディレクトリを表示。(多段階ディレクトリを最後まで見れば良いがレスポンス考慮のため対応していない)

 機能追加予定計画（作りたいと検討)
 ・Art画像のNetmask範囲外時の設定追加 ..................................(2017-10-25で追加)
 ・List Date/Genreの多段階選択 →Artist/AlbumArtist→Album .............(2017-12-20で追加)
 ・List Album 機能の細分化ページネーション(a-c,d-...設定)

7.今後計画（できるかも検討)
 ・複数 mpd の対応 別モジュールでXMLをコピー................(完了2023.07.15別XMLを作成して対応)
   現スタンス:各mpd環境にinstall(Volumio Rc2以外) moOdeAudio:2023.07.15追加
 ・設定画面の作成(別モジュール) ............................(完了2023.07.15)
   FunctionにXML設定外部起動を追加 .........................(完了2023.07.15:MPDWeb Config)
 ・Volumio Rc2 Queue表示の追加(別モジュール)
   Volumio Rc2構成は?
    /data/playlist /data/queue (Current) json形式?
 ・再生情報の表示(別モジュール)
   DispCurrentHeader1FuncにXML設定外部起動が埋め込んであるので連携する
 ・HTML5対応?(現在4.1としてHTML5を一部使っている)
 ・HTML5を使用したmpd Streaming Port:8000の再生
 ・各ディレクトリの画像ファイルを表示

※今後拡張において
  現モジュールは、効率の問題はありますが、プログラム本体は1ファイルで構成しています。
  本来、Main、Library、JSPモジュール、POST側、Styleで分けてローディングの効率を考えるべきです。
  (共通Library/共通JSP/共通CSSは別モジュールとしたまた、拡張部は別モジュール)
  今後、対応したい内容もありますが、現行機能はブラッシュアップに留め基本モジュールに考えています。
  追加機能を作成するとき別モジュールにして基本機能と切り替えて使えるようにしたい。

8.後書き
linux,mpd,Apach2などミドルウェアのインストールについては、自身でお願いします。
作者が使用している環境についての設定方法など徐々に公開する予定です。

インストール編／設定マニュアルなど読み返すと文章/表現が ごっちゃとして いまひとつです。
時間をかけて良くしたいと思います。

ミュージックを再生したい人は、良い音で聞きたい一心でLinux系/PCなど苦労して使っているとは多いと思います。
必要なライブラリ,ミドルウェアを少なくすることは、若干の軽減になります。
本モジュールも基本はパッケージを数を少なくしました。
設定でオプションパッケージを組み込むようにしました。不要なオプションパッケージは,設定から削除すれば使用しないように考えています。

9.ライセンス
mpdweb.php一連のライセンスは作者が有します。
改造は許可しますが作者に連絡してください。より良くする方向は歓迎します。
外国語対応については、対応して頂けることには感謝します。

謝意
本ソフトを作成する切っ掛けとなった、
  デジタルオーディオの照会サイト
  Apach2/nginx/phpなどミドルウェアのサポートサイト
  htmlについてのサポートサイト
運営各位様について感謝します。

ブログ＆ダウンロードサイト
http://mympdweb.blogspot.com
http://www17.plala.or.jp/msftpsrv/makeng_mpdweb.html
