Categories: Hardware Prototypes/Non-Commercial products

Submitted by:Daniel Stern

24 May 2023

Elevator Pitch


midimeister tries to carry the procedural possibilities from Eurorack modules into realtime midi note and CC effects to enhance the midi data it’s fed.

Product Description


The midimeister offers a simple way to procedurally generate musical ideas based on the incoming Midi signal and the chosen modules. It is built to allow the musician to generate complex musical ideas when improvising while still staying in control of the output. It is inspired by Midi tools like the Squarp Pyramid, the NDLR but also Eurorack modules like the Turing Machine, Mutable Instruments Grids or even a simple quantizer.

For that it offers four different areas:

* Connect midi over USB, USB host and DIN. For each source and target can be defined if it sends or receives timing clock and if it sends or receives note/cc data.
* Midi note effects that modify the incoming note signal can be applied individually or chained.
* CC effects offer modules from simple timed LFOs, over sample-and-hold, note-to-cc conversion to expression-pedal output.
* The sequencer part offers an euclidean sequencer, an implementation of Mutable Instruments Grids as well as a mix of both. These notes can be fed back into Midi note effects or their trigger signal can be used in some of the effects (e.g. for the arpeggiator's timing).

The user can choose a global note offset track that will be used to change the pitch of outgoing notes based on its difference to C3. Any outgoing note can finally be forced/quantized into a specific scale.

Available note effects are:
"Arpeggiator": typical arpeggiator effect. Can be timed by the euclidean sequencer (can also use the three euclidean sequencer notes to choose which of the incoming notes to play).
"Chord": builds a chord around the incoming note. “
Delay": sends out copies of the incoming note with a time offset. Can also move the note up or down, fade out the velocity and randomize its speed.
"Euclidean": generates outgoing notes based on a euclidean sequence.
"Force": forces the note or velocity to a specific value.
“Jump”: moves every n-th incoming note up or down by a specific amount.
"LFO": offsets the incoming note by a sine wave.
"Move'n'Mute": moves incoming notes to a different channel or mutes notes on a channel.
"Octatrack”: allows to play sample slices on the Octratrack by sending out a CC signal before triggering the note (this was not able on the Octatrack until recently).
“Paraphonic": allows synthesizers with two oscillators which offer a CC offset for the second oscillator to be played paraphonically by sending a CC signal for the offset if a first note had already been played.
“Pedal Offset": offsets the incoming signal based on the expression pedal.
"Random": randomizes either the incoming note value, the incoming velocity value or randomly skips the incoming note off.
“Random Sequence”: Offers 999 ‘random’ sequences that can be up to 32 steps and be scaled in note width and gate length.
"Scale": forces the incoming note into a specific scale - similar to the global option but on a per channel basis.
"Split Channel": copies the incoming note to other channels with the option to offset their note value.
“Split Key": the note range (C-1 to G9) is split up so that higher incoming notes are sent to a different channel.
"Split Note": if the user plays more than one note at a time those notes are sent to other channels (e.g. to spread polyphonic notes to different synthesizers). Can also be used to send every other note on a different channel.
“Subdivide": subdivides long incoming notes into multiple ones. Offers the option to leave out specific ones to add rhythm.
"Turing Machine": implements a turing machine. A random sequence of note and gate values can be individually updated and trigger a sequence of outgoing notes. CC modules have a channel, a CC type (including pitch shift, aftertouch and note) and a min/max range (0-127) which can be inverted.
"AHR": simplified ADSR which offers attack, hold and release on any incoming notes on a specific channel.
“Copy”: copies a CC value to a different channel and/or CC.
“Duck Midi": based on any incoming notes on a specific channel a CC value is generated that quickly drops and falls back (or the other way around).
"Note to CC": incoming notes on a specific channel are translated in CC values. Either in a one octave range from C3 or over the whole note range.
"Pedal": applies the value from a connected expression pedal onto a CC value.
"Pedal Rec" [WIP]: will allow to record the signal from the expression pedal and play it back looped.
“Random": random value that can update freely, be time synced and/or be retriggered by any incoming note.
“Random Hold": same as Random but will always be either the set min or max value and jump between them based on a given chance.
"Sine", “Square”, "Triangle": simple LFOs that can run free, be time synced and/or be retriggered by any incoming note.

How It's Innovative

To be honest: I’m surprised that this little box is as innovative as it is. The ideas behind it are quite simple and it’s remarkable how there is no product like it on the market already. Even just using the simplest options like the in/out routing options, copying an incoming note to multiple sequencers, transposing all notes based on an offset channel and having the option to quantize everything into a scale add so much to a hardware setup - especially for improvising. Using more advanced effect chains on the other hand offer the possibility to generate complex melodies that still feel controllable by the musician. Having the option of time-synced LFOs that modify any synthesizer's parameters livens up the sound and being able to use the motion of your feet adds a human factor.

See MIDI Innovation In Action

Most Inspiring Use Cases

Setting up a chain of effects and enjoying their resulting music while live controlling them when improvising.

Expansion Plans

I'm still adding effects whenever new ideas come up.


Not as of right now.