Automation Instrument Clip View#241
Merged
jamiefaye merged 165 commits intoAug 14, 2023
Merged
Conversation
Midi Pickup Mode enables the Deluge to ignore Midi CC Values from Controllers that are out of Sync with the Deluge. For example, if an External Midi Controller is sending a Midi CC Value of 0 to the Deluge for a Parameter on the Deluge that is currently set to an equivalent Midi CC Value of 127, then the devices are out of sync. The Deluge will ignore Midi CC Values from the Midi Controller until the Midi Controller has been "reset" / matches the current Parameter Value on the Deluge. It does this by comparing the incoming Midi CC Value with the Deluge's internal Knob Position (which is derived from the Current Parameter Value). The Deluge Internal Knob Position can be converted to a Midi CC Value and Vice Versa by subtracting 64 from the Midi CC Value or adding 64 to the Deluge's Knob Position. If the difference between the Deluge's Internal Knob Position and the Midi CC Value is greater than +/- 1, then the Midi CC Value is ignored the Parameter's Value will not be changed. The feature can be disabled using the Community Features menu in Settings. on the Deluge.
Updated the code to: - Move Midi Takeover Mode settings from Community Menu to Midi Menu - Add Value Scaling mode - Save Midi Takeover Settings to Midi XML file - Load Midi Takeover Settings from Midi XML file
Replaced file with latest version from community
Per m-m-adams feedback, I have made the following changes: 1) moved takeover mode description to community features.md 2) replaced * 1000000 multiplication with << 20 3) replaced / 1000000 division with >> 20
Corrected formatting issues identified by clang-format style check
Hopefully this works!
Ok now I think I've got it! Let's try this :)! I ran the clang format script this time.
seangoodvibes
marked this pull request as ready for review
July 27, 2023 03:57
seangoodvibes
marked this pull request as draft
July 27, 2023 03:58
…github.com/seangoodvibes/DelugeFirmware into feature/parameter-automation-visualization
seangoodvibes
commented
Aug 11, 2023
…github.com/seangoodvibes/DelugeFirmware into feature/parameter-automation-visualization
m-m-adams
approved these changes
Aug 11, 2023
m-m-adams
left a comment
Collaborator
There was a problem hiding this comment.
At this point I think it's mergeable and the rest of the suggested changes can go in follow on PRs
sapphire-arches
approved these changes
Aug 11, 2023
sapphire-arches
left a comment
Collaborator
There was a problem hiding this comment.
I feel the same, let the hogs free and we'll see how much of a mess they make =D
Collaborator
Author
|
@jamiefaye this is ready for merge, thank you 🙏🏻🙏🏻 |
jamiefaye
added this pull request to the merge queue
Aug 14, 2023
This was referenced Aug 16, 2023
1 task
|
Feature request: Add ability to increase and decrease all the automation values in a clip together, so they keep their relative values. Example video from Akai Force to show how this would work. Untitled.mov |
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.
Latest Version for Testing & Release Notes
Download Link (Updated Wednesday, August 11, 2023 at 6:50 PM Eastern / UTC-4)
https://github.com/SynthstromAudible/DelugeFirmware/actions/runs/5837637150?pr=241
Summary of changes since previous version:
Description
Automation Instrument Clip View is a new view that complements the existing Instrument Clip View (which is accessed by pressing the Clip Button). It allows you to edit automatable parameters on a per step basis at any zoom level.
Automatable Parameters are broken down into two categories for Automation Instrument Clip View purposes:
It can be thought of as a layer sitting on top of the Instrument Clip View for Synths, Kits and Midi instrument clip types. This PR does not address automation for audio clips.
The sidebar from the instrument clip types is available in the Automation Instrument Clip View so that you can audition sounds while viewing/editing parameter automations.
The Automation Instrument Clip View functionality covered by this PR can be broken down into these sections:
A more detailed break-down of the above sections is found below.
Enter/Exit Automation Instrument Clip View
The Automation Instrument Clip View can be accessed from the Instrument Clip View by pressing on the Clip button. The Clip button will flash when you are in the Automation Instrument Clip View
Some additional things to note:
Automation Overview
The Automation Overview provides an overview of the Parameters that can be automated, are currently automated, and acts as a launchpad for the Automation Editor.
The Automation Overview will:
The Automation Overview will not allow you to:
Parameter Selection
You can select the Parameter that you want to edit in three ways:
Automation Editor
The Automation Editor enables you to view and edit parameter automation values.
For Synths and Midi clips, automations are recorded/edited on a clip basis (e.g. not on a per note row basis).
For Kit clips, automations can be recorded/edited on a clip basis and on a row basis (two layers of automation).
The Automation Editor will:
The Automation Editor will not allow you to:
Community Features
Described below are a couple of toggable enhancements that change existing behaviour in the Instrument Clip View but are of benefit to the user now that Automation's can be edited separately from the Instrument Clip View.
Interpolation
Interpolation does not change existing behaviour. This toggle is only used in the new Automation Instrument Clip View.
This sets the default value for the Interpolation setting in the Automation Instrument Clip View.
Interpolation itself can be toggled on/off by pressing down on the Setting button however that does not change the default setting.
Interpolation is only applied when you are physically entering a long automation pad press (e.g. when you hold one pad and press a second pad to connect the pads together). If you turn interpolation on and do not edit any parameter values, it will not have any effect.
With interpolation turned on it will sound like values are smoothly transitioning from one value to the next.
With interpolation turned off it will sound like a value is jumping from one value to the next.
Clearing Clips
Currently in the Instrument Clip View if you press down on the Horizontal Encoder and press the Back button at the same time, all Notes AND Automations are cleared.
This is not ideal as your goal may be to simply re record your notes without changing your parameter automations.
It is important to recognize that in the Deluge, Notes, are recorded separately from the Automations. That is to say that if you remove a note, the automation will still exist, and if you clear an automation, the note will still exist.
Thus, this community feature clearly delineates this behaviour by changing the Clip Clearing behaviour in the Instrument Clip View to only clear Notes, and not Automations.
Similarly, in the Automation Instrument Clip View, clearing a clip will only clear Automations, and not Notes.
This change can be reversed by setting the "Clip Clear" community feature to OFF.
Nudging Notes
Currently in the Instrument Clip View if you press down on a note and turn the Horizontal Encoder, it will nudge the Note AND the Automations for that same step.
This is not ideal as your goal may be to simply nudge the note and not the parameter automation.
This community feature addresses this by changing the behaviour to only nudge notes.
This change can be reversed by setting the "Nudge Notes" community feature to OFF.
Shifting Clip Horizontally
Currently in the Instrument Clip View if you press down on the Vertical Encoder and turn the Horizontal Encoder, it will shift Notes AND the ALL Automations of the entire clip horizontally.
Similar to above with the Nudging Notes community feature, this feature will disable the shifting of Automations within the existing Instrument Clip View and leave that behaviour to the Automation Instrument Clip View.
In the Automation Instrument Clip View, functionality is provided to shift automations at the parameter level.
Fun things to try with the new Automation Instrument Clip View
Two Hand Automation Drumming
Set a long sustaining clip length note.
Press play.
Switch to Automation Instrument Clip View
Enter the Automation Editor for a Parameter, e.g. LPF Cutoff is a good one
Now start drumming on the LPF Cutoff Automation Lanes and see how much fun you can have adjusting automation with all your fingers at once
Editing Automations with your left hand and playing the piano roll with your right hand
While in the Automation Instrument Clip View, start playing the Piano roll in the sidebar
While you're playing the Piano roll, use your left hand to select the parameters you want to edit. E.g. while holding an audition pad you can press the clip button to go back to the Automation Overview and select a Parameter.
Select a Parameter and enter the Automation Editor and while you're playing the Piano roll with your right hand, start adjusting the automation lanes with your left hand
Quickly switch back to the Automation Overview and select another Parameter
Keep the flow going! Playing the Piano roll and switching between all the Parameters at the same time to create some amazing rhythmic sounds
Development Notes
This view is tightly integrated with the Instrument Clip View and calls many of the functions and writes to many of the variables in the Instrument Clip View.
Some functions and variables that were previously Private in the Instrument Clip View were made Public so that they could be used by the Automation Instrument Clip View.
The Automation Instrument Clip View is recognized as a new UI so many of the calls that check the current UI in view (e.g. getCurrentUI(), getRootUI()) were modified to check if the Automation Instrument Clip View is currently open.
Also, similar to the Keyboard screen which uses the variable "onKeyboardScreen" to tell other views (e.g. Song, Arranger) whether to open up the Keyboard screen (instead of the Instrument Clip View) when transitioning to/from the Instrument Clip View, the Automation Clip View also uses a similar variable "onAutomationClipView" for the same purpose.
De-scoped Items (Future Release)
Button Shortcuts/Combos
These are the main button shortcuts/combos that will be used in the Automation Instrument Clip View
Automation Overview
Automation Editor
Documenting the Code Base Changes
Please see my comments on the file change history on github as well as the documentation in the code itself.