Mapping & customization
Two-finger touchpad mode
Kaoss-style two-finger touchpad mapping. Each finger drives an independent pair of CCs, with optional pinch and spread gestures.
Updated
The two-finger touchpad mode tracks each finger independently. Finger 1 drives one CC pair, finger 2 drives another, and the distance between them can drive a third. Closer to a Kaoss Pad Quad than to a regular XY pad — and the cheapest way to get a real multi-touch MIDI surface on your desk.
Most controllers force you to pick one finger or the other. The DualSense reports both simultaneously, which is the only reason this mode exists. If you're on a DualShock 4 the bridge supports it too, with slightly noisier coordinates.
What you need
A DualSense or DualShock 4 — both report up to two simultaneous touch points. Single-touch reading from the simpler XY mode is a more relaxing place to start if you've never used the touchpad as a controller.
Open the editor and switch mode
Click the touchpad in the diagram, then change mode from xy to two-finger. The panel expands to show two finger slots and an optional distance binding.
Bind each finger
Finger 1 and Finger 2 each get their own X and Y CCs. A common patch: filter on finger 1, delay mix and feedback on finger 2.
{
"touchpad": {
"mode": "two-finger",
"finger1": {
"x": { "type": "cc", "cc": 74, "channel": 1 },
"y": { "type": "cc", "cc": 71, "channel": 1, "invert": true }
},
"finger2": {
"x": { "type": "cc", "cc": 91, "channel": 1 },
"y": { "type": "cc", "cc": 93, "channel": 1, "invert": true }
},
"distance": { "type": "cc", "cc": 1, "channel": 1, "range": [0, 127] }
}
} CC 91 is reverb send, CC 93 is chorus send — both are GM-defined and most plugins respect them. CC 1 on distance gives you a pinch/spread gesture wired to the mod wheel.
Gesture reference
The bridge exposes more than just X/Y/distance — here are the gestures available in two-finger mode:
| Gesture | Field name | Range | Common CC |
|---|---|---|---|
| Finger 1 X / Y | finger1.x / .y | 0–127 | 74 / 71 |
| Finger 2 X / Y | finger2.x / .y | 0–127 | 91 / 93 |
| Distance (pinch/spread) | distance | 0–127 | 1 (mod) |
| Midpoint X / Y | midpoint.x / .y | 0–127 | 10 (pan) |
| Angle (rotation) | angle | 0–127 | 16 (free) |
Midpoint and angle aren't shown in the UI by default — flip showAdvanced: true in the binding to reveal them.
{
"touchpad": {
"mode": "two-finger",
"showAdvanced": true,
"midpoint": { "x": { "type": "cc", "cc": 10, "channel": 1 } },
"angle": { "type": "cc", "cc": 16, "channel": 1 }
}
} Finger ordering
The DualSense reports touches in arrival order, not position. If you put your right finger down first, that's finger 1. The bridge sticks to that assignment until both fingers lift.
Common scenarios
Patches that justify the second finger:
- Filter + delay mixer: Finger 1 → cutoff/res, finger 2 → delay send/feedback, distance → reverb send. Three textures, one gesture.
- Two-voice synth: Each finger triggers its own held note via
onTouchStart, then X drives pitch-bend per voice. Drag two fingers in opposite directions for a Theremin duet. - DJ-style transition: Finger 1 = track A volume + filter, finger 2 = track B volume + filter, distance = crossfader. One hand mix.
- Granular cloud control: Finger 1 = grain size + density, finger 2 = pitch + position, distance = wet level. Designed for Output Portal or Granulator II.
- Rotation as macro: Two-finger twist on the pad → CC 16 macro. Closest thing to a jog wheel on a touchpad.
Save and test
Save the mapping. Touch with two fingers, drag them around, then pinch and spread. The MIDI monitor should show five CC streams when both fingers move.
What's next
Pair the touchpad with stick corners for tap triggers — see stick edge quantization. Save the whole patch as a preset.