Summary
The soundboard is fully implemented in the SDK and has a working management UI, but it is not surfaced where users actually need it — the in-call voice control bar. Today it is reachable only through Space Settings.
What already exists
- SDK (
packages/accordkit) — complete soundboard support:
- REST:
lib/src/rest/endpoints/soundboard_api.dart (list / get / create / update / delete / POST .../{soundId}/play)
- Gateway events:
onSoundboardCreate, onSoundboardUpdate, onSoundboardDelete, onSoundboardPlay
- Model
AccordSound (lib/src/models/sound.dart); permissions useSoundboard / manageSoundboard (lib/src/models/permission.dart)
- Standalone UI —
showAccordSoundboard() in lib/features/spaces/views/accord_soundboard.dart (sound grid, play buttons, add/edit/delete, 0–200% volume slider). It calls client.soundboard.play().
- Only entry point today — Space Settings → Soundboard list tile (
lib/features/spaces/views/accord_space_settings.dart:821-830), gated on canUseSoundboard.
The gap
The voice control bar lib/features/voice/views/voice_bar.dart:104-157 has six buttons — Mute, Deafen, Camera, Screen share, Settings, Disconnect — and no soundboard button. So while in a voice channel there is no way to play a sound; the user must dig into Space Settings.
The docs already promise it as a voice control: docs/voice-and-video/voice-channels.md:28 — "Soundboard — Play audio clips into the channel".
Acceptance criteria
Summary
The soundboard is fully implemented in the SDK and has a working management UI, but it is not surfaced where users actually need it — the in-call voice control bar. Today it is reachable only through Space Settings.
What already exists
packages/accordkit) — complete soundboard support:lib/src/rest/endpoints/soundboard_api.dart(list / get / create / update / delete /POST .../{soundId}/play)onSoundboardCreate,onSoundboardUpdate,onSoundboardDelete,onSoundboardPlayAccordSound(lib/src/models/sound.dart); permissionsuseSoundboard/manageSoundboard(lib/src/models/permission.dart)showAccordSoundboard()inlib/features/spaces/views/accord_soundboard.dart(sound grid, play buttons, add/edit/delete, 0–200% volume slider). It callsclient.soundboard.play().lib/features/spaces/views/accord_space_settings.dart:821-830), gated oncanUseSoundboard.The gap
The voice control bar
lib/features/voice/views/voice_bar.dart:104-157has six buttons — Mute, Deafen, Camera, Screen share, Settings, Disconnect — and no soundboard button. So while in a voice channel there is no way to play a sound; the user must dig into Space Settings.The docs already promise it as a voice control:
docs/voice-and-video/voice-channels.md:28— "Soundboard — Play audio clips into the channel".Acceptance criteria
Spacer()atvoice_bar.dart:140), gated onuseSoundboardshowAccordSoundboardplay path) and callsclient.soundboard.play()