DIAD Dials


DIAD (Dialling in a dial) is a project about the use of dials as human interfaces in software environments. It’s about making MIDI dials more awesome!


Demonstration prototypes built within Max and designed for use with Max 4 Live are available to download here.

The Dial Prototypes


This dial behavior offers the ability to set a value and then refine the chosen value in a manner inspired by a vernier dial.

diad.aa, delay-time, name => output(float)

Useful for selecting related presets and fine modification of values.


This dial was created in response to the performative gesture problem of diad.oldphone.

diad.accum, -, int, => output(in)

Useful for creating a larger input value while passing through adjacent values with a gesture.

Old phone

This dials usage and visual behaviour is model on the action of a rotary style telephone handset.

diad.oldphone, duration, name => outputRamped (int), selectedValue (int), finalNumber (int)

Useful for input large numbers using a standard MIDI controller dial.

On off more

This dial behaviour is model on a dial interface with an initial on/off selector often found on domestic amplifiers.

diad.on-off-more, range, name => output(int)

Useful for controlling effects processors as they can be turned on and varied in one action.


This dial behaviour is based on emulating the typical panning hardware dial with its mid point catch.

diad.pan, width, name => output (int)

This dial behaviour is useful for panning situations and three way choices.


This dials visual behaviour is based on the action of a rotary style telephone handset.

diad.phone, duration, name => output-ramped (int), selected-value (int)

Useful for triggering gestures in the short term with a slight delay.