TCMODS Edition of ACX/Orion WebUI

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi,

I've made some mods to the wonderful ACX/Orion WebUI used in the Volumio14 distro that may be of interest to DIY types. Search the source files for comment lines with the string "TC (Tim Curtis)" to examine the new and modified code. Release notes are below.

More information including player screen shots, diy instructions and downloads are located at the web site listed below. The code is covered under the GPL so feel free to use it in any way :)

Enjoy these mods!
tcmods.org

Regards,
TC


=============
RELEASE NOTES
=============

1.0 Release 2014-08-23

Bug Fixes

- FIX: Sample rate converter setting never changes from "Fastest Sinc Interpolator"
- FIX: Timer knob not updating due to bug in jquery.countdown.js 1.6.2 (v1.6.3 fixes it)
- FIX: Syntax error in line 38 "minwords..." in js/i18n/_messages.en.js

WebUI and Code Overall

- NEW: Theme changer with six default themes
- NEW: Audio Information popup shows input, dsp, output, device and system attributes
- NEW: Power Off and Audio Info buttons on left side header
- NEW: Audio device description file for Audio Information popup
- NEW: Power off and Reboot reconnect pages
- UPD: Change WebUI base color scheme to Flat-UI Midnight Blue
- UPD: Change modal base color scheme to Flat-UI Midnight Blue
- UPD: Set notification message fade to 1 sec from default of 8 secs for panel messages
- UPD: Change trashcan icon to list icon for Playlist "consume mode”
- UPD: Remove "Main" pick from Menu (redundant with Playback footer button)
- UPD: Rename "Playback" menu pick to "MPD"
- UPD: Replace "Credits" menu pick with streamlined "About" modal
- UPD: Streamline text and control layout on configuration pages
- UPD: Reduce php worker sleep time for more responsive cmd processing
- UPD: Workerwait(1) not used in certain cases for more responsive cmd processing

Playback Panel

- NEW: Album art displayed when an image file exists in the album folder, refer to (1) below
- NEW: Image file search list includes folder.jpg, folder.png, cover.jpg and cover.png
- NEW: Custom cover art displayed when Webradio station is playing
- NEW: Default cover art displayed when playlist is empty or album art not found
- NEW: Cover art click launches Amazon search by artist+album or webradio song title
- NEW: Display Webradio station name under song ttle
- NEW: Display Webradio station url if song title not sent by station
- UPD: Display bitrate only for Webradio (remove bit depth)

(1) Album art display requires the following configuration:
a) /mnt/NAS/SourceName mounts to the parent dir of an Artist/Album dir structure
ex: /mnt/NAS/Music -> //IP/SHARE where SHARE/Artist/Album/imagefile.ext exists
b) /mnt/NAS/SourceName is symlinked to /var/www/covers
c) Getting album art from multiple SourceNames is not supported at this time

Playlist Panel

- NEW: Display Webradio station url if song title not sent by station
- NEW: Include Webradio station name under song title in playlist entry

Library Panel

- UPD: Change column headers to all caps for visibility
- UPD: Allow text to wrap

Browse Panel, Webradio station List

- NEW: Sort station list alphabetically
- NEW: Hide .pls in station name display
- NEW: Replace default stations with modded versions from contrib by <jansandred>
https://www.dropbox.com/sh/uvoj146f907f1f4/dssh0hfZRs
- NEW: Edit station file names for readability in station list

System Configuration page

- NEW: Theme selection buttons
- NEW: G2 Labs BerryNOS added to I2S DAC btn list
- UPD: Sort DAC btn list alphabetically

MPD Configuration page

- NEW: Add resampling rates 16/48, 16/88.2, 24/48 and 24/88.2 rates to selection list
- UPD: Reenable Zeroconf controls to allow service name to be changed

Hardware

- NEW: Add support for G2 Labs BerryNOS I2S DAC using "sndrpihifiberry"" I2S driver
- UPD: Add (optionally) 1GHz overclock parms to /boot/config.txt to enable MPD
Medium Sinc Interpolator SRC to function glitch free at conversion rates up
to 24/96 in certain scenarios. This applies to Raspberry Pi model B.

=================
END RELEASE NOTES
=================
 
Good to see your enthusiasm and passion for this project !

The audio information pop-up is an interesting addition and I like that you are thinking a time frame that includes ongoing development..:)
The bit depth misreporting would be good to have fixed. :)

If I may suggest a simple addition as a humble user... A timed power down option. Would be useful for those late night nod-offs listening to webradio.
 
Good to see your enthusiasm and passion for this project !

The audio information pop-up is an interesting addition and I like that you are thinking a time frame that includes ongoing development..:)
The bit depth misreporting would be good to have fixed. :)

If I may suggest a simple addition as a humble user... A timed power down option. Would be useful for those late night nod-offs listening to webradio.

Hi,

I'll investigate your feature suggestion.

There happens to be a "worker" module which is part of the server side of the Player that wakes up every 5 seconds to check for requests in its work queue to act on. It already handles user directed reboot and power down as well as the new theme change requests :)

Since it's command list can be extended, your feature may be possible, but as you know nothing is as simple as it seems when it comes to modding software!

Regards,
TC
 
Hi,

Beginning to work on some of the "Up Next" items for release 1.1

I've just finished fixing the Library parsing bug :) This is where if a song title contains a colon character ":" everything after the colon gets truncated. It affects song title display in the Library, Playback and Playlist panels! BTW, song titles with a colon are commonly found in the Classical genre. In the example song titles below, the parsing bug would cause only "Szymanowski" to be displayed.

Szymanowski: Mazurka In G Flat, Op. 50/1
Szymanowski: Mazurka In E Minor, Op. 50/2

The screen shots below show the Library panel before and after the bug fix.

Regards,
TC
 

Attachments

  • lib-parse-before.png
    lib-parse-before.png
    244.5 KB · Views: 512
  • lib-parse-after.png
    lib-parse-after.png
    216.3 KB · Views: 498
Hi,

WRT odd bit depths being reported by MPD, I posted a few questions along with the table below to the MPD help forum.

The table data suggests that MPD is defaulting MP3 stream input to 24 bit but I'm not sure what is going on with the 16 bit WAV file (a CD track rip) being handled as 32 bit by MPD.

Regards,
TC
 

Attachments

  • bit_depth_analysis.png
    bit_depth_analysis.png
    29.5 KB · Views: 458
Hi,

Max over at the MPD forums provided a nice explaination of whats going on with MPD bit depths. This is what MPD is doing:

(1) MP3: The property of bit depth does not exist in compressed file formats until they are decoded back to PCM. MPD uses libmad plugin to decode MP3 format and libmad outputs 28/44.1 PCM of which 24 bits are used by MPD.

(2) WAV: The libsndfile plugin is used by MPD to decode WAV format files and this decoder always outputs a bit depth of 32 bits.

(3) HW_PARAMS: This is the bit depth reported by ALSA and is what is actually sent to the audio device. If its lower than the MPD decoded bit depth, it reflects MPD falling back to a PCM bit depth that the audio hardware indicates it can support. This was the case in the WAV example where the decdoded bit depth was 32 bits but the DAC (a BerryNOS) can handle only up to 24 bit.

Bottom line is that MPD bit depth reporting is OK, but its not necessarily the source bit depth but rather the bit depth output by the particular decoder MPD is using.

I think all thats needed is a bit of editing in the Input Media section of the Audio Info popup to indicate what the bit depth actually reflects. Something like "(MPD decoder bit depth)".

Case closed :)

Regards,
TC
 
Hi,

Continuing with work on "Up Next" items for release 1.1 :)

I've just finished completing the saved playlist feature. The feature now includes the following fixes and new capabilities:

- FIX: Saved playlist name not showing up in Browse panel
- NEW: On click, list items in saved playlist
- NEW: Action menu for saved playlist includes "Delete this playlist"
- NEW: Action menu for saved playlist items includes Add, Add/play, Add/replace/play

The attached screen shots show 1 before and 2 after Browse panels.

Next I'll be working on general layout, text wrap and button size issues, the timed power off feature, then probably a release.

Regards,
TC
 

Attachments

  • before-browse-panel-1.png
    before-browse-panel-1.png
    47.3 KB · Views: 438
  • after-browse-panel-1.png
    after-browse-panel-1.png
    53.2 KB · Views: 432
  • after-browse-panel-2.png
    after-browse-panel-2.png
    96.1 KB · Views: 72
Hi,

Just finished fixing the layout and text wrapping issues in the Browse and Playlist panels :)

In the attached "before" screen shot (blue), the title text wraps but the row height does not expand. This causes the line of text below the title to crash into the next row.

The "after" screen shots (amethyst) show the Playlist and Browse panels with the row height nicely expanding when the title text wraps.

Regards,
tcmods.org
TC
 

Attachments

  • br-wrap-after.png
    br-wrap-after.png
    165.8 KB · Views: 128
  • pl-wrap-after.png
    pl-wrap-after.png
    109.1 KB · Views: 134
  • pl-wrap-before.png
    pl-wrap-before.png
    116.3 KB · Views: 136
Hi,

Here is an update on mods to the Library panel to improve the layout, text readability and action buttons.

The attached images show before (blue) and after (alizarin) screen shots of the panel. The new panel has a 20/30/50% horizontal layout providing more room for album names, double high song rows, larger text, larger Addsong button and three standard action buttons (Add, AddPlay, AddReplacePlay) on the bottom for handling song lists.

The 1.1 release is looking like this so far :)

======================
1.1 Release 2014-09-DD
======================

Bug Fixes

- FIX: Library parse bug when song title contains colon ":" (affects Library, Playback and Playlist panels)
- FIX: Saved playlist name not showing up in Browse panel
- FIX: Browse and Playlist item row height not expanding when title text wraps
- FIX: Playback controls obscured at min width by left side PwrOff and Info btns
- FIX: Incorrect string function used in scripts_playback.js, $('.context-menu a').click(function()
- FIX: Song position not passed in library, Play All action
- FIX: Saved playlist name not preloading in Playlist panel entry box

New Features

- NEW: Saved playlist On Click action lists items in the playlist
- NEW: Saved playlist root Action Menu includes "Delete this playlist"
- NEW: Saved playlist item Action Menu includes only Add, Add/play, Add/replace/play (same for Browse item)
- NEW: Favicons for desktop and mobile, formatted for adding to home screens
- NEW: Library panel Add/replace/playall btn
- NEW: Library panel double high songlist rows and large Addsong btn for ease of use on touch
- NEW: Library panel notify messages for Playall, Addall and Add/replace/playall buttons
- NEW: Library panel custom hover color for Addsong btn for improved visability

Updates to Existing Features

- UPD: Text on Audio Info popup indicates "Decoded to:" bit depth
- UPD: Library panel improved layout and text readability
- UPD: Added attrib in About modal for "jotak", designer/coder of Library panel

Next I'm planning to look into a "Clock Radio" feature. This is where a song, radio station or playlist can be set for playback on a start/stop schedule.

Regards,
tcmods.org
TC
 

Attachments

  • lib-layout-before.png
    lib-layout-before.png
    260.6 KB · Views: 124
  • lib-layout-after.png
    lib-layout-after.png
    266.5 KB · Views: 121
Hi,

I started working on the Clock Radio feature but became distracted thinking about how to handle Compilation Albums in the Library. Currently, each compilation album shows up as a series of individual albums, one for each artist in the compiltion. This is due to how the Library is organized.

First step was to figure out how 'jotak's elegant and amazing core Library filtering and rendering code works and then determine whether its possible to integrate Compilation Albums so that each one shows up as a single, rolled up album.

It appears to be doable, but I'm not quite finished yet. When complete I'll post release 1.1 :)

The attached images show before (river) and after (carrot) screen shots of the panel.

Regards,
tcmods.org
TC
 

Attachments

  • lib-compilations-before.png
    lib-compilations-before.png
    172.8 KB · Views: 38
  • lib-compilations-after.png
    lib-compilations-after.png
    199.3 KB · Views: 34
Hi,

Release 1.1 is available for download This release can be applied over top of release 1.0 without having to start from a new sd card image. Just run steps 2 and 4 in the readme on an existing 1.0 image. Release notes are below.

Enjoy these mods!

Regards,
tcmods.org
TC

======================
1.1 Release 2014-09-17
======================

Bug Fixes

- FIX: Library parse bug when song title contains colon ":" (affects Library, Playback and Playlist panels)
- FIX: Saved playlist name not showing up in Browse panel
- FIX: Browse and Playlist item row height not expanding when title text wraps
- FIX: Playback controls obscured at min width by left side PwrOff and Info btns
- FIX: Incorrect string function used in scripts_playback.js, $('.context-menu a').click(function()
- FIX: Song position not passed in Library/Playall action
- FIX: Saved playlist name not preloading in Playlist panel entry box
- FIX: Unnecessary coverart lookups when Webradio station does not transmit its name at first (tcmods 1.0)
- FIX: Certain un-escaped characters in coverart url causing 404 not found error (tcmods 1.0)

New Features

- NEW: Saved playlist Click lists the items in the playlist
- NEW: Saved playlist root Action Menu includes "Delete this playlist"
- NEW: Saved playlist item Action Menu includes only Add, Add/play, Add/replace/play (same for Browse item)
- NEW: Favicons for desktop and mobile, formatted for adding to home screens
- NEW: Library panel compilation albums rolled up by album name
- NEW: Library panel Add/replace/play all btn
- NEW: Library panel double high songlist rows and large Addsong btn for ease of use on touch
- NEW: Library panel notify messages for Playall, Addall and Add/replace/playall buttons
- NEW: Library panel custom hover color for Addsong btn for improved visability
- NEW: Library panel animated icon on Library button for long running actions

Updates

- UPD: Text on Audio Info popup indicates "Decoded to:" bit depth
- UPD: Library panel improved layout and text readability
- UPD: Added attributioon in About modal for "jotak", designer/coder of Library panel
- UPD: Webradio station files, updated url for WDET 101.9 Detroit

======================
1.0 Release 2014-08-23
======================

Bug Fixes

- FIX: Sample rate converter setting never changes from "Fastest Sinc Interpolator"
- FIX: Timer knob not updating due to bug in jquery.countdown.js 1.6.2 (v1.6.3 fixes it)
- FIX: Syntax error in line 38 "minwords..." in js/i18n/_messages.en.js

WebUI and Code Overall

- NEW: Theme changer with six default themes
- NEW: Audio Information popup shows input, dsp, output, device and system attributes
- NEW: Power Off and Audio Info buttons on left side header
- NEW: Audio device description file for Audio Information popup
- NEW: Power off and Reboot reconnect pages
- UPD: Change WebUI base color scheme to Flat-UI Midnight Blue
- UPD: Change modal base color scheme to Flat-UI Midnight Blue
- UPD: Set notification message fade to 1 sec from default of 8 secs for panel messages
- UPD: Change trashcan icon to list icon for Playlist "consume mode”
- UPD: Remove "Main" pick from Menu (redundant with Playback footer button)
- UPD: Rename "Playback" menu pick to "MPD"
- UPD: Replace "Credits" menu pick with streamlined "About" modal
- UPD: Streamline text and control layout on configuration pages
- UPD: Reduce php worker sleep time for more responsive cmd processing
- UPD: Workerwait(1) not used in certain cases for more responsive cmd processing

Playback Panel

- NEW: Album art displayed when an image file exists in the album folder, refer to (1) below
- NEW: Image file search list includes folder.jpg, folder.png, cover.jpg and cover.png
- NEW: Custom cover art displayed when Webradio station is playing
- NEW: Default cover art displayed when playlist is empty or album art not found
- NEW: Cover art click launches Amazon search by artist+album or webradio song title
- NEW: Display Webradio station name under song ttle
- NEW: Display Webradio station url if song title not sent by station
- UPD: Display bitrate only for Webradio (remove bit depth)

(1) Album art display requires the following configuration:
a) /mnt/NAS/SourceName mounts to the parent dir of an Artist/Album dir structure
ex: /mnt/NAS/Music -> //IP/SHARE where SHARE/Artist/Album/imagefile.ext exists
b) /mnt/NAS/SourceName is symlinked to /var/www/covers
c) Getting album art from multiple SourceNames is not supported at this time

Playlist Panel

- NEW: Display Webradio station url if song title not sent by station
- NEW: Include Webradio station name under song title in playlist entry

Library Panel

- UPD: Change column headers to all caps for visibility
- UPD: Allow text to wrap

Browse Panel, Webradio station List

- NEW: Sort station list alphabetically
- NEW: Hide .pls in station name display
- NEW: Replace default stations with modded versions from contrib by <jansandred>
https://www.dropbox.com/sh/uvoj146f907f1f4/dssh0hfZRs
- NEW: Edit station file names for readability in station list

System Configuration page

- NEW: Theme selection buttons
- NEW: G2 Labs BerryNOS added to I2S DAC btn list
- UPD: Sort DAC btn list alphabetically

MPD Configuration page

- NEW: Add resampling rates 16/48, 16/88.2, 24/48 and 24/88.2 rates to selection list
- UPD: Reenable Zeroconf controls to allow service name to be changed

Hardware

- NEW: Add support for G2 Labs BerryNOS I2S DAC using "sndrpihifiberry"" I2S driver
- UPD: Add (optionally) 1GHz overclock parms to /boot/config.txt to enable MPD
Medium Sinc Interpolator SRC to function glitch free at conversion rates up
to 24/96 in certain scenarios. This applies to Raspberry Pi model B.

========================
END TCMODS RELEASE NOTES
========================
 
Cover art

Hi,

very nice job and thanks for it. I have just downloaded SD image of version 1.1 and it works fine.
Where I'm not successful is to display cover art.
I have cover art in music folder for each album named "cover.jpg".

I have installed image downloaded from your web page and I'm receiving message "Cover art not found". This is what happens in web GUI.

However if I use MPad application I can see cover arts and it works fine.

I have tried SSH and:

ln -s /var/lib/mpd/music /var/www/Music

and

ln -s /var/lib/mpd/music /var/www/covers

but I still can't see album art in Tcmods web interface (I can see it in MPad)

I'm a Linux newby :) Can you please help me?

Thanks
 
Hi,

very nice job and thanks for it. I have just downloaded SD image of version 1.1 and it works fine.
Where I'm not successful is to display cover art.
I have cover art in music folder for each album named "cover.jpg".

I have installed image downloaded from your web page and I'm receiving message "Cover art not found". This is what happens in web GUI.

However if I use MPad application I can see cover arts and it works fine.

I have tried SSH and:

ln -s /var/lib/mpd/music /var/www/Music

and

ln -s /var/lib/mpd/music /var/www/covers

but I still can't see album art in Tcmods web interface (I can see it in MPad)

I'm a Linux newby :) Can you please help me?

Thanks

Hi,

Lets check a few things out to see whats going on :)

(1) Remove the two symlinks described in your post above. They will not work with the cover art lookup code.
- rm /var/www/Music
- rm /var/www/covers

(2) Let me know how you have defined the root of your music collection in the WebUI. Is it setup as a NAS source?

Regards,
tcmods.org
TC
 
Hi,

thanks for your support. So I removed the folders as you proposed:

- rm /var/www/Music
- rm /var/www/covers

and now I can't see album arts in MPad (before I saw it there) as well I can't see in Web GUI of TCMODS.

When I use again:

ln -s /var/lib/mpd/music /var/www/Music

I can see album art in MPad but not in Web GUI of TCMODS

I have also tried to use "currentsong" command while playing music and logged into terminal with port 6600. I'm receiving answer shown below.

So it seems that I need to use ln -s /var/lib/mpd/music /var/www/Music to be able to see art in MPad.

Any idea or recommendation to be able to see album art in Web GUI?

Thanks




file: NAS/DNS-320/FLAC/Pop Rock/Linnea Olsson/Linnea Olsson - Ah!/04. Guilt.flac
Last-Modified: 2014-01-28T20:25:59Z
Time: 181
Title: Guilt
Artist: Linnea Olsson
Album: Ah!
Date: 2011
Track: 04
Disc: 1
Genre: Pop Rock
AlbumArtist: Linnea Olsson
Pos: 0
Id: 14
OK
 
Hi,

Please confirm the following for me :)

(1) DNS-320 is the Source name (what was entered in Library, Add new network mount)
(2) cover.jpg is located in directory FLAC/Pop Rock/Linnea Olsson/Linnea Olsson - Ah!
(3) Hostname of your pi is default "tcmods"

If yes to above 3 items then try the following symlink cmd via ssh.

ln -s /mnt/NAS/DNS-320 /var/www/covers

A browser test would be:
"http://tcmods/covers/FLAC/Pop Rock/Linnea Olsson/Linnea Olsson - Ah!/cover.jpg"

Regards,
tcmods.org
TC
 
1 - yes
2 - yes
3 - yes

I did this via SSH: ln -s /mnt/NAS/DNS-320 /var/www/covers

I have tried this "http://tcmods/covers/FLAC/Pop Rock/Linnea Olsson/Linnea Olsson - Ah!/cover.jpg" and I can see the art in web browser

Unfortunately I still can´t see album art in Web GUI of TCMODS. As before I do see it in MPad app.

Any idea what to do?
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.