Playlist
Need some good way to manage playlist data in the database as well. Should by default only be viewing the very recent past and the extended future. Should also be able to have some virtual items in the list, such as:
- a pause item. This item, when hit, will either cause the playlist to be paused indefinitely (until manually moved past it), or for a set amount of time.
- a redirect item. This item, when hit, may cause the playlist to zoom to another area of the playlist and start playing there, instead of moving forward in a linear fashion. This would facilitate loops of all sorts, as well as skipping a segment of the list temporarily without having to rearrange the list itself.
- a smart item: This item might query the database of songs and find one or more appropriate songs to play in the given spot of the list. For instance, perhaps something by Beethoven, or a concerto of Bach, or a piano piece, chosen at random. It would either select one logical unit to play (one piano piece, one symphony, etc), or be given some time limit to keep in under, or within.
Need a good way to add stuff concretely to the list as well, such as by searching through the database and adding logical play blocks to the list, or through smart list expansion from the third item above (instead of having the meta-item in the list, it would expand in place to the actual item(s) to be played.)
Once the list is put together, we would need a way to edit the list, allowing for deletions, additions, rearrangements, etc. These might be at the track level or at a higher logical level, with ease and fluidity (drag and drop would be nice).
Also should be able to control playback from this interface, so we could pause the whole thing (without inserting a pause block), hit play, back up a track, skip around a bit, etc.
Should also be able to see what is currently playing, how far we are into the song, details about the track and its logical containers and people involved in its creation. Maybe allow markup, tags of the item to be added, mark that the track is skipping or low quality. Also allow switching to a different version of the same logical piece, either temporarily or by replacing the item in the playlist.