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)

  1. Put in motion-capable AirPods, pair them, and enable AirPods in the TDLiDAR app.
  2. Drop the AirPods op. Turn your head — yaw (or yaw_deg) swings; nod and pitch moves.
  3. Export tdlidar/airpods/yaw_deg and …/pitch_deg onto the Rotate of a Camera or Geo COMP to aim a virtual look with your head.
  4. 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) or yaw (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_deg through 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…quat4 into a CHOP-to-matrix (or Python tdu.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 …_deg versions (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.