Loudness Targets

Loudness targets for different platforms and genres.

This module defines target loudness levels for various streaming platforms, broadcast standards, and genre-specific mastering practices.

class mixref.meters.targets.Platform[source]

Bases: str, Enum

Streaming and playback platforms with standard loudness targets.

SPOTIFY = 'spotify'
YOUTUBE = 'youtube'
APPLE_MUSIC = 'apple_music'
TIDAL = 'tidal'
SOUNDCLOUD = 'soundcloud'
CLUB = 'club'
BROADCAST = 'broadcast'
__new__(value)
class mixref.meters.targets.Genre[source]

Bases: str, Enum

Electronic music genres with specific mastering practices.

DNB = 'dnb'
TECHNO = 'techno'
HOUSE = 'house'
DUBSTEP = 'dubstep'
TRANCE = 'trance'
__new__(value)
class mixref.meters.targets.LoudnessTarget[source]

Bases: NamedTuple

Loudness target specification.

name

Human-readable name (e.g., “Spotify”, “DnB Club Master”)

Type:

str

target_lufs

Target integrated loudness in LUFS

Type:

float

min_lufs

Minimum acceptable LUFS (None = no minimum)

Type:

float | None

max_lufs

Maximum acceptable LUFS (None = no maximum)

Type:

float | None

max_true_peak_db

Maximum true peak in dBTP (typically -1.0)

Type:

float

description

Description of the target use case

Type:

str

name: str

Alias for field number 0

target_lufs: float

Alias for field number 1

min_lufs: float | None

Alias for field number 2

max_lufs: float | None

Alias for field number 3

max_true_peak_db: float

Alias for field number 4

description: str

Alias for field number 5

static __new__(_cls, name, target_lufs, min_lufs, max_lufs, max_true_peak_db, description)

Create new instance of LoudnessTarget(name, target_lufs, min_lufs, max_lufs, max_true_peak_db, description)

mixref.meters.targets.get_target(platform=None, genre=None)[source]

Get loudness target for a platform or genre.

Parameters:
  • platform (Platform | None) – Target platform (Spotify, YouTube, Club, etc.)

  • genre (Genre | None) – Music genre (DnB, Techno, House, etc.)

Returns:

LoudnessTarget with target LUFS, ranges, and description

Raises:

ValueError – If neither platform nor genre specified, or both specified

Return type:

LoudnessTarget

Example

>>> target = get_target(platform=Platform.SPOTIFY)
>>> print(f"Target: {target.target_lufs} LUFS")
Target: -14.0 LUFS
>>> target = get_target(genre=Genre.DNB)
>>> print(f"DnB target: {target.target_lufs} LUFS")
DnB target: -8.0 LUFS
mixref.meters.targets.compare_to_target(measured_lufs, target)[source]

Compare measured loudness against target.

Parameters:
  • measured_lufs (float) – Measured integrated LUFS

  • target (LoudnessTarget) – Target loudness specification

Returns:

  • is_acceptable: True if within acceptable range

  • difference_db: Difference from target (+ve = too loud, -ve = too quiet)

  • message: Human-readable feedback

Return type:

Tuple of (is_acceptable, difference_db, message)

Example

>>> from mixref.meters import calculate_lufs
>>> result = calculate_lufs(audio, 44100)
>>> target = get_target(platform=Platform.SPOTIFY)
>>> ok, diff, msg = compare_to_target(result.integrated_lufs, target)
>>> print(msg)
2.3 dB above Spotify target (-14.0 LUFS). Will be turned down.