Frequently Asked Questions

Common questions about TabDSP features, limitations, and usage. For troubleshooting specific issues, see the Troubleshooting page.

General

What browsers are supported?

Firefox 121+ — Fully supported. AMO-signed XPI with automatic updates.

Chrome 116+ — Fully supported. Load unpacked from source (not yet on Chrome Web Store). Edge and other Chromium browsers should also work.

Mobile browsers are not supported (see below).

▶ Gear Head Details

Unified manifest: TabDSP uses a single manifest.json containing both background.scripts (Firefox) and background.service_worker (Chrome). Each browser uses the key it supports and ignores the other. This approach is recommended by MDN.

Chrome-specific adaptations: TabDSP handles browser-specific serialization and messaging differences transparently so audio processing behaves identically on both Firefox and Chrome.

Does TabDSP work on mobile?

No. Mobile browsers (iOS Safari, Chrome Mobile, Firefox Mobile) do not support browser extensions with the same architecture as desktop. Additionally, mobile browsers have restricted Web Audio API support.

Some mobile browsers support Web Extensions, but TabDSP's architecture (AudioWorklet, real-time processing, popup UI) is not optimized for mobile environments.

Is my audio data sent anywhere?

No. All audio processing happens locally on your machine. TabDSP never transmits audio content, browsing history, or personal information.

TabDSP does make network requests for license validation only: activating a license key, periodic re-validation (every 24 hours for subscriptions), and deactivation. The only data transmitted is your license key and a randomly generated instance identifier — no audio, no browsing data, no analytics.

See the Installation page for a full list of permissions and a detailed privacy breakdown.

▶ Gear Head Details

Privacy audit: License validation requests go to api.lemonsqueezy.com (the license provider). No tracking pixels, no analytics, no external dependencies beyond browser APIs and the license server. All DSP processing runs in AudioWorkletGlobalScope (isolated from network access). Source code is available for review via AMO submission.

Data collection permissions: Manifest includes data_collection_permissions: { required: ["none"] } as required by Firefox AMO policy (Nov 2025). This explicitly declares zero data collection — license validation transmits only license credentials, not user data.

Can I use TabDSP offline?

Yes. Once installed, TabDSP works offline. Audio processing and the UI work without internet connectivity.

Licensed features remain active during offline grace periods (7 days for subscriptions, 90 days for perpetual licenses). If the grace period expires without reconnecting, TabDSP reverts to Free tier until validation succeeds. The update mechanism also requires connectivity to check for new versions.

Features & Functionality

Does it add latency?

Yes, minimal latency depending on which modules are active:

  • Minimum Phase EQ: ~3ms (buffer delay only, no processing latency)
  • Linear Phase EQ: ~11ms (5.3ms filter latency + 5.3ms lookahead)
  • True Peak Limiter: Adds lookahead time (configurable, typically 5-10ms)
  • Compressor/Multiband: Negligible (attack time is not latency)

For casual listening or video watching, this latency is imperceptible. For live monitoring (e.g., video conferencing), you may notice slight lip-sync delay with Linear Phase EQ enabled.

▶ Gear Head Details

Latency sources:

  • Buffer delay: Web Audio API default buffer size (128-512 samples). At 48 kHz, 128 samples = 2.67ms.
  • FIR filter delay: Linear Phase EQ uses 511-tap FIR. Latency = taps/2 = 255.5 samples ≈ 5.3ms at 48 kHz.
  • Lookahead buffer: True Peak Limiter scans ahead for peaks. Lookahead time = additional latency.

Bypass latency compensation: Not implemented. Bypassing Linear Phase EQ or Limiter changes total latency, creating brief timing shift. Use A/B comparison instead of bypass for instant comparison without latency change.

Can I save presets?

Yes. TabDSP supports custom presets and preset sharing:

  • Save: Click "Presets" to open the preset popover, click "Save", enter a name
  • Load: Select from the dropdown -- presets auto-load on selection
  • Export: Select a preset and click "Export" to download a .tabdsp file
  • Import: Click "Import" and select a .tabdsp or .json file from the file picker, or drag-and-drop a file onto the import area
  • Delete: Remove custom presets (factory presets cannot be deleted)

Presets include all module settings (EQ bands, compressor parameters, limiter ceiling, bypass states, module order).

Can I process multiple tabs at once?

Yes. Each browser tab runs independent TabDSP processing. Global settings apply to all tabs unless you enable Site Override for specific domains.

Note: Processing multiple tabs simultaneously increases CPU usage proportionally (2 tabs = ~2x CPU, etc.).

▶ Gear Head Details

Architecture: Each browser tab gets its own independent AudioContext and processing graph. TabDSP tracks state per tab.

Memory isolation: Tabs do not share audio buffers or processing resources. This prevents cross-tab audio bleed but requires duplicate worklet loading per tab.

What's the difference between bypass and A/B comparison?

Bypass: Routes audio around a module without processing. Module uses no CPU. Visual feedback shows orange arc routing. 30ms crossfade prevents clicks.

A/B Comparison: Instantly toggles between current settings (A) and previous state (B). All modules remain active, no CPU change. Smooth transition, no latency shift. Keyboard shortcut: A key.

Use bypass to: Disable unused modules to save CPU

Use A/B to: Compare before/after processing quickly without changing routing

Why does Linear Phase mode sound different?

Phase coherence. Linear Phase EQ (FIR filter) preserves phase relationships between frequencies, preventing phase smearing. Minimum Phase EQ (IIR biquads) introduces phase shift, which can alter transient response and stereo imaging.

Audible differences:

  • Linear Phase: Transparent, no smearing, preserves transients, adds 11ms latency, uses more CPU
  • Minimum Phase: Slight phase shift (usually inaudible), faster, lower CPU, traditional analog-style response

For most casual listening, Minimum Phase is sufficient. Use Linear Phase for critical mastering, transient-rich content (percussion), or when phase coherence matters (M/S processing).

▶ Gear Head Details

FIR vs IIR phase response:

  • FIR (Linear Phase): Symmetric coefficients guarantee zero phase shift. All frequencies delayed equally. Magnitude response independent of phase response.
  • IIR (Minimum Phase): Recursive structure introduces frequency-dependent phase shift. Phase and magnitude responses coupled. Phase shift is minimal but non-zero.

Audibility: Phase shift from biquad filters is typically inaudible in isolation but can accumulate with cascaded filters (8-band EQ = 8+ biquads). Linear Phase prevents this accumulation.

Pre-ringing: Linear Phase FIR filters can introduce pre-ringing (energy before transient) due to symmetric impulse response. This is mathematically unavoidable but usually inaudible except on extreme transients (gunshots, clicks).

New Features

What is Auto-Enable?

Auto-Enable automatically enables TabDSP processing when the page plays audio or on user interaction, without needing to manually click the enable toggle each time. You can find this setting in the Settings popover (gear icon in the header bar).

When Auto-Enable is active, TabDSP starts processing as soon as it detects audio playback on the page. This is useful for a hands-free workflow where you want processing to start automatically.

What are per-hostname settings?

Site Override saves your settings per domain, so different websites can have different EQ, compression, limiter, and module order configurations. Enable it from the Settings popover (gear icon).

For example, you might want a bass boost for music streaming sites but flat EQ for podcast sites. With Site Override enabled, TabDSP remembers your preferences per website automatically.

What is the LUFS Stack?

The LUFS Stack is an expanded loudness analysis panel available in the Professional tier. It sits below the main parameter area and provides three sub-components:

  • Meter: Three horizontal bar meters showing Momentary (M), Short-term (S), and Integrated (I) LUFS values with numeric readouts
  • Target Validator: Compare your measurements against compliance presets (Spotify, Apple Music, broadcast standards, etc.) with delta display showing the difference between current and target
  • Histogram: Scrolling canvas visualization showing Momentary (green) and Short-term (blue) loudness traces over time

Click Analyze to start collecting LUFS data. Click Reset to clear accumulated measurements. The LUFS Stack also displays LRA (Loudness Range), which measures the dynamic range of the program material.

▶ Gear Head Details

LRA (Loudness Range): Computed from the distribution of Short-term loudness values (10th to 95th percentile), measured in LU (Loudness Units). Low LRA (~3-5 LU) indicates heavily compressed material. High LRA (~15-20+ LU) indicates very dynamic content.

Histogram modes: SCROLL shows a 10-second rolling window. FIT shows the entire analysis history fitted to the canvas width.

How do file-based presets work?

Export: Select a preset in the preset popover, then click Export. A .tabdsp file is downloaded to your Downloads folder. Share this file with others or keep it as a backup.

Import: Click Import in the preset popover, then either select a .tabdsp or .json file from the file picker, or drag-and-drop a preset file directly onto the import area. The preset is added to your custom preset list immediately.

File-based presets contain all module settings including EQ bands, compressor parameters, limiter ceiling, bypass states, and module order.

Display & Interface

How do I use sidebar or standalone mode?

TabDSP offers three display modes: popup (default -- opens when clicking the extension icon), sidebar (docks in the browser's side panel for persistent access), and standalone window (resizable, separate window). Access sidebar and standalone modes via the buttons in the header bar next to the title. Audio processing continues regardless of which mode you're using. See the Display Modes section in the UI Guide for details.

Limitations

Why doesn't it work on Netflix/Disney+/Spotify Premium?

DRM encryption. These services use Encrypted Media Extensions (EME) to protect content. Encrypted audio bypasses the Web Audio API entirely, going directly from the encrypted container to audio hardware.

Chrome: TabDSP automatically switches to tab capture mode when DRM is detected. This captures the tab's mixed audio output after decryption and processes it through the full DSP chain. No action is required on your part -- you will see a "Tab audio captured" status message.

Firefox: Firefox does not provide a tab capture API, so DRM-protected content cannot be processed. Consider using Chrome for DRM-protected sites.

Sites that work without tab capture (both browsers): YouTube, SoundCloud, Bandcamp, most podcasts, HTML5 audio/video with unencrypted sources.

Sites that require tab capture (Chrome only): Netflix, Disney+, Amazon Prime Video, Spotify, Apple Music web player, Tidal.

See Troubleshooting: DRM Content for details.

Can it process audio from desktop apps (Spotify desktop, iTunes)?

No. TabDSP is a browser extension and only processes audio within web pages. Desktop applications bypass the browser entirely.

Alternative: Use system-level audio routing tools like JACK Audio (Linux/Mac), VoiceMeeter (Windows), or Audio Hijack (Mac) to process system audio.

Why can't I hear more than X bands in the multiband compressor?

The multiband compressor supports 3-band or 4-band mode, selectable in the UI. This is a design decision balancing CPU efficiency and practical utility.

Most professional multiband compressors (Waves C6, FabFilter Pro-MB) use 3-6 bands. More bands increase CPU usage and complexity without proportional benefit for typical use cases.

Performance

How much CPU does it use?

Typical usage: ~2.7% on modern systems (2020+ CPU, 4+ cores).

All features enabled: ~3.8% with Linear Phase EQ + 4-band Multiband + True Peak Limiter all active (v0.2.5 optimizations).

Optimization tips:

  • Bypass unused modules (each module consumes CPU even with neutral settings)
  • Use Minimum Phase EQ instead of Linear Phase (5-10x less CPU)
  • Use 3-band instead of 4-band multiband mode
  • Close unnecessary tabs running TabDSP
▶ Gear Head Details

CPU profiling targets:

  • Minimum Phase EQ: ~0.5% (8 biquad cascades)
  • Linear Phase EQ: ~0.25% (511-tap FIR via FFT overlap-add)
  • Single-Band Compressor: ~0.25% (envelope follower + gain reduction)
  • Multiband Compressor (4-band): ~0.5% (LR4 crossover + per-band RMS)
  • True Peak Limiter: ~0.7% (4x oversampling + monotone deque lookahead)
  • Spectrum Analyzer: ~0% (native AnalyserNode FFT, runs in C++ audio engine)

Optimization: Bypassed modules disconnect from signal chain, dropping CPU to zero for that module. AudioWorklet threads run at realtime priority, so CPU spikes are immediately audible as clicks/pops.

Will it drain my laptop battery?

Minimal impact. Audio DSP runs on CPU, not GPU, so battery drain is proportional to CPU usage (2-5% baseline).

On battery power, consider bypassing heavy modules (Linear Phase EQ, 4-band Multiband) to extend runtime.

Development & Contribution

Can I request features?

Yes. Open a feature request on GitHub Issues with the enhancement label. Describe the feature, use case, and why it would benefit users.

How do I report bugs?

Open an issue on GitHub Issues with:

  • Browser and version (Firefox or Chrome)
  • TabDSP version (visible in popup title or Changelog)
  • Website URL where bug occurs
  • Steps to reproduce
  • Console errors (F12 → Console tab, screenshot or copy/paste)

Updates & Installation

How do I update TabDSP?

Automatic updates: If installed via signed .xpi file, Firefox checks for updates automatically (every 24 hours by default).

Manual check: Go to about:addons → gear icon → "Check for Updates".

Update source: Updates are delivered automatically via the updates.json manifest hosted on GitHub Pages.

How do I update TabDSP on Chrome?

Chrome developer mode extensions don't auto-update. To update: download the latest source code, replace your existing tabdsp_extension folder, go to chrome://extensions, and click the reload button on TabDSP. Your settings and presets are preserved across updates.

Why did my settings disappear after updating Firefox?

If you installed TabDSP via "Load Temporary Add-on" (developer mode), settings are cleared on browser restart. This is expected Firefox behavior for temporary extensions.

Solution: Install the signed .xpi from the Downloads page. Signed extensions persist settings across restarts and updates.

Still Have Questions?

If your question isn't answered here: