Add Restore & Normalize feature with one-click pre-export audio processing#52
Merged
olimic1000 merged 5 commits intomainfrom Feb 22, 2026
Merged
Add Restore & Normalize feature with one-click pre-export audio processing#52olimic1000 merged 5 commits intomainfrom
olimic1000 merged 5 commits intomainfrom
Conversation
WaveSurfer v7 renders inside a shadow DOM. When the contextmenu event fires there and bubbles out, calling preventDefault() at the container level happens after WKWebView has already decided to show its native menu. Adding a capture-phase listener on document ensures preventDefault is called before WKWebView makes that decision, reliably suppressing the native menu so the custom Alpine.js menus appear instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ctrl+click fires a real 'click' event after mousedown (unlike pure right-click), which was triggering Alpine.js @click.away and instantly closing the custom menu. Guard the @click.away handler to skip closing when ctrlKey is pressed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
audio_processor.py was hardcoding "ffmpeg" in all subprocess calls, ignoring the VINYLFLOW_FFMPEG_PATH env var that the launcher sets to the absolute path of the bundled binary. If the PATH update doesn't propagate reliably to child processes on Windows, ffmpeg silently fails and get_audio_duration returns None, causing "Could not determine audio duration" on every file. Also switch subprocess.run to encoding="utf-8", errors="replace" to avoid UnicodeDecodeError on Windows when ffmpeg outputs non-cp1252 characters in file paths or progress lines. Additionally exclude ffmpeg.exe from UPX compression in the spec — UPX-packed executables are often blocked by Windows Defender. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ssing - Adds highpass filter (15 Hz) to remove inaudible turntable motor rumble - Adds conservative adeclick (t=3) for vinyl click/pop removal - Adds loudnorm (−14 LUFS) for consistent playback volume - Single toggle button in export section, off by default - New ProcessRequest fields: restoration_level, hum_freq (backend-ready) - Adds CLAUDE.md with full project architecture reference Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
No description provided.