Post Reply 
feature request
08-02-2012, 09:54
Post: #1
feature request
First of all, thanks again for the great work! Smile

My feature request, use the "custom" tag section in UPnP xml "Description" section. Insert ALL (or all tag specified in minimServer UserTag field) tag info (tag pair values) of a song in the UPnP xml info. The purpose is so that a Controller which looks for those info section, can get all the tag value of each song.

I'm asking is because I'm talking a friend into writing a Controller app which shall get all the tag value of each song, then let user custom their browsing layout, grouping style, and search on all tag etc.

And I just found out that on a generic UPnP server, the ACTUAL tag pair value in each song has NO direct relation to the song info returned by a UPnP request! For example, the "Discnumber" tag info is NOT available to a controller. A Controller can ONLY list the track order presented by server, as is. That is just DUMB! For example, some server likes to rename track number to 101 for first disc and 201 for second disc. Some like to modify the album name to "xyz album (disc 1)"/"xyz album (disc 2)", and also that crazy XBMC which list track in track title instead of track number...

If there is a UPnP server which can return all REAL tag pair in each song, then a Controller can be designed to let user freely browse the library in whatever user preferred style...
Find all posts by this user
Quote this message in a reply
08-02-2012, 12:09
Post: #2
RE: feature request
Thanks for this suggestion. It's an interesting idea. Most (or all) current control points wouldn't be able to take advantage of this information, but this could change with "smarter" control points in the future.

The main problem I see is defining a standard format for how this information would be sent. The format would need to be defined as an XML schema in some XML namespace. I did some web searching and I found an example of doing this from Microsoft in the urn:schemas-microsoft-com:WMPNSS-1-0/ namespace (see this link) and also from Meedios in the http://www.meedios.com/ namespace (see this link). I wouldn't want to use either of these proprietary namespaces and schemas in MinimServer, and I'm also not too keen on inventing a MinimServer proprietary namespace and schema. If/when there's a standard namespace and schema for doing this, I'd be quite interested in taking it further.
Find all posts by this user
Quote this message in a reply
08-02-2012, 13:03
Post: #3
RE: feature request
Hi Simon,

This seems great, two slightly stupid comments on aesthetics. On Mac OSX the green / yellow / red minim is very non Mac like. Normally these indicator boxes are transparent. Warnings are with ! added. The other is the control point server name could do with an option on the preferences, the MinimServer:home.lan is a bit techy.

Great work. If you can get a good schema for mixed classical / rock browse trees, I think this app could be a killer for Linn owners.
Find all posts by this user
Quote this message in a reply
08-02-2012, 16:03
Post: #4
RE: feature request
(08-02-2012 13:03)DaveWr Wrote:  Hi Simon,

This seems great, two slightly stupid comments on aesthetics. On Mac OSX the green / yellow / red minim is very non Mac like. Normally these indicator boxes are transparent.

Your comment isn't stupid, but I don't know how to handle this, as the colour of the icon indicates the current status. There are five colours:
Green = running normally
Yellow = starting or stopping
White = stopped
Red = error
Grey = waiting for remote instance of MinimServer to start

How could these five states be presented using a transparent icon? I suppose the normal running state could be transparent, and all the others could have their current colours. How does that sound?

Quote:Warnings are with ! added.

Sorry, but I don't understand the context of this comment. If MinimServer finds an error, it turns the minim icon red and displays a pop-up message with ! in the message box. What change are you suggesting?

Quote:The other is the control point server name could do with an option on the preferences, the MinimServer:home.lan is a bit techy.

I'll add a property for this.

Quote:Great work. If you can get a good schema for mixed classical / rock browse trees, I think this app could be a killer for Linn owners.

Thanks! Any suggestions for what such a schema might look like would be most gratefully received. I'm at a disadvantage here, as my collection is 95%+ classical.

Simon
Find all posts by this user
Quote this message in a reply
08-02-2012, 17:06
Post: #5
RE: feature request
On the ICON issue the point is things in the mac world change the icon. So the wireless icon is replaced with a wireless icon with a ! through it if there is no internet access. If its off it turns into an outline shape only. Another similar situation is little like a battery symbol on a mobile phone. Several displays in the same space.

To be fair if you could just make the standard green transparent it would probably do.

On the classical music approach, what tagging scheme do you use?
Find all posts by this user
Quote this message in a reply
08-02-2012, 18:32
Post: #6
RE: feature request
(08-02-2012 17:06)DaveWr Wrote:  On the ICON issue the point is things in the mac world change the icon. So the wireless icon is replaced with a wireless icon with a ! through it if there is no internet access. If its off it turns into an outline shape only. Another similar situation is little like a battery symbol on a mobile phone. Several displays in the same space.

To be fair if you could just make the standard green transparent it would probably do.

Ok, I understand the ! part now. A ! on top of a minim probably wouldn't work very well, though. Sad I think the best I can manage is to have a go at making a transparent icon to replace the green one.

Quote:On the classical music approach, what tagging scheme do you use?

I've started a new thread here for this discussion. It would be great if you could add your comments and thoughts to that thread.

Simon
Find all posts by this user
Quote this message in a reply
09-02-2012, 09:07
Post: #7
RE: feature request
Thanks! That's exactly what I wanted! Use the <desc> in <item> to provide detail song tag pair to a smart Controller.

For example, I add a user tag name "Audio Format" and set the value to "Super Audio CD" for SACD ripped track, set it to "Vinyl ripped" for song ripped from LP, etc.

In that case, the smart UPnP server can return all tag values in a song include this user tag "Audio Format", within song's <item> section...

For example, for a song "Rolling In the Deep", the <desc> section in the song <item> section may look like:

<desc id="Artist Name" nameSpace="minimServer:UserTag">Adele</desc>
<desc id="Track Title" nameSpace="minimServer:UserTag">Rolling In The Deep</desc>
<desc id="Album Title" nameSpace="minimServer:UserTag">Adele Best Collection</desc>
<desc id="Date" nameSpace="minimServer:UserTag">2014 06 32</desc>
<desc id="Track Number" nameSpace="minimServer:UserTag">12</desc>
<desc id="Disc Number" nameSpace="minimServer:UserTag">2</desc>
<desc id="Genre" nameSpace="minimServer:UserTag">R&B</desc>
<desc id="Audio Format" nameSpace="minimServer:UserTag">Super Audio CD</desc>

There shouldn't be much compatibility issue, as proper UPnP client should simply ignore any unknow/un-needed xml item. And a smart Controller can get all the real tag info in a song.

If such UPnP server exits, then I can really push someone to make a smart controller! And I have a smart controller UI all planned in my mind... Smile

(08-02-2012 12:09)simoncn Wrote:  Thanks for this suggestion. It's an interesting idea. Most (or all) current control points wouldn't be able to take advantage of this information, but this could change with "smarter" control points in the future.

The main problem I see is defining a standard format for how this information would be sent. The format would need to be defined as an XML schema in some XML namespace. I did some web searching and I found an example of doing this from Microsoft in the urn:schemas-microsoft-com:WMPNSS-1-0/ namespace (see this link) and also from Meedios in the http://www.meedios.com/ namespace (see this link). I wouldn't want to use either of these proprietary namespaces and schemas in MinimServer, and I'm also not too keen on inventing a MinimServer proprietary namespace and schema. If/when there's a standard namespace and schema for doing this, I'd be quite interested in taking it further.
Find all posts by this user
Quote this message in a reply
09-02-2012, 11:42
Post: #8
RE: feature request
(09-02-2012 09:07)psme Wrote:  Thanks! That's exactly what I wanted! Use the <desc> in <item> to provide detail song tag pair to a smart Controller.

For example, I add a user tag name "Audio Format" and set the value to "Super Audio CD" for SACD ripped track, set it to "Vinyl ripped" for song ripped from LP, etc.

In that case, the smart UPnP server can return all tag values in a song include this user tag "Audio Format", within song's <item> section...

For example, for a song "Rolling In the Deep", the <desc> section in the song <item> section may look like:

<desc id="Artist Name" nameSpace="minimServer:UserTag">Adele</desc>
<desc id="Track Title" nameSpace="minimServer:UserTag">Rolling In The Deep</desc>
<desc id="Album Title" nameSpace="minimServer:UserTag">Adele Best Collection</desc>
<desc id="Date" nameSpace="minimServer:UserTag">2014 06 32</desc>
<desc id="Track Number" nameSpace="minimServer:UserTag">12</desc>
<desc id="Disc Number" nameSpace="minimServer:UserTag">2</desc>
<desc id="Genre" nameSpace="minimServer:UserTag">R&B</desc>
<desc id="Audio Format" nameSpace="minimServer:UserTag">Super Audio CD</desc>

This is exactly what I don't want to do: invent a non-standard proprietary namespace and XML schema. The way this information is sent should be defined formally as part of an industry standard. The definition would be similar to what Microsoft has done in the "Microsoft Extensions to UPnP Metadata" section of this document. By making this a standard, all servers can provide this information in the same format, and all "smart" controllers can work correctly with all servers.
Find all posts by this user
Quote this message in a reply
10-02-2012, 02:25 (This post was last modified: 10-02-2012 02:28 by psme.)
Post: #9
RE: feature request
I see, so there goes my dream! I fully understand the ideal way to is define a industry standard for all parties to agree. But in reality, that is hopeless! Linn has been pushing it's UPnP extension for years, and it seems simply won't happen.

Thanks for all the comment. I guess I better start by making me a server first...

PS: on a second thought, maybe this can be done on the smart Controller side too. A generic UPnP server browse (or search) should get all the URL for each song. Then the Controller can brute force all tag info by reading the actual song header section to find real tag info...
Find all posts by this user
Quote this message in a reply
10-02-2012, 14:33
Post: #10
RE: feature request
(10-02-2012 02:25)psme Wrote:  I see, so there goes my dream! I fully understand the ideal way to is define a industry standard for all parties to agree. But in reality, that is hopeless! Linn has been pushing it's UPnP extension for years, and it seems simply won't happen.

Thanks for all the comment. I guess I better start by making me a server first...

PS: on a second thought, maybe this can be done on the smart Controller side too. A generic UPnP server browse (or search) should get all the URL for each song. Then the Controller can brute force all tag info by reading the actual song header section to find real tag info...

I think your dream can happen, but it might take a bit more time. I think there's a very good chance of creating new standards. Linn has set up OpenHome as a place to create new standards (see this link), and this might be an idea that Linn would consider adding to OpenHome if they get support for it from makers of popular servers and control points.

For any successful standard, it's not just a question of having a specification. The standard needs to be supported and implemented by a number of different vendors and products so that it becomes widely used. This gives it critical mass and a good chance of being adopted by the whole industry.

It's very early days with MinimServer, and at the moment I'm doing my best to make MinimServer work with existing standards rather than trying to invent new standards or extensions to standards. When MinimServer becomes more established and widely used, that will be the right time to start discussions with other people about things that could be done to extend and improve the standards.

For now, your suggestion would work. By reading the URL and parsing the data returned, the controller can get any tag information. The main problem with this approach would be performance issues because of the large amount of data sent across the network.

The other thing you could do is use the existing industry standard information that MinimServer sends to the controller. This includes quite a lot of information (album, artist, composer, date, conductor, genre, artwork, audio properties) and this should be enough to try out your ideas on the controller side.

Simon
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)