feat: add crossfade with audio enhancements#78
Open
squirmen wants to merge 9 commits intoplaywora:mainfrom
Open
feat: add crossfade with audio enhancements#78squirmen wants to merge 9 commits intoplaywora:mainfrom
squirmen wants to merge 9 commits intoplaywora:mainfrom
Conversation
…rack restart from the beginning. Added crossfade functionality with dual-voice crossfading
…-in-wora Fix crossfade timing to avoid abrupt track cutoff
- Fixed crossfade timing so both songs play simultaneously during fade - Current track fades out while next track fades in over crossfade duration - UI switches to next track only after crossfade completes - Maintains playback position to prevent restart when UI updates - Cleaned up console.log statements and verbose comments
- Added mounted check to prevent hydration errors - Shows default icon until client-side mounting completes - Fixes console warning about hydration mismatch
…ection - Implemented gapless playback with intelligent track preloading (10s ahead) - Added volume normalization to balance track levels (±50% safe adjustment) - Added conservative silence detection to trim dead air (max 3s) - Combined features into single "Audio Enhancement" toggle - Clean UI with adjustment icon matching app design language - All features disabled by default for safety - Efficient caching system for audio analysis - Works seamlessly with crossfade and existing playback features
- Removed volume and isMuted from audio loading useEffect dependencies - Added separate useEffect to handle volume changes without reloading - Used refs to track current volume values without triggering re-renders - Volume changes now update the audio element directly without restarting playback
- Fix TypeScript errors in error event handlers by adding proper type assertions - Remove .idea folder from git tracking - Add .idea to .gitignore to prevent future tracking - Ensure clean compilation with no type errors
a08cd19 to
c8d970a
Compare
- Replace HTML5 audio manipulation with Web Audio API implementation - Add dual-voice architecture with proper gain nodes and audio graph - Implement LUFS normalization at -16 dB audiophile standard - Add multiple crossfade curves (S-curve, equal power, logarithmic, exponential) - Integrate native audio analysis via Electron IPC with FFmpeg - Add beat detection and BPM analysis for future beat-matching - Implement advanced silence detection for gapless playback - Add true peak limiting with dynamics compression - Fix race conditions and memory leaks in crossfade logic - Enable 10-second preload for seamless transitions This is a major upgrade from the basic crossfade implementation, providing professional-grade audio mixing with proper Web Audio API integration for true simultaneous playback and mixing of tracks.
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.
Summary
Changes
Core Crossfade Implementation
CrossfadeControllerclass manages dual-voice architecture for gapless playbackAudio Enhancements (Optional)
Bug Fixes
Code Quality