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
Allow maximum deck speed of 4x normal #1662
Conversation
Pegasus-RPG
commented
May 11, 2018
•
edited
edited
- Max speed must at least be 2x normal (100%, 1.0) for certain controller pitch range change wraparounds (AA VMS, Reloop TerminalMix) and effects (Stanton SCS.3d) to work. (see Reloop TerminalMix 2/4 :: mapping update #1490 (comment))
- There is a use case for increasing speed beyond 100% such as sample pads or a keyboard sample controller. (Beyond 400% starts to become inaudible so that's a good upper bound. Otherwise there's no need to artificially limit it here.)
- Max speed must at least be 2x normal (100%) for certain controller pitch range changes and effects to work. - There is a use case for increasing speed beyond 100% such as sample pads or a keyboard sample controller. (Beyond 400% starts to become inaudible so that's a good upper bound.)
The DDJ-SX script has just been modified and now explicitly uses the constant 0.9 internally. Might controller scripts be affected by this change? |
There's always the possibility if they just assumed it could never go above 90%/0.9. But there's no way for scripts to query the limits of a MixxxControl so they couldn't have known the previous maximum for sure. (Not having this at least at 100%/1.0 does cause problems with some controllers.) |
(What does the DDJ-SX script do with this information, out of curiosity?) |
Oh, you mean this? mixxx/res/controllers/Pioneer-DDJ-SX-scripts.js Line 1389 in 833eae7
That should continue to work as-is actually. It just won't go above 90% unless the script is modified. |
IIRC this limit was implemented because SoundTouch and/or Rubberband don't really work beyond 90%. |
Sure, but the use cases I mentioned do not depend on key correction. |
how about drawing the keycorrection button or slider alarming red in case this combination would occurre. for example, if I have speed increase of 100 % the keylock button changes to red. if I have the keylock active and start changing the playback speed over a certain threshold, the slider gets red. when I finish the messaging infrastructure we can safely give user feedback |
Ping! Can we merge this? |
Have you tested how this behaves at extreme rate changes with both SoundTouch and Rubberband? |
I have just tested this and I cannot see an issue. LGTM I am planning to improve the usability of the rate slider along with this bug: The first step is to introduce a GUI independent "rate_ratio" control here: |
Please revert this in the 2.1 branch. This should have been merged to master, not a release branch. I raised a serious concern above which was never addressed before merging this. |
Did you mean this concern:
I have tested it extensively and it works. It also has no negative effect, because no one is using the extended range right now. There is no mapping that uses this as a slider so the change will be not notable. |
Okay, thank you for clarifying. Your previous comment did not imply that you had tested that. Regardless, we need to be way more conservative about what goes into release branches. There is no pressing need for this to be changed in 2.1.x and it is hard to predict what side effects it may have by violating an implicit assumption elsewhere in the code. Have we not learned our lesson already from https://bugs.launchpad.net/mixxx/+bug/1777429 ? |
Other parts of the code should not be making such assumptions, as they can check the range of this Control. (The only things that have to make assumptions are scripts, and even those are minimized with the set/getParameter Controls..) |
I agree that other code shouldn't be making such assumptions, but it's not that simple considering the complex relationship between |
You express only an abstract fear, not related to mistakes we have made earlier. |
The issue here is rushing barely tested changes to users and calling them stable. One person manually testing a change like this is an okay standard for merging to the master branch because that gets tested by many people for months before being released. It's really hard to predict what side effects this change may have considering the complexity of the playback speed and sync code. I tested #1679 and it seemed fine -- but no one thought to test whether it might affect hotcues, so we only found out about the regression later from users who had the regression interfere with their use of what they believed was a stable, reliable release. |
How does this interact with https://github.com/mixxxdj/mixxx/blob/2.1/src/engine/bpmcontrol.cpp#L318 ? |
@Be-ing That code correctly uses rate_range to figure out where to put the slider during a sync event. It's not sensitive to what that range actually is. |
With release x.y.z I generally think the z point released should be pretty much purely bug fixes and security updates. New features and anything that even has a slim possibility to break things should go into the y point release. Additionally I remember a fairly recent conversation about possibly changing the way the interpolation/pitch shifting works. One idea was to force linear interpolation for Scratch Mode. I don't know if this is unique code or related to playback speed (eg anything more than a factor of 2 faster/slower.) If such changes are in the pipeline they should probably be considered in tandem to this change.... |