y-brehm / waveAlign

Python repo for audio loudness matching in order to end the loudness war between DJs.
3 stars 0 forks source link

Fine tune loudness target and fix windowing #53

Closed y-brehm closed 3 days ago

y-brehm commented 3 weeks ago

While using waveAlign on a recent set, I realised that the LUFS-S target may not be the optimum for alignment. When loudness aligning very "empty" tracks, the LUFS metric generally seems to reach its limits, resulting in "empty" tracks being much louder than "full" tracks. While the current windowing works well for similar tracks, the opposite is true for songs with more minimalistic arrangements. In particular, breakbeat songs with empty spaces between drum hits that are not filled with bass lines or similar elements will receive a very low LUFS-S rating. When these are mixed with, for example, very consistent bass-heavy techno tracks, the resulting loudness between the songs seems off.

A possible and very simple solution would be to switch to LUFS-M (momentary) windowing, which has an integration time of only 400ms. Our current LUFS-M windowing is also wrong at the moment (it is set to 4s). I would also suggest changing the loudness target to something closer to what current streaming platforms use. Spotify and AppleMusic use -14LUFS-I (so basically integrated over the whole song). We should do some measurements to find out what their LUFS-M average is.

In summary: