Kirika/audio/replaygain/filter.go
2022-05-20 17:23:50 +02:00

16 lines
443 B
Go

package replaygain
import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio/filter"
"math"
)
//NewReplayGainFilter Creates a VolumeFilter applying calculated ReplayGain values, pre amplifying by preAmp. Values are in dB
func NewReplayGainFilter(gain, peak, preAmp float64) filter.VolumeFilter {
volume := math.Pow(10, (gain+preAmp)/20)
//prevent clipping
volume = math.Min(volume, 1/peak)
return filter.NewVolumeFilter(float32(volume))
}