The boards are tested and ready to go, so the next step is putting them in their boxes. This particular unit has two footswitches, two blue LEDs, and a 1/4″ jack for an external expression pedal. The expression pedal is optimized for an EV-5 or similar with a three-conductor (stereo) plug. It will also work with many passive volume pedals if you connect an “insert” or stereo Y-cable. Tip = wiper, Ring = 5V, Sleeve = Gnd. A Line 6 EX-1 will not work without some minor modifications, which we can do.
So the MIDI controllers arrived on Tuesday, and I have gotten about half of them assembled. I found one wiring error on the PCB but it’s easily fixable, and the boards work as expected.
After some discussion with Rodrigo, I’ve whipped up the following example firmware for the MIDI controller board (I am going to need a catchy name…) Rodrigo suggested that implementing the DD-6 Hold mode would be worthwhile, so I spent some time playing with things to see what I could come up with. My first attempt was a little too ambitious – it works just as I wanted it to, but it doesn’t work like the DD-6.
DD-6 Hold mode:
Press and hold the footswitch to start recording.
Release footswitch to start playing.
Press & release footswitch again to stop playback.
The pedal steps through REC -> PLAY -> STOP as the footswitch is pressed. This isn’t tough to do in software, it was mostly a matter of getting it to “feel” right. I think I’ve got something workable, and it’s posted below.
Sample firmware for M9 MIDI Controller - screenshot
This is posted mostly for the curious. I’ve been working with Rodrigo Costanza on the code for the complete M9 controller. This is not the finished version, as it lacks the Scene Select, Folder Select, and Utility Mode portions. The looper controls require the controller to keep track of the status of the M9’s looper. If Line 6 had designed the M9’s MIDI implementation to just mimic the footswitch actions, we could just send one command per footswitch and be done. Sadly, the MIDI implementation involves separate commands for each toggle of the switch. Pressing the Play footswitch sends the Play command (CC28 127) but only if the looper is not playing! If it is playing, then pressing Play sends the Stop command (CC28 0.) If the unit is in Overdub, sometimes Play sends Play and sometimes it sends Stop, depending on whether we came from Play -> Overdub or Record -> Overdub! As you might guess, this can get complicated fast.
The code is included as an Arduino sketch below. Use it for whatever you like! You’ll need the MIDI and EXROM libraries installed to make it work.