Skip to content

[Ready to Merge] Automation View: Long press bug fixes + Pad selection mode - #360

Merged
jamiefaye merged 18 commits into
SynthstromAudible:communityfrom
seangoodvibes:multi-pad-press-fixes
Aug 20, 2023
Merged

[Ready to Merge] Automation View: Long press bug fixes + Pad selection mode#360
jamiefaye merged 18 commits into
SynthstromAudible:communityfrom
seangoodvibes:multi-pad-press-fixes

Conversation

@seangoodvibes

@seangoodvibes seangoodvibes commented Aug 16, 2023

Copy link
Copy Markdown
Collaborator

This PR is a follow up to PR #347 and the original Automation View PR #241

This PR resolves some bugs with entering automation long presses and also adds a new pad selection mode to offer the user even more precision automation editing.

Fine tuning a long press

Added the ability to fine tune a long press's start and end values which automatically adjusts the interpolation between those values (without needing to enter the pad selection mode).

Simply enter a long press and while continuing to hold the first pad in the long press, turn the gold knobs to adjust the start and end values of the long press.

When refining a long presses start/end values, each gold knob is used separately to adjust the start/end position values.

The bottom left gold knob is used to adjust the start value.

The top right gold knob is used to adjust the end value.

In a long press, you will also note that the LED indicators change to show the current value of the start and end position. Once you've let go of the long press, the LED indicators reset back to the parameters overall current value.

Pad Selection Mode

image

Pad selection mode is accessed by pressing on either of the mod encoder buttons

In pad selection mode, you cannot edit the automation grid by pressing on the pads.

With a single or multi pad (long) press you select the pad(s) to edit.

A cursor is displayed on the grid to identify the single or multiple pads you've selected. Seeing the cursor means you are in pad selection mode.

Once you've made your pad selection, you can use the gold knobs to tweak the value of the singular pad or the value of the start/end pads in a long press.

When one pad is selected, one cursor is displayed on the grid and both led indicators show the value for that pad (cursor position).

When two pads are selected, two cursors are displayed on the grid and the lower led indicator shows the value of the left pad (left cursor), and the upper led indicator shows the value of the right pad (right cursor).

With this mode you can also press on each pad to see its current value without changing its value.

Other changes / bug fixes

  • Adjusted the max of the parameter value range to 128 from 127 by adjusting the kMaxKnobPos enum in definitions_cxx.hpp
  • Fixed multi pad press bug that was calculating the wrong parameter values by adjusting the handleMultiPadPress function to use floats for the linear interpolation calculation and by adjusting the loop code to properly loop forwards/backwards depending on first pad pressed's horizontal position relative to the second pad pressed
  • Removed calculateKnobPosForMultiPadPress function
  • Fixed renderRow bug which was not displaying value ranges correctly
  • Refactored code out to new getParameterKnobPos function
  • Removed unnecessary setKnobIndicatorLevel calls
  • Adjusted setParameterAutomationValue function so it doesn't displayParameterValue for multi pad press
  • Minor clean up in function calculateKnobPosForSinglePadPress

- Adjusted the max of the parameter value range to 128 from 127 by adjusting the kMaxKnobPos enum in definitions_cxx.hpp
- Fixed multi pad press bug that was calculating the wrong parameter values by adjusting the handleMultiPadPress function to use floats for the linear interpolation calculation and by adjusting the loop code to properly loop forwards/backwards depending on first pad pressed's horizontal position relative to the second pad pressed
- Removed calculateKnobPosForMultiPadPress function
- Fixed renderRow bug which was not displaying value ranges correctly
- Added ability to fine tune multi-pad press using mod encoders
- Refactored code out to new getParameterKnobPos function
- Removed unnecessary setKnobIndicatorLevel calls
- Adjusted setParameterAutomationValue function so it doesn't displayParameterValue for multi pad press
- Minor clean up in function calculateKnobPosForSinglePadPress
Pad selection mode is accessed by pressing on either of the mod encoder buttons

In pad selection mode, you cannot edit the automation grid by pressing on the pads. With a single or multi pad (long) press you select the pad(s) to edit

Once you've made your pad selection, you can use the gold knobs to tweak the values of the singular pad or the range of pads in a long press

With this mode you can also press on each pad to see the current value
Interpolation was commented out previously while I worked on fixing other bugs / pad selection mode.

Re-added interpolation in this commit
@seangoodvibes
seangoodvibes marked this pull request as draft August 16, 2023 23:02
I think i've done it!

Interpolation accurate down to the lowest node level.

and the rendering now renders the value of the middle node position within a square.
fixed interpolation wrapping issues by setting nodes around the current node being edited with their current interpolation status
Updated cursor rendering so that you can see the underlying pad value through the cursor. zero values are drawn as a grey shade.
@seangoodvibes
seangoodvibes marked this pull request as ready for review August 19, 2023 17:45

@m-m-adams m-m-adams left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! This improves performance with lots of automation as well

@seangoodvibes

Copy link
Copy Markdown
Collaborator Author

Thanks @m-m-adams

This is ready to merge @jamiefaye :)!

@seangoodvibes seangoodvibes changed the title Automation View: Long press bug fixes + Pad selection mode [Ready to Merge] Automation View: Long press bug fixes + Pad selection mode Aug 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants