Monthly Archives: April 2014

Rockbox – audiobooks, podcasts and sorting

Since I moved to Rockbox, I’ve had two issues that have been bugging me:
1. Keeping my podcasts and audiobooks separate
2. Sorting my podcasts (reverse chronological order and separating the ones I’ve listened to already)

I finally got tired of ignoring the issue and decided to give it a serious shot today. And it goes on to prove to me that with sufficient motivation, you need not fear doing things you’re unfamiliar with. In this case it was editing some config files in Rockbox.

For those not interested in the story, but just the job, here’s the file:

#! rockbox/tagbrowser/2.0
# ^ Version header must be the first line of every file

# Tag Browser configuration file, do not edit as changes will be lost!
# Instead, you can modify “/.rockbox/tagnavi_custom.config” which will never
# get overwritten automatically.
# Basic format declarations
%format “fmt_podcast_album” “%s” album ? genre == “podcast”
%format “fmt_podcast_title” “%s %s – %02d:%02d” basename title Lm Ls %sort = “inverse” %strip = “15” ? genre == “podcast”
%format “fmt_podcast_alphanum_title” “%s – %02d:%02d (%s)” basename Lm Ls filename ? title == “” & genre == “podcast”
%format “fmt_podcast_alphanum_title” “%s – %02d:%02d” title Lm Ls & genre == “podcast”

%menu_start “podcasts” “Podcasts”
“New podcasts” -> album ? genre == “podcast” -> title = “fmt_podcast_title” ? playcount == “0” & genre == “podcast”
“Old podcasts” -> album ? genre == “podcast” -> title = “fmt_podcast_title” ? playcount != “0” & genre == “podcast”

%menu_start “main2” “Database”
“Artist” -> artist ? genre != “podcast” & genre != “audiobook” -> album -> title = “fmt_title” ? genre != “podcast”
“Album Artist” -> albumartist ? genre != “podcast” & genre != “audiobook” -> album -> title = “fmt_title” ? genre != “podcast”
“Album” -> album ? genre != “podcast” & genre != “audiobook” -> title = “fmt_title” ? genre != “podcast”
“Audiobooks” -> album ? genre == “audiobook” -> title = “fmt_title” ? genre == “audiobook”
“Podcasts” ==> “podcasts”
“Genre” -> genre -> artist -> album -> title = “fmt_title” ? genre != “podcast”
“Composer” -> composer -> album -> title = “fmt_title” ? genre != “podcast”
“Track” -> title = “fmt_alphanum_title” ? genre != “podcast”
“Year” -> year ? year > “0” -> artist -> album -> title = “fmt_title” ? genre != “podcast”
“User Rating” -> rating -> title = “fmt_title” ? genre != “podcast”
“Recently Added” -> album ? entryage < “4” & commitid > “0” -> title = “fmt_title” ? genre != “podcast”
“A to Z…” ==> “a2z”
“History…” ==> “runtime”
“Same as current…” ==> “same”
“Search…” ==> “search”
“Custom view…” ==> “custom”

# And finally set main menu as our root menu
%root_menu “main2”

To solve this issue I had to approach the problem from two ends:
1. The files – correct tagging (podcast/audiobook) and in the case of podcasts, I had to ensure that the podcast filename was just the date the podcast was produced.
2. Rockbox – making the menus and the filtering

The files were relatively easy in terms of tagging. For podcasts, I use gPodder. I upgraded to the latest version on the debian repository (in Testing) and changed the config settings in gPodder to set the synchronized filename as just the “sortdate” as gPodder puts it.

In Rockbox, I had to pore over this page: http://www.rockbox.org/wiki/DataBase, and then experiment with the things listed until I finally got to the desired result. My key challenge was to understand how filters worked in the menus!

For example, initially, I had added the podcast menu as follows:
%menu_start “podcasts” “Podcasts”
“New podcasts” -> album -> title = “fmt_podcast_title” ? playcount == “0” & genre == “podcast”

This resulted in me seeing all the albums on my player, not just the podcasts! So after poring over the Database wiki some more, I realized that I needed to add the conditional inside the menu!

“New podcasts” -> album? genre == “podcast”

Once I’d figured this out, the rest was a matter of tuning the gPodder output and figuring out what works!

Hope this helps.