196557a41a
* show effective db of track when playing * tests
32 lines
714 B
JavaScript
32 lines
714 B
JavaScript
const calculateReplayGain = (preAmp, gain, peak) => {
|
|
if (gain === undefined || peak === undefined) {
|
|
return 1
|
|
}
|
|
|
|
// https://wiki.hydrogenaud.io/index.php?title=ReplayGain_1.0_specification§ion=19
|
|
// Normalized to max gain
|
|
return Math.min(10 ** ((gain + preAmp) / 20), 1 / peak)
|
|
}
|
|
|
|
export const calculateGain = (gainInfo, song) => {
|
|
switch (gainInfo.gainMode) {
|
|
case 'album': {
|
|
return calculateReplayGain(
|
|
gainInfo.preAmp,
|
|
song.rgAlbumGain,
|
|
song.rgAlbumPeak,
|
|
)
|
|
}
|
|
case 'track': {
|
|
return calculateReplayGain(
|
|
gainInfo.preAmp,
|
|
song.rgTrackGain,
|
|
song.rgTrackPeak,
|
|
)
|
|
}
|
|
default: {
|
|
return 1
|
|
}
|
|
}
|
|
}
|