[Empeg-general] Re: Auto-shuffle

Sven Mueller sven at incase.de
Tue, 19 Mar 2002 21:50:00 GMT


Hi.

I either did not understand what you where writing, or it is an extremely complex solution for something that could be easier. Here is my proposal, which _should_ be relatively easy to implement, if I am thinking right.

In my model, a playlist can have any of the following modes (one exlusively):always randomize complete playlist (this playlist and below)
always randomize this level
never randomize complete playlist (this playlist and below) aka. handle complete playlist as a single track (except for display purposes)
never randomize this level (but randomize included playlists)
never mind/inherit current parent
Note that inherit current parent is part of my proposal as well as part of yours, but if I understood you correctly, they differ a little in their meaning.

My suggestion is that shuffle mode overrides whatever the current playlist is set to. So even if the current playlist is set to "never randomize", turning shuffle mode on would shuffle it anyway. However, if you select a playlist that is set to one of the "never randomize" modes, shuffle get's turned off automatically.
When descending the playlist tree from the current selection, keep a memory of whatever the current shuffle toggle ("shuffle" vs. "don't shuffle") is. Modes that only apply to the current level only do not modify the toggle, so if you descend from playlist A "always shuffle complete" through playlist B "never shuffle this level" to C "never mind", a temporary running order of A1, A2, .., B, .., An. At this point, the running order get's shuffled and saved for later reference. Now B get's expanded (in order), with it's playlists each handled according to their settings and the current shuffle toggle (which is still at "shuffle completely"). After this is completed (possibly recursing this algo), B get's replaced by its expansion in the previously saved expansion of playlist A.
Oh well, did I say my proposal would be less complicated than yours? Never mind...
However, I think that a tristate toggle is insufficient and unintuitive (especially the question of the "grey checked" setting's behaviour). However, each of the two proposals is complicated and can only be implemented by a recursive algorithm (even though that could possibly be flattened, it would stil be basically recursive).

I REALLY HOPE SOMETHING LIKE THIS HAPPENS SOMETIME, better sooner than later.

BTW: As far as I remember, there was a "interpret playlist as single track" flag in the metadata-FIDs, which would translate to the "never randomize, including childs" setting, I guess.

cu,
sven