Audio — tdlidar_audio

The classic audio-reactive op: band levels to scale shapes, beats to trigger, FFT to instancing.

Category: Audio · Tier: Free · Needs: microphone access on the phone

What it does

Turns the phone’s microphone into a full music-analysis feed for TouchDesigner. You get coarse low/mid/high band levels, a 20-band FFT spectrum, transient triggers (beat, onset), and a set of pitch/timbre descriptors (pitch, note, MIDI, spectral centroid, flux, rolloff, loudness). It is everything you need to build a stage-grade audio-reactive show driven by one phone, no audio interface required.

OSC in

| address | type | range | rate | |—|—|—|—| | /tdlidar/audio/rms | float | mic RMS volume | audio rate | | /tdlidar/audio/{low,mid,high} | float | band levels | audio rate | | /tdlidar/audio/fft… | float | 20-band FFT spectrum | audio rate | | /tdlidar/audio/{beat,onset} | float | transient triggers (momentary) | on event | | /tdlidar/audio/{pitch,note,midi,centroid,flux,rolloff,loudness} | float | pitch / timbre channels | audio rate |

The legacy /tdlidar/audio/drums/{low,mid,high} channels were removed (they never changed).

Outputs

  • out1 (CHOP) — every audio channel above, named by address: tdlidar/audio/low, …/mid, …/high, the 20 …/fft… channels, …/beat, …/onset, …/pitch, …/note, …/midi, …/centroid, …/flux, …/rolloff, …/loudness, …/rms.

Parameters

| par | default | what it does | |—|—|—| | OSC Port | 9000 | UDP port to listen on (match the app) |

Quick start (beginner)

  1. Enable Audio in the app and grant microphone access.
  2. Drop tdlidar_audio.
  3. Play music near the phone — out1 fills with moving channels.
  4. Export tdlidar/audio/low onto a Geo scale for an instant bass-pumping object; export …/high for the snappy detail.

Advanced patterns

  • Bands → scale: Math/Range each of low/mid/high to a sensible scale range and drive separate objects; a Lag CHOP (fast attack, slow release) makes them breathe instead of flicker.
  • Beat → trigger: feed …/beat (or …/onset) into a Trigger CHOP, then a Speed/Ramp or a Count CHOP, to fire flashes, advance presets, or kick particle bursts on each transient. These are momentary (1→0), so don’t expect a held value.
  • FFT → instancing: the 20 …/fft channels are a ready-made spectrum. Use a Select CHOP to grab them, a CHOP-to TOP/SOP, and drive instance height/colour per band for a classic spectrum-bar wall.
  • Timbre routing: centroid/rolloff/flux describe brightness and change — map centroid to hue and flux to roughness/displacement for visuals that track tone, not just volume. note/midi let you key visuals to pitch.

Gotchas

  • beat and onset are momentary — they pulse to 1 for one frame and drop. Catch them with a Trigger CHOP; you can’t read them as a held state.
  • The FFT bands are raw and spiky; Lag/Filter or normalize (Analyze CHOP max → Math divide) before driving anything smooth.
  • It’s a microphone, so it hears the room, not a clean line feed — expect bleed, handling noise, and a non-zero RMS floor. Gate quiet input with a Limit CHOP.
  • If all you need is one volume channel, use the lighter tdlidar_mic_level instead.