Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_beatit (Read 7050 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_beatit

Implement's fraganator's BPM algorithm, which is multithreaded to run on multiple files at once, depending on amount of CPU cores.
Also implements two others, which are also multithreaded.

https://www.mediafire.com/file/j7j2q6efiqtrkko

Note: download link is a direct one.

foo_beatit

Reply #1
fcuk yeah !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    Thank you !
However I found a problem - when I choose some track on list of calculated BPMs and I choose "double" or "halve bpm" window closes and analysis results are lost. Additionally resizing of window with analysis results causes that buttons "double bpm" and "halve bpm" doesn't move with window edge - they float over track list and simply don't work...

foo_beatit

Reply #2
Very fast
But haven't got good results with default settings. With FFT size 1024 results are much better.

Btw. i copied the settings to foo_bpm and it was nearly as fast as foo_beatit on my system...
But results are very different (almost wrong with foo_bpm then).
Although fraganator's algorithm was chosen in foo_beatit.
Shouldn't both don't give the same results then?

foo_beatit

Reply #3
fcuk yeah !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    Thank you !
However I found a problem - when I choose some track on list of calculated BPMs and I choose "double" or "halve bpm" window closes and analysis results are lost. Additionally resizing of window with analysis results causes that buttons "double bpm" and "halve bpm" doesn't move with window edge - they float over track list and simply don't work...


Fixed.

foo_beatit

Reply #4
Very fast
But haven't got good results with default settings. With FFT size 1024 results are much better.

Btw. i copied the settings to foo_bpm and it was nearly as fast as foo_beatit on my system...
But results are very different (almost wrong with foo_bpm then).
Although fraganator's algorithm was chosen in foo_beatit.
Shouldn't both don't give the same results then?


Not sure, could be due to the different FFT library.

foo_beatit

Reply #5
As far as wrong results belong to the problem of doubled or halved bmp there was once made (if i remember correct) in the foo_bpm thread: defining for a certain genre a certain range in preferences. That means, if you have a hip-hop track with 190 BPM you can be sure that it is 95 BPM instead, if you have a trance track of 73 BPM it should be 146 then.

foo_beatit

Reply #6
Well, reported bug was solved only partially. Buttons don't float anymore and window isn't closed suddenly but halving and doubling BPM does not work anyway. When I press "Double BPM" or "Halve BPM", then calculated value is copied from "BPM" column to "Status" column and tags are stored immediately - for all analyzed files, but unmodified - they are never doubled or halved, they are written just like they were calculated.
But still speed is briliant

foo_beatit

Reply #7
Sounds like this needs more alpha testing, sorry for rlsing it so early.

edit: there, known bugs fixed. Not sure about the FFT issue though.

foo_beatit

Reply #8
How is this different or better than foo_bpm?

foo_beatit

Reply #9
Multithreaded scanning, thats it.

foo_beatit

Reply #10
Hello!  Sorry for bothering, but the link in the starting post is dead.  Is it possible to re-upload it?


Re: foo_beatit

Reply #12
Thanks, Bro!  Five years have passed... :)


Re: foo_beatit

Reply #14
It's really fast. I am evaluating it. It seems to me, I will keep it.
wagner reatto

Re: foo_beatit

Reply #15
Didn't know people found a use for this BS. Maybe I should maintain it. :o

Re: foo_beatit

Reply #16
This tool is no BS at all, it can help to identify tunes with improper speed. Would be great if you could make the columns of the result window have properly aligned sizing allowing to read the values without the need to manually adjust them every time. Also, could the result window be pimped to remember its current size and position?

Re: foo_beatit

Reply #17
First off all, thank you for your plugin. Thank you for your work and private time and amount of your nerves that cost this plugin.
If you don't mind and you have time, maybe you can create filters as explained in detail below. 
https://hydrogenaud.io/index.php?topic=77142.msg702764#msg702764


Hey fraganator,

First off, this is brilliant software, and it almost always agrees with the tempo I hear on a track. Sometimes, of course, it'll report a BPM twice what I think is the BPM for dancing purposes, but for a lot of tracks the tempo is subject to interpretation anyway. What you hear as 200 BPM I may hear as 100 BPM. Kinda depends how you want to dance to it. If you're looking at disco or house, say, there isn't much ambiguity about the tempo in the boob-boom-boom rhythm line. When you get into more complex rhythms, you can have rhythmic stuff going on at, say, 100 BPM and within that at 200 BPM, and as a dancer you could focus on either one or the other, or mix it up. If you're always dancing within a range of 80-120 BPM it's an easy call, and you've provided for that.

I'm DJ'ing for blues dancing, which is a very inclusive scene, musically and dancewise. We play music with tempos ranging from about 50 to 200 BPM, though of course you're doing much different stuff at 200 than at 50. With that kind of range, reasonable people might sometimes differ on whether the dominant rhythm for some track is at 100 or 200. I'll sometimes resort to assigning a BPM of "100+" to a song that feels to me mostly like 100 BPM, but that's busy enough that you could find a 200 BPM tempo in it, if that's where you want to go. Or correspondingly "200-". When things are ambiguous, I generally listen for a recognizable backbeat and figure that it counts as the second of two beats. There can still be sort of secondary backbeats between those beats, but at least it's a start.

Now, it isn't a whole lot of trouble for us to decide if our notion of the tempo is half, same or twice the BPM reported by foo_bpm, and it's great that you include the option to easily adjust BPM's accordingly. But if you really want foo_bpm to guess right more often, I'd suggest trying to distinguish backbeats from downbeats, to come up with the BPM that'll mostly match what people hear as the tempo.

I'm not going to attempt to understand your algorithm for identifying beat patterns, but I think it may be fairly straightforward to distinguish backbeats from downbeats. When you hear a boom-chk-boom-chk rhythm in popular music, the downbeat "boom" is generally laid down by the kick drum and/or bass, while the backbeat "chk" will generally be a sharper sound from, say, a snare or small tom-tom. Or comparable electronic instruments. I've been messing around with some parametric filters, and in most of the music I've tried those on you can generally capture the downbeats using a bandpass filter centered around 50-60 Hz, or a low pass filter that's down about 10dB at 200 Hz. You can typically isolate backbeats with a bandpass filter centered at about 500 Hz, dropping out the deeper downbeats as well as any cymbal beats, which can be very regular but which don't necessarily correspond to either downbeats or backbeats. So if you really want to invest the effort, you could try applying those filters and look for alternating downbeats and backbeats. Then see if a revised version of foo_bpm reports the tempo you hear more often than the current one.

Thanks very much for this component, and have fun widdit,
Drew


I think he talking about add to this plugin some filters like: 
1. Bandpass filter centered around 50-60 Hz,
2. Low pass filter that's down about 10dB at 200 Hz,
3. Filter that able isolate backbeats with a bandpass filter centered at about 500 Hz, dropping out the deeper downbeats as well as any cymbal beats, which can be very regular but which don't necessarily correspond to either downbeats or backbeats.



Re: foo_beatit

Reply #18
Hi, I finally installed this component and tested against foo_bpm. The only thing for which I can't remove foo_bpm is automatic updating of tags which does not work with foo_beatit although set properly in Preferences (I've already tried to uncheck and check again and looked into both BPM Analyser branches in Preferences). Otherwise great work and thanks for it and although it is not much faster on my computer than foo_bpm it would be nice to see this component's development continued :-).

Re: foo_beatit

Reply #19
[...]although it is not much faster on my computer than foo_bpm [...]
It is faster when used on multiple files at once due to its multithreading support, which foo_bpm does not offer.

Re: foo_beatit

Reply #20
Didn't know people found a use for this BS. Maybe I should maintain it. :o

No B.S at all.
Very useful plugin for detection of tracks where drumming is simple, like most common styles like pop, trance, dance, electronic music, etc.
But for metal and jazz this plugin not really useful.

Re: foo_beatit

Reply #21
Maybe I should maintain it. :o
Sorry to destroy everyone's hope looking for an update to this nice component. Apparently, this ain't going to happen, according to mudlord's post here.

Re: foo_beatit

Reply #22
Source code is here if people want to maintain instead.

Re: foo_beatit

Reply #23
That's quite a nice gesture. Thank you, mudloard, it's much appreciated. Hopefully, someone with the required skills will take over.