Skip to content

Add sound effects with a 🔊 mute button - #39

Merged
Necromancervbh merged 28 commits into
mainfrom
claude/game-automation-ideas-d97rgk
Sep 29, 2026
Merged

Necromancervbh merged 28 commits into
mainfrom
claude/game-automation-ideas-d97rgk

Conversation

@Necromancervbh

Copy link
Copy Markdown
Owner

FlowForge now sounds like a game. All sounds are synthesized with Web Audio in the new public/sound.js, so there are no audio files to download.

Event Sound
A combo run finishes 🪙 a two-note coin "ka-ching"
A combo fails a low "bwomp"
A combo levels up a quick rising pair
An achievement or daily quest is completed a 4-note arpeggio
The player levels up a 5-note fanfare
  • The 🔊 / 🔇 button in the header mutes sound and remembers the choice in localStorage. Unmuting plays a coin as a preview.
  • Browsers block audio until the first click or key press, so the audio context starts on that first gesture.
  • Run sounds are rate-limited to one per 250 ms, so ten files landing at once don't sound like a machine gun.
  • Volume is kept low (0.08) with quick fade-outs.

Tested in the browser by counting the oscillators started. One real ▶ Play click on a save at 90 XP played the achievement arpeggio twice ("It Lives" and the "Press Play" quest), then the level-2 fanfare, then the coin. Mute and unmute persist across a reload, and the console has no errors. npm test passes 48 tests.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf


Generated by Claude Code

Three quests a day, picked with a per-day seed, pay bonus XP once each.
Progress comes from combo runs and forging, and shows in a new panel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
A one-page site in docs/ (how it works, features, screenshots, download
steps). Serve it with Settings > Pages > main, /docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
The quests panel shows the time until local midnight and reloads the new
set when the day changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
A rare IF card (level 3) that lets a combo continue only N% of the time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Same change as Dependabot's #31, which conflicted after #30 landed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Tidy Up moves files older than N days out of a folder without
overwriting. Snapshot saves a screenshot (screencapture, PowerShell, or
grim/gnome-screenshot/spectacle/scrot/import) and hands it to later cards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Fires once when you've been idle N minutes, or when you come back after
that long. Idle time comes from ioreg (macOS), GetLastInputInfo
(Windows), or GNOME's IdleMonitor / xprintidle (Linux).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
A THEN card that runs another combo by name, passing the trigger's file
along. Loops (A -> B -> A) are refused and chains stop at 5 combos. The
forge suggests existing combo names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
Synthesized with Web Audio (no audio files): a coin per run, a low note
on failure, chimes for achievements and quests, a fanfare on level-up.
The header's speaker button mutes it and the choice is remembered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wm8TE3zwYDLddBccTdRBqf
@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: c240c155-ddb1-4ba6-a9e7-33d32e2a47d2


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Necromancervbh
Necromancervbh merged commit 64d3822 into main Sep 29, 2026
7 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.

2 participants