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).
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.
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.
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.
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?
I run my shortcut (Send MIDI channel 1 controller 17 change to 64)
Keyboard Maestro retain the value 64
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).
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.
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?
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.
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!
exporting it from KM using the File - Export Macro option
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...)
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?
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.