-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support songs which change BPM in the middle #5
Comments
It would be very difficult to auto-detect, since it is using the whole song to try and guess a single BPM. You'd have to detect not only both BPMs, but also when it changes. This tool wasn't really designed to work for complicated tracks or compilations, but someone can feel free to offer code for this feature. |
A quick guess as to how it could work might be to sample the track in chunks and determine the bpm of those chunks, analyze what each beat looks like (amplitude, frequency, etc) and if there is a beat that is outside of some threshold, assume the beat is changing and sample that area for the change. A stepmania editing tool that was released last decade was too accurate in its beat detection and would create massive |
The tricky thing is... most songs do not change BPMs, so looking at the whole song provides more data for picking the right BPM, instead of just looking at chunks in the rare chance BPM changes. Picking the right BPM for constant BPM songs is already not an exact science and not completely accurate... trying to set a threshold for different BPMs within the same song will just lower proper detection rates for the majority of music. Someone is free to try to add an option to attempt detecting multiple BPM rate changes, but it will be very difficult to say the least. |
It's imperfect but generally doable. The question is more about how a beat is defined. Typically in any given song, a beat has some sort of commonality, whether it be the bang of a bass drum or something else, beats are typically visible. so if you can find each beat in a song, you can determine the exact timing between them and convert that to a BPM and average it out over a span of time so that all the 299.985 and all the 301.015 beats come together as a singel span of 300 bpm. |
There is a direct analytical way to do this:
And yer done. 👍 |
I have no clue if this can be auto-detected or not, but there should at least be an option to supply BPM details on the command line.
The text was updated successfully, but these errors were encountered: