Skip to content

Games stage 2: trivia while the song plays (MAD-788–791) - #60

Merged
madeofpendletonwool merged 2 commits into
mainfrom
mad-783-games-stage-2
Oct 9, 2026
Merged

madeofpendletonwool merged 2 commits into
mainfrom
mad-783-games-stage-2

Conversation

@madeofpendletonwool

Copy link
Copy Markdown
Owner

Stage 2 of Phase 10 (MAD-783): the trivia games get their own questions, timing and reveals on top of the stage 1 engine. ADR 0015 has a new "Stage 2" section.

MAD-788 Guess the year, and higher or lower

  • Phones get a year slider (with ±1 nudges) instead of choices. Its ends are loose: a decade start 10–40 years back, never later than 1970, up to this year. It asks for the first release, so remasters don't fool it.
  • The big screen's reveal puts everyone's guess on a timeline with the real year marked; the closest guesses are ringed.
  • An exact guess scores +250; otherwise the closest guess that scored at all gets +100.
  • Higher or lower is guess the year's other topic: older or newer than the room's previous song. Two songs from the same year aren't asked.
  • Streaks come from the night's kept rounds: a wrong answer ends one, sitting a round out doesn't. They go out with the scores; the night's best streak shows only on a board.

MAD-789 Liner-notes trivia

  • New questions: who produced it, who wrote it, which of these played on it, which album, what label, and where the artist is from. Wrong answers come from the night's other liner notes.
  • "Where from" falls back to well-known countries or music cities, whichever kind the answer is.
  • Album questions hide the song, because the album is on every screen.
  • Each reveal carries a detail line from the notes.

MAD-790 Sample detective

  • The reveal shows both covers side by side. The other song's cover comes from the Cover Art Archive via its MusicBrainz recording, through a new GET /rooms/{id}/games/rounds/{roundId}/artwork, served only from the reveal on.

MAD-791 Lyric games

  • Beat the singer: shows a line coming up with 1–3 meaningful words blanked, 8s before it's sung. It closes as the singer gets there.
    • It picks chorus or peak-section lines, never the first line, and the last word worth guessing is always one of the blanks.
    • Each right word scores a share.
    • The round waits pending (seen by no one) until it's time to show the line, and is dropped if the song changes first.
  • Finish the lyric (Game night): playback.Engine.Break stops the music as the line begins, phones type how it goes on, and Resume plays on from that line at the reveal. Both only act if the song is still the room's.
    • It counts toward the breaks-per-hour budget.
    • 85% of the words in order counts as right; half or more scores a share.
  • Lyric rounds now hide only their line (new line hide): the lyrics endpoint and the web lyrics view blank it, everywhere it's sung, until the reveal.
  • Matching evens out contractions and sung spellings ("do not"/"don't", "runnin'"/"running", "'cause"/"because").

Not done here

  • Cover questions: still ask "who wrote the original?", not "who did it first?". MusicBrainz needs another lookup per song to find the first recording.
  • Sample reveal clip: waits for the stage 3 clip endpoint (MAD-792).
  • Sampled-part description: MusicBrainz doesn't give one, so the reveal doesn't show it.

Testing

  • go test -race ./... and golangci-lint run pass. New tests cover:
    • the quiz kit: slider ends, higher or lower, liner topics, blanks, line matching;
    • the engine: closest and exact bonuses, higher or lower with streaks, pending beat-the-singer rounds, finish the lyric stopping and resuming the music, the break budget;
    • playback Break/Resume, and the lyric line hiding.
  • Web: pnpm test (199 tests), lint and typecheck pass.
  • Not run in a live dev stack: there are no screenshots of the slider, timeline or cover reveal yet.

🤖 Generated with Claude Code

madeofpendletonwool and others added 2 commits October 8, 2026 16:46
Guess the year on a slider with loose ends, exact and closest bonuses,
and higher or lower against the previous song with night streaks
(MAD-788). Liner-notes trivia asks about producers, writers, players,
album, label and where the artist is from, with a liner-notes line at
the reveal (MAD-789). Sample detective carries the other song and its
cover from the Cover Art Archive (MAD-790). Beat the singer blanks a few
words of a memorable line shown 8s before it's sung, waiting pending
until then; finish the lyric stops the music through the playback engine
and resumes on the line, within the hour's break budget; lyric rounds
hide just their line (MAD-791). ADR 0015 updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A year slider on phones and everyone's guesses on a timeline on the big
screen, with higher-or-lower streaks (MAD-788); the liner-notes line at
each reveal (MAD-789); both covers side by side for sample detective
(MAD-790); blanked lines that fill in at the reveal, a music-paused note
for finish the lyric, and lyrics that hide just the round's line
(MAD-791).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@madeofpendletonwool
madeofpendletonwool merged commit 41880a5 into main Oct 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant