Instrument to MIDI — a patch for translating instruments to MIDI

The name sort of says it all. This patch analysizes incoming audio and translates it into MIDI, producing a pitch, gate, and velocity output.

There’s also a MIDI looper. At present, it is not synced to MIDI clock; the CV looper is limited to four seconds, which did not really seem long enough to justify the CPU expenditure. But, if you wanted to add this, I put one approach to clock-syncing on Tips and Tricks recently.

In the default, everything is set to MIDI channel 1, but all of the MIDI modules are present on the front page, so you can re-route according to taste/setup. The instrument and the looper MIDI can be sent to separate channels.

The instrument to be analyzed passes into the left input and passes out the left input.

The right input is routed to the right ouput, but it can also be mixed into the left output, if you wanted to route audio from your external synth into ZOIA and mix it with the instrument (or add effects, etc.).

A special thanks to my patrons on Patreon for their support: Rob Flax, Stepan Grammatik, brockstar, Mats Unnerholm, D Sing, Will Scott, drew batchelor, Miguel, Steve Bragg, Joab Eastley, Tomi Kokki, Mitch Lantz, Ben Norland, Daniel Morris, Roman Jakobej, Mark Crosbie, Steve Codling, Timothy Cleary, Soren Made, Ken Luke, Mike Ryan, Vilis Klavins, Nick, and Eric Peterson!

If you would like to support my work on ZOIA, please visit



Left, momentary — MIDI sustain (CC 64)

Middle, momentary — MIDI loop record; loop will begin playing immediately after recording ends

The MIDI loop records: note, gate, velocity, and expression pedal input (by default routed to mod wheel, CC 1)

Right, latching — MIDI loop mute; mutes the output of the loop; when the loop is unmuted it is retriggered to start playback from the beginning

Front page:

Sensitivity — controls the threshold of a gate placed before the envelope follower and the onset detector used to generate gates

Velocity bypass — bypasses velocity for consistent volume output from the synth

Legato — bypasses the onset detector used to provide gates to each individual note played

Left mix — Mixes the instrument used for analysis with the input of the right channel and outputs this to the left output; the right input is, by default, always automatically routed to the right output (though this can be changed)

The rest of the front panel is the MIDI connections for the patch.

Of particular note is the expression pedal module, which is routed to the mod wheel (CC 1) by default at the center of the page.

Audio connections are on the second page; there’s enough CPU headroom for you to route your synth (or instrument… or both… through some effects, if you want to add them).

I spend a bit of time in the video trying to show off how the expression pedal can be recorded to loop; nothing seems to happen. This is because I am a doofus, and it wasn’t patched correctly (since fixed for the patch release).

6 comments on “Instrument to MIDI — a patch for translating instruments to MIDI
  • Christopher H. M. Jacques on said:

    I should say a lot of the performance depends upon the synthesizer patch employed; for instance, if the patch does not use velocity, then it will not matter if this is sent or not; if the filter closes too much, MIDI sustain will not be particularly apparent or useful.

  • BROCKSTAR on said:

    P.S: For anyone using this for guitar-to-midi, be sure to roll guitar tone knob all the way off and put on neck pickup for best results. Not doing so can lead to dead notes or misfire tracking etc… Will play fine with slow playing if you don’t do it though… but this is common for most guitar/instrument-to-midi converters to behave like this. Once you roll tone off and on neck pickup of guitar you can play pretty fast and great tracking.

  • Sixstringedmatt on said:

    Could one use the converter to also play synths created in ZOIA or would that slam the CPU?

  • Christopher H. M. Jacques on said:

    You could; it would probably be more efficient to build the tools from scratch or to remove the MIDI-directed functionality before proceeding with an internal synth.

    I made a tutorial on the basics of creating a pitch-tracked synth:

    (I should add that this video was produced before the most recent firmware, which drastically improved the performance of the pitch detector.) I use an onset detector for this patch (when legato is off), which is a costly module I do not often employ when building internal synths because I tend to prefer the performance legato anyhow, but I do cover a lot of the essentials for creating a playable synth internal to ZOIA.

  • emp_john on said:

    Hey Christopher! When I use this patch, the MIDI gate popcorns a lot when a note is played (goes 0 to 1 sporadically). Changing the decay time from 1.33 ms to 2.67 ms on the Gate/Env follower/ADSR page helps a little, but am I missing something or using the patch wrong? I tried guitar straight into Zoia, also tried another pedal pre-zoia to boost my guitar signal into Zoia, using pick up bridge with tone rolled down, and messing with the sensitivity control on the control page and everything has the same sporadic gate.

  • Leave a Reply