MPDWEB 紹介/特徴

MPDWEB 紹介/特徴
MPDWEB 紹介/特徴

2019年12月4日水曜日

mpdweb最近のイメージです。デモサイト、ダウンロードサイトを掲載します。

 
 
区切りとしてイメージハードコピーをアップします。

機器要件としては、
USBDACはあった方が良いです。
WebService,phpが動くことが必要です。

ダウンロードサイトです。
mpd Web Client 製作の日々別館
http://www17.plala.or.jp/msftpsrv/makeng_mpdweb.html


デモサイト:玄箱で動かしているので遅いですが、実機はもっと早いです。
http://systect.ship.jp:8899/mpdweb/index.php

一度得た内容は、シェアードメモリに入れて活用します。

もし使って貰えればうれしい限りです。

mpdwebを使う上でのVolumio2 Raspberry Pi版Rc2.668 インストール

mpdwebを使う上でのVolumio2 Raspberry Pi版Rc2.668 インストール

本ドキュメントは、
  ・本サイトの目的、mpdweb のインストールについてですが、他にも役に立つよう
  ・主に Rasberry Piで購入し易い点で、I2S DAC:Hifiberry DAC Plusを例に
記載しています
Windows:Win32 Disk Imager(win32DiskImager.exe)などを使用して
volumio-2.{バージョン}.img
を書き込む。(この部分は照会サイトが多い)

※Playlistの注意点
  PlaylistがVolumio2専用となっている。/var/lib/mpd/plaulistは本来のmpdのplaylist。
  他のClientSoft時には/var/lib/mpd/playlistを使用する。
  Volumioのplaulistには他のクライアントから使用の場合、playlistと互換性はない。
書き込んだSDカードで初回起動時,パーティションサイズが最大となる。
1.IPの調査 Windowsコマンドを入力
 # ping volumio.local
2.Web 設定
 http://volumio.local/
2.1 メニュー → Playback Options:Audio Output
  (1)I2S:HiFiBerry DAC+を使用する場合
     Hifiberry DAC Plus DSP Option : hifiberry-dacplusの専用設定
     Output Device : Hifiberry Dac Plus
     I2S DAC       : On
     DAC Model     : Hifiberry Dac Plus
                     GPIOのDACを選ぶ
  (2)Output Device :USBDACのClass2.0の場合、認識していると思われるのでそれを使用する。
  (3)Output Device :HDMIについて mpd0.19からマルチチャンネル対応となっているとのこと、現在デジタル アウトプットで対応しているのもはHDMI,一部のDACぐらいと思われる。
                    5.1を再生してみたがmpdは6chとみなしているがアンプは2chとなる。どこで落ちているか不明
                    テストデータ:Flac:96KHz 24Bit 6ch (Orignal DSD 64 6ch) アンプ対応 Max:DSD64:6ch/ PCM:16-24Bit:192KHz 6chまで
   → Save
   再起動
 ※Audio Outputを設定後,再起動となるので先に設定
2.2 メニュー → Playback Options:General PlaybackOptions
    http://volumio.local/
   (1)I2S:HiFiBerry DAC+などDSDに未対応の場合
      DSD Playpack Mode        : DSD Direct
      DSD Auto Volium Level    : Off
      Volume Normalization     : Off  ← BitPerfect
      Audio Buffer Size        : 2 MB または 4 MB でなるべく小さい値 (Raspberry Pi2 DSD再生時4MBで途切れない)
      Buffer Beffer Size       : 10% または 20% でなるべく小さい値 (Raspberry Pi2 DSD再生時20%で途切れない)
      Persistent Queue         : On
     → Save
      ※DSD再生はRaspberry Pi2クラスでは,Softwareデコード無理なのでPCMに特化
   (2) USBDACなどDSDに対応の場合
      DSD Playpack Mode        : DSD Direct  ← DoPはDSD64(2.8MHz)が上限のため。まずないと思うがDSDネイティブ未対応の場合「DSD Over PCM(DoP)」にする。
      DSD Auto Volume level    : Off  ← BitPerfect
      Volume Normalization     : Off  ← BitPerfect
      Audio Buffer Size        : 2 MB
      Buffer Beffer Size       : 10% または 20% でなるべく小さい値
      Persisent Queue          : On
       → Save
2.3 メニュー → Playback Options:Volume Options
   (1) I2S:HiFiBerry DAC+など
     推奨1)
      Mixer Type                 : None
     推奨<1)
      Mixer Type                 : Hardware
      Mixer Control Name         : Digital
     好み)
      Mixer Type                 : Software
     音が割れるときの対応:Opampの出力に無理があるボリューム,またはアンプに過大な入力となっている場合を想定
     推奨<1の設定の詳細
      Default Startup Volume     : 好みで次のMax Volume Level以下かDisabled
      Max Volume Level           : 試して見て音の割れないレベルを設定
      One Click Volume Steps     : 好みで
      Volume Curve Mode          : 好みで
      MPD Clients Volume Control : OFf         (詳細不明)
     設定のポイントとして,BitPerfectを考えればNone
     ミュージックデータのデジタルデータを変化させずにDACに渡すことを考える。
     DACの意味の如く,Dgital/Alalog変換。
   (2) USBDACなど
      Mixer Type               : None (BitPerfect の再生となる)
     好み)
      Mixer Type               : Hardware / Software
    
      ※ベストはDACのボリュームはアンプのボリュームを使用。Bit量で音量が変化することを考えれば、基の情報を欠落させない。
        MixerTypeHardwareは詳細が不明な部分で情報が見つからなっかのだが
          I2S DAC内でボリュームを操作か(ALSAミキサーコントロールのこととするとDACを調べるしかないが)
          または以外か (最も気になっている部分でSoftwareとどう違う?)
        の詳細が不明です。
2.4 メニュー → Playback Options: Audio Resampling
   (1) それなりなDACを使用時(推奨)
      Audio Resampling  : Off (DSD DACの場合特にOffが良い)
   (2) 好みに合わせまたハイレゾ音源を使用しない場合などは良いかもしれない
      Audio Resampling         : On
      Target Bit Depth         : 24 or 32
      Target Sample Rate       : 48kHz 以上
      Resampling Algorithm Quality : High or Very High
   BitPerfectにするにはOffにすること。
   Resamplingは,Upsamplingであれば、スムーザの意味もある。(DAC自体にUpsamplingがある場合もあるのでケースバイケース)
   ResamplingでもDSDは考慮し難い。DSDのままResamplingできれば良いがPCMとなる。 (欲しい機能ではあるが。KORGのソフトはデータ変換できる)
2.4 メニュー →  Appearance
   Select Language で言語選択可能
   Theme Settings でテーマ選択可能
   Select background color でバックカラー選択可能
3.ssh login
  RC2 途中からSSHがマスクされているので許可
  URL:http://volumio.local/DEV → SSH : ENABLE
  HostName : volumio.local
  login    : volumio
  password : volumio
 sudo passwd root
 Enter new UNIX password:            ← 設定するパスワードを入力
 Retype new UNIX password:           ← 設定するパスワードを入力
  # su -
  # apt-get update
  # apt-get install vim
 ファイル名など日本語表示する場合
  # dpkg-reconfigure locales
  ja_JP.UTF-8 選択する
  # export LANG=ja_JP.UTF-8
  システム完全性チェックの部分を無効にしてアップデートできるようにしておく。
  SSH で Volumio2 にログインして,
  # touch /data/ignoresystemcheck
  バージョンで出来ないこともあることに注意
4.DLNA (必要に応じ)
  ver 2.228ではDLNA対応として
 「Browse」「MediaServer」DLNAServerをブラウズしてレンダラーより再生することができる
  upmpdcli : 標準に含まれたのでインストール不要 ver 2.668
  DLNA Serverをインストールする場合 Plugin で minidlnaをインストール可能になったので必要に応じ行う。
  設定もPlugin Installed Pluginで行える。
  MiniDLNA status ページを表示
  http://volumio:8200/
5.共有の設定(USBHDDなどを使用、Playlistを編集したいなど)
  Playlistを編集したい場合、USB Driveを共有する場合はSambaを設定
  Volumio Playlist共有準備
  # cd /data
  # chmod 0777 playlist
  # ln -s /data/playlist "/data/Playlist(Volumio)"
  # vi /etc/samba/smb.conf
  --------------------------------------------------------------------
  [global]
  workgroup = {WorkgroupName}
上でリンクした「/data/Playlist(Volumio)」が参照できないとき,シンボリックリンクを有効にする
Rc2.66では設定しなくても参照できた
  wide links = yes
  unix extensions = no
volumio2のplaylistを編集する場合以下追加
  [volmio Playlist]
        comment = Volumio Playlis Folder
        path = /data/Playlist(Volumio)
        read only = no
        guest ok = yes
mpdのplaylistを編集する場合以下追加
  [mpd Playlist]
        comment = mpd Playlis Folder
        path = /var/lib/mpd/playlists
        read only = no
        guest ok = yes
  --------------------------------------------------------------------
  # /etc/init.d/samba restart

6.NASマウント
6.1 Volumio:メニューからの操作
 メニュー → My Music
  +Add New Drive 共有ドライブがスキャンされる。
  共有ドライブを選択する。
  Alias          : music        [任意。Volumio/Mpdではトップディレクトリになる]
  NAS IP Address : 選択のデバイス
  Path           : share/Music/ [目的のPathまで設定 Linuxなので"/"でディレクトリを設定]
 
  例として)
    NASのディレクトリDirectory 「share」で共有され、Musicディレクトリ下に楽曲ファイルがある場合
     ・WindowsのネットワークでPC名をクリック後の共有名が「share」と表示される
     ・ディレクトリ「Music」はユーザが作成し配下に楽曲ファイルを入れている
   Volumio:Sourceの設定
    Alias          : music
    Path           : share/Music/
   と設定すると,
     Windowsのネットワークの表示
       \\{PCName}\share\Music\Flac\aiko\BABY\01 beat.flac
     Volumio/mpdで見ると
       music/Flac/aiko/BABY/01 beat.flac
    と参照される
 ※ 繋がらない場合,またはVolumio 2を最新版にアップデート後ネットワークドライブ(NAS)に繋がらなくなった
   「Sources」で 「+Add New Drice」で追加するときNASを選択後「Show Advanced Options」をクリック
   「Options」に「vers=1.0」を入力 (ネットワークドライブ「SMB Version1」で接続する設定)
6.2 fstabで強制的に自動マウント (Volumio2で新版(2019.01時点) debian jessieでCIFSのデフォルトがかなり変更になった。
  ・cifsヴァージョンが古い(ver1.0)の場合,vers=1.0を付加(デフォルトが3.0に変更された)。password不要でもダミーで付けた。(ubuntu 12.04 samba)
   //192.168.1.200/share/Music /mnt/NAS/share cifs password={pass dummy},uid=mpd,file_mode=0644,dir_mode=0755,iocharset=utf8,vers=1.0  0       0
  
  ・cifsヴァージョンが古い(ver1.0)の場合,vers=1.0,sec=ntlmを付加(デフォルトが3.0に変更された)。(Testは玄箱Debian 3.1(sarge) Samba3.0なのでかなり古い)
   user,passwordがAccuntと一致時はusername={Sambaのアカウントに合わせる},password={Sambaのアカウントに合わせる}が必要になった。
   //192.168.1.220/share/Music /mnt/NAS/share cifs username={user}ms01,password={password},uid=mpd,file_mode=0644,dir_mode=0755,iocharset=utf8,vers=1.0,sec=ntlm  0       0
  テスト方法
  # mount -a
  で確認
  再起動時Mountされないので
  # vi /etc/rc.local
  後部に以下追加
  sleep 10
  mount -a
  ↑ exit前に
  exit 0

  RescanでD/B Update
7.他のクライアントを使用するためアルバムアートを設定する。(必要に応じ)
  Androidアプリ MpdroidなどのカバーアートWebを設定
  ここでは、NODE.jsを使用しての方法を記載。
# cd /volumio/http/www/
# ln -s /var/lib/mpd/music Music
NASにshare/Music/{ミュジックデータまでのPath}/Folder.jpgとなっている場合
例)http://volumio.local/Music/NAS/share/{ミュジックデータまでのPath}/Folder.jpg
----- Extend (mpdwebを使用する場合) ----------------------------------------------------------------------------------------
1.phpをインストールしphpのFront/Endを利用可能にする
  apatch2でも良いが、nginxの方が軽いのでnginxをインスト―ル
 # apt-get update
 # apt-get install nginx
 # apt-get install php5 php5-cgi php5-fpm

2.node.jsとportを別にする
 # vi /etc/nginx/sites-available/default
  server {
        listen 88 default_server;  <------ 88 Portを変更
        listen [::]:88 default_server; <------ 88 Portを変更
        ...
        index index.html index.htm index.nginx-debian.html index.php index.php; <------ index.php を追加
        ...
        location ~ \.php$ {                                <------ # コメントアウトを解除
                include snippets/fastcgi-php.conf;         <------ # コメントアウトを解除
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;  <------ # コメントアウトを解除
        }                                                  <------ # コメントアウトを解除

3.自動起動を解除し再度登録
  # systemctl disable nginx
  # cd /etc/init.d
  オリジナルを保持& nginx.serviceを見ないために別に作成する (nginx既存のバク1.62時点)
  # cp nginx nginx_rc
  volumio2 は /var/logがRAMDISKになっている。
  nginxは、LogのPath設定を変更しても/var/log/nginxを見てしまうためLogPathを作成する
  # vi nginx_rc
# Provides:       nginx_rc   <------ Providesを変更
NAME=nginx

DESC=nginx
以下に挿入
echo `date` > /tmp/nginx.log                              <------ 追加
mkdir /var/log/nginx >> /tmp/nginx.log 2>> /tmp/nginx.log <------ 追加
nginxの自動起動を登録
# systemctl enable nginx_rc

( 変更した場合,systemctl 再読み込みする
 # systemctl daemon-reload
 で再読み込みする)
4.Androidアプリ MpdroidなどのカバーアートWebを設定
  # cd /var/www/html
  # ln -s /var/lib/mpd/music Music
  アルバムアート
  URL : http://volumio.local:88/Music
 Htmlを簡単に入れ替えたい場合共有する。(セキュルティが弱くなることに注意)
  # chmod 0777 -R -f /var/www/html
  # vi /etc/samba/smb.conf
mpdのplaylistを編集する場合以下最後に追加
  [Volumio html]
        comment = Volumio html Folder
        path = /var/www/html
        read only = no
        guest ok = yes
samba 再起動
  # /etc/init.d/samba restart

2.668版で気づいた点
 1.mpd:020での機能: zip内がmpd D/Bに追加された。(mpdが参照できた)
 2.NASのMountをfatabで行う場合,Network動作前でMountされない。
   Volumio2になったばかりのときはできていた。(CuBoxで確認)
   対応は上記に記載した。
 3.やたらとmpdのD/B Updateが走る。
    /etc/mpd.conf
    auto_update    "yes"→ #auto_update    "yes" コメントアウトし手動Update
 4. Volumio2上で Mixer TypeをNoneにしてもボリュームが変更可能に見える。変更はできないので問題はないが。
     audio_output {
        mixer_type      "none"
     を削除しているため。設定すれば、変更不能になるが、Volumio2はConfigureationで戻される。
 5.USBDACのON/OFFでConfigrationとして30秒くらい待たされる。
   USBDACのConfigureationが走る。「Playback Options」変更と同じ動作のよう。
   確認内容
     /etc/modprobe.d/alsa-base.confでUSBDACは固定されている(自環境で5 snd_usb_audio)
     USBDAC Power On/Offで正常に動作する。
     mpdは独自に動いている。
   楽曲の選択をVolumio2以外で行う予定であれば(mpdwebなどを使用)
     現状として対策:Volumio2への切り替えを手動で行っても良い場合
    volumio2のサービス停止
      $ /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh vstop
    volumio2のサービス開始
      $ /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh vstart
    サービス停止時Plugin
      Squeeze Server / Squeeze Player / miniDLNA
    Activeのままであれば継続して動作している。
    Rebootでvolumio2のサービスは起動する

ここまでで、Volumio2のベースです。この先は本ソフトをダウンロードして「mpdweb_readme/Readme_install.txt」に続きます。

インストールをするために参考となったサイトです。
    Volumio2に再生コマンドを送るさん( https://ppdr.softether.net/volumio-commandline )を参考に
    VolumioDocument : https://volumio.github.io/docs/API/Command_Line_Client.html で仕様確認

 ※Volumio2対策をコーディングするか
   mpdwebをvolumio2と排他使用にするかも知れない
   Volumio2のコマンドが記載されているので , mpdweb Addon:NowMusicPart2を作りたい

2019-12-01:Ver1.34 修正,機能追加

2019-12-01:Ver1.34 修正,機能追加....
1. Playlist画面でPlaylistに追加機能で追加数が設定を超えた場合,エラーとしていたが,メッセージを表示していなかったのを修正
    NowMusic画面からPlaylistに保存するときは,追加数をチェックしていないので設定数以上を作成時はNowMusic画面から行う
2. Playlist Detail画面で重複チェックを追加した
    XML設定:<DISP_Config><Playlist_Duplicate>on|off,"|evey"
3. 新規にPlaylist作成するときは追加数チェックをしないようにした(Copyモード)
4. 共通Function「Playlist Load」で存在しないPlaylistを指定時,NowMusicをクリアし空のPlaylist扱いしていたが,メッセージボックスを表示するようにした。
5. 他ネットからのアクセスでPlaylist追加時,除外設定が生きていなかったのを修正
6. NowMusic画面の再生情報の編集を変更
  年からビットレートまでできるだけ1行に収まるようにGenreを調整
  mpdからの応答でDSDのとき周波数が大きく値からチェンネル分が含まれているのではないとの判断
    変換しないとDSD64->DSD128と思ってしまうためにロジックを追加
    またDSDのEncode時,周波数が0.0kHzとなっていたが環境か不明だが,ビットレートから計算
  ,16Bitとして計算時した。

近況として
volumio-rc2.668 , daphileをテストしてみました。
volumio-rc2リリース当時と、かなり変わっていました。mpdも0.20になり、本クライアントも少し改良したくなりました。

 daphileを使用して見ましたが,SqueezeboxのPluginが使えました。Serverとレンダラー(Player)が内包されており,レンダラーはDSDに対応されている。SqueezeboxでFMを聞いているので自宅オーデイオに追加したくなりました。

2019年11月24日日曜日

Raspberry Pi 3 Model B を購入しました。

 
今までVoyageMPDをALIX(x86)に入れて使用していましたが、さすがに古くなったので新サーバとして予定しています。
並行して、昔のノートPCに 今話題の「Daphile」もテストしていましたがこれも優れもの。
VoyageMpdがバージョンアップしていないので時期環境を模索しています
では、Volumio 2編として、
 
Volumio 2.668版で気づいた点
1.mpd:020での機能: zip内がmpd D/Bに追加された。(mpdが参照できた)
   便利になりました。
2.他システムとの接続が便利
 ・ Media ServierでVolumio2から簡単に再生できる
  ・ upmpdcli : 標準に含まれたのでインストール不要
  ・ DLNA Server: Plugin で minidlnaをインストール可能になったので必要に応じ行う。
     設定もPlugin Installed Pluginで行える。
  他
  Airplay (前からある)
    Plugin : RoonBridge
                 Logitech Media Server / sqeezelite player
    なんでもあり。もう、すごい。

3.NASのMountをfatabで行う場合,Network動作前でMountされない。
 テストのためPlaylistsを共有するために設定。
   Volumio2になったばかりのときはできていた。(CuBoxで確認)
   /etc/rc.local
    sleep 10
    mount -a
   を追加した
4.やたらとmpdのD/B Updateが走る。
    /etc/mpd.conf
    auto_update    "yes"→ #auto_update    "yes"   : コメントアウトして手動Updateに
5. Volumio2上で Mixer TypeをNoneにしてもボリュームが変更可能に見える。
  変更はできないので問題はないが。
     audio_output {
        mixer_type      "none"
    を削除しているため。設定すれば、変更不能になるが、Volumio2はConfigureationで戻される。
6.USBDACのON/OFFでConfigrationとして30秒くらい待たされる。
   USBDACのConfigureationが走る。「Playback Options」変更と同じ動作のよう。
   確認内容
     /etc/modprobe.d/alsa-base.confでUSBDACは固定されている(自環境で5 snd_usb_audio)
     USBDAC Power On/Offで正常に動作する。
     mpdは独自に動いている。

    楽曲の選択をVolumio2以外で行う予定であれば(mpdwebなどを使用)
     現状として対策:Volumio2への切り替えを手動で行っても良い場合
    volumio2のサービス停止
      $ /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh vstop
    volumio2のサービス開始
      $ /volumio/app/plugins/system_controller/volumio_command_line_client/volumio.sh vstart
    サービス停止時Plugin
      Squeeze Server / Squeeze Player / miniDLNA
    Activeのままであれば継続して動作している。
    Rebootでvolumio2のサービスは起動する

    Volumio2に再生コマンドを送るさん( https://ppdr.softether.net/volumio-commandline )を参考に
    VolumioDocument : https://volumio.github.io/docs/API/Command_Line_Client.html で仕様確認

※Volumio2対策をコーディングするか検討!!
   mpdwebをvolumio2と排他使用にするかも知れない
   Volumio2のコマンドが記載されているので , mpdweb Addon:NowMusicPart2を作りたい

今後予定)
 Volumio2インストール編をアップ予定。(mpdwebからのスタンス版) 
  mpdweb:従来の機能アップ版ができているのでテスト後アップ予定。
 その後、Volumio2.668対応版にするか検討

2019年11月4日月曜日

2019-11-01:Ver1.33 修正,機能追加....

 1. mpdwebから連動時,mpdartlist:ディレクトリが存在しないないときphpがエラーとなっていたのを修正
 2. 再生楽曲がないときCommonPanel Playlistを表示しない仕様を変更
     Functionで再生PlaylistをClear後,楽曲を追加してもCommonPanel Playlistに表示しないのを修正後,今回仕様にした。
 3. NowMusic Playlistの編集で再生中楽曲からみの移動で再生Positonが誤表示してたのを修正
    Functionで再生PlaylistをClear後,画面の反映がWaitTimeとなっていたが即表示かCallBack後表示にしたが、同時に修正した。
 4. NowMusicからFunction「Link Contens」で画面切り替えの際,AlbumArt表示時の不具合を修正
 5. NowMusicでFunction「Playlistload」でエラーとなる不具合を修正
 6. Playlist/Search機能をスピードアップ対応
    FunctionでFilePathを使用し各機能を作成しているが,複数回発生するので画面上のFilePathをjsでGetすることでHTMLサイズを縮小した。
    Function関数はAlbum内容表示でも使用しているが、こちらは原則Album単位なのでHTMLサイズは抑えることができる。(機能的にはQuery単位だが)
 7. 再生中MusicのMarkStyleを設定できるようにした。
    CommonPLaylistも同様にStyleを設定できるようにした。
    XML設定:<DISP_Config><MarkNowCurrent> : NowMusic
                      <DISP_Config><MarkCommonList> : CommonPLaylist
 8. ChromeでAlbum内容表示時"年"が4桁表示していなかったのを修正
 9. File表示DetailにTag年を追加した。(他に合わせた)
10. File表示DirectoryのDetail時,Modify Date/Time表示にセパレータ|を表示した
11. AGENT空白で機種を判別させる定義をルールに追加
    XML設定:<Html_config><Viewport_{AGENT}> {AGENT}の_はSpaceとする(AGENTの" ","_"の区別はしない)
    Google Pixel3aのAGENTが"Pixel 3a"となっているので対応した。
    XML設定にもPixel3aを追加した。
12. NowMusic機能でStrimingの行Function「Link To Conteins」はグレイアウトした。(従来もLinLしていない)

2019年10月8日火曜日

2019-10-01:Ver1.32 修正,機能追加

2019-10-01:Ver1.32 修正,機能追加....
1. NowMusic画面以外のStatusAreaのデザインをNowMusic画面に合わせた(Chomeで見た目が異なっていた)。
  Status行のスクロールバーをON/OFFできるようにした:XML設定
  <DISP_Config><Status_Scrollbar>on|off : 未設定時デフォルト:on
  perfect-scrollbarを組み込めるようにしたための追加設定
2. JS入力補助[mpdilist.php]作成に伴い,修正を行った。
  ・List機能のListにidを付加した。JS側でidからIndexを作成するため必要になった。
  ・File機能でFile表示時先頭idの付け方に誤りがあった。
  ・XML設定<HTMLBuiltin>を使用して組み込めるようにしたが,global項目を使用した。設定,表示条件をglobalに追加した。
  ・最下行をIndexListの表示ボタンにしたので同行をStatus行にした。(CommpnPlayPanelの操作性に影響がでたため)
  <DISP_Config><Status>off -> onに変更,<!--<Current_Status>on コメントにした。
3. 「Common Function」「Playlist Save as...」が他端末別Playlistを再生しても変わらなかったのを対応した。
  再生中はWatchしているので,Playlistが変更されたのを察知したとき入れ換えるようにした。
4.「mpdartlist.php」も同様にJS入力補助[mpdilist.php]機能を組み込んだ
   「mpdartlist.xml」に設定の追加を行った
    <HTMLBuiltin_mpdweb.php><TermHTML>に機能追加
    <DISP_Config>
        <Sort_Capital>on</Sort_Capital><!-- 表示順に大/小文字の区別しない on/off
        <File_DirLayer>2</File_DirLayer><!-- 抑制Directory階層 /share/Musicで2階層 初期値"":制限なし(外部連携で使用)
             を追加して操作性を同じにした。
    <Additional_Func>CommonFunction設定 p={機能} m={Sub機能} o={使用条件} で条件を追加した。
    <{FuncTag} o="{使用条件}":一致した場合,設定を使用可能にする
     使用条件 : invalid='1' / "invalid='':ディレクトリ指定階層以下は使用可否 ,  file:Layer>=指定階層以下 , directory:Layer>指定階層以下の条件を付けることができる
5. XML設定<HTMLBuiltin>に<EventListener><onLoad>を追加し。AutoLoadを一部修正した。
  NuwMusicのFremeを画面間の継続でEventListenerを使用していたが,onLoadに移動した。
   「mpdartlist.xml」も同じ機能とした。
6. NowMusic画面 Imageクリックの外部I/F HTML生成の不具合を修正。</script>が正常に生成されていなかった。
 7. 閉じるときのEventを設定可能にした
     <HTMLBuiltin_Event><unloaded>を追加した。
 8. Search機能に設定追加
  ・DispSearch Combo選択時で設定なし項目を単一選択で許可。","で複数設定。未設定時動作は変わらない
    XML設定:<DISP_Config><Search_ComboNull>{Filed}</Search_ComboNull>
  ・DispSearch 日付Combo選択で単一で許可する桁数(以上を設定),""は許可しない。未設定時日付5桁以上は単独でSearchできるようになる。
      XML設定:<DISP_Config><Search_ComboDateForm>{5}</Search_ComboDateForm>
     ※Searchで大多数抽出はメモリが耐えないがイレギュラを検索する考慮
9. Rolloverによる名称表示を補完。長いタイトル,ファイル名は確認方法がなかったためロールオーバーで対応
     ・Album内容表示:タイトル行トラックをクリックでロールオーバ表示
     ・File表示     :ファイル表示のNoをクリックでロールオーバ表示
       ディレクトリ表示は,Function「...」で「Rollover Path」ボタンでロールオーバ表示
      ・Search表示   :Noをクリックでロールオーバ表示(Postで実現)
      ・Playlist表示 :Noをクリックでロールオーバ表示(Postで実現)
        ディレクトリは,目的階層のヘッダでロールオーバ表示。最終オペレーションを継続するので、一体的に見えるようデザインを変更
       ※ロールオーバはタブレットの操作を考慮しクリックで行う。
 10. Playlist機能,Search機能,Album内容,File機能から機能を切り替えるときAlbum内容,File機能で対象ミュージックデータを色を変えてマークするようにした。
     ・NowMusic画面からのAlbum内容,File機能に連携したとき再生中にマークするかをの設定を設けた。
     XML設定:<DISP_Config><MarkNowMusic>on|off     デフォルトはoff
          <MarkColor>{style}|""    DispFind/DispFile連携選択のstyle, "":機能なし
          <MarkColorNow>{style}|"" DispFind/DispFile NowMusicからLink時現在再生中のstyle, "":機能なし
      曲が変わってもマークは変わらないので設定できるようにした。(どちらが良いかの判断)
      ・NowMusic画面PlaylistからAlbum内容にLinkするとき,FilePathを持っていないので,タイトル,Disk/Track一致で同じ曲とした。
      NowMusic画面にHTMLを抑えるためFilePathを抱えないようにするため。
11. 指定位置へのポイントする mpdilist.php を作成した
            設定で組み込むこと。HTMLからjsでインデックスを作成するため,デザインを考えなければ汎用的

2019年8月15日木曜日

mpdweb 1.31 レベルアップ 機能追加/不具合修正

デモ/テストサーバがダウンしてしまい,回復に時間が掛かってしまいました。
機能追加/不具合修正以外にみ、次期に向けて構造を改修しています。
現在のmpdライブラリ以外にも共通部を別モジュールにし,XML設定で、JQUERY,JSP を追加できるようにしました。デザインの追加,入力ツールを作った場合は,設定でく見込める構想です。
今回 機能追加の、一部スクロールバーデザインはこの機能を活用しています。
またしばらく、使用していて不便、不具合は極力改善したつもりです。
1.30版で追加したArtListも今回のバージョンアップで当初想定の機能を作成しました。
楽曲アルバムに画像,pdfなどを入れているときは活用できます。曲を聴いているときに活用できます。

2019-08-11:Ver1.31 レベルアップ 機能追加/不具合修正
 1. post処理で,HTML-IDを判定する部分で指標を書き忘れていた。
     (なんで動く?思い当たる原因不明不具合もあった)
 2. XML 属性を取得するライブラリを追加した。(mpdartlist.phpで使用。)
 3. List機能のHTML StyleをClassに移動。List行数が多くなったときに速度の点で有利。
 4. Album名に「"」が含まれるとAlbum Art表示からAlbum内容表示に遷移時内部エラーが発生し
    ていたのを修正
 5. URLがディレクトリ{http://{host}/mpdweb/}までの指定時,SearchBox横Functionで「Session
     Data Clear」「Cash Clear」でエラーとなっていたのを修正。
 6. ChromeでStatus表示エリアがResize可能になっていたのを修正
 7. Session有効期限外でもmpdweb.phpシリーズからのLinkは初期化しない設定を新設
   XML設定ファイル:<php_config><related_link>on|off
 8. XML Attribute操作関数を共通関数としてmpdweb.lib.phpに移動
 9. 外部Link機能がCloseさせずに終了したときに次回起動時再起動 (mpdclock.php)
    XML設定ファイル:<ExpAutoLoad>on|off 有効無効設定
10. 一部のブラウザでURLが変わらないと再表示しないための修正をした。
     (URLに&cnt=99を付加:全ての機能に対応していない)
    URLが同じで画像のみ付加,他に変化なしの場合再表示しない携帯用ブラウザがあったため。
11. HTMLBuiltin機能を追加。mpdartlist.phpの機能を一部移植
    XML設定ファイル:<HTMLBuiltin>を使用しjs/php,外部ソースincludeなどを記述できる。
    XML設定ファイル:<php_config><ua_phone>/<VendorPrefix>を追加し追加機能で使用できる
   設定上で,viewer.jsを使用しSlideShowができる記述をしている。
   ※設定ファイルは肥大化しているが,追加機能は設定で行い、外部ソース,JQuery,公開された
       js,なども組み込める。
    設定てきるユーザに限られるが、一部の不要機能は,切り離せる。(ベースの機能で音楽は視聴 
    できる)
12. File機能 MusicHeaderからAlbum機能ジャンプのときディレクトリに「'」が含まれていると
    Album機能から戻れなかった
    XML設定ファイル:<Additional_Func><File_AlbumHd>の設定%Enc:Album%→%B64:Album%
    に修正して対応
13. File機能からのmpd Updateの機能でUpdateParameterを
    XML設定ファイル:<Additional_Func><File_AlbumHd>の設定<Mpd_Update>を使用していな
    かったのを修正。(Updateは正常に行われている)
14. ArtListボタンの設定をhome=%Enc:→home=%B64:/trns=%Enc:→trns=%B64:とした。
    HistoryBackの機能を強化したが,$_GETで取得していた部分をロジックで伸長するようにした。
URLエンコードとパラメータ区切り、&文字の区別がつかない場合があった。
    前バージョンではB64よりURLを短くしたかったのでEncを使用していた。
    XML設定ファイル:<Additional_Func>ArtList
15. [Back]ボタンでの戻り機能にURL最大長を設定できるようにした。
    XML設定ファイルのSectionも変更した。デフォルトがあるが設定を直すこと
    <History><HistoryBack>
                   <URL_Length>  :BackButtonでの戻り履歴回数以内でも最大長を超えた場合短縮,
                                               または先頭に戻す。
                    <URL_ForceTop>:最大長を超えた場合先頭に戻す
    URLの最大長はブラウザにより異なることが個別設定はできない。
    mpdartlist.phpとのコンビネーションなど長いURLになった場合はあり得るので完璧ではないが,ほとんど戻すことができるようになった。
16. モジュールを共通化のため分割した。
    Module.txt参照。(Laibrary/js/css)
    一本の方が素人的で好きだが今後の展開も考慮した。
    SearchBox横「Function」の画面Infomationに各バージョンを表示した。今回Ver1.0とした。
17. XML設定で,javascript:perfect-scrollbarを組み込めるようにした。
    XML設定ファイル:<HTMLBuiltin>を使用。
18. HistoryBoxに登録済を使用時,先頭になるようにした。
    ※mpdartlist.php/mpdclock.phpは今回改装となり設定も含め入れ替えとなります。

2019年2月18日月曜日

mpdweb 1.30 追加機能/修正/設定変更....

2019-02-15:Ver1.30 修正....
今回は、mpdartlist.phpを作成中に関数をレベルアップしたのでwpdweb.phpに反映と連携の設定を強化した。

 1. Album内容表示のトラックの表示方法変更。Diskが設定時Trackが4桁以上のときは2行に分け表示する。
 2. Album内容表示のAlbumArt表示時、画像をクリックでArtListに遷移を止め、Closeする。ArtListに遷移機能はボタンにした。
     設定変更:<Additional_Func><FindArt><FindArt{n}>
     携帯端末で触れると画面が変わり鬱陶しいための設定変更
 3. File内容表示のAlbumArt表示時、画像をクリックでArtListに遷移を止め、Closeする。ArtListに遷移機能はボタンにした。
     設定変更:<Additional_Func><FileArt><FileArt{n}>
     携帯端末で触れると画面が変わり鬱陶しいための設定変更
 4. File内容表示のHeader部「Back」ボタンを表示時,mpdweb以外からの要求で戻りURLを指定をできるようにした。
     &url=back:{Address}で指定 「back」は任意 AddressはB64/Encなどでmpdweb体系でのEncodeをする。
     関連の修正を行った。:外部からのPathでMusicDataなしの扱い。ボタンを表示ケースの調整
 5. Album内容表示で複数のDate(年)/Genreがあるときの表示方法を変更
     Header:Date(年)/Genre/Codecを数個表示
     Detail:Date(年)/Genreを表示(常に表示に加えた)
     RollOver:Date(年)/Genreを数個表示
 6. mpdartlist.phpを使用にあたりmpdconfig.xmlの設定を一部拡張
     XML設定ファイル:<Additional_Func> $SelfURL$ を $B64:SelfURL$(自身URLをBase64Encode) も設定可能にした。
 7. mpdartlist.phpを使用にあたりmpdconfig.xmlの設定を一部拡張
     XML設定ファイル:<Additional_Func> $SelfURL$ を $B64:SelfURL$(自身URLをBase64Encode) も設定可能にした。
 8. NowMusic画面でArtImageクリック機能を追加した
     XML設定ファイル:<Extend_Link><image>を設定可能にした。書式は他同様に加えJspを記述できる
     未設定時は旧来の動作。配信時デフォルト設定は、画像クリックでUnloadする。
 9. AlbumArt設定方法を追加。mpdartlist.phpで改造した関数を使用した。
     関数自体の機能は増えているが、関数を使用するとき有効な機能を実装した。
     設定で、アスペクトをオリジナルで表示する設定を追加。注意は表示領域内に納めるのでエリアに余白が生じる。(設定XMLファイルではコメントにしている)
     XML設定ファイル:<DispImage><ImageRatio_{Func}>{RatieMin},{RatieMax},{Size},{correct(補正率)|noclip|aspect}
     correct(補正率)|aspectを設定すると画像ファイルから取得するので明細行など件数が多くなる部分では使用しないことが望ましい。
10. mpd動作 localhostの判定で定数定義の誤りを修正。

※mpdartlist.php/mpdclock.phpは参考版なので修正履歴はなし
現在の問題点
・mpdclock.php:Windowsで使用時、標準のフォントサイズを変えているとき、Clockのフレームにスクロールバーがでる。設定で修正することはできる。