sometimes I don't want to listen to a specific track or album, sometimes it's just that I'd like to have a randomized list of tracks I want to hear.
Should be no problem in theory, right? In reality, there are two problems:
1) I want to listen to any random track of my music-collection. I enter "music", "all tracks", and my UPnP-renderer then loads the complete list of all tracks into its RAM. It takes ages until its finished, during that I have to wait or do something else. That's already a pain.
2) Then I press play to start playing and turn on the randomize-function of my renderer. The second problem is very renderer-specific (probably just my problem). The randomize-function of my player is implemented badly, which leads to bad randomization of the list. For example, I just listen a few tracks while the function is turned on, and still I hear several tracks from the same album during that time.
I don't know if my idea is even doable within the constraints of UPnP. But I have the idea to have some kind of special container, which offers randomization functionality "built in". When writing your import.js you then can put files you want (e.g. only that of a certain genre, or all tracks) into that container. When your player accesses them, the server could only present *one* track (which would drastically decrease the time to load the list), which would change each time renderer accesses it. Together with the repeat-function of the player this could mean perfect randomization together with a much better user-experience (faster).
What do you think?
I think this is a great idea. I play my media on the ps3 and the randomize function for music is terrible on that as well. I also have a large amount of music videos that would benefit from a mediatomb generated random list as the ps3 will not randomly play videos.
I think it won't work well because that implies that the player is listening to container updates and we know that most of them don't. You'd have more chances with a feature that would randomize a container on the server side and then offering an already randomized list to the player. But well, it's easier to do this on player side - the player knows the total number of items in the container (it does not have to retrieve the whole list!) and it could then simply request the items with the random index that lies within the total count of items.
I use streamripper to grab MP3 files from internet radio stations. I also have a Philipps 1100/37 internet radio receiver to play them. The 1100/37 does not have a randomize function: it plays the files in alphabetical order as they are listed in the directories that are published by mediatomb.
I fixed that by writing a shell script that prepends a random number before each filename, then creates a link in a directory that again is published by mediatomb. I occasionally re-randomize the collection. So I have 2 directories: one with the .mp3 files themselves which plays in alphabetical order and a second directory with links back to the first. This directory has the same filenames, but each filename is prepended by a random number. If anyone wishes, I'll publish the shell script here.