---
title: "ControlMi"
url: "https://divergenz.ch/projects/midi-controller/"
language: "en"
description: "An iPhone MIDI controller prototype for Ableton Live, with adjustable touch controls and input through tilt or eye movement."
---

# ControlMi

An iPhone MIDI controller prototype for Ableton Live, with adjustable touch controls and input through tilt or eye movement.

Contribution: Interaction design · Prototyping · iOS development

Technologies: [Swift](https://www.swift.org/) · [SwiftUI](https://developer.apple.com/xcode/swiftui/) · [MIDIKit](https://github.com/orchetect/MIDIKit) · [ARKit](https://developer.apple.com/documentation/ARKit) · [Core Motion](https://developer.apple.com/documentation/coremotion)

![Switching between the Mixer, FX, and Keys layouts in ControlMi.](https://divergenz.ch/images/case-studies/midi-controller/poster.webp)

Recorded in the iPhone simulator. This shows layout switching, not hardware MIDI, tilt, gaze, or Ableton operation.

[Open video (MP4)](https://divergenz.ch/videos/case-studies/midi-controller/overview.mp4)

![Mixer Scene 2 with trigger pads, four vertical faders, and an XY pad in ControlMi.](https://divergenz.ch/images/case-studies/midi-controller/mixer.webp)

A custom Mixer scene combines trigger pads, faders, and an XY control.

![ControlMi’s FX view with two XY pads for EQ and delay.](https://divergenz.ch/images/case-studies/midi-controller/fx.webp)

FX: two-axis controls for EQ and delay parameters.

![ControlMi’s Keys view with twelve trigger pads labeled C3 to B3.](https://divergenz.ch/images/case-studies/midi-controller/keys.webp)

Keys: twelve note pads spanning one octave.


## Keep values steady when a finger lands

Small controls can make music software difficult to use when precise touch
is a barrier. Workshop requirements shaped an iPhone MIDI prototype with
adjustable controls and alternatives to touch.

The prototype includes trigger pads, faders, and two-axis pads. Faders and
two-axis pads respond to movement relative to their value at the start of a
drag. Touching a control does not cause a sudden jump in value. Trigger pads
can send a note while held or toggle it on and off with successive touches.

## Adapt the surface to the task

Edit mode lets users move and resize controls. Labels, colors, shapes, and
MIDI mappings are editable. Continuous controls also offer adjustable output
ranges, direction, and response curves. Scenes switch between whole pages of
controls, and layouts are saved on the device.

The controller sends standard MIDI notes and control changes. A USB
connection routes them to a Mac, where users assign parameters through
Ableton Live’s standard MIDI mapping.

## Separate aiming from action

Device tilt and horizontal eye movement can control continuous MIDI
parameters. Eye-gaze input offers continuous control or a mode where users
choose a value with their gaze and confirm it with a longer blink. In that
mode, the value stays fixed between confirmations. Sensor mappings can be
set separately for each view.

Eye input requires a device that supports ARKit face tracking. The practical
value of these interactions depends on device capabilities and evaluation
with intended users. Knob and keyboard controls are still unfinished.

[Back to projects](https://divergenz.ch/projects/)

[Deutsch](https://divergenz.ch/de/projekte/midi-controller/)
