Repository navigation
feat(desktop-gpui): per-clip Voice EQ with de-click - #3547
Open
richiemcilroy wants to merge 8 commits into
Open
richiemcilroy wants to merge 8 commits into
richiemcilroy wants to merge 8 commits into
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Member
Author
|
hey @greptileai, please re-review the PR |
This branch was successfully deployed
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.
Adds Voice EQ to the desktop editor. It sets the microphone's tone clip by clip, non-destructively. It has five presets, a draggable five-band curve (low cut, low shelf, two bells, high shelf) and optional De-click for mouth clicks and crackle. Playback and export run the same renderer, so what you hear while editing is what exports.
How it works
flowchart LR mic[Mic track] --> tone["VoiceTone<br/>EQ cascade + de-click"] tone --> studio["Studio Sound<br/>(if on)"] studio --> mix[Mixer] system[System audio] --> mix mix --> play[Preview playback] mix --> exp[Export]TimelineSegmentgains an optionalvoice_eq(crates/project/src/configuration.rs:1166), so existing projects load unchanged.VoiceEq(configuration.rs:766) holds the preset, the low cut, four bands and de-click. Turning the toggle off keeps the settings, so you can A/B. Values are sanitized and clamped on read, so a hand-edited project can't push the filters out of range.crates/audio/src/voice_tone.rs).voice_tone.rs:261). A sample's value therefore never depends on where playback, a seek or an export started, which is what keeps preview and export identical.voice_tone.rs:240), which is bit-identical to filtering one section at a time and about 2x faster.voice_tone.rs:479).segment_voice_tone(crates/editor/src/audio.rs:922) turns a clip's settings into aVoiceToneSettings, orNonewhen the result would be untouched audio. With no Voice EQ, the audio path is exactly what it was.crates/editor/src/export_audio.rs:485), with enough lookbehind that its block edges land on the same grid.preparing_audio/mixer.rs:78), because that path doesn't run the tone stage.apps/desktop-gpui/src/editor_voice_eq.rs).ToneResponse), so the plot is the filter that actually runs.editor_timeline.rs:3575). The clip menu gets a Voice EQ row with a summary such as "Clear · De-click", which opens the card scoped to that clip.Cost
Release build on an M4 Mac mini, rendering 10 minutes of synthetic voice at 48 kHz. Clips without Voice EQ cost nothing extra, because the stage isn't created.
Playback renders on the existing prerender thread in cancellable chunks, not in the device callback, and export audio runs on its own worker in parallel with video.


Confidence Score: 5/5
The changes since the last review appear safe to merge, with no new actionable findings.Summary
Adds per-clip Voice EQ and de-click, with shared audio rendering for preview and export.
Reviews (2) · Last reviewed commit: "chore(project): trim the VoiceEq comment..." · Reviewed by Greptile