I think I have figure out how uroJUKEstyx will handle playlists (requested by egosbar) and profiles (requested by retroborg). Here's the idea:
Music Folders:
The music library the user already specify the music folders to indicate where to look to find the music files.
Album List (aka Profiles)
uroJUKEstyx will allow to specify profile file. A profile is a file that contains albums (folders) (ex: Party.profile, Phil.profile, ...)
So there will be a new category like the music folders to select the music profiles.
Upon startup, the program will scan the folders to add the album. Then it will read the profiles files and add these extra albums. Since these might already be included in the music folders, there will be duplicates detection to avoid having the same album appearing more than once in the final library. But the profile could also include album folders that weren't included in the music folders.
So let say you have the folders
music/rock/...
music/dance/...
profiles/Party.profile
profiles/Phil.profile
You will end up with the following genres : rock, dance, Party (profile), Phil (profile)
** Right now, I intend to treat the profile like if it was a genre.
Then, with the filter function, the user would by able to select 1 or more genre.
So Let say you're having a party, you would set your filter to genre=Party (profile), the resulting filtered music library would include all the albums specified in the file Party.profile.
That would allow the user to build a new "genre", re-using existing albums in the library without the need to have duplicates in its directory tree.
There will be a button to add the album to the selected profile, and of course, a profile editor.
Note: uroJUKEstyx will have a more flexible filter than skj. For example, you will be able to select multiple genres (ex: Dance + Party (profile), or multiples years or other combinations... More on this when I implement it.
For the playlist, I've look at how skj works. It simply adds all the file to the queue.
uroJUKEstyx will handle them differently. A playlist will be considered like an album. If the filter is set to include playlist, then you will have each playlist displayed like an album. That way the user will be able to:
- browse the playist and add specific songs
- add the full album (this would be the skj equivalent, since all the playlist songs would be added to the queue)
Finally, I will implement different random modes:
- random library repeat : this is the normal random mode where a new random song in the filtered library is played when no more song are in the queue.
- random library unique : same as random library repeat, but each song can only be played once.
- random queue repeat : instead of taking first song of the queue, it will take a random song from the queue and WON'T REMOVE IT from the queue.
- random queue unique : same as random queue repeat, but will remove the song from the queue, so that it is only played once.
*** I need better name than repeat/unique. If you have suggestion ...
If you see anything missing or wrong, let me know.
Jay