Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
A couple of further enhancements?
25-10-2014, 17:23
Post: #1
A couple of further enhancements?
Until recently I mostly used LMS (Logitech media Server / Squeezebox) to play my mostly classical collection. All my systems are on linux, and until recently I didn't have a decent control point to make proper use of minimserver. I have now found upplay, which runs well on linux, so am using minimserver more and more.

There are a few things I miss from LMS. The main thing is random play across the whole or parts of my collection. No Control Point can do this because they have no concept of 'Works' (collections of tracks), or minimserver 'Groups', only tracks which they can then shuffle.

My thoughts on this are that I'd like to be able to do something like the following:

1) pick a top level tag called 'random', leading to the normal full list of tags

2) pick a tag as usual, and drill down to the level I want to randomise at (could be composer, conductor, artist, year, whatever....)

3) select either tracks, groups or works (or even albums?) as the level at which I want tracks to be grouped for consecutive play

4) select a 'randomise' item to create a randomised list of these groups

5) play the resulting list as usual in the Control Point (there might need to be a limit to the number of tracks selected since it could be a lot of the collection and might blow the Control Point)

Step 3 might be combined with step 1, depending on how the user interface works out best.

Is something like this totally impractical? I appreciate that people may say that this type of thing is the task of a Control Point, but, as I said above, I can't see that being possible unless Control Points become aware of track groups, which seems unlikely.


The other main feature I use in LMS is searches, but I can't (yet) see how that could be implemented in a server whose data entry is done by Control Points supplied by other developers.

Any thoughts?
Find all posts by this user
Quote this message in a reply
25-10-2014, 17:36
Post: #2
RE: A couple of further enhancements?
(25-10-2014 17:23)Pastim Wrote:  Until recently I mostly used LMS (Logitech media Server / Squeezebox) to play my mostly classical collection. All my systems are on linux, and until recently I didn't have a decent control point to make proper use of minimserver. I have now found upplay, which runs well on linux, so am using minimserver more and more.

There are a few things I miss from LMS. The main thing is random play across the whole or parts of my collection. No Control Point can do this because they have no concept of 'Works' (collections of tracks), or minimserver 'Groups', only tracks which they can then shuffle.

My thoughts on this are that I'd like to be able to do something like the following:

1) pick a top level tag called 'random', leading to the normal full list of tags

2) pick a tag as usual, and drill down to the level I want to randomise at (could be composer, conductor, artist, year, whatever....)

3) select either tracks, groups or works (or even albums?) as the level at which I want tracks to be grouped for consecutive play

4) select a 'randomise' item to create a randomised list of these groups

5) play the resulting list as usual in the Control Point (there might need to be a limit to the number of tracks selected since it could be a lot of the collection and might blow the Control Point)

Step 3 might be combined with step 1, depending on how the user interface works out best.

Is something like this totally impractical? I appreciate that people may say that this type of thing is the task of a Control Point, but, as I said above, I can't see that being possible unless Control Points become aware of track groups, which seems unlikely.

I don't think it would be appropriate to add this to a server.

Quote:The other main feature I use in LMS is searches, but I can't (yet) see how that could be implemented in a server whose data entry is done by Control Points supplied by other developers.

Any thoughts?

MinimServer supports UPnP Search. It's up to control points how they use this capability. For example, BubbleUPnP has good support for this.
Find all posts by this user
Quote this message in a reply
25-10-2014, 21:01
Post: #3
RE: A couple of further enhancements?
[quote='simoncn' pid='11753' dateline='1414255019']
I don't think it would be appropriate to add this to a server.
[\quote]
It's not my software so I don't understand your reasoning. It is just a way of selecting something to be played, just like picking tags and saying play this. It just happens to have an element of randomness. Other (non UPnP) servers have something like it. Since this cannot possibly be implemented in a UPnP control point it will never be done. Something of a shame for classical music lovers. Playing random works is a great way of playing parts of a large collection one might never otherwise play, and the flexibility of the minimserver menu structure means one could constrain the selection in umpteen different ways, which would be brilliant, and better than any other music server I'm aware of.

Ah well.....

[quote]MinimServer supports UPnP Search. It's up to control points how they use this capability. For example, BubbleUPnP has good support for this.[/quote]
Ok - Thanks.
Find all posts by this user
Quote this message in a reply
26-10-2014, 07:54
Post: #4
RE: A couple of further enhancements?
(25-10-2014 21:01)Pastim Wrote:  Since this cannot possibly be implemented in a UPnP control point it will never be done.

Many UPnP control points support random play or shuffle mode. I'm not aware of any UPnP servers that do this.

If the issue is adding group awareness to a control point, this is much simpler than adding random play capability to a server.

Another option would be for the server to send the control point a resource URL for playing the entire group. The UPnP specification supports this. This would allow the control point to support random playing of groups without special awareness of MinimServer's grouping capability.
Find all posts by this user
Quote this message in a reply
26-10-2014, 09:05
Post: #5
RE: A couple of further enhancements?
(26-10-2014 07:54)simoncn Wrote:  
(25-10-2014 21:01)Pastim Wrote:  Since this cannot possibly be implemented in a UPnP control point it will never be done.

Many UPnP control points support random play or shuffle mode. I'm not aware of any UPnP servers that do this.

If the issue is adding group awareness to a control point, this is much simpler than adding random play capability to a server.

Another option would be for the server to send the control point a resource URL for playing the entire group. The UPnP specification supports this. This would allow the control point to support random playing of groups without special awareness of MinimServer's grouping capability.
Given that so few people seem to care about such groups it'll probably never happen.

I asked here because you seem to be one of the few people in the music software business who understands that some people need systems to know about more than just tracks (or 'songs'). As a user, rather than software developer, I'm not too bothered about where a facility is provided, but I had rather hoped that if done in a server it would work with all Control Points.

Thanks for your views anyway. Back to LMS and my home-brewed SQL for this I guess. I'll have to work some more on getting LMS to talk UPnP Smile
Find all posts by this user
Quote this message in a reply
26-10-2014, 21:27
Post: #6
RE: A couple of further enhancements?
I have been trying to think about how a true 'random play' across a large subset of a music collection might be implemented in the UPnP architecture.

Firstly, 'shuffle', as implemented by several control points, is not an appropriate tool. It is not practical to try and download many thousands of track details to a playlist on a client and then shuffle it. I did try briefly, on bubbleupnp (android) and upplay (ubuntu). It took a long time to download a large list of many thousands of items and they both gave up on the job with strange errors.

bubbleupnp does have a 'random play' of 'n tracks' feature across all tracks. I don't know how it does this, but there's nothing that would do the same over a subset, let alone by 'groups' or 'works'.

When one has a large list of groups of tracks it seems to me that the server must be the right place to randomise this. It has all the data, and (usually) the CPU power. Loading many thousands of entries to a client seems inherently the wrong thing to do. What's actually wanted is the ability for the control point to see a sensible number of tracks/groups in a pre-randomised playlist, and then have the list topped up when it has almost been played out.

To illustrate what I'm trying to do, I want to play random (classical) Works containing one or more tracks at a Rating (one of my tags) of 80 or more - ie stuff I really like. I have many hundreds of these, with around 7,000 tracks in all. Sometimes I just want to play random Works of any class (well over 20,000 tracks in a few thousand Works). Other times it might be Works in a Genre, or by a Composer, etc. At any one time, 10 such Works can contain anything from 10 to several hundred tracks, depending on the Works, and this is plenty for one playlist on the client side. It could last minutes or hours. The playlist doesn't need to be longer than this, but needs topping up when I'm near the end of the list. If the client was dumb enough the server could do this itself by pushing items onto the playlist. I can't quite see how this type of functionality could be provided with the UPnP architecture, but others may have ideas.
Find all posts by this user
Quote this message in a reply
26-10-2014, 22:11
Post: #7
RE: A couple of further enhancements?
(26-10-2014 21:27)Pastim Wrote:  When one has a large list of groups of tracks it seems to me that the server must be the right place to randomise this. It has all the data, and (usually) the CPU power. Loading many thousands of entries to a client seems inherently the wrong thing to do. What's actually wanted is the ability for the control point to see a sensible number of tracks/groups in a pre-randomised playlist, and then have the list topped up when it has almost been played out.

Leaving aside the group/work aspect for the moment, there's a simple and efficient way for the control point to do this. It can send a UPnP Search query to generate a suitable result set on the server and it can then pull down individual items from this result set in a random order. For exaxmple, if the result set contains 1000 items, the control point can request item 123, then item 789, then item 456, etc. The control point never needs to request more items than it wants to play.
Find all posts by this user
Quote this message in a reply
27-10-2014, 09:42
Post: #8
RE: A couple of further enhancements?
(26-10-2014 22:11)simoncn Wrote:  
(26-10-2014 21:27)Pastim Wrote:  When one has a large list of groups of tracks it seems to me that the server must be the right place to randomise this. It has all the data, and (usually) the CPU power. Loading many thousands of entries to a client seems inherently the wrong thing to do. What's actually wanted is the ability for the control point to see a sensible number of tracks/groups in a pre-randomised playlist, and then have the list topped up when it has almost been played out.

Leaving aside the group/work aspect for the moment, there's a simple and efficient way for the control point to do this. It can send a UPnP Search query to generate a suitable result set on the server and it can then pull down individual items from this result set in a random order. For exaxmple, if the result set contains 1000 items, the control point can request item 123, then item 789, then item 456, etc. The control point never needs to request more items than it wants to play.
We are clearly on opposite sides of the thin vs fat client divide Smile (I started life with dumb teletypes, then dumb VDUs, went through the complex client GUIs stage, and then saw it all roll back to dumb-ish browsers).

If I had enough skill I'd try to add such a facility to a control point myself, but I've never acquired the more up to date development skills. Still, I shall peruse the source of one and see if I can make any sense of it at all. It's fairly clear I won't get any help from anywhere else.

Thanks again for your patience in responding to my ponderings.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


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