Skip to content

Adding version 2 filters - #6018

Open
sandboxcoder wants to merge 1 commit into
masterfrom
rno/filterTypes-master
Open

Adding version 2 filters#6018
sandboxcoder wants to merge 1 commit into
masterfrom
rno/filterTypes-master

Conversation

@sandboxcoder

@sandboxcoder sandboxcoder commented Jul 13, 2026

Copy link
Copy Markdown
Contributor
  • Add missing filters (Luma Key, 3-Band Eq, and Upward Compressor)
  • Add version 2 of all known filters that were updated
  • Existing scenes will continue to work using any declared version 1 filter. But when user creates a new scene filter, they will receive the appropriate version 2 filter.

Regression test cases for QA

This PR updates the following filters: Image Mask/Blend, Color Correction, Color Key, Sharpen, Chroma Key, and Noise Suppression

This PR adds Upward Compressor (Audio filter), Luma Key Filter (Video), and 3-Band Equalizer (Audio filter)

Test cases (I tried):

  • Existing scenes can keep using version 1 filter. User should not notice any change.
  • If user adds a filter that has been updated such as "Color Correction" filter, then they will get the Version 2 filter.

What changed from version 1 to version 2?

Color Correction - v2 adds proper color space negotiation so the filter works correctly in SDR/WCG pipelines without mangling HDR content, whereas v1 blindly assumed GS_RGBA for everything.

Image Mask/Blend- v2 is a precision and color-pipeline upgrade — higher-resolution opacity and proper sRGB/color space awareness

Color Key Filter- v2 is a substantial rework: opacity is redesigned from an alpha-packed color hack into a proper float parameter, brightness scaling is removed, the contrast/brightness ranges are expanded, and the whole render path gains proper color space awareness.

Sharpness - only adds SRGB capability flag
Chroma Key - the chroma key v2 changes are a mirror of the color key v2 changes — opacity redesigned from an alpha-packed color hack to a proper float, brightness scaling removed, expanded ranges, and full color space pipeline awareness added.

Noise Suppression (Audio) - v2 promotes RNN (Recurrent Neural Network) noise suppression as the preferred default when available, rather than only falling back to it when Speex isn't present.

New filters that this PR exposes

Luma Key Filter:
The luma key filter makes pixels transparent based on their brightness (luminance) rather than a specific color. It exposes four parameters:

  • Luma Min / Luma Max (0.0–1.0): defines the brightness range to key out. Pixels whose luminance falls within this range become transparent.
  • Luma Min Smooth / Luma Max Smooth: softens the edges of the key at the min/max thresholds, so the transparency transition isn't a hard cut.

For example, with default settings (luma_min=0.0, luma_max=1.0, no smoothing), nothing is keyed. If you set luma_min=0.5, pixels darker than 50% brightness become transparent — useful for removing black backgrounds or applying overlays that blend based on brightness
rather than color.

It's commonly used with white/black backgrounds or as a way to composite elements where a color-based chroma key wouldn't work.

Upwards Compressor: The upward compressor is an audio dynamics filter that boosts quiet sounds up toward a threshold, as opposed to a traditional (downward) compressor which turns loud sounds down.

How it works:

  1. Detection — measures the signal level using an RMS envelope follower (10ms window)
  2. Gain stage — for signals below the threshold, applies positive gain proportional to slope * (threshold - signal_level). Signals above the threshold get 0 gain (left untouched). The slope is 1.0 - ratio, where ratio is 0.0–1.0
  3. Knee — a soft knee (0–20 dB wide) smooths the transition around the threshold so the boost doesn't kick in abruptly
  4. Ballistics — attack and release times control how fast the gain responds
  5. Output gain — a final makeup gain stage

Parameters:

  • Ratio (0.0–1.0): how aggressively to boost quiet sounds — higher ratio = more boost
  • Threshold (-60–0 dB): the level below which boosting begins
  • Attack / Release (1–100ms / 1–1000ms): how fast the gain reacts
  • Knee width (0–20 dB): softness of the threshold transition
  • Output gain (-32–+32 dB): makeup gain applied after compression

Practical use: leveling out a quiet speaker or microphone so soft parts of speech become more audible without turning up the overall volume

3 Band Equalizer: It's a simple 3-band equalizer audio filter. It splits the audio signal into three frequency bands and lets you boost or cut each by ±20 dB:

  • Low — below 800 Hz (bass)
  • Mid — 800 Hz to 5000 Hz (vocals, presence)
  • High — above 5000 Hz (air, sibilance)

@bundlemon

bundlemon Bot commented Jul 13, 2026

Copy link
Copy Markdown

BundleMon

Files updated (1)
Status Path Size Limits
renderer.(hash).js
10.35MB (+447B 0%) -
Unchanged files (3)
Status Path Size Limits
vendors~renderer.(hash).js
4.67MB -
updater.js
115.29KB -
guest-api.js
40.23KB -

Total files change +447B 0%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@sandboxcoder sandboxcoder reopened this Jul 13, 2026
@sandboxcoder
sandboxcoder force-pushed the rno/filterTypes-master branch from 5785057 to 17d6350 Compare July 13, 2026 21:22
@sandboxcoder
sandboxcoder marked this pull request as ready for review July 14, 2026 18:09
@sandboxcoder
sandboxcoder requested a review from Copilot July 15, 2026 15:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the app’s filter allowlist to surface newly added OBS filters and switch several existing filters to their updated “v2” identifiers, while adding missing UI strings for the new filter names.

Changes:

  • Switched multiple existing filter type IDs to their _v2 variants (e.g., mask/color/chroma key/noise suppression).
  • Added allowlisted entries for newly supported filters: Luma Key (v2), Upward Compressor, and 3-Band Equalizer.
  • Added English (en-US) i18n strings for the new filter names.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
app/services/source-filters.ts Updates the filter type union and the allowlisted filter list to use v2 IDs and include new filter types.
app/i18n/en-US/filters.json Adds en-US translation keys for the newly surfaced filter names.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/services/source-filters.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread app/services/source-filters.ts
@sandboxcoder
sandboxcoder requested a review from Copilot July 15, 2026 18:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread app/services/source-filters.ts
Comment thread app/services/source-filters.ts
Comment thread app/i18n/en-US/filters.json

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Comment thread app/services/source-filters.ts Outdated
Comment thread app/services/source-filters.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

Comment thread test/regular/api/clipboard.ts
Comment thread app/services/source-filters.ts Outdated
Comment thread app/services/source-filters.ts Outdated
Comment thread app/i18n/en-US/filters.json
@sandboxcoder
sandboxcoder force-pushed the rno/filterTypes-master branch 2 times, most recently from 76bf1be to 1ee3eae Compare July 15, 2026 20:42
@sandboxcoder
sandboxcoder requested a review from Copilot July 15, 2026 20:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread app/services/source-filters.ts Outdated
Comment thread app/services/source-filters.ts Outdated
Comment thread test/regular/api/clipboard.ts Outdated
@sandboxcoder
sandboxcoder force-pushed the rno/filterTypes-master branch from 1ee3eae to 37518fd Compare July 15, 2026 20:56
@sandboxcoder sandboxcoder reopened this Jul 23, 2026
@sandboxcoder
sandboxcoder force-pushed the rno/filterTypes-master branch from 37518fd to 1dcd01c Compare July 23, 2026 14:53
* Add missing filters (Luma Key, 3-Band Eq, and Upward Compressor)
* Add version 2 of all known filters that were updated
* Remove old version 1 filters. Existing scenes will continue to work automatically. But when user creates a new scene filter, they will receive the updated version.
@sandboxcoder
sandboxcoder force-pushed the rno/filterTypes-master branch from 1dcd01c to d7919df Compare July 23, 2026 14:54
@sandboxcoder
sandboxcoder requested a review from Copilot July 23, 2026 14:57
@sandboxcoder sandboxcoder added bug needs QA requires QA testing on the branch before merging labels Jul 23, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@sandboxcoder sandboxcoder changed the title [bundle update] Use updated versions of filters Use updated versions of filters Jul 23, 2026
@sandboxcoder sandboxcoder changed the title Use updated versions of filters Adding version 2 filters Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug needs QA requires QA testing on the branch before merging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants