Skip to content

feat: Video Player Audio Enhancement (#119)#631

Open
omonxooo-commits wants to merge 2 commits into
rinafcode:mainfrom
omonxooo-commits:feat/audio-enhancement-issue-119
Open

feat: Video Player Audio Enhancement (#119)#631
omonxooo-commits wants to merge 2 commits into
rinafcode:mainfrom
omonxooo-commits:feat/audio-enhancement-issue-119

Conversation

@omonxooo-commits
Copy link
Copy Markdown
Contributor

@omonxooo-commits omonxooo-commits commented May 30, 2026

Summary

Implements Audio Enhancement for the Video Player as described in issue #517.

Changes

  • useAudioEnhancement hook — Web Audio API signal chain: bass boost (low-shelf BiquadFilter @ 100 Hz), voice clarity (peaking BiquadFilter @ 3 kHz), noise reduction (GainNode). Graph is lazily initialized on first toggle to respect browser autoplay policy.
  • AudioEnhancement component — Toggle button in the controls bar (highlights blue when active) with a dropdown panel containing enable/disable switch and sliders for Bass Boost, Voice Clarity, and Noise Reduction.
  • VideoPlayerContext — Added audioEnhancement field to the context interface.
  • AdvancedVideoPlayer & VideoPlayer — Hook wired up, context updated, component rendered next to PlaybackControls, E keyboard shortcut added to toggle enhancement.

Acceptance Criteria

  • Video Player properly implements Audio Enhancement
  • No regression in existing functionality
  • Code follows project coding standards (Tailwind, lucide-react, TypeScript)
  • Accessibility: aria-label, aria-pressed, aria-expanded on all interactive elements
  • Performance: audio graph built lazily, zero overhead when enhancement is disabled
  • Keyboard shortcut: E to toggle

Closes #517

This PR pushes the latest fixes for test failures and updates study group state handling.

Changes:
- Guard `scrollIntoView` in `GroupDiscussionThread` for JSDOM tests.
- Keep leaderboard and group query results in sync with persisted storage in `useStudyGroups`.
- Stabilize async validation promise handling in `AsyncValidationManager`.
- Fix path imports in `TipForm` tests for the current test environment.
- Add useAudioEnhancement hook using Web Audio API
  - Bass boost via low-shelf BiquadFilter @ 100 Hz
  - Voice clarity via peaking BiquadFilter @ 3 kHz
  - Noise reduction via GainNode attenuation
  - Lazy graph init on first toggle (respects autoplay policy)
- Add AudioEnhancement UI component with toggle + sliders
- Expose audioEnhancement via VideoPlayerContext
- Integrate into AdvancedVideoPlayer and VideoPlayer
- Add 'E' keyboard shortcut to toggle enhancement
@omonxooo-commits omonxooo-commits force-pushed the feat/audio-enhancement-issue-119 branch from 639cc68 to 5b1464f Compare May 30, 2026 22:26
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 30, 2026

@omonxooo-commits Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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.

enhancement Video Player : Audio Enhancement (Issue 119)

1 participant