dark mode

Loudness

A tool that automates the measurement of dynamics in publicly available music sources.

It can be used to find new music albums that are less affected by the effects of the loudness war.

Disclaimer

Motivation

Most modern music has an enormous amount of compression and limiting applied. This often causes fatigue when listening to it for longer periods of time. In addition, the compressed music sounds flat and lifeless compared to music that has some (micro-) dynamics retained. This is the result of the so called Loudness War.

It is not easy to find music that is not that much affected by this problem, since music is not publicly tagged with it’s dynamic characteristics.

There are sources where information about the characteristics of dynamics for some music can be obtained. They are

Using these sources works, but

(Preferring and searching for dynamic music doesn’t automatically mean to abandon overcompessed and overly limited music - having the possibility to search for more dynamic music though, is an advantage for some people.)

How this software helps

This tool is made to hopefully fill the gap mentioned above and automate the manual process of filtering the available music by its dynamics.

It does so by measuring publicly available music previews, which are available today from the official web pages of music providers (like YouTube, Spotify or download stores).

The measured results are available in the app and can be filtered by genre. They also provide a direct link to open the music source in a browser for listening to the music right at the provider source.

Usage

Handling of duplicates

Already scanned albums that exist in the archive are not scanned again. They are instead identified through their source link and directly fetched from the archive and therefore don’t consume computation power and time.
Duplicate results are shown in black and white in the results list.

Data storage

The retrieved result data is stored in a human and machine readable text file (json) on the machine running the software.

Results folder: ~/.local/share/org.topas-rec.loudless-lib/results

The files can be be used to build a personal database of music dynamics.
In addition those files can be exchanged with others (to build up something like the Dynamic Range Database).

The distribution of results is out of scope of this app. The app uses files as a universal interface to other tools, for example to exchange the results with the community.

Rating of dynamics in music

This section is controversial - people might have different opionions regarding this topic.

To detect how dynamic a piece of music is (or how much compression and limiting is used) this software currently uses the crest factor.

To calculate the average loudness and the (true) peak values, which are required for calculating the crest factor, this software uses the EBU R 128 (ITU-R BS.1770) standard.

The tool might be extended for example by using the * the DR score (defined by the Pleasurize Music Foundation in 2009), too.

Duration of measurement

The music currently trims the music previews down to a duration of 60 seconds.
To skip the intro present in most music, which is often very dynamic and might bias the result, the software skips the first 30 seconds of a music preview, if its length allows for it.

Platforms

This software is currently created for linux only, but with some changes it should be buildable for Windows, too.

State of development

Versioning

The software follows broader parts of Semantic Versioning for releases.

Architecture

This software consists of two parts:

Given this architecture, the tool can be extended for example by * a terminal executable that can be used on headless servers to continously scan music sources

UI-Design

The software was developed with the GNOME Human Interface Guidelines in mind and therefore uses libadwaita and GTK.

It is developed on and for the GNOME desktop.

Rust programming language

This is the first project in Rust for the author of this software.

Credits

Thanks goes out to the following projects and people:

stylesheet template from MingFei2001