void AnalyzerGain::finalize(TrackPointer tio) { //TODO: We are going to store values as relative peaks so that "0" means that no replaygain has been evaluated. // This means that we are going to transform from dB to peaks and viceversa. // One may think to digg into replay_gain code and modify it so that // it directly sends results as relative peaks. // In that way there is no need to spend resources in calculating log10 or pow. if(!m_initalized) return; float fReplayGainOutput = m_pReplayGain->end(); if (fReplayGainOutput == GAIN_NOT_ENOUGH_SAMPLES) { qDebug() << "ReplayGain 1.0 analysis failed"; m_initalized = false; return; } Mixxx::ReplayGain replayGain(tio->getReplayGain()); replayGain.setRatio(db2ratio(fReplayGainOutput)); tio->setReplayGain(replayGain); qDebug() << "ReplayGain 1.0 result is" << fReplayGainOutput << "dB for" << tio->getLocation(); m_initalized = false; }
void AnalyserGain::finalise(TrackPointer tio) { //TODO: We are going to store values as relative peaks so that "0" means that no replaygain has been evaluated. // This means that we are going to transform from dB to peaks and viceversa. // One may think to digg into replay_gain code and modify it so that // it directly sends results as relative peaks. // In that way there is no need to spend resources in calculating log10 or pow. if(!m_bStepControl) return; float ReplayGainOutput = m_pReplayGain->end(); if (ReplayGainOutput == GAIN_NOT_ENOUGH_SAMPLES) { qDebug() << "ReplayGain analysis failed:" << ReplayGainOutput; m_bStepControl = false; return; } float fReplayGain_Result = pow(10.0f, ReplayGainOutput / 20.0f); //qDebug() << "ReplayGain result is" << ReplayGainOutput << "pow:" << fReplayGain_Result; //qDebug()<<"ReplayGain outputs "<< ReplayGainOutput << "db for track "<< tio->getFilename(); tio->setReplayGain(fReplayGain_Result); //if(fReplayGain_Result) qDebug() << "ReplayGain Analyser found a ReplayGain value of "<< 20*log10(fReplayGain_Result) << "dB for track " << (tio->getFilename()); m_bStepControl=false; }