• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Web-Based Audio Player with ISO 226:2003 Loudness

grisys

Member
Joined
Jul 30, 2021
Messages
9
Likes
52
Web-Based Audio Player with ISO 226:2003 Loudness Compensation

Introduction

I've developed a free, open-source web audio player that implements
scientifically accurate loudness compensation based on ISO 226:2003.
After being rejected by TIDAL's developer program, I decided to create
something better and share it with the community.

Live Demo: https://webtidalloudness.web.app

Technical Implementation

Core Features:
- ISO 226:2003 equal-loudness contour compensation
- High-resolution FIR filter (increased tap count for HiFi quality)
- Adaptive bass compensation with clipping prevention
- Headphone correction via impulse response (WAV)
- BS2B crossfeed implementation
- Real-time SPL and headroom monitoring

DSP Chain:
1. Source → Headphone Correction (optional)
2. → Loudness Compensation FIR Filter
3. → BS2B Crossfeed (optional)
4. → Master Gain
5. → Output

Important Calibration Note
The phon and dB SPL values displayed in this app are relative/arbitrary
and for development reference only. Without proper calibration using a
measurement microphone and known reference level, absolute SPL values
cannot be determined. The app assumes a nominal calibration where:
- 0 dBFS = ~80-85 dB SPL (typical for home listening)
- Easy Mode slider values (0-100) map to 40-90 phon range
These values help maintain consistent relative relationships per ISO
226:2003, but should not be taken as absolute measurements.

Measurements & Objective Performance

The FIR filter accurately follows ISO 226:2003 curves:
- Target: 40-90 phon range (relative)
- Frequency response: 20Hz-20kHz
- Dynamic adaptation based on listening level
- Automatic gain compensation to prevent clipping

Key Innovation: Adaptive bass algorithm that prevents overcompensation:
< 55 phon: k=18, δMax=20dB
55-70 phon: Progressive reduction
> 80 phon: Minimal compensation


Usage Guide

Simple 3-Environment Setup:
- Quiet environment (home, night): Set to 50
- Normal environment: Set to 60
- Noisy environment: Set to 70
- Then use your system volume normally
These numbers represent relative loudness perception, not absolute SPL.


Subjective Impressions
Testing with Hifiman Arya Organic:
- Natural tonal balance at all volumes
- Piano hammer attacks clearly audible at lower volumes
- No need for high volume to hear full frequency range


Why This Matters
Most people listen too loud because they can't hear bass/treble properly
at lower volumes. This implementation:
- Provides fuller tonal balance at lower actual SPL
- Naturally encourages healthier listening levels
- No preaching about "safe volumes" - just better sound


Technical Notes for ASR Members
- All processing done at Web Audio API's internal 32-bit float
- Zero latency (excluding browser/OS audio stack)
- Supports all major formats via browser decode
- Drag & drop file management
- No server required - runs entirely in browser


Conclusion
Web Audio API is capable of true high-fidelity audio processing. This
project proves that browser-based audio can rival dedicated desktop
applications.
Free to use, no ads, no tracking. Just good sound.


Would love to hear measurements and impressions from the ASR community,
especially those with measurement rigs.

---Note: I'm not affiliated with any audio company. This is a passion
project born from frustration with existing solutions.
 
Back
Top Bottom