Hi. I’m new at beets and in the process of setting up my config file etc etc. I’m also doing testing to make sure that the behavior is what I expect. When I’m done, I’ll let beet loos on my full collection.
I noticed a funny thing today. I have a sample file that I use to test my new tags. It has no tags embedded in the file. I know this because I did a ffprobe of the file and see no tag info.
I run a import:
beet import -s ~/Downloads/myfile_something_snow_something.mp3
All works fine. I look at the tag info:
beet edit --all snow
Including the lyrics that I now have, there is 283 lines of tags…
I double check this again with ffprobe and I can see all the tag info is there.
This is all wonderful, great and as expected.
I can re-import the same file, the same process runs, and I get told that I have a duplicate, and I remove the old file.
Then, I did a:
beet update -p
Beet tells me:
initial_key: C ->
bpm: 155.558242798 ->
I do not understand why? I go from no tag info, to all, then immediately doing a update, 2 fields gets blanked out.
I don’t see an obvious reason why his would be. If this seems like a reliably reproducible problem, could you please file a bug with complete details (and sample files) that can let other people observe the same behavior?
So I did the same test at home, same results:
initial_key: C ->
bpm: 155.558242798 -> 0
The interesting thing is that my other test music is different. With them I get about 50% that will round the bpm:
bpm: 126.024734497 -> 126
bpm: 81.6080551147 -> 81
bpm: 148.046066284 -> 148
bpm: 132.799667358 -> 132
bpm: 139.991195679 -> 139
bpm: 106.260391235 -> 106
That I believe is not an issue. This is just interesting.
Sorry for necrobump, but I have the exact same thing happening to me. Initial import sets bpm and initial_key, running ‘beet up’ after will wipe those tags.
$ beet up
Eric Clapton - Blues - Before You Accuse Me (Take a Look at Yourself) (version 2)
bpm: 120.832885742 -> 0
initial_key: F ->
Eric Clapton - Blues - Stormy Monday
bpm: 88.9325408936 -> 0
initial_key: Fm ->
Eric Clapton - Blues - Worried Life Blues
bpm: 105.564147949 -> 0
initial_key: Fm ->
Eric Clapton - Blues - Early in the Morning
bpm: 146.572357178 -> 0
initial_key: Fm ->
Eric Clapton - Blues - Have You Ever Loved a Woman
bpm: 119.680114746 -> 0
initial_key: F ->
[...]
Version info
$ uname -a
Linux weidemann 4.15.0-42-generic #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ beet version
beets version 1.4.6
Python version 3.6.7
plugins: acousticbrainz, discogs, duplicates, fetchart, ftintitle, info, inline, missing, the
Indeed, that worked! Even though I had set write: yes in my config. Does this setting not imply that I want to write tags to files when importing?
Edit:
Guess I should note that I also get weird rounding errors in my BPM, similar to previous poster (also seen in my previous post):
$ beet write
Allah-Las - Bleep: The Top 100 Tracks of 2012 - Tell Me (Whats on Your Mind)
bpm: 127 -> 127.965560913
Altitude - The Art of Chill - Tears in the Rain (Ambient mix)
bpm: 132 -> 132.840881348
Ancient Methods - Bleep: The Top 100 Tracks of 2013 - Knights & Bishops
bpm: 128 -> 128.032974243
…And You Will Know Us by the Trail of Dead - IX - The Doomsday Book
bpm: 125 -> 125.91418457
…And You Will Know Us by the Trail of Dead - IX - Jaded Apostles
bpm: 131 -> 131.109848022
…And You Will Know Us by the Trail of Dead - IX - A Million Random Digits
bpm: 127 -> 127.984687805
…And You Will Know Us by the Trail of Dead - IX - Lie Without a Liar
bpm: 114 -> 114.734649658
…And You Will Know Us by the Trail of Dead - IX - The Ghost Within
bpm: 133 -> 133.331359863
…And You Will Know Us by the Trail of Dead - IX - The Dragonfly Queen
bpm: 163 -> 163.539581299
…And You Will Know Us by the Trail of Dead - IX - How to Avoid Huge Ships
bpm: 123 -> 123.309066772
…And You Will Know Us by the Trail of Dead - IX - Bus Lines
bpm: 94 -> 94.8486175537
…And You Will Know Us by the Trail of Dead - IX - Lost in the Grand Scheme
bpm: 136 -> 136.549713135
…And You Will Know Us by the Trail of Dead - IX - Like Summer Tempests Came His Tears
[...}
I am not sure about the edit plugin - I have not tried it yet but one thing is bugging me too about the bpm value. If I have a song which from acousticbrainz has received the bpm value of “117.203399658” , beets will never able to store it correctly in the TBPM tag. In fact, repeated `beet write´ calls will produce the below result:
$ ./beet write title:She\'s Got Balls
AC/DC - High Voltage - She's Got Balls
bpm: 117 -> 117.203399658
$ ./beet write title:She\'s Got Balls
AC/DC - High Voltage - She's Got Balls
bpm: 117 -> 117.203399658
$ ./beet write title:She\'s Got Balls
AC/DC - High Voltage - She's Got Balls
bpm: 117 -> 117.203399658
It seems that the write command does not round the figure but probably mutagen does. However, with the library allowing the bpm value to be a float, in cases like this there will never be an end to this.
The ‘BPM’ frame contains the number of beats per minute in the
main part of the audio. The BPM is an integer and represented as a
numerical string.
Let me throw my 2 cents in here. I am a fanatic of precision but at the same time I am also quite pragmatic. Is there anyone out there who uses the decimal figures of the bpm value? Can’t we just say that 117 is good enough for 117.203399658?
Solution?: I don’t have one but I would go for something that would allow the user to decide through configuration. Something like:
library_item_field_type:
bpm: (int|float)
# ...
and then preconfigure it to adhere to the ID3 specs. This way we solve the problem (probably for the majority) but if someone wants he/she can still use float.