MIDI Control Change for Blind Users

Hello,
I am a blind Keyboard Maestro user.
I am new to using this application. I want to operate a guitar effect pedal that I use on my synthesizers.
It is difficult to access because many of its functions unfortunately go through a screen.
Fortunately, it is possible to control all of its functions via MIDI CC.
Could you please help me with this project?

I think I understood how to make a first macro:

  • File> New Macro Group> New Macro> Edit> Insert Action> MIDI> Send MIDI Control Change.
    The result is: Send MIDI channel 4 controller 19 change to 5 (for controller 19, with value 5, on channel 4)
    On the other hand, I do not understand how to make a shortcut allowing to modify only the Value.
    For example, I want to create two shortcuts to control the Dekay (CC 17, Value from 0 to 127):
  • A shortcut allowing to increase the Value by 1 (option + D).
  • Another shortcut allowing to decrease the Value by 1 (control + D).

for information, this is the Strymon BigSky pedal, MIDI specifications are on page 23:
https://www.strymon.net/manuals/BigSky_UserManual_RevD.pdf
Thank you in advance for the help you could give me!
Regards,
Mat'

How do you want to specify the value? Where is the value coming from?

For that, assuming you have the value stored in a variable, you can use the Set Variable to Calculation action to increment the variable:

  • Set variable "My Value" to calculation "My Value + 1"

Then you can use the My Value variable in the Send MIDI CC action.

Same for decrementing the value.

But you will have to know the value at the start (which you could do if you remember it in the variable when you use the explicit Set Value variant of the macro).

Normal Keyboard Maestro variables are permanently stored so they will retain their value across macros.

Hello,

Thank you for your reply.

The expected Value is saved in one of the pedal patches.

(So ​​the Value changes When selecting a new patch)

Can we query the CC to find out this Value?

Could you share with me a macro already done in Keyboard Maestro, so that I understand how it works?

Thank you again for your help,

Regards,

Mat'

I'm not sure what you mean. If you are using the Send MIDI CC action, then you know the value you are setting, so make sure and remember that in a variable, which can then be used in macros to increment or decrement the value.

I don't know how you would get the value in the first place, or how you intend to produce the value for the action the Sends the MIDI CC and I don't really understand your whole process so it's hard for me to suggest how to write the macro.

Hello folks,

What i understand of the post of Retinogram is that he would like to monitor what is the value depending of the media preset default.

If he Send MIDI CC action to the media by for example a : CC_value= 100

Then he won't know which value was the sound of it media on this preset, before he modified it, and because he's blind and can't evaluate on the screen what is active, He want to monitor the output data of it media.

Hello,

Thank you both for your feedback. sorry, this is not easy to explain how it works!

The pedal has 100 factory presets that can be modified.

(For example: Dekay, Pre-Delay, Mix, Tone… Etc.)

When I select a preset titled ROOM, the Dekay value on the screen is 110mS.

How to know or monitor its MIDI value? (0 to 127)

the macro can perform 2 actions:

  • Monitor the current MIDI CC 17 value

  • Once this value is obtained, increase or decrease by 1

Thanks in advance.

Regards,

Mat'

Hello,

Is there an action to monitor the current CC value on the pedal?

If not, could you share with me a macro:

named Dekay, CC 17, Value 64, allowing to increase or decrease the value by 1.

Thank you in advance for your help,

Regards,

Mat'

No. You would have to have a macro triggered by the MIDI CC and save the value in a variable and/or process the value when it changes.

I'm afraid I don't understand what you mean.

For example, I want to create two shortcuts to control the Dekay (CC 17, Value 64):

A shortcut allowing to increase the Value by 1 (option + D).

Another shortcut allowing to decrease the Value by 1 (control + D).

For that, assuming you have the value stored in a variable, you can use the Set Variable to Calculation action to increment the variable:

Set variable "My Value" to calculation "My Value + 1"

Then you can use the My Value variable in the Send MIDI CC action.

Same for decrementing the value.

But you will have to know the value at the start (which you could do if you remember it in the variable when you use the explicit Set Value variant of the macro).

Normal Keyboard Maestro variables are permanently stored so they will retain their value across macros.

How to do this step by step?

Could you share with me a macro already done in Keyboard Maestro, so that I understand how it works?

Thank you again for your help,

Regards,

Mat'

Something like this:

MIDI Example Macros.kmmacros (5.1 KB)

Thanks a lot for your help !

If I understood everything correctly:

  1. I run my shortcut (Send MIDI channel 1 controller 17 change to 64)

  2. Keyboard Maestro retain the value 64

  3. I use the shortcuts that you created (MIDI Decrement, MIDI Increment)

If it is not correct:

In the example you shared with me, i'm having trouble understanding where is the start value 64?

…But you will have to know the value at the start (which you could do if you remember it in the variable when you use the explicit Set Value variant of the macro).

Regards,

Mat

Yes, that is correct.

In the example, it prompts you for the explicit value. If you want the explicit value to always be 64, replace the Prompt for User Input action with a Set Variable to Calculation action and set the My MIDI Value variable to 64.

Thank you again for your help,

As I progress through my project, I realize that I should be able to prevent certain macro from exceeding the value 20, when I use the shortcut allowing to increase the value by 1.

(Cloud Low End, CC 38, Value 0 to 20)

Is it possible to do this with the variable you created?

Regards,

Mat'

Sure, use the If Then Else action, and a Calculation condition, and only increment the My MIDI Value variable if the condition My MIDI Value < 20 is true.

Thank you for your explanations.

Unfortunately I can't reproduce the action.

Could you perhaps share the macro with me, starting from your last example?

  • I may not have done things in the right order because when I increase the value by 1, the system voice (Speak Text) continues to indicate the value 21, 22… etc. (As the value should not exceed 20, I would like the system voice to stop speaking)

  • When I use the shortcut allowing to decrease the value by 1, the system voice (Speak Text) does not pronounce the numbers -1, -2… etc. (This is the behavior I expect)

On the other hand, when I go to check the value retained by Keyboard Maestro in the My MIDI Value variable, it indicates -1 to -2 ...

  • Is it possible to set a limit value retained by the My MIDI Value variable? (0 - 20) Having a fixed start and end, lets never go wrong.

  • Does the order of actions matter? (Priority, execution speed… etc.) Set Variable “My MIDI Value” To Calculation “My MIDI Value + 1” / Send MIDI channel 4 controller 31 change to My MIDI Value / Speak Text “% Variable% My MIDI Value% ”/ If All Conditions Met Execute Actions

I would like to share my most recent macro group with you, but I don't understand how to fit it into my last topic.

I select the macro group, I select share via the forum, it offers me to create a new topic ...

Thank you again for the help you bring to my project!

Best Regards,

Mat'

Hi Mat',

You can share your macro by

  1. exporting it from KM using the File - Export Macro option

  2. upload it using the 'Upload' option in the box where you type your reply. I hope you can find it. It doesn't have a shortcut key (I can imagine that would have helped...)

Hope this helps.

René

Something like this:

MIDI Example Macros.kmmacros (4.4 KB)

thank you very much for your help Peter!

I understand better why I couldn't get the macro to work by following your explanations.

  • I think there is a problem with VoiceOver on Keyboard Maestro, when I select Execute the following actions then No Action, I select from the Set Variable to Calculation list.

It is impossible to my knowledge for a VoiceOver user to select the action.

  • You must necessarily have a sighted person to perform a drag and drop.

Maybe other VoiceOver users on this forum can explain how to proceed?

Regards,

Mat'

You can double click items in the action category selector.

Or you can right/control click on the No Action and select an action from that popup menu.

Or you can right/controlclick on the No Action, and select "Auto Show Insert Action by Name" and then you can click on the No Action, and select the action by typing its name and pressing return.

Hello Peter,

I have just tested with this manipulation, and it works:

VO, Shift + Space press twice

1 Like