Boost quiet tabs up to 800%, shape the sound with a 10-band EQ, and keep every playing tab in view.
No accounts, no tracking, no servers. All audio processing stays in your browser.
Highlights · Quick start · Browser support · How it works · Privacy · FAQ · Development
Up to 800% boostPer-tab volume from 0% to 800%. A compressor and soft limiter keep heavy boosts from clipping harshly. |
10-band equalizer31 Hz to 16 kHz with 12 presets (Rock, Jazz, Vocal, Bass Boost, V-Shape and more) plus your own custom curve. |
Voice & Bass modesOne-click modes for clearer dialogue in videos and podcasts, or more low end for music and games. |
Transparent at 100%With a flat EQ and Default mode, audio passes through unchanged. Only peaks near full scale reach the limiter. |
Every playing tabSee which tabs are making sound, jump to one in a click, and show a count on the toolbar badge. |
Light and privateNo page audio is touched until you use the popup, the engine shuts down when idle, and nothing ever leaves your device. |
Opening the popup by itself never changes a tab’s audio. Settings such as the toolbar badge, remembered volume and 800% overdrive are under the gear icon.
| Chrome | Firefox | |
|---|---|---|
| Minimum version | 116 | 140 (desktop), 142 (Android) |
| Boost, EQ and modes | Any site that plays audio | Standard HTML5 players such as YouTube, Bandcamp and SoundCloud |
| Protected (DRM) audio, e.g. Spotify Web | Full support | Volume 0–100% and mute ¹ |
| Website access required | None | All sites |
¹ Firefox does not allow extensions to process DRM-protected audio. On those sites SoundSphere greys out boost, EQ and modes and explains why in the popup.
Every tab gets its own Web Audio processing chain:
flowchart LR
A["Tab audio"] --> B["Gain<br/>0–800%"]
B --> C["Mode<br/>Voice / Bass"]
C --> D["10-band EQ<br/>31 Hz – 16 kHz"]
D --> E["Compressor<br/>only when boosting"]
E --> F["Soft limiter"]
F --> G["Speakers"]
classDef stage fill:#121a26,stroke:#00d084,color:#eef4f8,stroke-width:1px
class A,B,C,D,E,F,G stage
Chrome captures the tab’s audio with the tabCapture API and runs the chain in a hidden offscreen document. Clicking the toolbar icon grants access to that one tab (activeTab), so the Chrome version needs no website permissions and runs no scripts in web pages. The offscreen document closes on its own once no tab is being processed.
Firefox has no tab capture for extensions, so SoundSphere routes the page’s own <audio> and <video> elements through the chain. It only reroutes audio that Web Audio can actually read, so it never silences playback. When a site streams media from another domain without CORS headers (Bandcamp, for example), SoundSphere adds a CORS header to media in that tab only and reloads the track once. The rule is removed when the tab closes.
SoundSphere collects no data. There are no analytics, no telemetry, no ads and no remote code, and the extension has no servers: nothing is ever sent anywhere. Audio is processed in real time on your device and is never recorded or saved. Settings stay in your browser’s extension storage. Read the full privacy policy.
| Permission | Browser | Why it’s needed |
|---|---|---|
activeTab |
Both | Work with the tab where you opened the popup |
tabs |
Both | List tabs that are playing audio and switch to them |
storage |
Both | Save your settings |
tabCapture, offscreen |
Chrome | Capture and process the tab’s audio locally |
| Access to all websites | Firefox | Adjust the page’s audio and video players |
declarativeNetRequestWithHostAccess |
Firefox | Add a CORS header to media in a boosted tab so cross-domain audio can be processed |
SoundSphere-1.3/ Extension source, shared by both browsers
manifest.json Chrome manifest (MV3)
manifest.firefox.json Firefox manifest (MV3), packaged as manifest.json
tests/1.3/ Regression harness (Node.js, no dependencies)
tools/package-1.3.sh Builds the store packages
tools/render-readme-assets.js Regenerates the README images from the real popup
beta/ Latest CI build (.zip for Chrome, .xpi for Firefox)
store-assets/ Banner, screenshots and store icons (not packaged)
Docs/ Architecture, decisions and store submission notes
Requirements: Node.js 18+, Python 3 and zip. Playwright is only needed to regenerate the README images.
# Run the regression harness
node tests/1.3/test.js
# Build SoundSphere-<version>-chrome.zip and SoundSphere-<version>-firefox.xpi
bash tools/package-1.3.sh dist
Load an unpacked build
chrome://extensions, enable Developer mode, choose Load unpacked and select SoundSphere-1.3/.about:debugging#/runtime/this-firefox, choose Load Temporary Add-on and select the .xpi from beta/ or dist/.Every push to main runs the tests and publishes fresh packages to beta/.
Found a bug or have an idea? Open an issue and include your browser and version, the site, and what you expected to happen.
Released under the MIT License. The bundled JetBrains Mono font is licensed under the SIL Open Font License 1.1 (SoundSphere-1.3/fonts/OFL.txt).