-
-
Notifications
You must be signed in to change notification settings - Fork 363
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
Alternate speeds #966
Alternate speeds #966
Conversation
Conflicts: engine/src/chaserrunner.h engine/src/function.cpp engine/src/function.h engine/src/rgbmatrix.cpp engine/src/scene.cpp
* Chaser: save duration mode * ChaserStep: fix fromVariant * FunctionTimings: restore "Duration" loading
Rename timing to speed Add Function::speeds() and Function::speedsEdit() to get/set speeds Add -std=c++11 to get the float utils
overrideSpeeds is an override of m_speeds it is not an alternate speed
* RGBMatrix: done * EFX: todo * Chaser: todo also: * add innerSpeeds/commonSpeeds helpers * alternateSpeedsEdit now returns a FunctionSpeedsEditProxy
EFX done
chaser done sequence todo
sequence done
* move tempo tests from function_test to functionspeeds_test * fix speed beatsToMs utils
legacy VCSpeedDialFunction (without alternateSpeedsIdx) are loaded as inner speeds for chaser, efx and rgbmatrix
@plugz Hi David, welcome back ! :) Wow, this is a massive PR and I'm afraid I don't even know where to start reviewing it unless some more documentation is provided. Also, I noticed you removed the totalDuration methods. Those have a precise meaning which is different from 'duration'. Have you checked that all the Show Manager features still work ? For example stretching a Chaser involved totalDuration. This for now. Thanks ! |
In order to be able to use outer speeds, the elapsed timer should be kept unreseted from the start of the function. Add roundTime() and roundBeats() helpers to keep track of time in the current step.
overrideSpeeds override outer speeds, not inner speeds -> the issue caused by mcallegari#699 is fixed
Hello Massimo, I had another feature to add in this PR, it's done now.
I'll now start adding comments everywhere, and I'll try to explain as best as I can here.
I might try to fix it myself
I'm pretty sure I broke the stretch feature, I'll look into it :) |
This is now overrideSpeeds()
* old "totalDuration" is now "audioDuration"
* Chaser::totalDuration is renamed to totalRoundDuration
Use EFX innerSpeeds, like it was done before
Restore RGBMatrix::totalDuration() as totalRoundDuration()
* Function: add totalRoundDuration(), formerly totalDuration(). ** totalRoundDuration() is the duration of the function if run in "one shot" mode. * Speed: rename switchTempoType to setTempoType to match with FunctionSpeeds::setTempType * Update calls to Function::fadeInSpeed() and friends
This is basically a redo of #877, which fixes #758, #445, #193.
See #877 for info on the alternateSpeeds deal.
What's more in this PR, is that all the speed-related code is now separated from the Function class.
It is present in the FunctionSpeeds class, and the Speed class.
Speed contains the helper functions (add, toString, etc...) and a speed value.
FunctionSpeeds is the group of {fadeIn, hold, fadeOut} speeds.
This PR could be merge as-is, as it should not break the current version of QLC+, but it breaks the build of QLC+5.
What still needs to be done: