AirPods — tdlidar_airpods
Nod, shake or turn your head while wearing AirPods to aim and trigger visuals completely hands-free.
Category: External · Tier: Free · Needs: motion-capable AirPods (Pro / 3rd-gen / Max) paired to the phone
What it does
Streams the head pose from motion-sensing AirPods — pitch (nod), roll (head tilt), and yaw (look left/right) — plus the raw quaternion and motion vectors. Because the sensors are in your ears, your head becomes a controller you can use while your hands are busy on instruments or props. Look around to aim a spotlight, nod to confirm a cue, shake to reject one — all without a screen.
OSC in
| address | type | range | rate |
|—|—|—|—|
| /tdlidar/airpods/pitch | float | radians (nod) | head rate |
| /tdlidar/airpods/roll | float | radians (tilt) | head rate |
| /tdlidar/airpods/yaw | float | radians (turn) | head rate |
| /tdlidar/airpods/pitch_deg | float | degrees | head rate |
| /tdlidar/airpods/roll_deg | float | degrees | head rate |
| /tdlidar/airpods/yaw_deg | float | degrees | head rate |
| /tdlidar/airpods/quat | 4 float | orientation quaternion | head rate |
| /tdlidar/airpods/accel | float | head acceleration | head rate |
| /tdlidar/airpods/gravity | float | gravity vector | head rate |
| /tdlidar/airpods/tilt | float | derived tilt | head rate |
Outputs
out1 (CHOP) — channels named after the addresses without the leading slash: tdlidar/airpods/pitch, …/roll, …/yaw, the …_deg variants, tdlidar/airpods/quat1…quat4, tdlidar/airpods/accel, …/gravity, …/tilt. The node tile previews out1.
Parameters
| par | default | what it does | |—|—|—| | OSC Port | 9000 | UDP port to listen on (match the app) |
Quick start (beginner)
- Put in motion-capable AirPods, pair them, and enable AirPods in the TDLiDAR app.
- Drop the AirPods op. Turn your head —
yaw(oryaw_deg) swings; nod andpitchmoves. - Export
tdlidar/airpods/yaw_degand…/pitch_degonto the Rotate of a Camera or Geo COMP to aim a virtual look with your head. - Add a Lag CHOP (lag ~0.08) first so the aim glides instead of twitching.
Advanced patterns
- Nod / shake triggers: a Slope CHOP on
pitch(nod) oryaw(shake) gives head velocity; a Trigger CHOP on a threshold detects a deliberate nod-down or quick shake — map nod = confirm/advance, shake = cancel/reset. - Head-look to aim: map
yaw_deg/pitch_degthrough a Math/Range CHOP onto a light or camera angle for a hands-free spotlight; clamp the range so an over-turn doesn’t whip past your stage. - Use the quaternion for clean rotation: feed
quat1…quat4into a CHOP-to-matrix (or Pythontdu.Matrix) to drive orientation without euler gimbal-flip near ±90°. - Re-zero on cue: snapshot the current yaw/pitch when you press a key and subtract it, so “straight ahead” maps to wherever the performer is actually facing at show start.
Gotchas
- Needs motion-capable AirPods (Pro, 3rd-gen, Max). Standard AirPods report no head pose — the channels simply won’t appear.
- The radian channels are radians; use the
…_degversions (or ×57.2958) for anything that wants degrees. - Head orientation is relative to how you were facing when tracking started / last re-centred — build a re-zero step so “forward” is correct for the performer, not the AirPods’ notion of north.
- Raw head pose is jittery — always Lag/Filter before driving a camera or light.