16 lines
435 B
Go
16 lines
435 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(volume)
|
|
}
|