I will start with three background comments. Sorry if this is TLDR. THE METADATA
I have been rocking a Transporter since they first came out in 2006 and in 2006/7 I did a rip of my CDs with CDEX. CDEX doesnt tag files with metadata, just creates WAV files that contain the track number/track name. This was sufficient at the time as the Transporter screen is text based but I did spend some time with corrections/making consistent the file names with some custom programs I wrote. PC based play back has moved forward a lot since 2006 and in the last couple of years I have been intrigued with the possibility of USB playback via a small footprint endpoint running squeezelite. Aside from future proofing my playback chain it also meant I could use LMS (via sox) to upsample on the server side rather than within the DAC. But all this meant I needed to first tag my files but I couldnt dedicate any time to this until I retired at the end of 2019. The first part of tagging was easy I just wrote a program that parsed my existing WAV file hierarchy to obtain artist/year/release/track no/track name and created the ID3 tags in the WAV files. The harder part was cover art which after trying several existing programs I ultimately ended up doing google artwork searches/print screen/paste/cut for 95% of my 4000 albums simple because most auto-fetched artwork was crap. I also did google artwork searches for my artist pictures for the same reasons as the artwork. THE SOFTWARE So with my albums all nicely tagged, the search started for playback software that worked with LMS. The natural contender was Roon but I hated Roon. I didnt like the way you navigate in Roon and all the data masturbation that it does and throws in your face. This is not a poking the Borax at those who love Roon, it just that I am old fashioned and want to just playback an album and not drill down/slice and dice what I have or discover new artists. I looked at other playback software from the LMS eco system and much of it only ran on apple or android platforms (which I dont use) or Windows. I played around with as much of this as possible but none of it really fitted my use case. This then brought me to the LMS Default Web Gui which I had not really used before. I liked the general layout, its work flow and the fact it was web based (i.e. platform independent). The downside was its a bit ugly, old skool in appearance and wouldnt be very touch screen friendly. The upside is I could hack the code. The Hack I have been a Unix/Linux systems programmer for 42 years with a specialisation in databases so the thought of hacking LMS didnt appear too daunting plus being retired I had time on my hands. Well LMS uses an interlaced set of languages: Template Toolkit, Perl, CSS, javascript and HTML of which the first three were completely new to me. Secondly, the code has no comments and due to the potpourri of languages used, a section of code needing a massage might reference all languages, so understanding what did what, when and how was time consuming to analyse. Thirdly, the rendering of elements was all based on tight loops which couldnt be altered in any way as this would break LMS. Finally there was also a lot of re-entrant code, much of it within xmlbrowser.html which handles basically all the rendering aside from the playlist. It become apparent that hacking the code would require a totally different strategy from what I had done in the past and required some cunning hacks. THE RESULTS The hack needed to achieve: - a GUI that had good delineation between the elements being rendered - a GUI that was pleasing to the eye and also easy on the eye with a dark theme - a GUI that was self contained such that navigation didnt leverage the browser - a GUI that rendered some of Roons metadata stuff that I liked - a GUI that will work well with a mouse or a touch screen - a GUI that will display well on decent sized screens (say 15 or greater) And so here are the results. This is a squashed image of the first screen showing the dark theme and as per normal for the default GUI, you have a navigation frame on the left and a playlist frame on the right. The GUI runs full screen inside the browser (i.e. you dont see any of the browsers controls) and I have placed drill downs into genres across the bottom. With a large number of genres, the drill downs will also occupy the top bar so you can get ~30 to 35 genres presented. Me I only have four!!! The best of genre is a special category that I will discuss later. 33393 If you click on a genre drilldown, the left frame presents a customized alphabetic drilldown (wont bore you with the details but it works differently from the default one). Below the alpha list, on the left, is a drilldown icon that takes you into an album view mode and below that we have the artists listed for the selected genre. 33394 As all artists (or albums) are presented as a contiguous set, you can use say a mouse scroll wheel effectively. I force a line break at the change of an alphabetic section so its easy to see the artists associated with say the D drill down. You drill down on the albums for the artist you are interested in by clicking on the artist image. 33395 Once inside a specific artist you click the album artwork to start playback or you hover (or click in touch mode) over the album name to see the tracks associated with the album. NOTE: I dont use the concept of adding an album (or some of its tracks) to a playlist but if I did then I would render the albums tracks as was the default behaviour but with visual tweaks). 33396 As noted above, at the top of each genre drilldown is an icon that, when clicked, lists all albums for the genre. This view presents two visual break points: a break on the alpha and then a break on the artists. This makes visual navigation way easier than just a torrent of albums images. 33397 +-------------------------------------------------------------------+ |Filename: a4.jpg | |Download: http://forums.slimdevices.com/attachment.php?attachmentid=33397| +-------------------------------------------------------------------+ ------------------------------------------------------------------------ posnos's Profile: http://forums.slimdevices.com/member.php?userid=62955 View this thread: http://forums.slimdevices.com/showthread.php?t=113959
_______________________________________________ diy mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/diy
