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)
- Enable Audio in the app and grant microphone access.
- Drop
tdlidar_audio. - Play music near the phone —
out1fills with moving channels. - Export
tdlidar/audio/lowonto a Geoscalefor an instant bass-pumping object; export…/highfor the snappy detail.
Advanced patterns
- Bands → scale: Math/Range each of
low/mid/highto 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
…/fftchannels 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/fluxdescribe brightness and change — mapcentroidto hue andfluxto roughness/displacement for visuals that track tone, not just volume.note/midilet you key visuals to pitch.
Gotchas
beatandonsetare 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_levelinstead.