Receive MIDI Program Change from Footswitch

Discuss music production with Ableton Live.
Post Reply
Journy
Posts: 1
Joined: Sun Feb 03, 2019 12:28 am

Receive MIDI Program Change from Footswitch

Post by Journy » Sun Feb 03, 2019 12:38 am

Hi!

I am guitarist trying to use Ableton for effect switching and more.

I have a GSC-1 footswitch that sends MIDI Program Change events and I like to use these message to automate Ableton Live. I'd like to turn on a track when pressing a footswitch so I tried a MIDI mapping. But Ableton recognizes the Program Change event as "Pitchbend"; however Ableton calls it - it doesn't react on the footswitch.

If I connect a MIDI keyboard instead of the footswitch and do a mapping with MIDI notes, it works. Unfortunately my footswitch cannot send MIDI notes - only Program Change messages.

Can someone help me? Any ideas?

Thx in advance!!!

threearmedbandit
Posts: 1
Joined: Sat Dec 10, 2022 8:41 pm

Re: Receive MIDI Program Change from Footswitch

Post by threearmedbandit » Sat Dec 10, 2022 9:11 pm

YES. I have an ADA MC-1 footswitch that only sends program change messages through a MIDI cable. I had the same issue and found a way to change the program change message to a Control Change message with a value. I'm using it to control an instrument effect rack knob to switch effect chains.

This method can change any MIDI message to any other MIDI message as well.

I am using a Mac and first installed MIDI Pipe program that is free (I eventually donated bc it solved my problem). I also enabled the IAC Driver with Audio MIDI Setup, it is a virtual MIDI bus. In Ableton I check the IAC MIDI In for Remote.

In MIDI Pipe I made a chain like this:
MIDI In (Focusrite Scarlett since my footswitch is connected to that)
AList (lists incoming messages and data)
AppleScript Trigger (changes the message) *But, in your case, you may just use the Message Converter to change it to a note*
AList (lists the message result)
MIDI Out (IAC Driver)

The code I have in the AppleScript Trigger will take the message, check the values, then create a new message. I have 10 switches that send their own program messages, (193,0) is the first and (193,9) the last. This is the code copy and pasted.

on runme(message)

if (item 2 of message = 0) then set message to (177,18,0)
if (item 2 of message = 1) then set message to (177,18,1)
if (item 2 of message = 2) then set message to (177,18,2)
if (item 2 of message = 3) then set message to (177,18,3)
if (item 2 of message = 4) then set message to (177,18,4)
if (item 2 of message = 5) then set message to (177,18,5)
if (item 2 of message = 6) then set message to (177,18,6)
if (item 2 of message = 7) then set message to (177,18,7)
if (item 2 of message = 8) then set message to (177,18,8)
if (item 2 of message = 9) then set message to (177,18,9)

return message
end runme

The program messages are set to control change format for "Control Change #18 (coarse)" with values 0-9. The (177,18,0) values can all be changed to be whatever specific MIDI message you want, including notes!
I can remove the ALists from the MIDI Pipe also, since that was just for monitoring the values.

I hope this helps you and many more guitarists with program change MIDI footswitches!

Post Reply