YoYo Yu / 2026 / Physical computing / Music interaction

01 / Overview

Chip Trigger

A Gestural MIDI Controller

体感 MIDI 控制器

A DIY controller for shaping electronic music through pressure, hand movement, buttons and knobs.

It connects to Ableton Live through Arduino and Max for Live.

Motivation

Why I made it

My experience playing the violin made me interested in how small physical changes can affect a sound. While exploring MIDI controllers, I wondered how I could bring more of this kind of control into electronic music.

Learning about the theremin introduced me to playing through movement in space. I used an ultrasonic sensor to read hand distance and an FSR to connect pressure with changes in timbre.

I was born in 2009, so the sounds and colourful buttons of older games were a new discovery for me rather than a childhood memory. Chip Trigger brings these interests together in a controller I could build and perform with.

The violin and the theremin are starting points for the interaction, not emulations of either instrument.

Handwritten Chinese design notes titled Design Concept, with a Chip Trigger box at the bottom.
Handwritten design notes, October 2026 (Chinese). The English text on this page is the readable summary: arcade buttons trigger chiptune layers, with colour separating Pad, Drum and Bass.
04arcade buttonsarrangement and FX
04continuous knobsblend, rate, division
02sensing modespressure + distance
125BPM sessionmodular MIDI library
I

Buttons and layers

Three coloured buttons add or remove Pad, Drum and Bass; B4 triggers Stutter and Random.

II

Gesture

Pressure shapes two sound routes; distance chooses quantised notes.

III

Live arrangement

Prepared loops and live gestures are shaped together in performance.

02 / Performance

One performance,
six movements.

A single continuous performance, filmed with multiple cameras and an OBS screen capture, moving from a freestyle opening through two arranged sections, a climax, a return and a closing section.

Fig. 02 Performance film. Source 4K; this web copy is 1080p H.264 with stereo audio.

Role of the instrument

The controller shapes an existing arrangement: it brings layers in and out, changes effect blends and timing, and plays melodic gestures. This performance uses a prepared Ableton Live Set with manually configured mappings.

What to watch

Follow the hand between the panel, the pressure strip and the distance sensor while the Live screen responds.

Next

See how the panel is mapped

Movement map

Select a movement to load and seek the film; scroll the bar to see all six.

Performance planningB section · cue sheet · setup

Inside B · performance sequence

  1. 01Enable Bass and Pad.
  2. 02Raise mixer volumes.
  3. 03Enable Drum.
  4. 04Raise the ultrasonic and FSR performance-track levels, then perform.
  5. 05Adjust K1 and K2.
  6. 06Press B4 to engage Stutter.

This sequence describes the B section; the movement runs from 01:41 to 02:38.

The controller beside an open notebook of hand-written performance planning notes.
The controller and the hand-written performance plan, side by side.
Hand-written performance cue sheet listing Freestyle, A, B, Climax, A prime and C with notes about layers and controls.
The hand-written cue sheet used to plan the performance.
Performance setup with the custom controller, Launch Control XL, laptop running Ableton Live, and a camera tripod.
The performance setup. Two controllers, one Session: gesture and mix are separated.

03 / Interaction

Buttons, knobs
and gestures.

Arcade buttons change what is playing. Knobs change effect blends and timing; the FSR shapes two sound routes, and distance selects quantised notes.

Panel control map Top view of the controller: four coloured arcade buttons labelled B1 to B4, four knobs labelled K1 to K4, a pressure strip labelled FSR, and an ultrasonic sensor labelled DIST. B1 PAD B2 DRUM B3 BASS B4 FX DISTANCE K1 · FX MIX K2 · RATE K3 · DIV K4 · LEAD FSR · PRESSURE
Fig. 03 Control map drawn from the panel layout. Select a control to open its row in the table.

Primary control relationship

B4 arcade button
Stutter Tool macro group macro
Rhythmic chopping
& reordering
audible result
B1 · B2 · B3
Pad, Drum and Bass layer on/off.
K1 · K2
Group effect blend; sample-rate and left-delay time.
K3 · K4
Arpeggiator division; Lead delay blend.
FSR
Two routes: Serum brightness; on the A Model D Ford chain, Borg Frequency/Pitch and Delay L Delay Time. The unused track is turned down in the mixer.
DIST
Seven-note major path; Ableton Scale makes it major pentatonic. No Remote MAP.
LCXL
Mixer levels and mutes in Ableton Live.
Fig. 04 Feature demonstration: the panel operated alongside the Live Session. On-screen labels identify the controls used.
View mapping detailsFull control table · mapping shots

Swipe horizontally to read the full mapping.

Control mapping for the recorded B Session
ControlTargetMusical result
Discrete · arcade buttons
B1 PadPad trackAdds or removes the Pad layer.
B2 DrumDrum groupAdds or removes the Drum group.
B3 BassBass trackAdds or removes the Bass layer.
B4 FXGroup → Stutter ToolEngages the Stutter and Random macro; the audible result is rhythmic chopping and reordering.
Knobs and sensors · continuous control and quantised notes
K1 Group FXGroup effect macroBlends four effects: Acid Distortion, A Bit Warmer, Chiptune Filter and 8DotBall.
K2 Rate / delaySample rate + L Delay TimeSlow-motion, tape-like timing colour. It does not change the Session tempo.
K3 Arp divisionLead arpeggiator → DivisionChanges the arpeggiator division.
K4 Lead delayLead → Delay → Dry/WetChanges the dry/wet blend of the Lead delay.
FSR PressureSerum brightness + Borg / DelayOne serial value feeds two tracks: Serum brightness, and a second route through A Model D Ford → Borg → Delay. FSR is mapped to Borg Frequency, Borg Pitch and Delay L Delay Time. The unused track is turned down in the mixer.
DIST DistanceDistance → quantised notes → Live ScaleDistance selects notes from a seven-note major scale; Live's Scale device narrows them to major pentatonic. No Remote parameter mapping is required.
Support · third-party hardware
LCXL Mix / muteLaunch Control XLMixer levels and mutes in Ableton Live. Not part of the custom build.
The controller with small hand-written paper labels beside the buttons and knobs from an earlier mapping session.
working labels The panel during an earlier mapping session. “Pitch” beside the sensor is a temporary label from that session, not a current Pitch Bend control.
The Stutter Tool interface at the end of the B4 macro path, showing its Stutter and Random controls alongside grain size and repetition.
third-party End of the B4 macro path: Stutter Tool.
Serum parameter panel showing Filter 1 Freq, Filter 1 Res, Filter 1 Drive, Porta Time and Porta Curve.
third-party Serum parameters.
A composite Live screenshot showing the four effect devices controlled by the K1 group macro.
third-party · composite K1 effect chain: four device panels.
Ableton device chain showing the A Model D Ford instrument rack, Borg and Delay, with FSR-mapped parameters highlighted.
third-party · composite FSR second route: A Model D Ford → Borg (Frequency, Pitch) → Delay (L Delay Time).

Mapping reflects the B Session and Gesture Path V9. K3 is bound to Division. The hand-written “Humidity” label means effect dry/wet balance, not an environmental sensor. Select any figure to enlarge it.

04 / System

From a hand
to a parameter.

The Arduino sends serial data over USB rather than class-compliant MIDI; Max for Live converts the data into parameter changes and MIDI notes. Pressure feeds two sound-shaping routes, distance selects notes, and the controller shapes a prepared Session rather than producing sound on its own.

Signal flow diagram Physical controls and sensors feed an Arduino Uno over USB serial. Max for Live Gesture Path V9 converts the data into parameter changes and MIDI notes. Launch Control XL feeds the Live mixer separately. PHYSICAL INPUT 4 arcade buttons Pad · Drum · Bass · FX 4 knobs mix · rate · division FSR pressure · two routes Ultrasonic distance in cm MICROCONTROLLER Arduino Uno panel firmware read buttons and knobs read pressure read distance send serial data USB serial SOFTWARE Max for Live Gesture Path V9 parse serial smooth sensors bind Live paths distance → seven-note major path-based binding ABLETON LIVE Live parameters track switches · effect blends · division Arranged layers respond to the panel MIDI note path seven-note major → Scale → major pentatonic No separate Remote MAP PerformProg2.0 125 BPM · modular Session 21-part MIDI library: Pad · Drum · Bass · Lead Launch Control XL mixer levels · mutes
  1. 01 · Physical input

    Buttons, knobs and sensors

    Four arcade buttons, four knobs, one FSR strip and one ultrasonic sensor.

  2. 02 · Microcontroller

    Arduino Uno

    Reads the panel and sends a 10-field serial message over USB.

  3. 03 · Software

    Max for Live · Gesture Path V9

    Parses and smooths the data, then converts the data into parameter changes and MIDI notes.

  4. 04 · Ableton Live

    Parameters and notes

    Parameter changes shape track switches, effect blends and division. MIDI notes pass through Scale: a seven-note major path narrowed to major pentatonic.

    PerformProg2.0 · 125 BPM · 21-part MIDI library

  5. Separate path

    Launch Control XL

    Mixer levels and mutes in Ableton Live. Not part of the custom build.

Fig. 05 Signal flow. Pressure and knobs shape Live parameters; distance is quantised to a seven-note major scale, then narrowed by Live's Scale device. No separate Remote map is needed.
Ableton Live Session view with the PerformProg2.0 tracks and the Gesture Path V9 device at the bottom.
Fig. 06 The recorded B Session: arranged groups, prepared clips, the V9 device and the Live mapping panel. K3 is bound to Division.

05 / Development

From prototype
to performance.

The instrument was developed across layout experiments, a breadboard prototype, shell and wiring, and the Max for Live control layer.

Process

Selected moments from layout experiments, prototyping and assembly.

Hand-drawn controller layout with the actual orange, pink, green and blue arcade buttons, an ultrasonic sensor and an FSR placed on the paper.
01 · Layout The real buttons, distance sensor and FSR on a hand-drawn plan, placed to check spacing.
YoYo in blue gloves wiring a breadboard prototype, with arcade buttons and knobs on the table.
02 · Prototype YoYo wiring the breadboard with buttons, knobs and sensor leads.
Open white enclosure showing potentiometers in the panel, the carrier board, the Arduino and colour-coded wiring.
03 · Assembly The open shell: potentiometers in the panel, carrier board and wiring inside.
Breadboard prototype with coloured jumpers connected to a laptop running Ableton Live.
04 · Connection The breadboard connected to Ableton while the signal path was being set up.

Shell and electronics

A case for the panel.

The printed shell holds the panel, the carrier board and the wiring. Potentiometers sit in the lid; the Uno and connectors sit inside.

I drew the outer form and control layout, and took part in prototyping, soldering, wiring, assembly and testing. Zøe Qiang provided technical guidance and practical assistance, including Fusion modelling, PCB shield layout, soldering support, printing and the acrylic panel order.

Build Shell printed; panel fitted.

Interior of the white enclosure with an Arduino Uno, bundled colour-coded wiring, a ribbon cable and the shell mounting posts.
Inside the shell: Arduino Uno, colour-coded wiring and the mounting posts.
Gesture Path V9 panel showing B1 to B4, K1 to K4, distance, FSR and the pasted path mapping list.
Fig. 07 Gesture Path V9, the custom control layer. K3 is bound to Division.

Interface

From MIDI learn to paths.

I used pasted Live Object Model paths to bind controls to chosen parameters across tracks.

Mapping is not yet recalled. Reopening the device means rebinding the controls.

Design drawingsEnclosure draft · PCB RevF
Fusion model of the enclosure with the acrylic panel and knobs, showing how the controls sit inside the shell.
Enclosure · RevA_DRAFT. A layout study, not the final printed model.
PCB RevF layout with the board outline, connectors, mounting holes and labels.
PCB · RevF. Board outline, connectors and mounting holes.
Close view of the assembled carrier board, resistors and connectors.
Assembly. The same carrier board in the build.

Fusion source: RevA_DRAFT; PCB: RevF. Form and control layout by YoYo Yu; Fusion modelling, PCB shield layout, printing and acrylic panel sourcing with Zøe Qiang.

Form

Two colour studies, one build.

Two colour studies were made before printing. Both kept the four coloured buttons; the white version was used for the build. These are renders, not photographs.

Concept render of the controller in a black enclosure with black knobs and four coloured buttons.
Fig. 08 Black study not selected
Concept render of the controller in a white enclosure with silver knobs and four coloured buttons.
Fig. 09 White study selected
0:00 / 1:02
Fig. 10 Behind-the-Build film: soldering, enclosure assembly, rehearsal and the recording-room setup.
Technical detailsEnclosure · firmware · session

Enclosure

Shell
260 × 140 × 48 mm, white PLA Basic
Panel
3 mm frosted acrylic
Nozzle
0.4 mm at 215 °C
Layers
0.20 mm, four walls, 20% honeycomb infill
Flow
12 mm³/s successful; 23 mm³/s test failed
Fixing
Heat-set M3 inserts, black fasteners

Firmware

Board
Arduino Uno R3, panel_v02
Serial
115200 baud, 10-field message
Knobs
A0–A3
FSR
A4
Buttons
D2–D5
Ultrasonic
D6 trigger, D7 echo

Session

Set
PerformProg2.0, 125 BPM
Material
21-part MIDI library
Control
Gesture Path V9
Scale
Live Scale, major pentatonic
Mapping
See “View mapping details” above

06 / Reflection

What the instrument
taught me.

Sensor readings sometimes drift, so the same gesture does not always produce the same musical result. Improving that stability is the main priority for the next iteration.

Next steps

  • Steadier sensing. Reduce drift so the same gesture gives a more predictable result.
  • Mapping recall. Reopening the device currently means rebinding the controls.

Credits

Concept, interaction design, music and performanceYoYo Yu

I developed the concept, interaction design, music and performance, and took part in prototyping, soldering, wiring, assembly and testing, with technical guidance and practical assistance from Zøe Qiang.

Support — Zøe Qiang:Fusion modelling, PCB shield layout, soldering support, enclosure printing, acrylic panel sourcing and programming guidance

Completed26 October 2026

Provenance

AI coding agents assisted with debugging and implementing the portfolio website. No generative music tools were used to create the music.

Third-party software, packs and samples are listed below. The Stutter Tool is a Max for Live effect used for the B4 macro.

Third-party sourcesFrom the recorded session
  • Ableton Live 12 Suite / Core Library: Roar (Acid Distortion), Saturator (A Bit Warmer), Redux (Chiptune Filter), Echo (8DotBall), Grain Delay (Borg), Arpeggiator (Housier Than Thou), Limiter (Upper Ceiling), Utility (Bass Mono); 909 drum samples.
  • Ableton packs: Chop and Swing (A Model D Ford); Sequencers / Step Arp (Sweet Flourish); Max for Live Essentials (Arp).
  • Plugins: Xfer Records Serum 2; Sonic Academy ANA 2.
  • Other devices: Stutter Tool (Max for Live effect); Novation Launch Control XL (mixer controller).

Devices and sample sources listed as used in the recorded session.

Portfolio PDF

8-page A4 landscape edition, with selectable text and embedded fonts.