Automatic volume normalization for Chrome tabs — quiet dialogue up, loud surprises down.
Open a tab, click LoudEase once, and keep listening at a more consistent level.
Processing stays local, while player volume and mute remain authoritative.
Install LoudEase from the Chrome Web Store
If LoudEase helps, leave an honest store review or star the project on GitHub.
简体中文 · Install · How it works · Community testing · Contribute · Support
Note
LoudEase is publicly available as a beta. Compatibility statements below distinguish verified behavior from community test targets.
Web audio rarely agrees on one comfortable level. Dialogue disappears, effects jump out, ads arrive hot, and the next creator or stream can sound completely different. A normal volume slider moves everything together; LoudEase works on the difference between moments.
Use the website player or operating-system volume to choose the overall listening level. The two LoudEase controls only set how strongly loud passages are reduced and quiet detail is lifted. LoudEase intentionally does not add a separate master-volume slider: moving every sound together would duplicate existing volume controls without improving source-to-source balance.
| Calm sudden loudness | Recover quiet detail | Respect your controls |
|---|---|---|
| Fast gain reduction and a look-ahead limiter catch uncomfortable jumps and short peaks. | A programme baseline lifts sources that are quiet overall; clearly audible within-programme detail gets at most 16 dB extra lift, while near-silence is not chased. | Mute and zero player volume are hard boundaries. The UI only says active when fresh runtime evidence exists. |
LoudEase is not a simple volume booster, an equalizer, or a calibrated hearing-protection device. It narrows disruptive level differences with a strength-scaled, bounded peak-compression budget.
The authorized tab is captured as one audio stream, then processed locally in an AudioWorklet. K-weighted gated measurement establishes a stable programme baseline, a floor-qualified 16 dB detail term handles clearly audible quiet passages, and independent fast protection plus a 5 ms look-ahead limiter catch loud onsets. Transient blob or srcObject replacement inside one page does not reset the programme. Upward lift still waits for representative signal, but now reaches full confidence after about 1.5 seconds of continuous accepted audio so short quiet videos are not left behind. No raw audio is uploaded.
For implementation details, assumptions, and current gaps, read Audio DSP, Architecture, and Known limitations.
| Chrome Web Store build | GitHub development build |
|---|---|
| The same DSP, popup, settings, languages, and per-site rules. Localhost diagnostics and contributor-only controls are physically removed from the package. | The complete open-source project, including opt-in local diagnostics, test pages, evidence tools, and reproducible store packaging. |
The store build is smaller for privacy and review compliance; it does not use a weaker balancing algorithm. dist/github-dev only adds contributor diagnostics and test controls. Both builds use Chrome's standard user-invoked tabCapture flow and never modify Chrome startup shortcuts. Public GitHub Releases attach the stripped store ZIP; dist/github-dev is not an ordinary public installation artifact.
Ordinary users install LoudEase from the Chrome Web Store and need only Chrome 116 or newer. They do not need Node.js, a server, or a database.
This Developer-mode route is for testing trusted code, not normal public distribution.
- Download the verified
loudease-store.zipfrom the selected GitHub prerelease and extract it to a permanent folder. - Open
chrome://extensionsand enable Developer mode. - Choose Load unpacked and select the extracted directory containing
manifest.json.
Updates are manual: replace the files in the same directory with the next verified ZIP, click the extension's Reload button, and reload affected web pages. Managed Chrome installations may block Developer mode or unpacked extensions.
Contributors need Node.js 20 or newer:
git clone https://github.com/WSL043/loudease.git
cd loudease
npm run build:devOpen chrome://extensions, enable Developer mode, choose Load unpacked, and select dist/github-dev.
- Open a normal
httporhttpstab that is playing audio. - Click LoudEase once to authorize that tab.
- A moving waveform and a current dB value confirm live processing.
- Adjust Reduce loud sounds and Lift quiet sounds only when the defaults do not fit.
The public store runtime requires a user gesture before tabCapture starts. A completely new store tab cannot be captured silently; after authorization, LoudEase can keep processing while you switch to another tab.
LoudEase does not publish a Tampermonkey, Violentmonkey, or Greasy Fork core edition. A userscript cannot access the extension-only chrome.tabCapture and offscreen-document pipeline or the complete tab mix, so it would reintroduce iframe, Web Audio, protected-player, and pre-play gaps. A non-audio site-UI companion would only be considered if it later has a distinct use case.
See Installation for the store, packaged-beta, and source-development paths.
| Evidence | Current scope |
|---|---|
| Public beta baseline | YouTube video/live, Bilibili video/live, Douyin video/live |
| Automated regression | HTML5 media, SPA source replacement, iframes, Web Audio, mute, zero player volume, slider persistence, and offline DSP graphs |
| Community test targets | Twitch, TikTok, Spotify Web Player, Vimeo, social video, regional services, and protected streaming |
Test targets are not compatibility promises. Chrome internal pages and surfaces Chrome refuses to capture are unsupported. See Site adapters and the Test matrix.
The interface currently includes Arabic, German, English, Spanish, French, Japanese, Korean, Brazilian Portuguese, Russian, Simplified Chinese, and Traditional Chinese. English is the default.
No single tester needs to cover every platform or run a two-hour endurance session. Small, reproducible checks are more useful:
- spend 10 minutes checking one site, source switch, mute, player volume, and tab switching;
- compare one dialogue, music, live, or transient-heavy sample with LoudEase on and off;
- review one translation in a language you use daily;
- contribute one focused fix with a regression test.
Start with the community testing guide, then use the issue chooser for compatibility, audio-quality, bug, or product feedback. Reports are voluntary and user-initiated; LoudEase contains no automatic telemetry service.
WSL043 maintains the official project. Use Support and the GitHub Issue Forms for reports and proposals; Governance defines the project boundary.
Current settings and per-site controls
npm test # contracts, DSP tests, and offline audio graphs
npm run test:dsp # focused DSP verification
npm run test:silent # isolated live capture with no system audio output
npm run test:capture # silent local loud/lift/mute/player-volume/burst matrix
npm run test:sites # silent YouTube/Bilibili/Douyin video/live matrix
npm run test:long # configurable isolated stability/endurance run
npm run test:slider # popup persistence regression
npm run test:release # stripped Chrome Web Store package
npm run audit # release-readiness evidence auditdist/github-dev keeps contributor diagnostics available but off by default. dist/store removes localhost permissions, diagnostic UI, symbols, and network code through an allowlist build. Read Build, Publishing, and AGENTS.md before changing permissions, packaging, or release state.
Open beta and store gates are tracked in the evidence-based Release readiness review.
- Audio stays inside the local extension audio graph.
- There is no advertising, analytics, silent telemetry, or remote executable code.
- Settings use
chrome.storage.sync, subject to the user's Chrome Sync configuration. - LoudEase cannot control operating-system gain, hardware amplification, or acoustic output at the ear.
See Privacy, Feedback and data boundaries, and Security.
Source code is licensed under GPL-3.0-only. Distributed derivative versions must provide the corresponding source under GPLv3. Copies previously distributed under historical Beta tags retain the license grants attached to those copies, even if a prerelease or tag is later removed from GitHub. The LoudEase name and logo are governed separately by the Trademark Policy; bundled icon notices are recorded in Third-party notices.
The decision and transition boundary are explained in Licensing. Project authority and contribution rights are documented in Governance, Contributing, and the Developer Certificate of Origin. Asset origins and machine-readable license boundaries are recorded in Asset provenance and REUSE.toml.

