Skip to content

v0.2.13 — Audio output device picker (fix connected-but-no-audio)

Choose a tag to compare

@hthillman hthillman released this 04 Jun 16:22
· 42 commits to main since this release

Download demonTD-v0.2.13.zip (the bundle), not the bare demonTD.tox. Extract it and keep demonTD.tox next to the vendor/ folder.

Fixed: connected but no audio (macOS + Windows)

The operator always opened the system default output device — whatever device PortAudio/TouchDesigner happened to be on — with no way to choose another. When that default wasn't the device you were actually listening on, the session connected but played silence.

New: Audio Output Device picker

On the Session page:

  • Refresh Audio Devices — enumerates your output devices (with host API: Core Audio / MME / WASAPI / …).
  • Audio Output Device menu — pick the one you want. Default (system) keeps the old behavior.
  • Live switching — change it while connected and playback moves to the new device immediately (no reconnect).

The textport also prints exactly which device opened on Connect:

[speaker_out] output device: dev=3 name='Speakers (Realtek)' hostApi='Windows WASAPI' maxOut=2 defaultSampleRate=48000

Also in this release

  • Removed a fabricated "Edit → Preferences → Audio → Audio Device → None" instruction that the operator printed to the textport and Status field — that setting does not exist in TouchDesigner on any platform. Guidance now leads with the real fixes (pick the device, or save + restart TD).
  • Internals: explicit-device open reuses the proven rate/buffer/format fallback matrix; device enumeration brackets a balanced Pa_Initialize/Pa_Terminate so it can't poison a later default open on macOS.

Tested: confirmed working on macOS and Windows 11 + TD 2025.32820. 81 unit tests pass; protocol drift clean. BUILD_MARKER = v0.2.13-audio-device-picker; UA DaydreamDEMON-TD/0.2.13.

If you still hit silence: pulse Refresh Audio Devices, pick your output, and check the [speaker_out] output device: line in the textport. See Audio output troubleshooting.