I teach guitar. I was hoping to use a MIDI-enabled guitar, in combination with an iPad, to help students learn notes, practice sight-reading, and practice playing by ear. They would stay before or after their lesson and play on some apps.

The problem is that the guitar is a transposing instrument. It sounds an octave below the written notes. Because of this, when I play the right note on the guitar, these apps registers the wrong note because, well, it kinda is.

However, all of these apps are incredibly rudimentary in their MIDI implementation. They have literally no MIDI settings; channel, virtual midi, anything. It's just MIDI on-off. This means that, to my knowledge and after some testing, a iPad-based software solution won't work.

I'm wondering what the the simplest, lowest latency, least expensive way of changing the octave of the notes would be. My first thought is an Arduino or Raspberry Pi built into a stomp box. But MIDI really isn't something I've messed around with. A friend mentioned Super Collider, Python, and Pure Data as maybe the best way to do it.

Note that my device is USB. A Fishman Triple Play Connect.

Also, as a side-note, these apps do accept audio from a mic, but I need this to be as close to silent as possible (students will be wearing headphones and playing an unamplified electric guitar). Using my external audio interface was so friggin' buggy that I thought hacking something together with a RPi would be an easier solution.

  • If you teach the students the right notes in absolute terms, won't you be teaching then the wrong written notes for the guitar - which is the instrument they'll actually be playing? It sounds potentially quite confusing for the student.... Jun 3, 2020 at 8:03
  • 1
    @topoReinstateMonica I think the idea is exactly the opposite - to get the notes to show up correctly like it's written for guitar, not in "concert pitch" like the apps are currently showing them. Jun 3, 2020 at 8:27
  • @piiperiReinstateMonica aha, yep, that's probably right. Never mind me... I was assuming that these apps would deal with audio in some way too... Jun 3, 2020 at 8:28
  • Isn't the TriplePlay Connect thingy supposed to have settings for this. If it doesn't, then this is Fishman's fault as much as anyone else's. :) Jun 3, 2020 at 8:30
  • 1
    If you want a fun project, try an Arduino or Raspi based router/processor. Raspi might be able to do USB I/O in both directions. I recently made an Arduino box like that, DIN MIDI IN+OUT with proper opto isolators and all, guitar pedal compatible 9V power in, small graphical OLED display, mostly improvised mash-up schematic, and even an RJ-45 connector so I can control it with my old Line6 Floorboard which uses an ethernet cable for analog I/O for the switches, wah/volume controller and LEDs. Building it was a great learning experience. I haven't used it too much yet though. ;) Jun 3, 2020 at 15:47

1 Answer 1



Would be a latency free and simple solution, given the Arduino MIDI library. However, I am not sure you can receive from a device and send to another using USB-MIDI. Using a board with several Serial ports would work, but you need to convert your USB-MIDI signal to a "plain MIDI" with a DIN5 cable… And then the other way around…


You can run a very simple audio system on a Pi, using Jack, and then use some utilities like QMidiRoute, which is basically allowing you to change your (USB) MIDI signals any way you want. I would think it is much more easier than SuperCollider and so which are much more audio focused. If you can afford the booting time and need for it to be plugged, I think this is the simplest to do it! It could be able to route several guitars at the same time, like a transposing server!

Using a MIC

You can probably "lure" the mic by using a full wave rectifier. This will make a crunch signal at twice the frequency of the original. If I remember well, this is what is done by a lot of guitar pedals like Fuzz, Muff. If you have diods in it, you have a good chance they will rectify.

No definitive answer but hope it helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.