@@ -92,6 +92,7 @@ static const Settings::Key IS_CANVAS_ORIENTATION_VERTICAL_KEY(module_name, "ui/c
9292static const Settings::Key COLOR_NOTES_OUTSIDE_OF_USABLE_PITCH_RANGE (module_name, " score/note/warnPitchRange" );
9393static const Settings::Key WARN_GUITAR_BENDS (module_name, " score/note/warnGuitarBends" );
9494static const Settings::Key REALTIME_DELAY (module_name, " io/midi/realtimeDelay" );
95+ static const Settings::Key PEDAL_RELEASE_GAP_MS (module_name, " application/playback/pedalReleaseGapMs" );
9596static const Settings::Key USE_MIDI_VELOCITY_AND_DURATION_DURING_NOTE_INPUT (module_name,
9697 " io/midi/useMidiVelocityAndDurationDuringNoteInput" );
9798static const Settings::Key NOTE_DEFAULT_PLAY_DURATION (module_name, " score/note/defaultPlayDuration" );
@@ -309,6 +310,14 @@ void NotationConfiguration::init()
309310 m_delayBetweenNotesInRealTimeModeMillisecondsChanged.send (val.toInt ());
310311 });
311312
313+ settings ()->setDefaultValue (PEDAL_RELEASE_GAP_MS , Val (0 ));
314+ settings ()->setDescription (PEDAL_RELEASE_GAP_MS , muse::trc (" notation" , " Pedal release gap for playback (in milliseconds)" ));
315+ settings ()->setCanBeManuallyEdited (PEDAL_RELEASE_GAP_MS , true , Val (0 ));
316+ settings ()->valueChanged (PEDAL_RELEASE_GAP_MS ).onReceive (this , [this ](const Val& val) {
317+ mu::engraving::MScore::pedalReleaseGapMs = val.toInt ();
318+ m_pedalReleaseGapMsChanged.send (val.toInt ());
319+ });
320+
312321 settings ()->setDefaultValue (USE_MIDI_VELOCITY_AND_DURATION_DURING_NOTE_INPUT , Val (true ));
313322 settings ()->valueChanged (USE_MIDI_VELOCITY_AND_DURATION_DURING_NOTE_INPUT ).onReceive (this , [this ](const Val& val) {
314323 m_useMidiVelocityAndDurationDuringNoteInputChanged.send (val.toBool ());
@@ -340,6 +349,7 @@ void NotationConfiguration::init()
340349
341350 mu::engraving::MScore::warnPitchRange = colorNotesOutsideOfUsablePitchRange ();
342351 mu::engraving::MScore::warnGuitarBends = warnGuitarBends ();
352+ mu::engraving::MScore::pedalReleaseGapMs = settings ()->value (PEDAL_RELEASE_GAP_MS ).toInt ();
343353
344354 // Restore stored grid size values
345355 mu::engraving::MScore::setHRaster (settings ()->value (HORIZONTAL_GRID_SIZE_KEY ).toInt ());
@@ -987,6 +997,21 @@ async::Channel<int> NotationConfiguration::delayBetweenNotesInRealTimeModeMillis
987997 return m_delayBetweenNotesInRealTimeModeMillisecondsChanged;
988998}
989999
1000+ int NotationConfiguration::pedalReleaseGapMs () const
1001+ {
1002+ return settings ()->value (PEDAL_RELEASE_GAP_MS ).toInt ();
1003+ }
1004+
1005+ void NotationConfiguration::setPedalReleaseGapMs (int ms)
1006+ {
1007+ settings ()->setSharedValue (PEDAL_RELEASE_GAP_MS , Val (ms));
1008+ }
1009+
1010+ async::Channel<int > NotationConfiguration::pedalReleaseGapMsChanged () const
1011+ {
1012+ return m_pedalReleaseGapMsChanged;
1013+ }
1014+
9901015bool NotationConfiguration::useMidiVelocityAndDurationDuringNoteInput () const
9911016{
9921017 return settings ()->value (USE_MIDI_VELOCITY_AND_DURATION_DURING_NOTE_INPUT ).toBool ();
0 commit comments