1
0
Fork 0

Compensate for loudness level -14 LUFS of audio files

This commit is contained in:
ivan tkachenko 2025-10-12 06:00:34 +03:00
parent 8223425b19
commit cd9e0a7a10
1 changed files with 21 additions and 0 deletions

View File

@ -2084,7 +2084,10 @@ namespace MuzikaGromche
public static bool ExtrapolateTime { get; private set; } = true;
public static bool ShouldSkipWindingPhase { get; private set; } = false;
// Audio files are normalized to target -14 LUFS, which is too loud to communicate. Reduce by another -12 dB down to about -26 LUFS.
public static float DefaultVolume = 0.25f;
#if DEBUG
public static ConfigEntry<float> Volume { get; private set; } = null!;
// Latest set track, used for loading palette and timings.
private static IAudioTrack? CurrentTrack = null;
// All per-track values that can be overridden
@ -2153,6 +2156,7 @@ namespace MuzikaGromche
SetupEntriesForScreenFilters(configFile);
SetupEntriesForExtrapolation(configFile);
SetupEntriesToSkipWinding(configFile);
SetupEntriesForVolume(configFile);
SetupEntriesForPaletteOverride(configFile);
SetupEntriesForTimingsOverride(configFile);
#endif
@ -2274,6 +2278,13 @@ namespace MuzikaGromche
}
}
private void SetupEntriesForVolume(ConfigFile configFile)
{
Volume = configFile.Bind("General", "Volume", DefaultVolume,
new ConfigDescription("Volume of the music played by this mod.", new AcceptableValueRange<float>(0f, 1f)));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(Volume, requiresRestart: false));
}
private void SetupEntriesForPaletteOverride(ConfigFile configFile)
{
const string section = "Palette";
@ -2658,16 +2669,26 @@ namespace MuzikaGromche
IntroAudioSource.maxDistance = Plugin.AudioMaxDistance;
IntroAudioSource.dopplerLevel = 0;
IntroAudioSource.loop = false;
IntroAudioSource.volume = Config.DefaultVolume;
LoopAudioSource = loopAudioGameObject.GetComponent<AudioSource>();
LoopAudioSource.maxDistance = Plugin.AudioMaxDistance;
LoopAudioSource.dopplerLevel = 0;
LoopAudioSource.loop = true;
LoopAudioSource.volume = Config.DefaultVolume;
Debug.Log($"{nameof(MuzikaGromche)} {nameof(MuzikaGromcheJesterNetworkBehaviour)} Patched JesterEnemy");
}
}
#if DEBUG
void Update()
{
IntroAudioSource.volume = Config.Volume.Value;
LoopAudioSource.volume = Config.Volume.Value;
}
#endif
public override void OnNetworkSpawn()
{
ChooseTrackDeferred();