#! rockbox/tagbrowser/2.0 #User-customisable Database viewer configuration file # # Required layout: # Format declarations # Sub-menu definitions # Main menu definition # Set menu as root #Custom format declarations # f_browse - basic tracknumber (padded with zeros to two characters) and title # f_direct - title and artist for when the navigation leads directly to results by track # f_chrono - includes year for year/decade based browsing # f_runtime - top 100 tracks by times played (playcount) then autoscore. Sorted inverse to bring most-played to the top # f_lastplayed- last 100 tracks played in play order. Sorted inverse to bring most recent to the top, but playcount display stripped out for clarity # f_forgotten - as above, but sorted for least recent at the top # f_mood - simple title and respective album # f_radio - for sorting tracks in order of duration (length). Strip value of 15 = 8 for the length tag plus 7 for "/radio/", which all my podcast/radio tracks have in their filename # f_radio_old - as per "f_lastplayed", but again with additional strip value to remove the first portion of the filepath %format "f_browse" "%02d - %s" tracknum title %format "f_direct" "%s (%s)" title artist %format "f_chrono" "%04d - %s (%s)" year title artist %format "f_runtime" "%2d|%3d %s (%s)" playcount autoscore title artist %sort = "inverse" %limit = "100" %format "f_lastplayed" "%06d%s (%s)" lastplayed title artist %sort = "inverse" %limit = "100" %strip = "6" %format "f_forgotten" "%06d%s (%s)" lastplayed title artist %limit = "100" %strip = "6" %format "f_mood" "%s (%s)" title album %format "f_radio" "%08d%s (%s)" length filename title %strip = "15" %format "f_radio_old" "%06d%s (%s)" lastplayed filename title %sort = "inverse" %strip = "13" #Condition 'filename !~ "_cmpl"' excludes all compliation album tracks from this menu, # by virtue of the fact that all such tracks have '_cmpl' appended to the filename i.e., 06-missing_cmpl.mp3 #'Non-alphabetic' category created as a catch-all for tracks beginning with punctuation marks etc. #'T' artists specially formatted to exclude names beginning with 'The ' and a 'The...' category separately defined %menu_start "custom_artist_initial" "Browse album artists" "Non-alphabetic" -> artist ? artist < "A" & filename !~ "_cmpl" -> album -> title = "f_browse" "A" -> artist ? artist ^ "A" & filename !~ "_cmpl" -> album -> title = "f_browse" "B" -> artist ? artist ^ "B" & filename !~ "_cmpl" -> album -> title = "f_browse" "C" -> artist ? artist ^ "C" & filename !~ "_cmpl" -> album -> title = "f_browse" "D" -> artist ? artist ^ "D" & filename !~ "_cmpl" -> album -> title = "f_browse" "E" -> artist ? artist ^ "E" & filename !~ "_cmpl" -> album -> title = "f_browse" "F" -> artist ? artist ^ "F" & filename !~ "_cmpl" -> album -> title = "f_browse" "G" -> artist ? artist ^ "G" & filename !~ "_cmpl" -> album -> title = "f_browse" "H" -> artist ? artist ^ "H" & filename !~ "_cmpl" -> album -> title = "f_browse" "I" -> artist ? artist ^ "I" & filename !~ "_cmpl" -> album -> title = "f_browse" "J" -> artist ? artist ^ "J" & filename !~ "_cmpl" -> album -> title = "f_browse" "K" -> artist ? artist ^ "K" & filename !~ "_cmpl" -> album -> title = "f_browse" "L" -> artist ? artist ^ "L" & filename !~ "_cmpl" -> album -> title = "f_browse" "M" -> artist ? artist ^ "M" & filename !~ "_cmpl" -> album -> title = "f_browse" "N" -> artist ? artist ^ "N" & filename !~ "_cmpl" -> album -> title = "f_browse" "O" -> artist ? artist ^ "O" & filename !~ "_cmpl" -> album -> title = "f_browse" "P" -> artist ? artist ^ "P" & filename !~ "_cmpl" -> album -> title = "f_browse" "Q" -> artist ? artist ^ "Q" & filename !~ "_cmpl" -> album -> title = "f_browse" "R" -> artist ? artist ^ "R" & filename !~ "_cmpl" -> album -> title = "f_browse" "S" -> artist ? artist ^ "S" & filename !~ "_cmpl" -> album -> title = "f_browse" "T" -> artist ? artist ^ "T" & artist !^ "The " & filename !~ "_cmpl" -> album -> title = "f_browse" "The..." -> artist ? artist ^ "The " & filename !~ "_cmpl" -> album -> title = "f_browse" "U" -> artist ? artist ^ "U" & filename !~ "_cmpl" -> album -> title = "f_browse" "V" -> artist ? artist ^ "V" & filename !~ "_cmpl" -> album -> title = "f_browse" "W" -> artist ? artist ^ "W" & filename !~ "_cmpl" -> album -> title = "f_browse" "X" -> artist ? artist ^ "X" & filename !~ "_cmpl" -> album -> title = "f_browse" "Y" -> artist ? artist ^ "Y" & filename !~ "_cmpl" -> album -> title = "f_browse" "Z" -> artist ? artist ^ "Z" & filename !~ "_cmpl" -> album -> title = "f_browse" #A-Z of all artists, including compilation artists #Special selection solely for artists on compilation albums %menu_start "custom_artist" "Browse all artists" "Artist by genre" -> genre -> artist -> album -> title = "f_browse" "Compilations by artist" -> artist ? filename ~ "_cmpl" -> album -> title = "f_browse" "Non-alphabetic" -> artist ? artist < "A" -> album -> title = "f_browse" "A" -> artist ? artist ^ "A" -> album -> title = "f_browse" "B" -> artist ? artist ^ "B" -> album -> title = "f_browse" "C" -> artist ? artist ^ "C" -> album -> title = "f_browse" "D" -> artist ? artist ^ "D" -> album -> title = "f_browse" "E" -> artist ? artist ^ "E" -> album -> title = "f_browse" "F" -> artist ? artist ^ "F" -> album -> title = "f_browse" "G" -> artist ? artist ^ "G" -> album -> title = "f_browse" "H" -> artist ? artist ^ "H" -> album -> title = "f_browse" "I" -> artist ? artist ^ "I" -> album -> title = "f_browse" "J" -> artist ? artist ^ "J" -> album -> title = "f_browse" "K" -> artist ? artist ^ "K" -> album -> title = "f_browse" "L" -> artist ? artist ^ "L" -> album -> title = "f_browse" "M" -> artist ? artist ^ "M" -> album -> title = "f_browse" "N" -> artist ? artist ^ "N" -> album -> title = "f_browse" "O" -> artist ? artist ^ "O" -> album -> title = "f_browse" "P" -> artist ? artist ^ "P" -> album -> title = "f_browse" "Q" -> artist ? artist ^ "Q" -> album -> title = "f_browse" "R" -> artist ? artist ^ "R" -> album -> title = "f_browse" "S" -> artist ? artist ^ "S" -> album -> title = "f_browse" "T" -> artist ? artist ^ "T" & artist !^ "The " -> album -> title = "f_browse" "The..." -> artist ? artist ^ "The " -> album -> title = "f_browse" "U" -> artist ? artist ^ "U" -> album -> title = "f_browse" "V" -> artist ? artist ^ "V" -> album -> title = "f_browse" "W" -> artist ? artist ^ "W" -> album -> title = "f_browse" "X" -> artist ? artist ^ "X" -> album -> title = "f_browse" "Y" -> artist ? artist ^ "Y" -> album -> title = "f_browse" "Z" -> artist ? artist ^ "Z" -> album -> title = "f_browse" %menu_start "custom_album" "Browse albums" "All single-artist albums" -> album ? filename !~ "_cmpl" -> title = "f_browse" "All compilation albums" -> album ? filename ~ "_cmpl" -> title = "f_browse" "All albums by genre" -> genre -> album -> title = "f_browse" #Most search requirements are covered here! %menu_start "custom_search" "Search for..." "Artist starting with..." -> artist ? artist ^ "" -> album -> title = "f_browse" "Artist containing..." -> artist ? artist ~ "" -> album -> title = "f_browse" "Artist between years..." -> artist ? year >= "" & year <= "" -> album -> title = "f_chrono" "Album starting with..." -> album ? album ^ "" -> title = "f_browse" "Album containing..." -> album ? album ~ "" -> title = "f_browse" "Album between years..." -> album ? year >= "" & year <= "" -> title = "f_chrono" "Track starting with..." -> album ? title ^ "" -> title = "f_direct" "Track containing..." -> album ? title ~ "" -> title = "f_direct" "Filename starting with..." -> album ? filename ^ "" -> title = "f_direct" "Filename containing..." -> album ? filename ~ "" -> title = "f_direct" #The runtime entities populated by the Database are used to derive the filters and conditions for the 'Usage database' menu #'Most played' and 'Recently played tracks' display only tracks that have been played (playcount > "0") #A 'favourite' is classified as having been played more than three times and with an average of 85% of the track having been listened to. %menu_start "custom_runtime" "Usage database" "Most played (Plays|Score)" -> title = "f_runtime" ? playcount > "0" "Recently played tracks" -> title = "f_lastplayed" ? playcount > "0" "Favourite albums" -> album ? playcount > "3" & autoscore > "85" -> title = "f_browse" "Recent favourites" -> title = "f_lastplayed" ? playcount > "3" & autoscore > "85" "Forgotten favourites" -> title = "f_forgotten" ? playcount > "3" & autoscore > "85" "Never played tracks" -> artist ? playcount == "0" -> album -> title = "f_browse" #The following mood menus are similar in that each mood (upbeat party, downbeat rock, etc.) is purely a list of tracks # tagged with any of the genres in the list (e.g., "acoustic|ambient|new age|easy listening") #This can be used to quickly produce a substantial playlist of similar music when you just know what 'sort' of music you want %menu_start "mood_1" "Relaxed" "All tracks" -> artist ? genre @ "classical|choral|jazz|acoustic|ambient|new age|easy listening" -> title = "f_mood" "Classical" -> artist ? genre @ "classical|choral" -> title = "f_mood" "Jazz" -> artist ? genre = "jazz" -> title = "f_mood" "Background" -> artist ? genre @ "acoustic|ambient|new age|easy listening" -> title = "f_mood" %menu_start "mood_2" "Party" "All tracks" -> artist ? genre @ "dance|disco|electronica|pop|techno|trance|funk|soul" -> title = "f_mood" "Upbeat" -> artist ? genre @ "dance|disco|electronica|pop|techno|trance" -> title = "f_mood" "Downbeat" -> artist ? genre @ "funk|soul" -> title = "f_mood" %menu_start "mood_3" "Top of the Pops" "All tracks" -> artist ? genre @ "pop rock|dance|indie|pop|pop folk|r&b|country|folk" -> title = "f_mood" "Upbeat" -> artist ? genre @ "pop rock|dance|indie|pop|pop folk" -> title = "f_mood" "Downbeat" -> artist ? genre @ "r&b|country|folk|alternative" -> title = "f_mood" %menu_start "mood_4" "Rockin' Out" "All tracks" -> artist ? genre @ "new wave|metal|alt rock|rock|punk rock|indie|rock and roll|britpop|pop rock|blues|hard rock|gothic" -> title = "f_mood" "Upbeat" -> artist ? genre @ "new wave|metal|alt rock|rock|punk rock|indie|rock and roll|britpop|pop rock" -> title = "f_mood" "Downbeat" -> artist ? genre @ "blues|hard rock|gothic" -> title = "f_mood" %menu_start "mood_5" "Heavy" "All tracks" -> artist ? genre @ "psychedelic rock|prog rock|classic rock|grunge|industrial|alternative|drum 'n' bass|blues|trip hop" -> title = "f_mood" "Upbeat" -> artist ? genre @ "psychedelic rock|prog rock|classic rock|grunge|industrial" -> title = "f_mood" "Downbeat" -> artist ? genre @ "alternative|drum 'n' bass|blues|trip hop" -> title = "f_mood" %menu_start "mood_tree" "Pick your mood..." "Relaxed" ==> "mood_1" "Party" ==> "mood_2" "Top of the Pops" ==> "mood_3" "Rockin' Out" ==> "mood_4" "Heavy" ==> "mood_5" #The main menu is mostly calls to sub-menus with the exception of the podcast/radio selections that filter only on whether the track # has been listened to or not (playcount), the rest of the hard work is done by the formatting %menu_start "bascule" "Rockbox Browser" "Album Artists" ==> "custom_artist_initial" "All Artists" ==> "custom_artist" "Albums" ==> "custom_album" "Mood" ==> "mood_tree" "New Podcasts/Radio" -> title = "f_radio" ? filename ~ "/radio/" & playcount == "0" "Old Podcasts/Radio" -> title = "f_radio_old" ? filename ~ "/radio/" & playcount != "0" "Tracks by usage" ==> "custom_runtime" "Search" ==> "custom_search" "Year" -> year -> genre -> artist -> album -> title = "f_browse" "All tracks A-Z" -> title = "f_direct" #This ensures that, rather than being accessed via the 'Custom...' entry in the default Database view, this custom menu *is* the default menu %root_menu "bascule" #EOF