-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Refactor and improve Tap Tempo #8098
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
base: master
Are you sure you want to change the base?
Conversation
Not needed
Removing friend access to TapTempoView in TapTempo helps with the GUI/Core split
Now averaging over a few intervals
This helps minimize jitter, which are small fluctuations over time that happen quickly between BPM estimates
|
I've tested, and found no issues. This is definitely an improvement from master. I think perhaps there should be a label upon opening the tool saying something like "Click to begin". |
Thanks for testing!
Yeah, an indicator might be better UX. I'll look into adding that. |
Early taps (as well as taps with high interval variance in general) need more responsive BPM updates so we can get to a target range quickly. Once we have reached the target BPM range, we want the BPM readings to become more stable as the user trying to tap with more consistency. We use EMA to reduce jitter in the BPM readings, but the amount of smoothing we apply should change dynamically to align with how the user is tapping. Adaptive EMA scaling adjusts the smoothing factor dynamically to account for this based on how much the tap intervals vary. If the variation is high, then the BPM updates are more responsive (allowing for rapid changes). If the variation is low, then the BPM updates are less responsive (slower, more stable changes).
|
I added the "Click to begin" indicator as well as another major improvement to the BPM calculation @AW1534 👍 |
|
The indicator is definitely a good improvement. I don't notice the difference to the BPM calculation, but i tested and it works well |
The problem was more noticeable in the beginning when trying to tap to a high tempo as it would take a long time for it to ramp up. I just added a feature that solves this to a certain degree. |
So the metronome doesnt play the incorrect sound after a reset
This PR improves the Tap Tempo tool, refactoring its code and providing a more robust BPM calculation algorithm.
Changes
friendaccess toTapTempoView, etc)