I’ve recently upgraded from Beets 1.3.8 (on my Debian Stable machine) to 1.4.3 primarily to use the AcousticId metadata. The upgrade went seamlessly. I see all these flexible attributes have now been defined if I run beet fields
. I’m halfway through pulling down the new AcousticId tags (things like danceability, mood_*, etc.), and am ready to create playlists using this new data.
For the new AcousticId text type fields (e.g. instrumental or vocal), a beet list
query works as expected. The same works for things the real-valued fields for mood_* and danceability if I provide an exact value.
For instance:
beet list danceable:0.5
gets me songs that have a danceable attribute of 0.51, 0.59, 0.533121, etc. Great!
The problem is if I want to query a range of values, for danceability, for instance, from 0.4 - 0.9. At first I tried specifying ranges as suggested in the docs, such as
beet list danceable:0.4..0.9
.
This returns nothing. I figure that’s because most number ranges in beets are >> 1 even if they’re real values (1999, 160, etc). And such ranges work for dates, bpm, etc. using A…B. But most of the awesome new AcousticId data are a real value that range from 0 to 1.
I’ve also tried to use use regex to little avail, e.g.:
beet list 'danceable:0.[0-4]'
Plus any number of minor variations (that probably shouldn’t work anyway).
Has anyone else tried querying a range of non-integer custom fields?