BPM?

I've been recently tagging my files in my self created naming system. And I can see it has a small fault

I have 4 categories that describe the "tempo" [because it is the tempo + mood]. But seldom some track I can describe as the slowest in one category and the quickest in other category- and I have to choose one of the possibilities

So I was wondering, if it could be possible to manually tag only the mood and at the same time to have the tempo tagged automatically

The manual mood part would be the same bidding of mine that it is now. But I would need a way to detect the tempo and put it automatically in some tag field. What software / method could I use to test this new approach for setting my categories. I don't know if I will eventually need this or how exactly the whole process should work, so please, give your thought for the working of a whole system [maybe you have something similar in your set of files] and explain in simple words how the whole tempo thing could / should be approached

For BPM analyzing there are different tools in the world ...

... and surely some other tools too.

As a long time user of Mixmeister BPM Analyzer, recently I switched to foobar2000 BPM Analyzer, ...
because this is rather exact like Mixmeister, but doubled faster.
Handling is self explaining, otherwise look into the specific manual.

DD.20150808.1723.CEST

After installing, MixMeisterExpress could not run because my system was lacking iLok License Menager. And it also apparently installed some Bonjour software, without even asking. So let's leave this piece of software right there

AS for Foobar2000

I downloaded the also needed component BPM Analyser http://www.foobar2000.org/components/view/foo_bpm

I've made a test. I selected only [250] fast / loud / energetic tracks [that I use in RPGs for action scenes]. And those tracks are pretty much consistent, meaning that they do not have an 30 seconds slowly building up intro or a minute lasting breakdown after first 2 minutes; those are score tracks, consisting sometimes only of [fast] fragments of original compositions

Then I've ran the automatic process and looked for files under 100 BPM: in result I had 20 tracks And 18 of them are for me an absolute no case on this subject [meaning an fatal error]

This test showed me that if I were to relay on this automatic process, I would be pretty much useless, because I would have a lot of errors. [And I also listened to them once more, just to be sure they were previously labeled by me correctly; and also listened to non action tracks, that were around 100 BPM]. Alternatively, I can evaluate the BPM manually, but that would take me insane amount of time. So, given that some inaccuracies [false results] will show up, unless I measure all of BPMs myself, isn't his new approach a futile task? In the sens it will fix one issue but create another? My current system is also manual but without errors, just with some info left out; but when using BPMs I would still need to merge them with my [modified] manual system

On this wiki page http://wiki.hydrogenaud.io/index.php?title...r_%28foo_bpm%29 there is a warning about limitations. As some inaccuracies are something that I expected to happen, I do not know what this means: "If a BPM result is obviously double or half of its true BPM, select it in the list of results, then click the Double BPM or Halve BPM buttons". I mean, I know that what it does is making a 200% or 50% from the established value. What I don't understand is, how such wrong values can be happening?

So the question is: why does the Foobar do such inaccurate measurement? I takes just samples of a track? Is there a software that analyzes whole file?

Or maybe the problem is not the software, but the tempo itself? Wikipedia entry on this subject stands that "Higher BPM values are therefore achievable by increasing the number of drum beats, without increasing the tempo of the music". And that is my issue, but in reverse [although I doubt that music "works" that way]

The article also says: "The speed of a piece of music can also be gauged according to measures per minute (MPM) or bars per minute, the number of measures of the piece performed in one minute". Maybe I could use this approach [with what software]?

Aside from the main problem: can you assure me, from your own expierience, that applying an BPM via Foobar, won't mess up my other tag field, even those made up by me [assuming I will only use Foobar for it's BPM option]? Have you been using it a long time and have not encountered some type of glitches / bugs, resulting in data loss?

Why should anyone give such a statement [without the knowledge of the EXACT environment - and even then...]?
What would that statement be worth?
Haven't the majority of the questions been asked in the wrong forum i.e. MP3tag instead of foobar?

Aside from this: most of the threads in this forums offer suggestions. No-one forces you to accept any of them. And even if you do: it is all at your own risk.
DetlevD was kind enough to point you in some directions as you (as you said yourself) did not know what to look for.
If DetlevD's ideas help you: fine.
If they don't - pity, but that's the way it is.

As you have invested some time into the topic (just as DetlevD has by thinking about your query and writing down an answer), it will be interesting to hear if you find a better way.

(Just a little more maths: 18 tracks out 250 were not up to mark - that is 14%. So now you have 14% inaccurately tagged tracks and 86% that are ok as opposed to 100% without BPMs in it ... to me this looks like progress.)

You did not get the right software called "MixMeister BPM Analyzer" (bpmanlyz.exe 666kB)"

DD.20150811.1420.CEST

It would have a similar value to me, if you or me vouched to someone for reliability of Mp3tag, which would come from our experience with this software? In similar way that I was dissing back in the date to my associates about Microsoft's Front Page as a choice for an HTML editor? That's what I meant and hoped for

Well, if I won't come out with enough info from this forum and my tests, I will have to ask for help on Foobar's

Ultimately, I will surely post come kind of conclusion

No, no, no

I've only checked files up to 100 BPM; from an action oriented set of 250 files. Overall, those 250 files are suppose to be in a BPM range from 75 to 195. And the 18 is the number of errors, from a 250 set narrowed down to supposedly 20 slowest files. The correct conclusion from this is: 2 out of 20 files were [to some extent] correctly tagged as slow; 90% were extreme errors. [And in that set of 250 files I have much more easy-to-judge cases, that in the remaining 80% of my still uncategorized files; which will probably result in even more errors]

But even 10-15% would be giving me something like 3-5 times more [automatic errors] than my [manually] left out info on purpose

####################################################
I've made a mistake- not 20 but 26 files, from the set of 250. My later posts will relate to the number 26

How lame of me...

I had some problem finding bpmanly.exe for download, I had Google it out with the magic code

intitle:"index.of" (exe) bpmanlyz

I did a second test with it: only on those 20 files, dubbed by foobar2000 as the slowest ones

Results:
1] Instead of range 75-100, I came up with BPM range from 85 to 163
2] Two files had almost the exact BPM as they did in foobar2000; and remaining twenty four tracks came with higher values
3] Three files came up as below the 100 BPM
4] FLAC files to be converted to MP3 format

And also:
5] One of those two FLAC files, after converting it to MP3 was analyzed in Foobar as 195 BPM, as opposed to 99 in it's previous format

Conclusion: MixMeister did a much better job, at least on this very limited set of action tracks; but still committed some [at least three] unacceptable errors

Further conlusion: a third software should be used for comparison

Possible overall conclusion: automatic measurement of BPM instead won't save my time and produce errors, making by tagged set of files quite unusable

First of all, automatic BPM detection usually works best on Music which has 4/4 measure.
That includes EDM, Pop, etc...

Secondly common mistake that any BPM detection software does is that it counts BPM twice as fast or twice as slow as it should actually be.
So I created some actions to fix those, maybe someone else would find those to be useful as well...

If you want I could do comparision on Mixed In Key software :wink:
Also you could try Rapid Evolution, which should have pretty decent BPM detection algorithm.

In my personal experience Mixmeister software is not very good on producing accurate BPM or Key results.

Little bit of reading about different BPM detection algorithms: http://article.programmersheaven.com/Patin...nAlgorithms.pdf
It also explains, why it is so hard for computers to get it done accurately.

Convert_BPM__Double_BPM.mta (40 Bytes)

Convert_BPM__Halve_BPM.mta (41 Bytes)

.

I've tested the Abyssmedia BPM Counter, on those same 26 files

Results:
1] Instead of foobar's range 75-100, I came up with BPM range from 75 to 166
2] Five files had exact or almost exact BPM as they did in foobar2000; and remaining twenty one tracks came with higher values
3] Twelve tracks came with exact or almost exact BPM as they did in MixMeister; and of remaining fourteen tracks eight came with higher values and four with lower
4] No FLAC support

I've tested also fourth software, the Rapid Evolution 3 [beta 58], on those same 26 files

Results:
1] Instead of foobar's range 75-100, I came up with BPM range from 75 to 160
2] Two files had exact or almost exact BPM as they did in foobar2000; and remaining twenty four tracks came with higher values
3] Fourteen tracks came with exact or almost exact BPM as they did in MixMeister; and of remaining twelve tracks nine came with higher values and three with lower
4] Sixteen tracks came with exact or almost exact BPM as they did in Abyssmedia BPM Counter; and of remaining ten tracks three came with higher values and seven with lower

That is what I can imagine right now, after those tests: that this will work for pop / radio / club songs, and not for not-so-regular-in-structure score music [although those action tracks are more consistent and regular that my music from other RPG categories]

And that is, why they did include that sort of correction as an additional manual option in foobar2000...

So the process is automatic only in theory. Because I would have to listen and possibly click a proper action for manual evaluation after the automatic one. And thus it seems I can refrain from BPM system at all and just should use description like slow / normal / fast. Because digital values 125 / 149 / 176 won't tell me much [and could be erroneous] but normal / quick / quicker would be easier to use [accurately to choose from for RPG usage] later on

I've also found this post with helpful actions for users of BPM: /t/7295/1

If it is not a problem; I can send you a PM with a link to a ZIP pack with those tracks

And then you would have to send me them back; or just a list of titles with BPM values

That would be fifth and final test

And I did, after your suggestion

Didn't understand much, but thank you for this screed

But from those four tests I can see now quite clearly, that this is getting me nowhere near, what I need. Instead of making things easier, speeding them up and making more accuracy in categorizing, with [automatic] BPM I would only produce unknown amount of errors. As foobar's 50% / 200% correction option would give some hope with a system relaying on BPM, it does not "add up" to other results [for example file counted in foobar2000 as 76 in other comes up as 90, 115 and 167 - nowhere near the 152]; so it clearly indicates a need for manual evaluation. And on top of that, there is also issue of FLAC files, not processed by every software

And also what is important here, each of those four programs have listed as slow [no higher that 100 BPM] at least three action oriented tracks [out of twenty six]

So I'm willing to make a statement, that automatic BPM does not work [at least for my purposes]

Alternatively: I could add four BPM values and divide the result by four [and even making an action for it]. But I'm afraid I would get something like 110-120 BPM for 80-90% of action tracks, resulting in no distinction between them on the basis of BPM tag

Or just tap manually to the beat of 10 000+ files from various scores, which sums up to 16 days of non stop listening; and then evaluate few hundreds tracks that are not from score albums / sources, but still can be used for RPG background / illustration

Does anyone has other thoughts or can speak from own experience?

Thanks, I did not know such topic even existed around here, will look into that as well.

I think easier would me to send you back the values, not entire files... :wink:

In my experience, there is no 100% reliable and accurate way, unless you would do it with metronome and manually...
Every algortithm can produce some errors and inaccuracies...some are better then others on different types of music.

Nice example is a song, that starts with 119BPM and ends with 166BPM, what would be the correct BPM value to write TAG? :laughing:

With the help of user Etz, those same 26 files were tested in fifth software, Mixed In Key

Results:
1] Instead of foobar's range 75-100, I came up with BPM rang from 80 to 155
2] Five files had exact or almost exact BPM as they did in foobar2000; and remaining twenty one tracks came with higher values
3] Sixteen tracks came with exact or almost exact BPM as they did in MixMeister; and of remaining ten tracks four came with higher values and six with lower
4] Seventeen tracks came with exact or almost exact BPM as they did in Abyssmedia BPM Counter; and of remaining nine tracks four came with higher values and five with lower
5] Seventeen tracks came with exact or almost exact BPM as they did in Rapid Evolution; and of remaining nine tracks four came with higher values and five with lower

As for more comprehensive comparison, here are all BPM results in form of spreedsheet [in formats: XLSX, ODS, DIF]. It lists BPM values from
1] foobar2000 [treated as benchmark]
2] MixMeister
3] Abyssmedia
4] Rapid Evolution
5] Mixed In Key

and as a bunus

6] the energy value from Mixed In Key

These values go like this:

soft 1    soft 2    soft 3    soft 4    soft 5        energy

75.xx    120.22    120.17    120.17    120.xx        4

75.xx    113.00    075.19    075.19    113.xx        6

75.xx    113.49    150.79    108.50    149.xx        4

75.xx    119.26    093.48    139.90    140.xx        4

76.xx    112.52    109.33    111.80    110.xx        4

76.xx    115.48    166.60    090.00    155.xx        4

78.xx    121.01    120.94    120.50    121.xx        5

78.xx    133.23    137.15    086.00    129.xx        5

80.xx    161.06    080.55    120.70    081.xx        6

80.xx    160.00    079.97    159.70    080.xx        7

81.xx    121.99    121.99    123.30    122.xx        6

81.xx    162.86    081.54    081.70    081.xx        4

82.xx    095.07    127.63    127.63    094.xx        4

82.xx    123.99    123.99    123.90    124.xx        4

85.xx    084.88    111.80    111.80    085.xx        4

88.xx    132.00    132.02    131.80    132.xx        7

89.xx    113.55    094.53    099.40    092.xx        4

90.xx    134.99    134.54    135.20    135.xx        6

91.xx    137.00    137.05    137.10    137.xx        5

91.xx    137.00    091.39    137.10    137.xx        5

92.xx    138.06    138.08    138.00    138.xx        7

93.xx    131.92    115.65    098.80    098.xx        4

93.xx    140.10    140.24    140.20    140.xx        6

99.xx    133.16    134.53    134.53    135.xx        4

99.xx    132.77    132.38    132.38    134.xx        5

99.xx    099.21    128.33    131.50    132.xx        4

So, If one were to assume, that 4 out of 5 same or similar results from this test should be viewed as the correct value [ignoring the, sometimes, completely different fifth one], it gives 16 out of 24 automatically rated tracks. And from the remaining 8, there are 3 like a split [2 for one value and 3 for some other value]

Let's see now, how an automatic BPM based system would have to work and what would have to be required / considered for it, to be even more accurate than the methodology in those 5 tests:
1] Usage of something like 10 different pieces of software [the more, the better]
2] Some software do not process files in formats other that MP3 and / or WAV [which means additional steps / time for FLAC and other files]
3] Some software do not come as free of charge
4] Each software can potentially change / damage other tag fields [don't know how and when, but one of the first three software added zero in front at the beginning of DISCNUMBER tag fields]
5] After each automatic evaluation, files would have to be loaded to Mp3tag to perform an action on them, to secure [copy] value from %BPM% tag field to some temporary made up tag
6] A range for similarity of BPM would have to be decided upon [100 and 102 BPM can be viewed as one and the same, but how about 100 and 104 or even 107?]
7] A very complex action in Mp3tag would have to be performed [and first written], to check if a value looks like 50% of 2-3 other [similar in their range] values
8] An action in Mp3tag would have to be performed, to see what [similar] value is in 7-8 fields, to produce new one
9] The final [automatic] BPM value can be delivered in form of a arithmetic mean, truncated mean or median; and as such should be limited to the best option
10] BPM numbers are a mathematical "abstract" [and not understood at a glance like a "quick" or "slow" category]

So system like this being called:

  • automatic
  • accurate
  • fast
    will be quite abusive / misleading

I also looked at the energy value from Mixed In Key and compared it to BPM's and to my own manual evaluation. Although in this case the test was done only on 26 pre-selected tracks, it also produced some accurate results and some evaluations similar to BPM value detections. But at the same time it also made some weird choices. And in one special case, it showed clear symptoms for unacceptable inaccuracies

It was the case of an original mix, which had energy valued as 4, and a simple remix of that track with a louder beat, which had a value 6. Both of those tracks have the same structure and length, ad this remix is more like a mix, because the changes in music are pretty small. And how did those two very very similar versions of one track ended up among those 26? Well, foobar2000 valued both of theme as 80, so there were selected by me on the basis of being slow [under 100]. And also all BPMs from other software for those two version were in range from 80 to 82, with the exception of two counts being 162-163 and a one with a 121 BPM measurement [original has 81 x 4 and 163 x 1; the remix has 80 x 1, 81 x 2, 121 x 1 and 161 x 1

[I've also read some <a href="Control The Energy Level - Mixed In Key" target="_blank">info about energy</a>, given to me by the user Etz]

So this energy automatic evaluation would most likely also fail in replacing my current manual tempo + mood system

I think, that's why I decided to use a manual tempo + mood system in my system; in addition to having excerpts of action oriented moments from tracks, when it was seemed necessary

So unfortunately the options for me seems to be:
A] Keep current manual system; which has something like 1-2% inaccuracies [but not errors] for all of the tracks and something like 5-10% inaccuracies for action oriented tracks
B] Split my tempo + mood categories into simple tempo categories and mood categories; which will require even more clicking and in most cased will have same or similar choices
C] Keep current manual system; but add to each track a BPM value but only if they are checked or established manually, thus taking a joy out of music and making it more like a burden than a useull tool for fun related activities

Does anyone see any other solution to this problem of categorizing score and score-like music for RPG session / videogameplay?

Thank you for the spreadsheet overview, ...
is it possible to add the name of the genre or mood of the analyzed music into each row?

DD.20150814.1442.CEST

What genre and mood? Provided by Discogs, iTunes or whatever the seller or record company would label them? That would simply get as nowhere

And mine genre, for all of the starting 250 tracks, was always ACTION; but not always BATTLE or TENSION, and sometimes also others. So you can see, that I would have to first to write down the manual, explaining how to use them

If someone wants to hear for himself or herself the errors, I can upload these 26 tracks with BPM values tagged into them, for the sole purpose of analyzing the outcome data with the input sound material

This would be helpful for the interpretation of the values from the spreadsheet, whether it is a violin serenade or a disco beat music.

DD.20150814.1936.CEST

I will send anyone who asks for this a private message to a link containing this 26 tracks in a ZIP archive

They contain additional tag fields:

%BPM FOOBAR%
%BPM MIXMEISTER%
%BPM ABYSSMEDIA%
%BPM RAPID%
%BPM MIXEDINKEY%
%ENERGY%

After a of thinking and listening to already evaluated tracks, I decided to choose solution B: keep my manual method while at the same time to split my "mood & tempo" tag into separate mood tag and tempo tag

This will require more clicking from me; but in turn will produce the most accurate results possible

[And now I will also create a new topic with a proper description, containing a link to this message with conclusion about BPM; because I think we've managed here to establish some quite valuable info about automatic tempo detection]

This here is about calculating average bitrate, both if someone is interested in calculating BPM then maybe it can be somehow adjusted for that purpose: /t/19540/1