[Guide] Using GeoShred Control (iOS App) as a MPE Controller for VCV Rack

GeoShred Control ($10) works something like a virtual Linnstrument. While it comes with a number of preset configurations for controlling various software, it does not have a preset for VCV. Navigating the creation of one’s own configuration can be a bit daunting at first, so I’m here to share my setup for getting it working with VCV Rack.

There are a few solutions for establishing a MIDI connection between iOS and a desktop OS. One is a $2 app called midimux which allows for MIDI communication via direct USB connection between PC/Mac and iOS. I have heard there may be some issues with recent OS versions, but I don’t have experience with it myself.

Another would be to use a dedicated hardware USB MIDI interface with your iOS device. If you already have a MIDI interface connected to your computer, you could use something like the iConnectivity mio ($40) in order to connect iOS to that existing MIDI interface via DIN cable. If you don’t already have a MIDI interface for your computer, something like the iConnectivityMIDI2+ ($100) allows you to connect the computer and iOS together as well as other external MIDI gear. These solutions are relatively costly, though.

A free way to establish the connection is to use Wifi. On Mac, this network connection is natively supported by Apple’s MIDI drivers. On Windows you must install and configure the free rtpMIDI driver. I have heard some complaints about latency with this method, but personally I am only experiencing 3ms latency on average when using Wifi to connect iPad to router and then Ethernet to connect router to PC.

With that out of the way, here are the configuration instructions for GeoShred Control:

  1. Tap the three dots in the top right of the screen to open the menu. Select “New…” under the File heading. Name the preset “VCV” (or whatever you like).

  2. The “Performance Settings” window will open. Under the Play Mode heading, select “Poly”.

  3. Optional: I prefer to reduce the “Slide Speed” setting a bit, in order to perform slower slides before GeoShred helpfully snaps to the next semitone.

  4. Tap “Close” in the top left to close the Performance Settings.

  5. Returning to the menu in the top right, select “MIDI” under the Global heading. The MIDI settings window will open.

  6. Tap the plus (+) button to create a new MIDI configuration. Name the configuration “VCV MIDI” (or whatever you like). The settings window will open for your newly created configuration.

  7. Under the MIDI Out heading, tap “Mode: Single” and change it to “MPE”.

  8. Further down the page (you may have to swipe up inside the window to scroll down), turn off “Send Pitch Bend Range”. VCV does not respond to this, so there is no need to waste the bandwidth.

  9. Two entries above that setting, change Pitch Bend Range to 60. This is the “magic” bit. Setting the range to 60 causes pitch bend messages (as seen by the MIDI-CV module) to track 1v/oct, allowing you to sum the outputs of “V/OCT” and “PW” from the MIDI-CV module in VCV before connecting that sum to the v/oct input of any oscillator for a seamless bending experience.

  10. Press “< Back” in the top left to return to the MIDI Configurations page, then tap “Close”.

  11. Returning to the menu in the top right, open Performance Settings under the Edit heading.

  12. Tap the Control tab at the top of the Performance Settings window. Change “Preset’s MIDI Configuration” to “VCV MIDI” (or whatever you named your MIDI configuration).

  13. Tap Close in the top left to close the Performance Settings window. Back in the menu in the top right, select “Save” under the File heading to save your preset.

Now, in VCV Rack:

  1. Create an instance of the MIDI-CV module. Select the appropriate MIDI Device. Right click to change the Polyphony Mode to “MPE” and the Polyphony Channels to 16.

  2. Create an instance of a module such as Bogaudio SUMS or ML Modules Sum8. Connect “V/OCT” and “PW” to the inputs of the summing module. Connect the sum output to the V/Oct input of a polyphonic oscillator module.

  3. The “AFT” output of the MIDI-CV module is where you will find the range of signals generated from sliding your finger along the Y-axis of a note in GeoShred.

  4. The “GATE” output functions as you’d expect: appropriate for connecting to an envelope generator.

If you are using an iPhone, GeoShred additionally uses Apple’s “3D Touch” to send Z-axis (pressure) information. I’m using an iPad Pro, so I can’t help with the configuration details, but I imagine it would be ideal to remap this to MIDI CC 1 in order to access it from the “MW” output of the MIDI-CV module. It’s also possible that by default it may arrive at the “VEL” output. Or, maybe the iPhone version maps Z-axis to aftertouch and Y-axis to something else…


Great post, I didn’t know there was a Control version of GeoShred without the sound engine.

Studiomux has issues with it’s receiver app (for me it silently crashes), so it can’t be recommended.

Handy tip about having a router connected via ethernet when using wifi midi.

Is it stable for you? I’ve tested Patterning 2 via wifi once, and many notes were dropped, so it wasn’t reliable - but I had both ipad and pc connected wirelessly to the router.

It’s been stable for me so far. A few times I’ve had trouble with getting rtpMIDI to see the iPad in order to begin a session, but I haven’t yet had any dropouts mid-session. I’m running on 802.11ac with a Nighthawk R7000 as the router and the iPad is a 2018 Pro model.

Thanks for this step by step ! useful

1 Like

An update regarding Studiomux app as a means to connect iOS midi apps to Win10 PC.

The key thing is to uninstall iTunes from Microsoft Store and to find online a normal exe version, and then install that.

This is required for the Studiomux receiver app to work properly. Now I can stream both midi and audio via lightning to usb cable.

The only question is if Studiomux or Midimux would be able to handle the amount of midi data that GeoShred Control generates.

1 Like

I found a bug in which there was some unusual pitch bending going on (originally described here under the mistaken impression that it was problem with MIDI-CV). After reporting it to moForte (GeoShred developer) in December an update was released which unfortunately contained a regression in which, when using Poly mode, the pitch of held notes is no longer tracked after a subsequent note is pressed. moForte states that a fix for this is planned for their next major release (slated for late March).

In the meantime I recommend using String mode instead of Poly mode in order to work around this issue, bearing in mind that this restricts polyphony to a maximum of 6 notes (one per GeoShred “string”).

It turns out that on Mac there is a built-in way to accept MIDI over lightning-to-USB cable from a device running iOS 11+: IDAM (Inter-Device Audio and MIDI).