Commit Graph
8 Commits
Author SHA1 Message Date
jsahnandClaude Opus 5.5 767b1c8963 Mix inputs at 0 dB instead of -3 dB
The common attenuation made playback too quiet. Inputs are now summed
without attenuation; docs note that loud simultaneous inputs can clip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 18:27:32 +09:00
jsahnandClaude Opus 5.5 1cd00ae21b Show Bluetooth inputs when BlueZ objects can't be read as JSON
inputs() still used GetManagedObjects on BlueZ to look up names and
silently dropped every Bluetooth input when an Apple device's
advertisement data broke the JSON conversion. Read only Alias per
device and fall back to the address.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 22:01:54 +09:00
jsahnandClaude Opus 5.5 7fa372e801 Fix empty Bluetooth lists in web mixer; advertise it over Bonjour
busctl cannot convert some BlueZ advertisement data (Apple
ManufacturerData, a{qv}) to JSON, so GetManagedObjects failed as soon as
an iPad was paired and the web showed no devices at all. Read only the
needed Device1/Adapter1 properties per object instead. Also publish the
web mixer as an _http._tcp Avahi service.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:54:38 +09:00
jsahnandClaude Opus 5.5 655fbc1d29 Add web toggle for Bluetooth discoverable window
The board stays hidden by default, so new phones could only pair via an
SSH session. Add 'radxa-audio discoverable on|off' backed by a transient
radxa-bt-pairing unit that auto-approves and trusts devices pairing in
the window, expires on its own, and expose it in the web mixer with a
countdown.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:20:06 +09:00
jsahnandClaude Opus 5.5 7ac8cd1dbb Reduce mixer and Bluetooth buffers from 500 ms to 200 ms
SBC medium, not the larger buffer, removed the headphone relay dropouts,
so cut dmix, bluealsa-aplay and alsaloop buffers to 200 ms and the
Shairport backend buffer to 0.15 s. Verified by listening (iPhone ->
headphones, with AirPlay mixed in) with no RTP loss or underruns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:07:34 +09:00
jsahnandClaude Opus 5.5 432eca1755 Fix Bluetooth bonding and record verified headphone relay fix
One-shot bluetoothctl pairing exited before SSP finished, leaving the
headphone paired but not bonded, so it was lost on reboot. Pair inside a
single bluetoothctl session with a persistent agent, and clear temporary
pairings first. Document that SBC medium + 500 ms buffer removed the
iPhone -> Radxa -> headphone dropouts, verified by listening and logs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:01:36 +09:00
jsahn 5fbece12bb Add web mixer with native input volume and output selection 2026-10-12 18:45:43 +09:00
jsahn ceef64dfed Add reproducible Radxa AirPlay and Bluetooth mixer setup 2026-10-12 17:16:51 +09:00