-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Force findNthBeat to return mutliples of beatlength and adapt tests #2196
Conversation
Unfortunately now three tests are failing on AppVeyor:
|
The rest looks good. Now we need some manual tests. |
Yes, you are right, and as far as I can tell the failing tests rely on values that were determined experimentally before, so it's only natural that they fail.
Let's test this in a few sets and afterwards if you let me know how to generate the experimental values, I'll enter new ones. |
If you are sure the unit test should succeeded, you can download the long https://ci.appveyor.com/api/buildjobs/ssrti50d67xljp2m/log |
I finally got around to play a few sets with this commit. I couldn't notice any difference, but being a beginner DJ I surely haven't covered all. Transport controls, looping, beatgrid setting all seem to work fine. |
The rounding of play positions to integer sample or frame boundaries is found at many places in the engine code and needs to be removed carefully. This PR seems to be a step in the in the right direction and we should consider including it in 2.3.0. LGTM. @daschuer Merge? |
Consistently using frame instead of sample positions inside the engine code would help to write more robust code. But this migration will be large and difficult task... |
The CI issues are unrelated. Merge? |
Oh sorry for the delay. This slipped through. |
The changes in beatgrid.cpp cause many failed debug assertions in quantizecontrol.cpp:
|
Please compile and test with debug assertions enabled and debug_assertions_fatal=1. |
If it takes time to sort this out I recommend to revert the changes until all issues have been resolved. |
This broke master builds:
|
Related?
|
Removing the debug assertion doesn't seem to cause any further issues. It might have become obsolete, see #2334. I don't see any test failure on master, BeatGridTest passes. |
I also added a note to the Wiki for future builds: https://www.mixxx.org/wiki/doku.php/compiling_on_linux#developer_build_options Developers are strongly advised to use these options for testing their builds. Otherwise violated debug assertions may not be noticed during testing as we have seen. Unfortunately |
Instead of suggesting developers use an optional flag, how about we turn it on by default and only disable it on the build servers? |
After switching to CMake I forgot to add those additional flags to my build scripts. I agree, the debug build options should better be opt-out instead of opt-in! |
The macOS tests are failing because of rounding errors. This is independent of the debug assertion. |
I've added some test fixes to #2334. The |
I guess we have many users compiling Mixxx for live usage and only some developers. So I think the default build should be a live usable version. How about add a script that generates an optimized Version for developing? I am just afraid that we will get complains about crashes due to assertions. |
Scripts are non-portable and all other build options need to be customized. In this case documentation is the only option. |
Follow-up #2196: Remove obsolete debug assertion
Master builds are passing on all platforms after #2334 has been merged: https://builds.renegadetech.mixxx.org/job/master-release/882/ |
This is a spinoff of #2186 .
When using the findNextBeat-function (and associated functions), I noticed that the returned sample is not always a multitude of the beat length in samples, which is what I'd have expected and what the respective tests also seem to assume. This is particularly true for beatgrids with non-integer bpm.
I adapted the function to respect this again and adapted the test to be checking for an uneven bpm. This could break some other functions though, which is why I opened it in its own PR