Reconcile local sinks on successful CC and ALSA emission - #238
Closed
jpremill wants to merge 1 commit into
Closed
Conversation
…sion Parameters published through local sinks (ALSA audio and MIDI CC) receive no remote echo from MOD-UI. Without explicit reconciliation upon successful send, param._confirmed was never updated, causing parameter edits in Parameterdialog to bounce back to initial boot values on subsequent events. - Call param.reconcile(param.value) in _publish_audio and _publish_cc - Add regression tests in tests/v3/test_parameter_edit_rollback.py - Update CHANGELOG.md
jpremill
force-pushed
the
fix/parameter-commit-rollback
branch
from
August 15, 2026 14:51
99263b6 to
7eb7ea2
Compare
Author
|
@sastraxi last night I saw this issue and I swear it was fixed but now I'm not sure it even helps it. Closing this for now. I deployed last night to my device and it did work... odd |
Collaborator
|
Hmm. The non-echoing sinks shouldn’t need reconcile, they’re meant to be commit only iirc. If you can provide repro steps (make sure you’re on the latest OTA MOD-UI as well as pi-stomp via Updates and Recovery) happy to jam on a solution together |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes an issue where editing a parameter via
Parameterdialog(or local hardware controls) causes the value to snap back to its initial boot/preset setting on subsequent events. I encountered this while goofing around with the settings.Root Cause
Under the strict 3-motion parameter model (
preview,reconcile,commit), edits published throughcommit(value, sink)remain in a pending state until areconcile()confirms the change.While standard plugin parameters receive an asynchronous
param_setWebSocket echo from MOD-UI, local non-echoing sinks (_publish_audiofor soundcard ALSA writes and_publish_ccfor hardware-bound MIDI CCs) receive no remote echo frommod-hostor MOD-UI. Becauseparam.reconcile()was never called for these sinks,_confirmedwas permanently stuck at the initial value, causing any subsequent touch, expression input, or sub-range recalculation to roll the parameter back to its boot-time value.Changes
modalapi/modhandler.py:- Explicitly reconcile
param.reconcile(param.value)within_publish_audioand_publish_cconce the write / CC emissionsucceeds.
tests/v3/test_parameter_edit_rollback.py:- Added TDD regression tests verifying NAV encoder step updates in
Parameterdialog, safety rollback when_is_pedalboard_loadingis active, and confirmation for CC-bound parameters.CHANGELOG.md:- Added changelog entry under
### Fixed.Verification
uv run pytest tests/v3/test_parameter_edit_rollback.pypasses (3/3).