Tutorials

Max 8 Guitar Processor, Part 6

To wrap things up, I want to make a connection to the real world - to hardware. In previous iterations of this series, we created a complicated pattr-based preset system, then coupled it with an equally complex routing system. When using the system, I seldom found this useful - rather, what I really wanted was hands-off preset selection, and simple volume control from a foot pedal. So we again diverge from earlier versions and create a simple - but effective - MIDI pedal connection.

Max8-GtrProc-6.maxpat
Max Patch
Download the patch used in this tutorial.

Hardware? What Hardware?

There are a few different guitar-oriented MIDI rigs out there, and some have been around for a long time. However, a relatively new (but still affordable) option has arrived: the IK Multimedia iRig Stomp I/O. This shortboard-styled system combines a guitar-oriented audio interface with a set of pushbuttons and a foot-potentiometer, which is exactly the kind of system that can activate our guitar rig.

Image courtesy of IK Multimedia

With a little investigation, we find out that there are several ways of using this as a stock MIDI pedal interface. We are going to choose the easiest one - the default mode, which causes the buttons to transmit MIDI Program Change messages, and the pedal providing a straight MIDI CC. Since this is the device's default mode, we don't have to do much other than connect it right up to the computer with a USB cable, connect our guitar and an amp (or headphones) and dig in!

Receiving MIDI

There isn't anything too special about the MIDI produced by the iRig Stomp I/O, other than the fact that no notes are generated; rather, everything is Program Changes or Continuous Controllers. But we do have to select the device as our MIDI input - and parse out the MIDI stream for useful information.

To get this functionality, we are going to steal directly from one of the help files: specifically, the midiin help file. This gem provides us with the information necessary to select from the available MIDI input devices (of which the iRig is most interesting). Pairing that with a midiparse object allows us to get the Program Change and Continuous Controller messages.

To make things easy for ourselves, we'll route the Program Change messages to a send named pgm, and MIDI CC #11 messages (what the foot pedal produces) to a send named pedal.

Message Routing

What should we do with the data? Well, the Program Change messages are pretty easy: we'll just route them directly to the Preset Selector for direct snapshot selection.

For the CC we need be a little thoughtful - and our Overdrive/Gain system is a good place to route this data. By altering the volume before it gets to the delay systems, we'll be able to create interesting swells that get carried forward by the delay (and looper). It's a simple effect that is incredibly musical.

Play Time!

And with that, we hit the end of this series. The final result, with all effects, preset/snapshot management and MIDI interface, end up being a tight little system with a lot of flexibility.

How is this different/preferable to something like IK Multimedia's iRig software, or Guitar Rig, or any of the other virtual guitar rigs out there? It's because you have the ability to extend and improve this setup in ways that only you can imagine. Think about adding VST's, Max for Live devices, or Gen processors to expand your effects system - it's truly an endless playground.

Thanks for following along, and if you have any questions - just drop a comment. Happy patching!

Learn More: See all the articles in this series

by Darwin Grosse on July 20, 2021

Caleb Ramsey's icon

Hello:
Newb here. I have eagerly been following this wonderful tutorial for weeks. I have a Keith McMillen 12 step editor. I am not sure what I have to change to make this device work with the tutorial. Would you be able to help me?

Caleb Ramsey's icon

I am in the 12 step editor. I also contacted support from Keith McMillen. Hopefully, someone will point me in the right direction.

Source Audio's icon

you either reprogram the pedal to send midi messages used in the tutorial,
or replace midi messages used in the tutorial by messages that pedal sends.

What is preventing you from doing that ?

if you set 12 notes to start from C-2 = midi note number 0

and mod max patch like this

to use notes instead of program change, you are done.
I guess you can manage to activate expression pedal on 12 step if you want to use it.

Darwin Grosse's icon

Source Audio has it right here. Using the 12-step for expression pedal, however, is probably going to be difficult, since (IIRC) it will 'return to zero', so it ends up not so useful for volume pedal emulation.

Caleb Ramsey's icon

Thank you so much for taking the time to reply. I really appreciate it. I’m going to try it out now.

I was hoping this would work. If I have to buy another controller than I guess that may be what I do.

Again, thank you for helping me out! 😊👍

Source Audio's icon

I meant expression pedal that can be externaly connected to 12 step,
not pressure sensitive pads.
But even 2 pads could be easily combined into something
to push current value up or down, even taking pressure amount
as "speed" of stepping into account.

No need to buy different foot controller - you will never find one that
suits perfectly this or that needs.
That is usual problem of all live performers, one needs 3 pedals and 6 switches,
another one 6 pedals and 12 switches for the setup for example.
than they end with numerous devices on the floor, each serving only a part of
it's possibilities.
12 steps has advantage of being quiet and having low action, not like usual
guitar stomp switches that make it impossible to perform in quiet
performances, and totaly impossible for precise taps, like
for live looping.
Having more switches would also come in handy if you use presets,
and use 2 of them for bank up/down scrolling, to have more presets, or different functions
like switching individual effects, or steping through assignments for expression Pedal destinations etc.