Repository navigation
Editor: the panel is controlpanel, with patch pads and LED-ring encoders - #48
Merged
Merged
Conversation
panel.py goes; mpvst_panel keeps EngineAdapter and re-exports controlpanel's build and Panel. controlpanel is frozen into the engine beside pydevices. mpvst_panel_follow runs the real adapter and panel in the engine and checks a host program change moves every encoder and LED ring. The editor smoke test clicks the first encoder (a click no longer moves anything) and turns it with the wheel.
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.
The editor's panel becomes
controlpanel(PyDevices/pydevices#368), a hardware-style panel: patch pads in banks A to H, an encoder with a 16-LED ring per macro, a dot-matrix display, an engine light, and FINE, BYPASS and RELOAD buttons.lib/mpvst_panel/panel.pygoes.mpvst_panelkeepsEngineAdapter, unchanged, and re-exports controlpanel'sbuildandPanel, sompvst_editor.pydoesn't change.It follows a patch change from the host. The adapter's macro echoes on a program change (#42) move every encoder and ring. The panel also reads
macro_valuesagain after a patch change, and publishes nothing back.Changes
scripts/bootstrap.shand CONTRIBUTING:controlpaneljoins the engine's modules, so it is frozen in beside pydevices.mpvst_panel_followrunstests/panel_follow.pyin the engine: the realEngineAdapterand panel, LVGL on a display with no window, and a stub vstui. Three host program changes must each move all 16 encoders and rings, light the patch's pad, and send no edit back. WithEngineAdapter._load_patchstubbed out (the adapter before Panel: sliders follow a patch change #42) it fails on every patch change, as it should.mpvst_engine_modulesalso importscontrolpanel, so an engine built without it fails there rather than at the first editor open.mpvst_editor_smokeclicks the first encoder, at its new place (118, 168), and requires that the click alone moves nothing. The wheel then raises macro 100 from 64 and closes the gesture. The navigate, close, reopen and restart checks are unchanged.Wheels. The editor already moves focus with one wheel axis and adjusts with the other, so it builds the panel with
two_wheels=True: the encoders stay in edit mode and the adjusting wheel always turns the focused one.Tested on Linux, rebased onto main after #47, against a unix engine built from micropython-pydevices with
controlpanelamong its modules (PyDevices/micropython-pydevices#243): all 20 ctests pass,mpvst_engine_modules,mpvst_panel_follow,mpvst_panel_reloadandmpvst_editor_smokeincluded.After merging, rebuild the engine with
scripts/bootstrap.sh(or the build_mp lines in CONTRIBUTING.md): an engine built before this has nocontrolpanelfrozen in, and the editor won't open on it.Replaces #44.