Imagine you’re writing out a preset for one of your MIDI pedals and you come across a situation where you want a message to be executed ONLY if a specific condition is met. For example, a common thread topic I see in this forum are topics related to scrolling through all the presets on a Strymon MIDI Device. (Let’s use the BigSky as an example which can hold 300 presets)
Currently this isn’t possible (from what I understand), however it would be possible if there was a “Conditional Message Type” that only executes a specified message if a specific condition is met when the action is executed.
Example
In the above example, you could actually achieve this goal with a few simple steps…
Configure a Scroll Counter (let’s call it Scroll Counter A) to scroll through values 80-82.
Implement a preset with the first message being one that utilizes CC Value Scroll to send a CC Message with Scroll Counter A and a CC# of 0. This will act as pressing down on one of the of the three footswitches.
Add another message that also utilizes CC Value Scroll to send a CC Message with Scroll Counter A and a CC# of 127. This will act as releasing that same footswitch.
Add another message also utilizing CC Value Scroll to increase the value of Scroll Counter A by one with wrap-around. This will act as our Scroll Up Preset.
repeat steps 2-4 in another preset except with decreasing the value of Scroll Counter A by one with wrap-around. This will act as our Scroll Down Preset.
Up to this point, nothing is new and this is all possible in the Morningstar Editor’s current state. However, this will only scroll through the current bank of presets… How would one Bank Up or Down automatically???
Conditional Message Implementation
If we were able to add a “Conditional Message Type”, we could achieve this simply with a few steps:
Add a “Conditional Message” to our Scroll Down preset that ONLY executes if the following condition is met: Scroll Counter A == 80
If the condition is met, send a Strymon Bank Down Message\
Repeat the process with banking up and now you can navigate all 300 presets using only two switches!
This is just one example of what I could see being a massive programming feature that could provide even more possibilities to an already EPIC MIDI Programming tool. I understand that this may be a bit niche of a problem, but I could foresee many problems being solved by adding this feature. Just a thought!!
Cheers to the Morningstar team for the amazing work you’ve already done to bring this incredible piece of gear to where it currently is!!
@james
Hi,
I’d like to back this request. I’ve actually thought about this, too.
If you are considering this it would be great if it was possible to implement logic operations (AND, OR, XOR) in conjunction with toggle states, scroll counter positions and action types.
For example something like this:
IF (preset A/pos 1) AND (scroll counter 1 < 22) =>
TRUE: execute x
FALSE: execute y
Yes actually we had this idea back when we launched the MC6MK2 but it just never got past the info gathering phase - the need to know how people are what people actually want to use this for. Basically the conditions for IF and the actions for THEN.
I wonder if this could also be used to overcome an irritating feature of the EAE Sending V2.
With the Sending, if you send the same program change twice via MIDI it disengages the preset rather than doing nothing, which is probably not what most people want. So when I come to setting up my bank and presets I always first send PC 0 on bank enter and then send the PC I need in the different presets and hope I don’t find a combination of footswitch presses where the same PC gets sent twice to the Sending.
I initially tried to select PC 0 followed by PC X in each preset but I noticed some undesirable effects as the Sending swaps between its presets.
So ideally, if the midi controller could remember the state of a device and then send the PC depending on this state. i.e.
Set a conditional variable somewhere called SV2 and initialize it to 0 to mean PC 0 was sent to the Sending
In each preset, send a PC X to the device conditionally on the value of SV2. If SV2 == X do nothing, otherwise send PC X and update SV2 to X.
BTW, if anyone knows a better way to what I am doing right now, I’d appreciate the feedback.
Hi,
how are your presets organized. Do you use toggles and/or shift? If not you could utilize ‘set toggle’ to sync presets that are programmed with the same pc#.
Lets say you got two presets A and B with the same pc#. If you press A the pc will be send and B is toggled to pos 2. Position 2 of B contains the same messages as pos 1 of B but without the pc message. Now if you press B the pc won’t be send again.
Programm a ‘set toggle’ message to all of the other presets to reset A and B to position 1. In case you are using toggles for other stuff, the same thing should be possible when using ‘shift’ instead.