Learning the Ropes

Developers forum for Univeral Media Server-related development (only for programmers)
Post Reply
User avatar
Posts: 1
Joined: Fri Jul 16, 2021 2:26 pm

Learning the Ropes

Post by NeonArchon »

Hi, gang. I'm here to introduce myself after reading an old post about looking for more new developers.

I've been playing around with UMS for a few months, moving on from Serviio. I chose UMS because it seemed like the server I'd have the best chance of making updates to get the kind of music server I really want.

Java isn't my first language, so it's taking me some time to spin up. So far I've managed to add a folder to the MediaLibrary that does a random shuffle of audio files. It works mostly, but it's not ready for prime time, as there are occasional glitches. These are probably related to a folder refresh cycle, and I haven't quite figured out how all those things work together yet.

Some things I plan to work on:
  • Fixing GENRE parsing of audio files, particularly audio files tagged with multiple genres
  • Fix audio file sorting by year: I'd like something that uses the audio file's release date rather than the file's last modified date
  • Allow for retrieving arbitrary tags from audio files: I spent a lot of time tagging thousands of classical music files by composer, performer, conductor, etc., and I want to be able for my DLNA/UPnP client to find them.
  • I think it would be nice if there were some sort of media library description language so that people can create their own media library folders using the console, something like smart lists. (I'm kind of a compiler guy, so I imagine parsing a language into a folder description.)
  • I'd like to be able to provide an option for parsing Kodi-style NFO files to allow for more sophisticated tagging of video files. (Maybe this can work for audio files, too? perhaps for those audio file types that don't natively support modern tagging.)
I have a lot to learn about the current code base in order to try to make this happen. And I don't want to duplicate effort or make changes that will be incompatible with future directions, so I would appreciate guidance and patience if I ask naive questions. I know n00bs are a mixed blessing, and I'll try not to be a PITA. I really appreciate all the effort that went into UMS to bring it to its current state, and I hope I'll be able to make meaningful contributions.
Renderers: ROKU, Samsung BD, Sony Bravia TV
User avatar
Lead Developer
Posts: 3650
Joined: Sun May 27, 2012 4:12 pm

Re: Learning the Ropes

Post by SubJunk »

Hi NeonArchon, thanks for introducing yourself and for your interest. Your proposed improvements sound great! Let me know if there's anything I can help with, and welcome :)
[email protected]
Posts: 3
Joined: Mon Aug 16, 2021 8:05 pm

Re: Learning the Ropes

Post by [email protected] »

Hi NeonArchon,

nice to see some fellows interested in audio! I had almost the same history. I came from Serviio but was missing features I'd like to see. Therefore, I was looking for an open source project to contribute some code for getting the best audio experience.

UMS comes as an UPnP content delivery server with an integrated proprietary user interface (not really an UPnP control point itself) focusing on video. In parallel I have developed a web based UPnP control point called nextcp/2 https://sf666.github.io/ which is aiming towards audio enthusiasts. Even though nextcp/2 works with other media server I've added some nice features to UMS giving it an unique user experience:

[*] Like / Dislike music albums identified by musicBrainz releaseId (if tagged)
[*] Rating songs (1-5 stars). Information can be stored in the file itself, or in musicbrainz.org personal account.
[*] Creating server based playlists
[*] editable server based playlists: Adding and removing songs are immediately visible while browsing through them. It's like a remote .pls or .m3u8 playlist editor.
[*] Sidebar: Quick access to playlists without browsing through the directory tree (deep linking)
[*] Sidebar: Quick access to liked albums without browsing through the directory tree (deep linking)
[*] UPnP search for artists, playlists, titles and albums
[*] Different track based views for album and playlist browsing.

Let's exchange some ideas here or by PM.
User avatar
Posts: 25
Joined: Thu May 26, 2022 9:36 am
Location: Homestead, FL

Re: Learning the Ropes

Post by MTOakey »

WoW !!!
I LOVE it.
I'm by NO means a programmer, but I do "reverse engineer" a lot of web-based sites for my own use, and I would REAL like to be able to JUST "Customize the Naming "shared folders" Browser TABS title on hover" ...
Browser Web page tab "title" on hover ... VERY easy in plain HTML, and many CSS, but this little UMS bugger is evasive.
I can "Inspect" with Developer tools in Chrome, make the change I want - looks Great - but does not "keep" or stay the way I want, obviously, since THAT doesn't actually write to the file, and since the pages are dynamically created also, as they don't even exist, since all the "browse/{insert number}" pages are dynamically created...
There is nowhere I see in any of the 3 web...css files, but it seems the place to make this change I desire is in the "browse.html.orig" file, right there, in Line 37. The TAG <title>...</ttitle>. Currently there resides a variable {{name}} there.
I replaced that variable with what I want as the name/title of my tabs... and nothing changed, it didn't work... and I have not been able to locate the script that would FEED that "variable".
I only wish for the folders I am sharing, only 2 right now and probably ever, one named "Videos", the other "Music", and I just want them to have the same title/name I already input in the "Main Panel" > General Settings tab > :Server name: field.
Even a checkbox there, after the "Append..." Checkbox, that inferred that the same Custom Name could be used for all page Tab Titles would be AWESOME.
My "Video" shared folder is page "browse/52" and the "Music" folder is page "browse/53"... the links that reside on page "browse/0" {would also like THIS page to reflect the Custom Tab Name also} that lead to those respective folders read: "Video" and "Music" which is fine, those Links do not have to change.
I know I might only be "nit-picking", but, ANY page that gets created should be able to be named statically instead of dynamically by variables... and I love automation as much as the next guy... but THIS has been driving me nuts for days now.

Any help or direction is and will be GREATLY appreciated.
I am MORE than willing to be a BETA-Tester for all such endeavors !!!

“A truth’s initial commotion
is directly proportional to how deeply the lie of it was believed ...” ~Dresden James
“The surest barrier to truth is the conviction you already have it.”
[email protected]
Posts: 3
Joined: Mon Aug 16, 2021 8:05 pm

Re: Learning the Ropes

Post by [email protected] »

Hi MTOakey,

hmmm ... as much as I'd like to help I'm not active in the UMS UI development right now ... since nextcp/2 is a stand alone control point not bundled with UMS you'd probably have to address requests here : https://github.com/sf666/nextcp2/issues .
Post Reply