Skip to content

feat: Add Gemini-inspired aurora recording indicator - #6

Merged
r3dbars merged 1 commit into
mainfrom
feature/aurora-recording-indicator
Jan 2, 2026
Merged

r3dbars merged 1 commit into
mainfrom
feature/aurora-recording-indicator

Conversation

@r3dbars

@r3dbars r3dbars commented Jan 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds a new audio-reactive recording visualization inspired by Gemini Live's voice mode
  • Soft, glowing fog effect with mic audio (coral) on the left and system audio (teal) on the right
  • Organic movement using pseudo-noise animation (multi-frequency sine waves)
  • Optional via Settings → Recording → Appearance toggle

Changes

File Description
AuroraRecordingView.swift New component with Canvas-based fog rendering
DesignTokens.swift Aurora color palette (coral, teal, light variants)
FloatingPanelView.swift Conditional rendering based on user preference
Settings.swift Toggle to switch between aurora and classic modes

Visual Design

  • Mic audio → Coral fog, biased left
  • System audio → Teal fog, biased right
  • Heavy blur (10-12px) creates diffuse, smoky appearance
  • Additive blend modes for natural glow overlap

Test plan

  • Enable aurora mode in Settings → Recording → Appearance
  • Start recording and verify fog appears
  • Speak into mic - coral (left side) should glow brighter
  • Play system audio - teal (right side) should glow brighter
  • Hover over pill to verify timer and stop button appear
  • Toggle setting off and verify classic pill view returns

🤖 Generated with Claude Code

Adds a new audio-reactive recording visualization inspired by Gemini Live:

- Soft, glowing fog effect using layered radial gradients with blur
- Mic audio (coral) biased left, system audio (teal) biased right
- Pseudo-noise animation for organic, non-repetitive movement
- Smoothed audio levels prevent jitter while maintaining responsiveness
- Expands on hover to reveal timer and stop button
- Toggle in Settings → Recording → Appearance to switch between
  aurora mode and classic pill recording view

Technical approach:
- Canvas + TimelineView for 60fps rendering
- Multi-frequency sine waves create Perlin-like noise cheaply
- Additive blend modes (.plusLighter) for natural glow overlap
- Position bias creates spatial audio feedback

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@r3dbars

r3dbars commented Jan 2, 2026

Copy link
Copy Markdown
Owner Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.


@r3dbars
r3dbars merged commit 8a62a89 into main Jan 2, 2026
@r3dbars
r3dbars deleted the feature/aurora-recording-indicator branch January 2, 2026 20:45
r3dbars added a commit that referenced this pull request Mar 18, 2026
feat: Add Gemini-inspired aurora recording indicator
r3dbars added a commit that referenced this pull request Apr 7, 2026
Code reviewed: standalone markdown prompt file, 24 AI-writing patterns with fixes, double-pass audit process. Zero code risk.
r3dbars added a commit that referenced this pull request Apr 7, 2026
…es/Meeting/

Completes Task #6. Core integration, new Sources/Meeting/ subsystem,
meeting-mode entitlements, integration smoke test.

New files:
- Sources/Meeting/{MeetingSessionController,MeetingCaptureBridge,
  MeetingStoragePaths,MeetingModelDownloader,MeetingSTTAdapter}.swift
- SmokeTests/CoreIntegrationSmoke.swift
- run-integration-smoke.sh
- Transcripted (symlink to Transcripted worktree)

Modified:
- Info.plist: added NSAudioCaptureUsageDescription
- build.sh: added com.apple.security.device.audio-capture entitlement
- build-deps.sh: heredoc includes TranscriptedCore via inlined-target workaround
- Sources/DraftPaths.swift: added meetingSupportDir extension
- Sources/Speech/ParakeetEngine.swift: added transcribeSamples(_:source:) + import TranscriptedCore
- Sources/Speech/AudioResampler.swift: deleted (replaced by TranscriptedCore.AudioResampler)

Verified:
- bash build.sh: green
- bash run-tests.sh: 168/168 (up from 147 pre-merge)
- bash run-integration-smoke.sh: passing

Ordering note: this commit lands AFTER meeting-ui's Lane C commits (79b92d8, c29ade4)
in history due to a missing-commit oversight at Task #6 completion. Functionally
the final state is correct but Lane C's commits were built on top of Lane B's
uncommitted working tree state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
r3dbars added a commit that referenced this pull request Apr 7, 2026
Code reviewed: standalone markdown prompt file, 24 AI-writing patterns with fixes, double-pass audit process. Zero code risk.
r3dbars added a commit that referenced this pull request Apr 7, 2026
…es/Meeting/

Completes Task #6. Core integration, new Sources/Meeting/ subsystem,
meeting-mode entitlements, integration smoke test.

New files:
- Sources/Meeting/{MeetingSessionController,MeetingCaptureBridge,
  MeetingStoragePaths,MeetingModelDownloader,MeetingSTTAdapter}.swift
- SmokeTests/CoreIntegrationSmoke.swift
- run-integration-smoke.sh
- Transcripted (symlink to Transcripted worktree)

Modified:
- Info.plist: added NSAudioCaptureUsageDescription
- build.sh: added com.apple.security.device.audio-capture entitlement
- build-deps.sh: heredoc includes TranscriptedCore via inlined-target workaround
- Sources/DraftPaths.swift: added meetingSupportDir extension
- Sources/Speech/ParakeetEngine.swift: added transcribeSamples(_:source:) + import TranscriptedCore
- Sources/Speech/AudioResampler.swift: deleted (replaced by TranscriptedCore.AudioResampler)

Verified:
- bash build.sh: green
- bash run-tests.sh: 168/168 (up from 147 pre-merge)
- bash run-integration-smoke.sh: passing

Ordering note: this commit lands AFTER meeting-ui's Lane C commits (79b92d8, c29ade4)
in history due to a missing-commit oversight at Task #6 completion. Functionally
the final state is correct but Lane C's commits were built on top of Lane B's
uncommitted working tree state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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