Skip to content

fix(rig-builder): final leveler never found on installs using the downloaded VST pack - #61

Open
Duali98 wants to merge 1 commit into
got-feedBack:mainfrom
Duali98:fix/final-leveler-vst-not-found-in-downloaded-pack
Open

fix(rig-builder): final leveler never found on installs using the downloaded VST pack#61
Duali98 wants to merge 1 commit into
got-feedBack:mainfrom
Duali98:fix/final-leveler-vst-not-found-in-downloaded-pack

Conversation

@Duali98

@Duali98 Duali98 commented Jul 27, 2026

Copy link
Copy Markdown

_final_leveler_vst_path() only checked _plugin_dir/vst (the bundle shipped inside the plugin's own installed directory) and never _downloaded_vst_root() (config_dir/nam_rig_builder/vst, where the opt-in per-platform VST pack from /download_vst_pack actually installs). Every OTHER VST lookup in this file correctly searches both roots via _vst_search_roots() - this one didn't.

Impact

On any install whose bundled effects came from the VST-pack download rather than a plugin.zip that already bundled vst/ inside the plugin directory, this always returned None - the final leveler (the AGC + brickwall limiter that normalizes loudness and is the only safety net against a hot chain) was silently missing from every generated chain.

native_preset_full's missing list does correctly report the gap ("missing": ["vst acks\RB Final Leveler.vst3"]), but nothing in the UI calls out that specific entry as "your loudness safety net is off." The practical, user-visible symptom: every tone plays at raw, unprotected level - no loudness normalization, no limiting. Reported as tones being blown-out/clipping "way too loud," not close to how the same NAM captures sound loaded in a standalone host - which makes total sense once you realize the limiter that's supposed to catch exactly that was never actually in the signal path.

Confirmed live: native_preset_full for a real installed-via-download-pack setup showed vst_stage_count: 0, "missing": ["vst acks\RB Final Leveler.vst3"] before the fix, and vst_stage_count: 1, "missing": [] (with the leveler VST stage present in the chain) after.

Fix

Search the same roots _vst_search_roots() already uses (bundled _plugin_dir/vst + downloaded _downloaded_vst_root()), matching how every other VST reference in this file resolves a bundled plugin path.

Test plan

  • On an install where vst/ only exists via the downloaded pack (not bundled in the plugin directory), load any tone and confirm native_preset_full's chain includes an RB Final Leveler stage with slot: "master_post".
  • Confirm a tone that previously clipped/played way too loud now sits at a normal, limited level.

…nloaded VST pack

_final_leveler_vst_path() only checked _plugin_dir/vst (the bundle shipped
inside the plugin's own directory) and never _downloaded_vst_root() (where
the opt-in per-platform VST pack actually installs - see
_download_vst_pack/_vst_search_roots, which every OTHER VST lookup in this
file correctly checks against both roots).

On any install whose bundled effects came from the VST-pack download rather
than a plugin.zip that already contained vst/, this always returned None -
the final leveler (the AGC + brickwall limiter that normalizes loudness and
is the only safety net against a hot chain) was silently missing from every
generated chain. native_preset_full's `missing` list does report the gap,
but nothing in the UI calls out that specific entry as "your loudness
safety net is off," so the practical symptom was just: every tone plays at
raw, unprotected level - no normalization, no limiting. Reported as tones
being blown out/clipping "way too loud," not close to how the same NAM
captures sound in a standalone host.

Fix: search the same roots _vst_search_roots() already uses (bundled +
downloaded), matching how every other VST reference in this file resolves.
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Duali98, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 30 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d6afaab1-ae08-4c2c-b07b-ec15c7ec2f6b

📥 Commits

Reviewing files that changed from the base of the PR and between 8126051 and e9c3f15.

📒 Files selected for processing (1)
  • routes.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant