mouse mid(wheel)-button click will reset/center to default value of the "direct access" parameter value;
Shift- or Ctrl+wheel turning will change the "direct access" slider value up or down; without the shift/ctrl keyboard modifiers it just serves to scroll the plugin list as usual;
I never would have figured it out... did anyone else know?
Another hidden feature I was unaware of. Figuring something like this out isn't easy.
Now I understand that if you didn't use Ctrl/Shift, you could accidentally change values when scrolling through the plugin rack when it's full.
Another issue is that if you drag, you can see the change in the tooltip, but the drag isn't precise.
With the mouse wheel, it's more precise because it's step-by-step, but you don't see the tooltip.
I think this is the biggest flaw in the quick access feature. You can't see the numerical value; I think it should always be visible in the interface... but it's also true that I've tried and haven't found a solution... There simply isn't enough space; you either read the plugin name/alias or the value. Both don't fit.
Changing the scale seems to fix it... if the number of options is high... However, I've realized that my proposed solution doesn't work.
If the number of options is small, the slider gets stuck when rounding, even with [SHIFT].
For integer parameters, the number of available steps would need to be known in advance. I'm not sure if this information is available.
// Compatible with integer and decimal values
fDelta *= 0.5f;
if (pWheelEvent->modifiers() & Qt::ControlModifier) {
// Change scale depending on whether it is integral or not.
if (!pDirectAccessParam->isInteger()) {
fDelta *= 0.5f;
} else {
fDelta *= 0.1f;
}
}
fValue = pDirectAccessObserver->valueFromScale(
fScale + fDelta, bLogarithmic);
//If it's integral, we round up
if (pDirectAccessParam->isInteger())
fValue = round(fValue);
pDirectAccessParam->updateValue(fValue, true);
I've noticed that 10 is a more appropriate value for coarse integer adjustment. In fact, it's the increment value in the integer spinboxes when you press [CTRL] in the plugin properties window.
I'm not sure if it would be worthwhile to change in properties window to [SHIFT] instead of [CTRL] to maintain consistency with integer values in Direct Access.
However, for floating-point values, [CTRL] currently already works fine-tuning, just like in Direct Access.
re. Mouse Wheel speds to control "Direct Access" in plugins...
yes it is
got that?
:O re. Mouse Wheel
I never would have figured it out... did anyone else know?
Another hidden feature I was unaware of. Figuring something like this out isn't easy.
Now I understand that if you didn't use Ctrl/Shift, you could accidentally change values when scrolling through the plugin rack when it's full.
Another issue is that if you drag, you can see the change in the tooltip, but the drag isn't precise.
With the mouse wheel, it's more precise because it's step-by-step, but you don't see the tooltip.
I think this is the biggest flaw in the quick access feature. You can't see the numerical value; I think it should always be visible in the interface... but it's also true that I've tried and haven't found a solution... There simply isn't enough space; you either read the plugin name/alias or the value. Both don't fit.
Thank you for letting me know.
re. Mouse Wheel to control "Direct Access" in plugins...
now seen in qtractor >= v1.6.1.9git.b036fe
thanks
re2. Mouse Wheel to control "Direct Access" in plugins...
It's now functional and useful. Thank you very much.
The faders in Qtractor allow for coarse adjustments using the "mouse wheel" and fine adjustments with "mouse wheel + [CTRL]".
I think it would be useful to have in "Direct Access":
Coarse Adjustment: mouse wheel + [SHIFT]
Fine Adjustment: mouse wheel + [CTRL]
What do you think?
re. coarse/fine adjustments...
granted in qtractor >= qtractor >= v1.6.1.10git.387999
cheers!
re. coarse/fine also for integrals
Despite everything, it still falls short for, for example, the programs of an SF2... but at least both types will have coarse and fine adjustment.
re2. coarse/fine also for integrals
Changing the scale seems to fix it... if the number of options is high... However, I've realized that my proposed solution doesn't work.
If the number of options is small, the slider gets stuck when rounding, even with [SHIFT].
For integer parameters, the number of available steps would need to be known in advance. I'm not sure if this information is available.
// Compatible with integer and decimal values fDelta *= 0.5f; if (pWheelEvent->modifiers() & Qt::ControlModifier) { // Change scale depending on whether it is integral or not. if (!pDirectAccessParam->isInteger()) { fDelta *= 0.5f; } else { fDelta *= 0.1f; } } fValue = pDirectAccessObserver->valueFromScale( fScale + fDelta, bLogarithmic); //If it's integral, we round up if (pDirectAccessParam->isInteger()) fValue = round(fValue); pDirectAccessParam->updateValue(fValue, true);re3. coarse/fine also for integrals...
yes, you can infer the number of steps from minimum and maximum values:
hth.
re4. coarse/fine also for integrals...
I've managed to solve it with a different approach.
...line:1632 if (pDirectAccessObserver) { const bool bLogarithmic = pDirectAccessParam->isLogarithmic(); float fValue = pDirectAccessObserver->value(); const float fScale = pDirectAccessObserver->scaleFromValue( fValue, bLogarithmic); float fDelta = (pWheelEvent->angleDelta().y() < 0 ? -0.1f : +0.1f); if (!pDirectAccessParam->isInteger()) { fDelta *= 0.5f; if (pWheelEvent->modifiers() & Qt::ControlModifier) fDelta *= 0.5f; fValue = pDirectAccessObserver->valueFromScale( fScale + fDelta, bLogarithmic); // Case integer } else { if (pWheelEvent->modifiers() & Qt::ControlModifier) fValue = fValue + (fDelta * 10); if (pWheelEvent->modifiers() & Qt::ShiftModifier) fValue = fValue + (fDelta * 100); } pDirectAccessParam->updateValue(fValue, true); ...re4. coarse/fine also for integers and booleans...
what about this?
check it out,... please?
cheers
re5. coarse/fine also for integers and booleans...
It works great! Thanks!!!
I've noticed that 10 is a more appropriate value for coarse integer adjustment. In fact, it's the increment value in the integer spinboxes when you press [CTRL] in the plugin properties window.
I'm not sure if it would be worthwhile to change in properties window to [SHIFT] instead of [CTRL] to maintain consistency with integer values in Direct Access.
However, for floating-point values, [CTRL] currently already works fine-tuning, just like in Direct Access.
float fDelta = (pWheelEvent->angleDelta().y() < 0 ? -0.1f : +0.1f); if (pDirectAccessParam->isToggled()) fDelta *= 10.0f; else if (pDirectAccessParam->isInteger()) { const float fNumSteps = pDirectAccessObserver->maxValue() - pDirectAccessObserver->minValue(); fDelta *= (10.0f + fDelta) / fNumSteps; if ((fNumSteps > 10.0f) && (pWheelEvent->modifiers() & Qt::ShiftModifier)) { fDelta *= 10.0f; // <<<<<<<<<<<< Work better with 10 } } else { fDelta *= 0.5f; if (pWheelEvent->modifiers() & Qt::ControlModifier) fDelta *= 0.5f; } fValue = pDirectAccessObserver->valueFromScale( fScale + fDelta, bLogarithmic);re6. coarse/fine also for integers and booleans...
made it to qtractor >= v1.6.1.11git.b9a1e1
enjoy!
re. enjoy!
I'll enjoy it, no doubt about it.
It's a significant improvement in usability. :)
Add new comment