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]
-
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]
-
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:
NamedTupleLoudness target specification.
- name
Human-readable name (e.g., “Spotify”, “DnB Club Master”)
- Type:
- target_lufs
Target integrated loudness in LUFS
- Type:
- 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:
- description
Description of the target use case
- Type:
- name: str
Alias for field number 0
- target_lufs: float
Alias for field number 1
- 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.