M1 with MIDI


By Werner Almesberger

You haven’t really seen what the Milkymist One (M1) really can do if you haven’t used it with some MIDI controls.

Here’s how it’s done:

  • first, you need some MIDI controller. For now, it has to be one that has the old-style MIDI connectors, not USB-MIDI. I used a Korg Kaossilator Pro.
  • next, you need to define which of the controller functions you want to map to variables for your patch. This is done in the M1′s control panel, Interfaces > MIDI > Controller mapping.

    “midi1″ through “midi8″ are the variables you can set. The value on the right side is the controller number. E.g., for my Kaossilator, I assigned:

    midi1 12 touch pad, X axis
    midi2 13 touch pad, Y axis
    midi3 91 gate arpeggiator slider
    midi4 94 program volume knob

    This is for using the Kaossilator both as an instrument and as a MIDI controller. If I had switched it to be only a controller, I would have had more controls to play with and some of the numbers would have changed.

  • you can now use Patches > Variable monitor to see how the controls affect the midi1 … midi4 variables. Each gets assigned a value between 0 to 1, corresponding to the setting of the control. (MIDI transmits values from 0 to 127.)
  • finally, you need to modify a patch to use the MIDI variables. I took a simple one, “Geiss – Tornado”, and made the following tweaks:
    1. per_frame=t=time+midi2*100;

      and then changed all the wave_
      settings to use “t” instead of “time”. This way, I can modulate the color by moving along the Y axis on the pad.

    2. per_frame=rot=midi1*2;

      I put this after the last assignment to “rot”, effectively overriding it. Now rotation is entirely under my control, with no rotation when touching the pad on the left edge, and rapid spinning on the right edge.

    3. per_frame=move_x=0.5+midi3/5;

      This controls the distance of the point being drawn from the center. With rotation, this becomes the radius at which things appear. I assigned it to the slider.

    4. per_frame=zoom=0.9+midi4/5;

      This controls how quickly we “travel into” the image. I assigned it to the volume knob.

  • these settings are lost when powering down or restarting the M1. To keep them, save with Performance > Save and, after booting, load with Performance > Load. Be careful to save under the directory /ssd/, not the root directory. The latter is also lost when booting.


Here is a video:

In this case, I didn’t use the Kaossilator’s sound. Also, some of the controls aren’t very nicely mapped for the effects I was trying to make. That’s why I often had a hard time getting from an all-green screen to something more interesting.

  1. No comments yet.

Comments are closed.