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.
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.