Sorun: Bir şarkı çok yüksek, diğeri çok düşük ses seviyesinde → Kullanıcı sürekli volume ayarlıyor.
Çözüm: ReplayGain/LUFS ile tüm şarkıları aynı ses seviyesine normalize et.
Şarkının ortalama ses seviyesini analiz eden algoritma. Her şarkı için bir 'gain' değeri hesaplanır.
ALTER TABLE songs ADD COLUMN replay_gain FLOAT DEFAULT 0; -- dB ALTER TABLE songs ADD COLUMN loudness_lufs FLOAT; -- LUFS
// Şarkı çalarken gain'i uygula
playSong(song) {
const baseVolume = this.volume; // %100
const gain = song.replay_gain || 0; // -3 dB
// dB'yi percentage'e çevir
const multiplier = Math.pow(10, gain / 20);
const adjustedVolume = baseVolume * multiplier;
this.howl.volume(adjustedVolume / 100);
}
Backend analiz gerekli: FFmpeg ile tüm şarkıları analiz edip ReplayGain değerlerini database'e kaydetmek lazım.