Reproducing Muse’s Map of the problematique guitar sound

Today, let’s discover the secret of Matthew Bellamy’s guitar sound on Map of the Problematique song.

Yesh, I like to promote myself 😉

To achieve this projetct, you will need a Whammy 4:

Yes, it’s part of the secret. Let me say that this trick only works with the fourth version of the Whammy pedal, because it’s the only model that has a MIDI input.

Because yes, we are going to use MIDI to control the Whammy. Through this port, we’re going to send it commands, like changing preset or changing pedal position.

You will also need an Arduino, a 220Ω resistor and a MIDI cable.

There exist an on the shelf solution, the Molten MIDI 2 from Molten voltage, but:

  • it will cost you 125$
  • it shall be ordered directly from Molten Voltage
  • I find it hard to configure

So I propose you to make something even better for the price of an Arduino a some pieces  of wire.

First step, set the cable up. Cut it in two halves, then strip it off. You should get something like this:

DO NOT cut shielding wire, we will need it soon.

A bit of wire, some shrink tubing (here the blue wire corresponds to the shield):

Second step, connection with the Arduino. Beware: don’t let yourself be influences by wire color: red is not necessarily 5V input, black may not be the GND….anyway, you should connect everything according to this:

Mine has +5V on the white wire, GND on the blue one, TX on the red one. Seems legit…

Now connect the MIDI cable to the Whammy and send this to the Arduino:

If everything went ok, your Whammy’s LEDs should cycle.

So what happened exactly?

First, the “Serial3.begin(31250)” initializes the serial communication from your arduino to your MIDI device. Don’t use any other speed, it won’t work.
Then, we send repeatedly two values. The first one, 0xC0, is a MIDI command that tells the target that it should “change program”. the second one is the program value. Each “program” corresponds to a Whammy preset.
Preset values can be found in the Whammy’s user manual.. For a complete MIDI codes reference, check this site out, it contains everything you need to know about sending and receiving stuff to/from a MIDI device.

If the whammy does not respond, maybe you’ll have to change the MIDI channel it uses. Check once again the user manual (I advise you to use “omni” channel) for the detailed method. Also check the cable.

If the Whammy responds, then it’s the first step toward success!

Now that we know how to change Whammy presets, we’re going to learn how to dynamically change pedal position. This method has numerous advantages:

  • you can create insane effects easily
  • have you ever tried to directly step from minimum to maximum value?

Here again, check Whammy’s user manual and MIDI reference website, you’ll find out that you just need to send CC11 code with a value to change whammy’s pedal position. “CC” stands for “Control Change”, and 11 for “Expression Controller”. Here we are!

Here I give you the solution:

Let’s sum all this up:

It works? Nice effect, huh?

Now let’s go for the serious stuff.

Don’t bother searching all over the web for a recipe, I found it for you. Just use this loop:

  • -1 octave
  • normal
  • +1 octave
  • normal
  • +1 octave
  • normal
  • -1 octave
  • normal
  • +1 octave
  • normal
  • +1 octave
  • normal
  • -1 octave
  • normal
  • +1 octave
  • normal

Between every changing, we just add a small delay, everywhere the same. You will have to set ip up to your convenience.

Here’s the full program:

Test is with a nice little distortion pedal:

Here’s what it’s like with a bass. Sorry, I’m a bass player after all 😀

  • pierre

    Good work !

    I don’t see any sync to midi clock, how dod you ensure pattern sync on stage ?


    • deadbird

      Sync? What do you mean? If you mean launching the effect at right moment, remember this is only a proof of concept, it shall not be used as-is. BTW, I’m working on a stage version. It will have a tough die-cast aluminium enclosure (as every pedal should have) and tons of cool features. Stay tuned!

  • Ben

    I’ve tried following this tutorial but on compiling the first test block of code I get the following errors:

    sketch_jun19a.ino: In function ‘void setup()’:
    sketch_jun19a:2: error: ‘Serial3′ was not declared in this scope
    sketch_jun19a:4: error: expected `;’ before ‘)’ token

    Where am I going wrong?

    • serial3 is only defined if you use an Arnduino Mega. Check in the “board” menu. If you only have a Uno or equivalent, use “Serial” instead.

      • Ben

        I’ve changed everything to Serial instead of Serial3 however it still isn’t wanting to work. I’ve used a multimeter to check the continuity of all of the cables and MIDI pins so the hardware is definitely in the correct configuration but my Whammy still isn’t cycling at all. Any ideas?

      • Ben

        If I watch the arduino’s output on the serial monitor it is made up of “ïü ïÿ gü îü îÿïü ïþ îü ïü ïþ ïü ïü ïÿ îü îÿ îü ïü îÿ îü ïü ïþ ïü” is that the intended output?

  • Kyle

    Would it work with the whammy 5 seeing that the 5th iteration also has a MIDI port?

    • I guess. as long as the Whammy has a midi port, the trick should work. Check the user manual for MIDI codes. Anyway, I’ll get a brand new bass whammy in a week or so, I might test the trick to see if it still works. But I’m very confident about it!

  • Raj Patel

    You’re diagram shows that you should connect the Arduino to a MIDI jack, but didn’t you say to connect it to the cable?

  • Andrea Loriedo

    Hey there, unfortunately my whammy isn’t responding at all. I have a Whammy 5 (with MIDI channel set as omni) and an Arduino Leonardo (so i changed Serial3 with serial in the code)… I’ve connected everything as shown in the tutorial… what went wrong?

    • deadbird

      Does the led cycle example works at least?