Jump to content

How to create MIDI Scripter Inc/Dec Buttons for CC and PC you could Map to Midi controller?


Go to solution Solved by Jordi Torres,

Recommended Posts

Hey all working on a Logic Midi Scripter editor for Fractal AX8 guitar amp modeller. Worked off some other scripts I found here and with the help of Chat GPT have created something that can send program changes, change banks and select the AX8 scenes (sending CC34 values 0-7). Anybody know how to further create Buttons to Increase/Decrease the program change and scene selection? Separate buttons that you could map to a momentary switch. This could apply to many other synths, any gear that receives program changes - would be super handy.

AX8 Bank and Scene Select.pst

Link to comment
Share on other sites

  • Solution

Hi Ian,

On 1/7/2024 at 4:23 AM, Ian Culley said:

Anybody know how to further create Buttons to Increase/Decrease the program change and scene selection? Separate buttons that you could map to a momentary switch.

Sure you could create additional buttons, but the sliders in your script can already be mapped through Logic's Controller Assignments and their values increased/decreased:

MappedScriptercontrols.thumb.gif.19b11cacf50cd4f892b2122b075dc9ac.gif

J.

 

  • Like 2
Link to comment
Share on other sites

Yes but I’m trying to take it one step further by mapping momentary buttons to navigate through presets. So the respective buttons would decrease/increase -1/+1 from 0-127 through the control change values/program change numbers. SUPER handy when your playing an instrument and scrolling around looking for a cool sound.

can you set controller assignments to behave like that? I haven’t found how

Link to comment
Share on other sites

On 1/7/2024 at 8:53 PM, Jordi Torres said:

Hi Ian,

Sure you could create additional buttons, but the sliders in your script can already be mapped through Logic's Controller Assignments...

Hi Jordi,

As an aside, which Animated GIF creator did you use or would you recommend, preferably for Mac?

Thanks!

Link to comment
Share on other sites

On 1/8/2024 at 7:39 AM, Ian Culley said:

Yes but I’m trying to take it one step further by mapping momentary buttons to navigate through presets. So the respective buttons would decrease/increase -1/+1 from 0-127 through the control change values/program change numbers.

Right now you have:

  • 1 slider for setting a bank (which on it's own is a bit useless unless you send a program change as well) using Bank MSB (CC0)
  • 1 slider for setting Scenes (CC34)
  • 4 separate sliders for setting bank and program (or "preset" as the AX8 calles them) using Bank Select MSB (CC0) and Program Changes. Based on the information on the AX8's manual, there is no need for Bank Select LSB (CC32). 

With this in mind, how are you looking to implement Inc/Dec buttons with the situation you have right now in this script with all those sliders? Perhaps you can be more specific?

Some observations about the script:

  • When using any of the 4 "Program Change (Bank x)" sliders, you are actually sending CC0 twice along with your Program Changes form your ParameterChanged function.
  • You have two identical copies of the HandleMIDI function
  • You are rounding numbers that don't need rounding

J.

  • Like 2
Link to comment
Share on other sites

On 1/8/2024 at 7:39 AM, Ian Culley said:

can you set controller assignments to behave like that? I haven’t found how

I forgot to answer that one: You definitely can do increment/decrements with Controller Assignments, that's what you see in the animated GIF I posted above.

J.

Link to comment
Share on other sites

Ok managed to figure out how to adjust behaviour of Controller Assignments to act as Inc/Dec so feeling like the inc/dec button endeavour is indeed useless. Was able to create inc dec behaviour by making two mappings per parameter as seen in my screenshot:

 

What worked in this case was a few steps. 

 

First on my MIDI Soleman (foot controller) editor I had to set my buttons as “Momentary”

 

Second map the slider first to what will be the “Preset/Patch Down” Button (which sends cc68). I adjusted the controller assignment Mode to “Rotate” and set Multiply to “-1”

 

It in the Value Change I noticed the mapping only worked as desired if I changed the last two values to “00” for both mappings.

 

The second mapping will be the “Preset/Patch Up button” (which sends cc69). I adjusted the controller assignment Mode to “Rotate” and set Multiply to “1.”

 

If somebody has a better way of doing this I’m all ears.

 

Button Settings.png

Controller Assignments.png

Link to comment
Share on other sites

1 hour ago, Ian Culley said:

It in the Value Change I noticed the mapping only worked as desired if I changed the last two values to “00” for both mappings.

For inc/dec using Logic's controller assignments, it doesn't matter what 2nd data byte value you send as long as it's fixed. So for example, decreasing you could send CC68 0, CC68 127 (7F in hex), etc.; and for increasing you could send CC69 0, CC69 127, etc.

1 hour ago, Ian Culley said:

The second mapping will be the “Preset/Patch Up button” (which sends cc69). I adjusted the controller assignment Mode to “Rotate” and set Multiply to “1.”

This is fine. It will also work when set to Relative like in my GIF. The different in this case between Relative and Rotate, is that with Rotate if you get to the extremes and keep sending the message it will wrap around and start over at the other extreme. With Relative it simply stops at the extremes.

Glad you managed to get it working.

J. 

  • Love 1
Link to comment
Share on other sites

On 1/9/2024 at 11:57 PM, Jordi Torres said:

For inc/dec using Logic's controller assignments, it doesn't matter what 2nd data byte value you send as long as it's fixed. So for example, decreasing you could send CC68 0, CC68 127 (7F in hex), etc.; and for increasing you could send CC69 0, CC69 127, etc.

Ahhh k! That's great because that means I can put all mappings on the same CC. Program Changes up could be assigned With an On of CC68 1 and Off of CC68 0, Program Change down could be CC68 2, with an Off of 0, etc..

The problem I was running into was that initially when I was learning my mappings it sent two messages and defaulted to a value Change of Lo7 which I don't understand fully... Seems any value other than "Lo7" behaves as you would hope/expect.

Link to comment
Share on other sites

9 hours ago, Ian Culley said:

The problem I was running into was that initially when I was learning my mappings it sent two messages and defaulted to a value Change of Lo7 which I don't understand fully

"Lo7" is a placeholder for values in the low 7 bits (128 values) of the 2nd data byte of the message.

So, in other words, any of those values would control the assigned parameter (for example: CC68 0, CC68 1, CC68 2, etc.) So this means that if your MIDI controller has buttons that send CC68 127 when pressed, and CC68 0 when released, if you leave it set to "Lo7" your slider will increase or decrease 2 steps at a time (one for CC68 0, another for CC68 127).

J.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...