aboutsummaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-27 18:18:07 +0100
committersalmonik <salmonik@tuta.io>2026-10-27 18:18:07 +0100
commitbab3f614f8b42545fdb0101c4e353c87e0966d47 (patch)
treec257bc4712bba088bea2eab42d93b07e9cfed89c /CONTEXT.md
parentmusic: add per-guild queue with now/next/last, skip and queue (diff)
downloadsenator-sperma-bab3f614f8b42545fdb0101c4e353c87e0966d47.tar.gz
senator-sperma-bab3f614f8b42545fdb0101c4e353c87e0966d47.zip
music: group playback commands under /music
Graduate grajcuj/skip/queue/stop/join into the /music parent and drop the top-level names. On startup, reconcile global slash commands and delete any that are no longer registered, since Discord otherwise keeps stale commands after a rename or move. Docs updated for the new command layout and queue semantics.
Diffstat (limited to '')
-rw-r--r--CONTEXT.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 990dc8e..278420f 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -50,7 +50,17 @@ holds no implementation decisions or specs (those live in `docs/adr/`).
50 50
51## Music Playback 51## Music Playback
52 52
53- **Compressed playback** — `/grajcuj \w compressed`: downloads audio, runs 53- **Queue** — per-guild, in-memory list of tracks waiting to play. Lost on
54 restart. `/music queue` shows the current track first, then the pending
55 items in play order.
56- **Position** — where `/music grajcuj` inserts a track: `now` interrupts the
57 current track, `next` inserts after it, `last` appends (default). When
58 nothing is playing, every position starts playback immediately.
59- **Skip** — stop the current track and play the next queued one. With an
60 empty queue, playback stops but the bot stays in the voice channel.
61- **Auto-advance** — when a track ends (or errors), the next queued track is
62 started automatically and announced in the channel.
63- **Compressed playback** — `/music grajcuj ... compressed`: downloads audio, runs
54 through the /compress pipeline (Opus 500bps, 12 kHz, mono → OGG), then 64 through the /compress pipeline (Opus 500bps, 12 kHz, mono → OGG), then
55 decodes the compressed file via symphonia for playback. Produces properly 65 decodes the compressed file via symphonia for playback. Produces properly
56 destroyed audio via Opus codec, not just raw low-sample-rate PCM. 66 destroyed audio via Opus codec, not just raw low-sample-rate PCM.