feat(jam): in-app Lobby Jam — lo-fi study music + guitar-playing cat#10
Merged
Conversation
…playing cat
The cat plays an endless, improvising lo-fi guitar loop (Karplus-Strong, 100%
synthesized — no audio files) and holds a little pixel guitar while it plays.
- src/jam.js: the synth engine, reusing the overlay's shared AudioContext/master
so it respects the Volume slider and mixes with meow/purr.
- Settings: new "Lobby Jam" section (play toggle + Cozy/Dreamy/Upbeat mood) and a
tray "Lobby Jam" toggle. Config persists { on, mood } and auto-resumes on launch.
- renderer/effects: the cat holds + strums a procedurally-drawn guitar, bobs to the
beat, and floats music notes (drawGuitar/drawNote); reduced-motion / low-power aware.
- main: autoplay-policy switch so the music can resume at launch without a click.
- tests: lobbyJam normalize test; correct a stale email-TLS assertion.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds Lobby Jam — synthesized lo-fi study/focus music — right into PixelCat, so the cat plays it.
What you get
How it's wired (reuses existing patterns)
src/jam.js— the synth engine, reusing the overlay's sharedAudioContext/masterfromaudio.js.lobbyJam: { on, mood }(normalized + persisted); the existingconfigbroadcast drives the cat — no new IPC.effects.jsdrawGuitar/drawNote(procedural pixel art, like the existing hearts/think-bubble);renderer.jsreconciles audio + draws the guitar/bob/notes.Verification
npm run lintclean;npm test13/13 (added alobbyJamnormalize test; also corrected a pre-existing stale email-TLS assertion).--shot --state=jamand visually confirmed.npm startworks; the packed build can't be rebuilt on this machine (Smart App Control + winCodeSign), so test in dev.