Даже если мы выходим из темы уважения к исходному вопросу, в области clementine есть строка запроса, сделанная как
SEARCH_SQL = '''SELECT title, filename, artist, album, albumartist, art_automatic, year, genre, art_manual, track, length
FROM songs
WHERE album LIKE '%%%s%%' OR artist LIKE '%%%s%%' OR title LIKE '%%%s%%'
ORDER BY disc, track'''
(я добавил порядок дисков относительно исходной строки) и это называется с чем-то вроде
tracks = get_music_from_clementine(search, search, search))
, где поиск - это поисковый запрос. Теперь я определил новую строку поиска
MY_SEARCH_SQL = '''SELECT title, filename, artist, album, albumartist, art_automatic, year, genre, art_manual, track, length
FROM songs
WHERE (year >= %s AND year <= %s AND (album LIKE '%%%s%%' OR artist LIKE '%%%s%%' OR title LIKE '%%%s%%') )
ORDER BY disc, track'''
, которую я вызываю с помощью
tracks = get_music_from_clementine(MY_SEARCH_SQL % (str(start_year), str(end_year), search, search, search))
. С помощью этой строки поиска я получаю только те результаты, которые меня интересуют непосредственно из запроса к базе данных и объем определенно более быстрый, неслучайно, если что-то подобное можно сделать для жанра, поскольку в этом случае количество фильтров является переменным (вы можете выбрать более одного жанра в то время, а не только диапазон, например, для «десятилетия» «фильтр»