What steps to bring back Smooth Panning to MuseScore 4? #18145
Replies: 4 comments 4 replies
-
This is about #15212 |
Beta Was this translation helpful? Give feedback.
-
In 3.x there's // this code implements "continuous" panning
// it could potentially be enabled via more panning options
if (playBack && _cursor && seq->isPlaying() && preferences.getBool(PREF_PAN_SMOOTHLY_ENABLED)) {
// keep playback cursor pinned at 35% (or at the percent of controlCursorScreenPos + 5%)
xo = -curPosL * physicalZoomLevel() + marginLeft + width() * _panSettings.controlCursorScreenPos;
} And this: void SmoothPanSettings::loadFromPreferences()
{
enabled = preferences.getBool(PREF_PAN_SMOOTHLY_ENABLED);
controlModifierBase = preferences.getDouble(PREF_PAN_MODIFIER_BASE);
if(mscore->currentScoreView() != nullptr)
mscore->currentScoreView()->_controlModifier = controlModifierBase;
controlModifierSteps = preferences.getDouble(PREF_PAN_MODIFIER_STEP);
minContinuousModifier = preferences.getDouble(PREF_PAN_MODIFIER_MIN);
maxContinuousModifier = preferences.getDouble(PREF_PAN_MODIFIER_MAX);
// leftDistance = preferences.getDouble(PREF_PAN_DISTANCE_LEFT);
// leftDistance1 = preferences.getDouble(PREF_PAN_DISTANCE_LEFT1);
// leftDistance2 = preferences.getDouble(PREF_PAN_DISTANCE_LEFT2);
// leftDistance3 = preferences.getDouble(PREF_PAN_DISTANCE_LEFT3);
// leftMod1 = preferences.getDouble(PREF_PAN_MODIFIER_LEFT1);
// leftMod2 = preferences.getDouble(PREF_PAN_MODIFIER_LEFT2);
// leftMod3 = preferences.getDouble(PREF_PAN_MODIFIER_LEFT3);
// rightDistance = preferences.getDouble(PREF_PAN_DISTANCE_RIGHT);
// rightDistance1 = preferences.getDouble(PREF_PAN_DISTANCE_RIGHT1);
// rightDistance2 = preferences.getDouble(PREF_PAN_DISTANCE_RIGHT2);
// rightDistance3 = preferences.getDouble(PREF_PAN_DISTANCE_RIGHT3);
// rightMod1 = preferences.getDouble(PREF_PAN_MODIFIER_RIGHT1);
// rightMod2 = preferences.getDouble(PREF_PAN_MODIFIER_RIGHT2);
// rightMod3 = preferences.getDouble(PREF_PAN_MODIFIER_RIGHT3);
// normalWeight = preferences.getDouble(PREF_PAN_WEIGHT_NORMAL);
// smartWeight = preferences.getDouble(PREF_PAN_WEIGHT_SMART);
// advancedWeighting = preferences.getBool(PREF_PAN_WEIGHT_ADVANCED);
// cursorTimerDuration = preferences.getInt(PREF_PAN_SMART_TIMER_DURATION);
controlCursorScreenPos = preferences.getDouble(PREF_PAN_CURSOR_POS);
teleportLeftEnabled = preferences.getBool(PREF_PAN_TELEPORT_LEFT);
teleportRightEnabled = preferences.getBool(PREF_PAN_TELEPORT_RIGHT);
} |
Beta Was this translation helpful? Give feedback.
-
In Mu4 I find this: //! NOTE: Copied from ScoreView::adjustCanvasPosition
void NotationInteraction::showItem(const mu::engraving::EngravingItem* el, int staffIndex)
{
if (!el) {
return;
}
if (!configuration()->isAutomaticallyPanEnabled()) {
return;
} I believe it is pretty save to state that the smooth scoll source code has been removed entirely |
Beta Was this translation helpful? Give feedback.
-
"Correctly" is subjective. To me, the "correct" behavior is for the music to sit still on my piano until I reach my arm out and turn the page (or nod to my page turner to do the same); anything else is just an approximation :-). Even when using continuous view in playback - some of us find it quite disorienting to see the music move while we're trying to read it. Of course, seeing it suddenly jump is disorienting too, but at least that happens only at discrete times and not constantly. So, I see the value of the smooth pan, but definitely would want to continue to have both available. |
Beta Was this translation helpful? Give feedback.
-
I am sticking with MuseScore 3, because I rely heavily on the Smooth Panning feature in MuseScore 3.
With MS3, I am able to turn on smoothPan options in Advanced Settings. Then I can mute an instrument and play along with that part while hearing the other instruments. At no point does the score lurch a whole screen at a time, and at all times I can see what is coming up.
In MuseScore 4, this feature is missing. I've seen it reported, and every time someone reports it, people reply by linking to all the other reports. This is not helpful because all the threads being linked are equally uninformative about what happened to this feature. It does not seem to be assigned to anybody.
If nobody is working on it, I could try my hand at it. I am retired as a senior developer at Microsoft, and am currently working on low key projects. Before I jump in though, I'd like to know some background.
Thanks in advance for any replies.
--David Bangs
Beta Was this translation helpful? Give feedback.
All reactions