Made the channel equalization mode of the "normalization" filter an advanced option. The "-ne" mode still is default, be you can use "-nb" or even "-n" now. The last one still has problems with multi-channel files.
This commit is contained in:
parent
32b3e2607c
commit
af7bb2026a
File diff suppressed because it is too large
Load Diff
@ -1654,6 +1654,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation>Achtung: Die Geschwindigkeit wird sehr gering sein. Bitte <u>nicht</u> über die Geschwindigkeit beschweren!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation>Max. Pegel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation>Max. Energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation>Keiner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation>Angleichungsmodus:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1653,6 +1653,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation>Aviso: ¡La velocidad de proceso será muy lenta. Por favor, <u>no</u> se queje de la velocidad de proceso!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1663,6 +1663,22 @@ Ouvrir le dossier récursivement...</translation>
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1654,6 +1654,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1653,6 +1653,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1659,6 +1659,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1654,6 +1654,22 @@
|
||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||
<translation>Попередження: Швидкість обробки буде дуже низькою. Будь ласка, <u>не</u> жалійтеся потім на швидкість обробки!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peak Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RMS Level</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Equalization Mode:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetaInfo</name>
|
||||
|
@ -1100,7 +1100,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>604</width>
|
||||
<height>1486</height>
|
||||
<height>1524</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_22">
|
||||
@ -1918,32 +1918,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<spacer name="horizontalSpacer_27">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<spacer name="horizontalSpacer_28">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="5">
|
||||
<spacer name="verticalSpacer_11">
|
||||
<property name="orientation">
|
||||
@ -1960,7 +1934,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="5">
|
||||
<item row="4" column="1" colspan="5">
|
||||
<spacer name="verticalSpacer_12">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@ -1976,6 +1950,80 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QComboBox" name="comboBoxNormalizationMode">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Peak Level</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>RMS Level</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<spacer name="horizontalSpacer_27">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Equalization Mode:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<spacer name="horizontalSpacer_28">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="5">
|
||||
<spacer name="verticalSpacer_31">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>6</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@ -4354,5 +4402,21 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>checkBoxNormalizationFilter</sender>
|
||||
<signal>clicked(bool)</signal>
|
||||
<receiver>comboBoxNormalizationMode</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>80</x>
|
||||
<y>89</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>80</x>
|
||||
<y>89</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
|
Binary file not shown.
@ -30,7 +30,7 @@
|
||||
#define VER_LAMEXP_MINOR_LO 3
|
||||
#define VER_LAMEXP_TYPE Beta
|
||||
#define VER_LAMEXP_PATCH 3
|
||||
#define VER_LAMEXP_BUILD 714
|
||||
#define VER_LAMEXP_BUILD 716
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Tools versions
|
||||
|
@ -237,6 +237,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
comboBoxAACProfile->setCurrentIndex(m_settings->aacEncProfile());
|
||||
comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingMode());
|
||||
comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompression());
|
||||
comboBoxNormalizationMode->setCurrentIndex(m_settings->normalizationFilterEqualizationMode());
|
||||
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabled()) checkBoxBitrateManagement->click();
|
||||
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2Pass()) checkBoxNeroAAC2PassMode->click();
|
||||
while(checkBoxAftenFastAllocation->isChecked() != m_settings->aftenFastBitAllocation()) checkBoxAftenFastAllocation->click();
|
||||
@ -267,6 +268,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
||||
connect(spinBoxAftenSearchSize, SIGNAL(valueChanged(int)), this, SLOT(aftenSearchSizeChanged(int)));
|
||||
connect(checkBoxAftenFastAllocation, SIGNAL(clicked(bool)), this, SLOT(aftenFastAllocationChanged(bool)));
|
||||
connect(spinBoxNormalizationFilter, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double)));
|
||||
connect(comboBoxNormalizationMode, SIGNAL(currentIndexChanged(int)), this, SLOT(normalizationModeChanged(int)));
|
||||
connect(spinBoxToneAdjustBass, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustBassChanged(double)));
|
||||
connect(spinBoxToneAdjustTreble, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustTrebleChanged(double)));
|
||||
connect(buttonToneAdjustReset, SIGNAL(clicked()), this, SLOT(toneAdjustTrebleReset()));
|
||||
@ -657,7 +659,7 @@ void MainWindow::changeEvent(QEvent *e)
|
||||
{
|
||||
if(e->type() == QEvent::LanguageChange)
|
||||
{
|
||||
int comboBoxIndex[5];
|
||||
int comboBoxIndex[6];
|
||||
|
||||
//Backup combobox indices, as retranslateUi() resets
|
||||
comboBoxIndex[0] = comboBoxMP3ChannelMode->currentIndex();
|
||||
@ -665,6 +667,7 @@ void MainWindow::changeEvent(QEvent *e)
|
||||
comboBoxIndex[2] = comboBoxAACProfile->currentIndex();
|
||||
comboBoxIndex[3] = comboBoxAftenCodingMode->currentIndex();
|
||||
comboBoxIndex[4] = comboBoxAftenDRCMode->currentIndex();
|
||||
comboBoxIndex[5] = comboBoxNormalizationMode->currentIndex();
|
||||
|
||||
//Re-translate from UIC
|
||||
Ui::MainWindow::retranslateUi(this);
|
||||
@ -675,6 +678,7 @@ void MainWindow::changeEvent(QEvent *e)
|
||||
comboBoxAACProfile->setCurrentIndex(comboBoxIndex[2]);
|
||||
comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
|
||||
comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
|
||||
comboBoxNormalizationMode->setCurrentIndex(comboBoxIndex[5]);
|
||||
|
||||
//Update the window title
|
||||
if(LAMEXP_DEBUG)
|
||||
@ -2790,6 +2794,14 @@ void MainWindow::normalizationMaxVolumeChanged(double value)
|
||||
m_settings->normalizationFilterMaxVolume(static_cast<int>(value * 100.0));
|
||||
}
|
||||
|
||||
/*
|
||||
* Normalization equalization mode changed
|
||||
*/
|
||||
void MainWindow::normalizationModeChanged(int mode)
|
||||
{
|
||||
m_settings->normalizationFilterEqualizationMode(mode);
|
||||
}
|
||||
|
||||
/*
|
||||
* Tone adjustment has changed (Bass)
|
||||
*/
|
||||
@ -3022,6 +3034,7 @@ void MainWindow::resetAdvancedOptionsButtonClicked(void)
|
||||
comboBoxAACProfile->setCurrentIndex(m_settings->aacEncProfileDefault());
|
||||
comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingModeDefault());
|
||||
comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompressionDefault());
|
||||
comboBoxNormalizationMode->setCurrentIndex(m_settings->normalizationFilterEqualizationModeDefault());
|
||||
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabledDefault()) checkBoxBitrateManagement->click();
|
||||
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2PassDefault()) checkBoxNeroAAC2PassMode->click();
|
||||
while(checkBoxNormalizationFilter->isChecked() != m_settings->normalizationFilterEnabledDefault()) checkBoxNormalizationFilter->click();
|
||||
|
@ -97,6 +97,7 @@ private slots:
|
||||
void neroAACProfileChanged(int value);
|
||||
void normalizationEnabledChanged(bool checked);
|
||||
void normalizationMaxVolumeChanged(double volume);
|
||||
void normalizationModeChanged(int mode);
|
||||
void notifyOtherInstance(void);
|
||||
void openFolderActionActivated(void);
|
||||
void outputFolderContextMenu(const QPoint &pos);
|
||||
|
@ -692,7 +692,7 @@ void ProcessingDialog::startNextJob(void)
|
||||
}
|
||||
if(m_settings->normalizationFilterEnabled())
|
||||
{
|
||||
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume()));
|
||||
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume(), m_settings->normalizationFilterEqualizationMode()));
|
||||
}
|
||||
if(m_settings->renameOutputFilesEnabled() && (!m_settings->renameOutputFilesPattern().simplified().isEmpty()))
|
||||
{
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <QProcess>
|
||||
#include <QRegExp>
|
||||
|
||||
NormalizeFilter::NormalizeFilter(int peakVolume)
|
||||
NormalizeFilter::NormalizeFilter(int peakVolume, int equalizationMode)
|
||||
:
|
||||
m_binary(lamexp_lookup_tool("sox.exe"))
|
||||
{
|
||||
@ -37,6 +37,7 @@ NormalizeFilter::NormalizeFilter(int peakVolume)
|
||||
}
|
||||
|
||||
m_peakVolume = min(-50, max(-3200, peakVolume));
|
||||
m_equalizationMode = min(2, max(0, equalizationMode));
|
||||
}
|
||||
|
||||
NormalizeFilter::~NormalizeFilter(void)
|
||||
@ -47,6 +48,7 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
|
||||
{
|
||||
QProcess process;
|
||||
QStringList args;
|
||||
QString eqMode = (m_equalizationMode == 0) ? "-ne" : ((m_equalizationMode == 1) ? "-nb" : "-n");
|
||||
|
||||
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
|
||||
|
||||
@ -55,7 +57,7 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
|
||||
args << QDir::toNativeSeparators(sourceFile);
|
||||
args << QDir::toNativeSeparators(outputFile);
|
||||
args << "gain";
|
||||
args << "-ne" << QString().sprintf("%.2f", static_cast<double>(m_peakVolume) / 100.0);
|
||||
args << eqMode << QString().sprintf("%.2f", static_cast<double>(m_peakVolume) / 100.0);
|
||||
|
||||
if(!startProcess(process, m_binary, args))
|
||||
{
|
||||
|
@ -26,7 +26,7 @@
|
||||
class NormalizeFilter : public AbstractFilter
|
||||
{
|
||||
public:
|
||||
NormalizeFilter(int peakVolume = -50);
|
||||
NormalizeFilter(int peakVolume = -50, int equalizationMode = 0);
|
||||
~NormalizeFilter(void);
|
||||
|
||||
virtual bool apply(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag);
|
||||
@ -34,4 +34,5 @@ public:
|
||||
private:
|
||||
const QString m_binary;
|
||||
int m_peakVolume;
|
||||
int m_equalizationMode;
|
||||
};
|
||||
|
@ -103,6 +103,7 @@ LAMEXP_MAKE_ID(neroAACEnable2Pass, "AdvancedOptions/AACEnc/Enable2Pass");
|
||||
LAMEXP_MAKE_ID(aacEncProfile, "AdvancedOptions/AACEnc/ForceProfile");
|
||||
LAMEXP_MAKE_ID(normalizationFilterEnabled, "AdvancedOptions/VolumeNormalization/Enabled");
|
||||
LAMEXP_MAKE_ID(normalizationFilterMaxVolume, "AdvancedOptions/VolumeNormalization/MaxVolume");
|
||||
LAMEXP_MAKE_ID(normalizationFilterEqualizationMode, "AdvancedOptions/VolumeNormalization/EqualizationMode");
|
||||
LAMEXP_MAKE_ID(toneAdjustBass, "AdvancedOptions/ToneAdjustment/Bass");
|
||||
LAMEXP_MAKE_ID(toneAdjustTreble, "AdvancedOptions/ToneAdjustment/Treble");
|
||||
LAMEXP_MAKE_ID(customParametersLAME, "AdvancedOptions/CustomParameters/LAME");
|
||||
@ -346,6 +347,7 @@ LAMEXP_MAKE_OPTION_B(aftenFastBitAllocation, false);
|
||||
LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize, 8);
|
||||
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled, false)
|
||||
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume, -50)
|
||||
LAMEXP_MAKE_OPTION_I(normalizationFilterEqualizationMode, 0);
|
||||
LAMEXP_MAKE_OPTION_I(toneAdjustBass, 0)
|
||||
LAMEXP_MAKE_OPTION_I(toneAdjustTreble, 0)
|
||||
LAMEXP_MAKE_OPTION_S(customParametersLAME, QString());
|
||||
|
@ -112,6 +112,7 @@ public:
|
||||
LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize);
|
||||
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled);
|
||||
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume);
|
||||
LAMEXP_MAKE_OPTION_I(normalizationFilterEqualizationMode);
|
||||
LAMEXP_MAKE_OPTION_I(toneAdjustBass);
|
||||
LAMEXP_MAKE_OPTION_I(toneAdjustTreble);
|
||||
LAMEXP_MAKE_OPTION_S(customParametersLAME);
|
||||
|
Loading…
Reference in New Issue
Block a user