Added support for DynamicAudioNormalizer normalization filter.
This commit is contained in:
parent
80995537c2
commit
5b1b612775
File diff suppressed because it is too large
Load Diff
@ -1309,7 +1309,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Peak Volume (dB):</source>
|
<source>Peak Volume (dB):</source>
|
||||||
<translation>Max. Lautstärke (dB):</translation>
|
<translation>Max. Pegel (dB):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Reset Advanced Options </source>
|
<source>Reset Advanced Options </source>
|
||||||
@ -1707,22 +1707,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<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>
|
<translation>Achtung: Die Geschwindigkeit wird sehr gering sein. Bitte <u>nicht</u> über die Geschwindigkeit beschweren!</translation>
|
||||||
</message>
|
</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>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
@ -2006,6 +1990,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation>LameXP Benutzerhandbuch</translation>
|
<translation>LameXP Benutzerhandbuch</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation>Dynamische Normalisierung</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation>Fenstergröße:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation>Kanal-Kopplung aktivieren, d.h. alle Kanäle einer Mehrkanal-Datei um den gleichen Faktor verstärken</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/Dialog_MainWindow.cpp" line="806"/>
|
<location filename="../../src/Dialog_MainWindow.cpp" line="822"/>
|
||||||
<source>%n file(s) have been rejected, because read access was not granted!</source>
|
<source>%n file(s) have been rejected, because read access was not granted!</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n file have been rejected, because read access was not granted!</numerusform>
|
<numerusform>%n file have been rejected, because read access was not granted!</numerusform>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/Dialog_MainWindow.cpp" line="810"/>
|
<location filename="../../src/Dialog_MainWindow.cpp" line="826"/>
|
||||||
<source>%n file(s) have been rejected, because they are dummy CDDA files!</source>
|
<source>%n file(s) have been rejected, because they are dummy CDDA files!</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n file have been rejected, because they are dummy CDDA files!</numerusform>
|
<numerusform>%n file have been rejected, because they are dummy CDDA files!</numerusform>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/Dialog_MainWindow.cpp" line="814"/>
|
<location filename="../../src/Dialog_MainWindow.cpp" line="830"/>
|
||||||
<source>%n file(s) have been rejected, because they appear to be Cue Sheet images!</source>
|
<source>%n file(s) have been rejected, because they appear to be Cue Sheet images!</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n file have been rejected, because they appear to be Cue Sheet images!</numerusform>
|
<numerusform>%n file have been rejected, because they appear to be Cue Sheet images!</numerusform>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/Dialog_MainWindow.cpp" line="818"/>
|
<location filename="../../src/Dialog_MainWindow.cpp" line="834"/>
|
||||||
<source>%n file(s) have been rejected, because the file format could not be recognized!</source>
|
<source>%n file(s) have been rejected, because the file format could not be recognized!</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n file have been rejected, because the file format could not be recognized!</numerusform>
|
<numerusform>%n file have been rejected, because the file format could not be recognized!</numerusform>
|
||||||
@ -63,7 +63,7 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message numerus="yes">
|
<message numerus="yes">
|
||||||
<location filename="../../src/Dialog_MainWindow.cpp" line="3914"/>
|
<location filename="../../src/Dialog_MainWindow.cpp" line="3957"/>
|
||||||
<source>%n Instance(s)</source>
|
<source>%n Instance(s)</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n Instance</numerusform>
|
<numerusform>%n Instance</numerusform>
|
||||||
|
@ -1706,22 +1706,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<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>
|
<translation>Aviso: ¡La velocidad de proceso será muy lenta. Por favor, <u>no</u> se queje de la velocidad de proceso!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation>Nivel de pico</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation>Nivel RMS</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Ninguno</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>Modo de equalización:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>VERSIÓN DEMO</translation>
|
<translation>VERSIÓN DEMO</translation>
|
||||||
@ -2005,6 +1989,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1715,22 +1715,6 @@ Ouvrir le dossier récursivement...</translation>
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation>AVERTISSEMENT : La vitesse de traitement sera très lente. Veuillez <u>ne pas</u> vous plaindre de la vitesse de traitement !</translation>
|
<translation>AVERTISSEMENT : La vitesse de traitement sera très lente. Veuillez <u>ne pas</u> vous plaindre de la vitesse de traitement !</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation>Niveau maximum</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation>Niveau RMS</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Aucun</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>Mode d'égalisation :</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>VERSION DE DÉMONSTRATION</translation>
|
<translation>VERSION DE DÉMONSTRATION</translation>
|
||||||
@ -2014,6 +1998,18 @@ Ouvrir le dossier récursivement...</translation>
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1707,22 +1707,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</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>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -2006,6 +1990,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1704,22 +1704,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation type="unfinished">경고: 처리 속도가 매우 느리게 됩니다. 처리 속도에 대해 <u>불평하지 마십시오</u>!</translation>
|
<translation type="unfinished">경고: 처리 속도가 매우 느리게 됩니다. 처리 속도에 대해 <u>불평하지 마십시오</u>!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation type="unfinished">피크 레벨</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation type="unfinished">RMS 레벨</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation type="unfinished">없음</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation type="unfinished">이퀄라이저 방식:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation type="unfinished">데모 버전</translation>
|
<translation type="unfinished">데모 버전</translation>
|
||||||
@ -1998,6 +1982,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished">LameXP 사용자 매뉴얼</translation>
|
<translation type="unfinished">LameXP 사용자 매뉴얼</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1715,22 +1715,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation>Предупреждение: Преобразование будет идти очень медленно!</translation>
|
<translation>Предупреждение: Преобразование будет идти очень медленно!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Нет</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>Режим эквалайзера:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>ДЕМО ВЕРСИЯ</translation>
|
<translation>ДЕМО ВЕРСИЯ</translation>
|
||||||
@ -2019,6 +2003,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1703,22 +1703,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation>警告: 處理速度會很慢.請<u>不要</u>抱怨處理速度慢!</translation>
|
<translation>警告: 處理速度會很慢.請<u>不要</u>抱怨處理速度慢!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation>峰值水平</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation>RMS 水平</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>無</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>均衡模式:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>演示版</translation>
|
<translation>演示版</translation>
|
||||||
@ -1997,6 +1981,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1710,22 +1710,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation>Попередження: Швидкість обробки буде дуже низькою. Будь ласка, <u>не</u> жалійтеся потім на швидкість обробки!</translation>
|
<translation>Попередження: Швидкість обробки буде дуже низькою. Будь ласка, <u>не</u> жалійтеся потім на швидкість обробки!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation>Піковий рівень</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation>Ефективний рівень</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Не задано</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>Режим балансування:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>ТЕСТОВА ВЕРСІЯ</translation>
|
<translation>ТЕСТОВА ВЕРСІЯ</translation>
|
||||||
@ -2014,6 +1998,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation>Інструкція користувача LameXP</translation>
|
<translation>Інструкція користувача LameXP</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1703,22 +1703,6 @@
|
|||||||
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
<source>Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed!</source>
|
||||||
<translation>警告: 处理速度会很慢。请<u>不要</u>抱怨处理速度!</translation>
|
<translation>警告: 处理速度会很慢。请<u>不要</u>抱怨处理速度!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Peak Level</source>
|
|
||||||
<translation>峰值水平</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RMS Level</source>
|
|
||||||
<translation>均方根水平</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>无</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Equalization Mode:</source>
|
|
||||||
<translation>均衡模式:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>DEMO VERSION</source>
|
<source>DEMO VERSION</source>
|
||||||
<translation>演示版</translation>
|
<translation>演示版</translation>
|
||||||
@ -1997,6 +1981,18 @@
|
|||||||
<source>LameXP User's Manual</source>
|
<source>LameXP User's Manual</source>
|
||||||
<translation>LameXP用户指南</translation>
|
<translation>LameXP用户指南</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable Dynamic Normalization</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Window Size:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1509,8 +1509,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>602</width>
|
<width>613</width>
|
||||||
<height>1750</height>
|
<height>1794</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_22">
|
<layout class="QGridLayout" name="gridLayout_22">
|
||||||
@ -2261,7 +2261,7 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QGridLayout" name="gridLayout_20">
|
<layout class="QGridLayout" name="gridLayout_20">
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QCheckBox" name="checkBoxNormalizationFilter">
|
<widget class="QCheckBox" name="checkBoxNormalizationFilterEnabled">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Enable Normalization Filter</string>
|
<string>Enable Normalization Filter</string>
|
||||||
</property>
|
</property>
|
||||||
@ -2300,7 +2300,7 @@
|
|||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
<widget class="QDoubleSpinBox" name="spinBoxNormalizationFilter">
|
<widget class="QDoubleSpinBox" name="spinBoxNormalizationFilterPeak">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
@ -2347,7 +2347,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1" colspan="5">
|
<item row="6" column="1" colspan="5">
|
||||||
<spacer name="verticalSpacer_12">
|
<spacer name="verticalSpacer_12">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
@ -2363,31 +2363,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</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>None</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Peak Level</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>RMS Level</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="5">
|
<item row="1" column="5">
|
||||||
<spacer name="horizontalSpacer_27">
|
<spacer name="horizontalSpacer_27">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -2401,16 +2376,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="3">
|
|
||||||
<widget class="QLabel" name="label_19">
|
|
||||||
<property name="text">
|
|
||||||
<string>Equalization Mode:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
<item row="1" column="2">
|
||||||
<spacer name="horizontalSpacer_28">
|
<spacer name="horizontalSpacer_28">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -2440,6 +2405,74 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="4" column="1" colspan="5">
|
||||||
|
<spacer name="verticalSpacer_38">
|
||||||
|
<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>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QCheckBox" name="checkBoxNormalizationFilterDynamic">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable Dynamic Normalization</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="3">
|
||||||
|
<widget class="QLabel" name="label_25">
|
||||||
|
<property name="text">
|
||||||
|
<string>Window Size:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="4">
|
||||||
|
<widget class="QSpinBox" name="spinBoxNormalizationFilterSize">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>301</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>31</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1" colspan="5">
|
||||||
|
<widget class="QCheckBox" name="checkBoxNormalizationFilterCoupled">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable channel-coupling, i.e. amplify all channels of a multi-channel file by the same amount</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -5230,9 +5263,9 @@
|
|||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>checkBoxNormalizationFilter</sender>
|
<sender>checkBoxNormalizationFilterEnabled</sender>
|
||||||
<signal>clicked(bool)</signal>
|
<signal>clicked(bool)</signal>
|
||||||
<receiver>spinBoxNormalizationFilter</receiver>
|
<receiver>spinBoxNormalizationFilterPeak</receiver>
|
||||||
<slot>setEnabled(bool)</slot>
|
<slot>setEnabled(bool)</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
@ -5374,9 +5407,9 @@
|
|||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>checkBoxNormalizationFilter</sender>
|
<sender>checkBoxNormalizationFilterEnabled</sender>
|
||||||
<signal>clicked(bool)</signal>
|
<signal>clicked(bool)</signal>
|
||||||
<receiver>comboBoxNormalizationMode</receiver>
|
<receiver>checkBoxNormalizationFilterDynamic</receiver>
|
||||||
<slot>setEnabled(bool)</slot>
|
<slot>setEnabled(bool)</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
@ -5389,5 +5422,21 @@
|
|||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>checkBoxNormalizationFilterEnabled</sender>
|
||||||
|
<signal>clicked(bool)</signal>
|
||||||
|
<receiver>checkBoxNormalizationFilterCoupled</receiver>
|
||||||
|
<slot>setEnabled(bool)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>141</x>
|
||||||
|
<y>175</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>328</x>
|
||||||
|
<y>250</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
</connections>
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -34,8 +34,8 @@
|
|||||||
#define VER_LAMEXP_MINOR_HI 1
|
#define VER_LAMEXP_MINOR_HI 1
|
||||||
#define VER_LAMEXP_MINOR_LO 1
|
#define VER_LAMEXP_MINOR_LO 1
|
||||||
#define VER_LAMEXP_TYPE RC
|
#define VER_LAMEXP_TYPE RC
|
||||||
#define VER_LAMEXP_PATCH 1
|
#define VER_LAMEXP_PATCH 3
|
||||||
#define VER_LAMEXP_BUILD 1680
|
#define VER_LAMEXP_BUILD 1688
|
||||||
#define VER_LAMEXP_CONFG 1558
|
#define VER_LAMEXP_CONFG 1558
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -167,6 +167,11 @@ while(0)
|
|||||||
|
|
||||||
#define SET_CHECKBOX_STATE(CHCKBX, STATE) do \
|
#define SET_CHECKBOX_STATE(CHCKBX, STATE) do \
|
||||||
{ \
|
{ \
|
||||||
|
const bool isDisabled = (!(CHCKBX)->isEnabled()); \
|
||||||
|
if(isDisabled) \
|
||||||
|
{ \
|
||||||
|
(CHCKBX)->setEnabled(true); \
|
||||||
|
} \
|
||||||
if((CHCKBX)->isChecked() != (STATE)) \
|
if((CHCKBX)->isChecked() != (STATE)) \
|
||||||
{ \
|
{ \
|
||||||
(CHCKBX)->click(); \
|
(CHCKBX)->click(); \
|
||||||
@ -175,6 +180,10 @@ while(0)
|
|||||||
{ \
|
{ \
|
||||||
qWarning("Warning: Failed to set checkbox " #CHCKBX " state!"); \
|
qWarning("Warning: Failed to set checkbox " #CHCKBX " state!"); \
|
||||||
} \
|
} \
|
||||||
|
if(isDisabled) \
|
||||||
|
{ \
|
||||||
|
(CHCKBX)->setEnabled(false); \
|
||||||
|
} \
|
||||||
} \
|
} \
|
||||||
while(0)
|
while(0)
|
||||||
|
|
||||||
@ -454,31 +463,34 @@ MainWindow::MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *cons
|
|||||||
ui->sliderLameAlgoQuality->setValue(m_settings->lameAlgoQuality());
|
ui->sliderLameAlgoQuality->setValue(m_settings->lameAlgoQuality());
|
||||||
if(m_settings->maximumInstances() > 0) ui->sliderMaxInstances->setValue(m_settings->maximumInstances());
|
if(m_settings->maximumInstances() > 0) ui->sliderMaxInstances->setValue(m_settings->maximumInstances());
|
||||||
|
|
||||||
ui->spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRate());
|
ui->spinBoxBitrateManagementMin ->setValue(m_settings->bitrateManagementMinRate());
|
||||||
ui->spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRate());
|
ui->spinBoxBitrateManagementMax ->setValue(m_settings->bitrateManagementMaxRate());
|
||||||
ui->spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolume()) / 100.0);
|
ui->spinBoxNormalizationFilterPeak->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolume()) / 100.0);
|
||||||
ui->spinBoxToneAdjustBass->setValue(static_cast<double>(m_settings->toneAdjustBass()) / 100.0);
|
ui->spinBoxNormalizationFilterSize->setValue(m_settings->normalizationFilterSize());
|
||||||
ui->spinBoxToneAdjustTreble->setValue(static_cast<double>(m_settings->toneAdjustTreble()) / 100.0);
|
ui->spinBoxToneAdjustBass ->setValue(static_cast<double>(m_settings->toneAdjustBass()) / 100.0);
|
||||||
ui->spinBoxAftenSearchSize->setValue(m_settings->aftenExponentSearchSize());
|
ui->spinBoxToneAdjustTreble ->setValue(static_cast<double>(m_settings->toneAdjustTreble()) / 100.0);
|
||||||
ui->spinBoxOpusComplexity->setValue(m_settings->opusComplexity());
|
ui->spinBoxAftenSearchSize ->setValue(m_settings->aftenExponentSearchSize());
|
||||||
|
ui->spinBoxOpusComplexity ->setValue(m_settings->opusComplexity());
|
||||||
|
|
||||||
ui->comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelMode());
|
ui->comboBoxMP3ChannelMode ->setCurrentIndex(m_settings->lameChannelMode());
|
||||||
ui->comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRate());
|
ui->comboBoxSamplingRate ->setCurrentIndex(m_settings->samplingRate());
|
||||||
ui->comboBoxAACProfile->setCurrentIndex(m_settings->aacEncProfile());
|
ui->comboBoxAACProfile ->setCurrentIndex(m_settings->aacEncProfile());
|
||||||
ui->comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingMode());
|
ui->comboBoxAftenCodingMode ->setCurrentIndex(m_settings->aftenAudioCodingMode());
|
||||||
ui->comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompression());
|
ui->comboBoxAftenDRCMode ->setCurrentIndex(m_settings->aftenDynamicRangeCompression());
|
||||||
ui->comboBoxNormalizationMode->setCurrentIndex(m_settings->normalizationFilterEQMode());
|
ui->comboBoxOpusFramesize ->setCurrentIndex(m_settings->opusFramesize());
|
||||||
ui->comboBoxOpusFramesize->setCurrentIndex(m_settings->opusFramesize());
|
|
||||||
|
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxBitrateManagement, m_settings->bitrateManagementEnabled());
|
SET_CHECKBOX_STATE(ui->checkBoxBitrateManagement, m_settings->bitrateManagementEnabled());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxNeroAAC2PassMode, m_settings->neroAACEnable2Pass());
|
SET_CHECKBOX_STATE(ui->checkBoxNeroAAC2PassMode, m_settings->neroAACEnable2Pass());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxAftenFastAllocation, m_settings->aftenFastBitAllocation());
|
SET_CHECKBOX_STATE(ui->checkBoxAftenFastAllocation, m_settings->aftenFastBitAllocation());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilter, m_settings->normalizationFilterEnabled());
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterEnabled, m_settings->normalizationFilterEnabled());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxAutoDetectInstances, (m_settings->maximumInstances() < 1));
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterDynamic, m_settings->normalizationFilterDynamic());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxUseSystemTempFolder, !m_settings->customTempPathEnabled());
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterCoupled, m_settings->normalizationFilterCoupled());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxRenameOutput, m_settings->renameOutputFilesEnabled());
|
SET_CHECKBOX_STATE(ui->checkBoxAutoDetectInstances, (m_settings->maximumInstances() < 1));
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmix());
|
SET_CHECKBOX_STATE(ui->checkBoxUseSystemTempFolder, (!m_settings->customTempPathEnabled()));
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResample());
|
SET_CHECKBOX_STATE(ui->checkBoxRenameOutput, m_settings->renameOutputFilesEnabled());
|
||||||
|
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmix());
|
||||||
|
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResample());
|
||||||
|
|
||||||
ui->checkBoxNeroAAC2PassMode->setEnabled(aacEncoder == SettingsModel::AAC_ENCODER_NERO);
|
ui->checkBoxNeroAAC2PassMode->setEnabled(aacEncoder == SettingsModel::AAC_ENCODER_NERO);
|
||||||
|
|
||||||
ui->lineEditCustomParamLAME ->setText(EncoderRegistry::loadEncoderCustomParams(m_settings, SettingsModel::MP3Encoder));
|
ui->lineEditCustomParamLAME ->setText(EncoderRegistry::loadEncoderCustomParams(m_settings, SettingsModel::MP3Encoder));
|
||||||
@ -507,46 +519,49 @@ MainWindow::MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *cons
|
|||||||
ui->radioButtonOverwriteModeSkipFile->setChecked(m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile);
|
ui->radioButtonOverwriteModeSkipFile->setChecked(m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile);
|
||||||
ui->radioButtonOverwriteModeReplaces->setChecked(m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces);
|
ui->radioButtonOverwriteModeReplaces->setChecked(m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces);
|
||||||
|
|
||||||
connect(ui->sliderLameAlgoQuality, SIGNAL(valueChanged(int)), this, SLOT(updateLameAlgoQuality(int)));
|
connect(ui->sliderLameAlgoQuality, SIGNAL(valueChanged(int)), this, SLOT(updateLameAlgoQuality(int)));
|
||||||
connect(ui->checkBoxBitrateManagement, SIGNAL(clicked(bool)), this, SLOT(bitrateManagementEnabledChanged(bool)));
|
connect(ui->checkBoxBitrateManagement, SIGNAL(clicked(bool)), this, SLOT(bitrateManagementEnabledChanged(bool)));
|
||||||
connect(ui->spinBoxBitrateManagementMin, SIGNAL(valueChanged(int)), this, SLOT(bitrateManagementMinChanged(int)));
|
connect(ui->spinBoxBitrateManagementMin, SIGNAL(valueChanged(int)), this, SLOT(bitrateManagementMinChanged(int)));
|
||||||
connect(ui->spinBoxBitrateManagementMax, SIGNAL(valueChanged(int)), this, SLOT(bitrateManagementMaxChanged(int)));
|
connect(ui->spinBoxBitrateManagementMax, SIGNAL(valueChanged(int)), this, SLOT(bitrateManagementMaxChanged(int)));
|
||||||
connect(ui->comboBoxMP3ChannelMode, SIGNAL(currentIndexChanged(int)), this, SLOT(channelModeChanged(int)));
|
connect(ui->comboBoxMP3ChannelMode, SIGNAL(currentIndexChanged(int)), this, SLOT(channelModeChanged(int)));
|
||||||
connect(ui->comboBoxSamplingRate, SIGNAL(currentIndexChanged(int)), this, SLOT(samplingRateChanged(int)));
|
connect(ui->comboBoxSamplingRate, SIGNAL(currentIndexChanged(int)), this, SLOT(samplingRateChanged(int)));
|
||||||
connect(ui->checkBoxNeroAAC2PassMode, SIGNAL(clicked(bool)), this, SLOT(neroAAC2PassChanged(bool)));
|
connect(ui->checkBoxNeroAAC2PassMode, SIGNAL(clicked(bool)), this, SLOT(neroAAC2PassChanged(bool)));
|
||||||
connect(ui->comboBoxAACProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(neroAACProfileChanged(int)));
|
connect(ui->comboBoxAACProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(neroAACProfileChanged(int)));
|
||||||
connect(ui->checkBoxNormalizationFilter, SIGNAL(clicked(bool)), this, SLOT(normalizationEnabledChanged(bool)));
|
connect(ui->checkBoxNormalizationFilterEnabled, SIGNAL(clicked(bool)), this, SLOT(normalizationEnabledChanged(bool)));
|
||||||
connect(ui->comboBoxAftenCodingMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenCodingModeChanged(int)));
|
connect(ui->checkBoxNormalizationFilterDynamic, SIGNAL(clicked(bool)), this, SLOT(normalizationDynamicChanged(bool)));
|
||||||
connect(ui->comboBoxAftenDRCMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenDRCModeChanged(int)));
|
connect(ui->checkBoxNormalizationFilterCoupled, SIGNAL(clicked(bool)), this, SLOT(normalizationCoupledChanged(bool)));
|
||||||
connect(ui->spinBoxAftenSearchSize, SIGNAL(valueChanged(int)), this, SLOT(aftenSearchSizeChanged(int)));
|
connect(ui->comboBoxAftenCodingMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenCodingModeChanged(int)));
|
||||||
connect(ui->checkBoxAftenFastAllocation, SIGNAL(clicked(bool)), this, SLOT(aftenFastAllocationChanged(bool)));
|
connect(ui->comboBoxAftenDRCMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenDRCModeChanged(int)));
|
||||||
connect(ui->spinBoxNormalizationFilter, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double)));
|
connect(ui->spinBoxAftenSearchSize, SIGNAL(valueChanged(int)), this, SLOT(aftenSearchSizeChanged(int)));
|
||||||
connect(ui->comboBoxNormalizationMode, SIGNAL(currentIndexChanged(int)), this, SLOT(normalizationModeChanged(int)));
|
connect(ui->checkBoxAftenFastAllocation, SIGNAL(clicked(bool)), this, SLOT(aftenFastAllocationChanged(bool)));
|
||||||
connect(ui->spinBoxToneAdjustBass, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustBassChanged(double)));
|
connect(ui->spinBoxNormalizationFilterPeak, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double)));
|
||||||
connect(ui->spinBoxToneAdjustTreble, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustTrebleChanged(double)));
|
connect(ui->spinBoxNormalizationFilterSize, SIGNAL(valueChanged(int)), this, SLOT(normalizationFilterSizeChanged(int)));
|
||||||
connect(ui->buttonToneAdjustReset, SIGNAL(clicked()), this, SLOT(toneAdjustTrebleReset()));
|
connect(ui->spinBoxNormalizationFilterSize, SIGNAL(editingFinished()), this, SLOT(normalizationFilterSizeFinished()));
|
||||||
connect(ui->lineEditCustomParamLAME, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->spinBoxToneAdjustBass, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustBassChanged(double)));
|
||||||
connect(ui->lineEditCustomParamOggEnc, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->spinBoxToneAdjustTreble, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustTrebleChanged(double)));
|
||||||
connect(ui->lineEditCustomParamNeroAAC, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->buttonToneAdjustReset, SIGNAL(clicked()), this, SLOT(toneAdjustTrebleReset()));
|
||||||
connect(ui->lineEditCustomParamFLAC, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->lineEditCustomParamLAME, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->lineEditCustomParamAften, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->lineEditCustomParamOggEnc, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->lineEditCustomParamOpus, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
connect(ui->lineEditCustomParamNeroAAC, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->sliderMaxInstances, SIGNAL(valueChanged(int)), this, SLOT(updateMaximumInstances(int)));
|
connect(ui->lineEditCustomParamFLAC, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->checkBoxAutoDetectInstances, SIGNAL(clicked(bool)), this, SLOT(autoDetectInstancesChanged(bool)));
|
connect(ui->lineEditCustomParamAften, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->buttonBrowseCustomTempFolder, SIGNAL(clicked()), this, SLOT(browseCustomTempFolderButtonClicked()));
|
connect(ui->lineEditCustomParamOpus, SIGNAL(editingFinished()), this, SLOT(customParamsChanged()));
|
||||||
connect(ui->lineEditCustomTempFolder, SIGNAL(textChanged(QString)), this, SLOT(customTempFolderChanged(QString)));
|
connect(ui->sliderMaxInstances, SIGNAL(valueChanged(int)), this, SLOT(updateMaximumInstances(int)));
|
||||||
connect(ui->checkBoxUseSystemTempFolder, SIGNAL(clicked(bool)), this, SLOT(useCustomTempFolderChanged(bool)));
|
connect(ui->checkBoxAutoDetectInstances, SIGNAL(clicked(bool)), this, SLOT(autoDetectInstancesChanged(bool)));
|
||||||
connect(ui->buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked()));
|
connect(ui->buttonBrowseCustomTempFolder, SIGNAL(clicked()), this, SLOT(browseCustomTempFolderButtonClicked()));
|
||||||
connect(ui->checkBoxRenameOutput, SIGNAL(clicked(bool)), this, SLOT(renameOutputEnabledChanged(bool)));
|
connect(ui->lineEditCustomTempFolder, SIGNAL(textChanged(QString)), this, SLOT(customTempFolderChanged(QString)));
|
||||||
connect(ui->lineEditRenamePattern, SIGNAL(editingFinished()), this, SLOT(renameOutputPatternChanged()));
|
connect(ui->checkBoxUseSystemTempFolder, SIGNAL(clicked(bool)), this, SLOT(useCustomTempFolderChanged(bool)));
|
||||||
connect(ui->lineEditRenamePattern, SIGNAL(textChanged(QString)), this, SLOT(renameOutputPatternChanged(QString)));
|
connect(ui->buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked()));
|
||||||
connect(ui->labelShowRenameMacros, SIGNAL(linkActivated(QString)), this, SLOT(showRenameMacros(QString)));
|
connect(ui->checkBoxRenameOutput, SIGNAL(clicked(bool)), this, SLOT(renameOutputEnabledChanged(bool)));
|
||||||
connect(ui->checkBoxForceStereoDownmix, SIGNAL(clicked(bool)), this, SLOT(forceStereoDownmixEnabledChanged(bool)));
|
connect(ui->lineEditRenamePattern, SIGNAL(editingFinished()), this, SLOT(renameOutputPatternChanged()));
|
||||||
connect(ui->comboBoxOpusFramesize, SIGNAL(currentIndexChanged(int)), this, SLOT(opusSettingsChanged()));
|
connect(ui->lineEditRenamePattern, SIGNAL(textChanged(QString)), this, SLOT(renameOutputPatternChanged(QString)));
|
||||||
connect(ui->spinBoxOpusComplexity, SIGNAL(valueChanged(int)), this, SLOT(opusSettingsChanged()));
|
connect(ui->labelShowRenameMacros, SIGNAL(linkActivated(QString)), this, SLOT(showRenameMacros(QString)));
|
||||||
connect(ui->checkBoxOpusDisableResample, SIGNAL(clicked(bool)), SLOT(opusSettingsChanged()));
|
connect(ui->checkBoxForceStereoDownmix, SIGNAL(clicked(bool)), this, SLOT(forceStereoDownmixEnabledChanged(bool)));
|
||||||
connect(m_overwriteButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(overwriteModeChanged(int)));
|
connect(ui->comboBoxOpusFramesize, SIGNAL(currentIndexChanged(int)), this, SLOT(opusSettingsChanged()));
|
||||||
connect(m_evenFilterCustumParamsHelp, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(customParamsHelpRequested(QWidget*, QEvent*)));
|
connect(ui->spinBoxOpusComplexity, SIGNAL(valueChanged(int)), this, SLOT(opusSettingsChanged()));
|
||||||
|
connect(ui->checkBoxOpusDisableResample, SIGNAL(clicked(bool)), this, SLOT(opusSettingsChanged()));
|
||||||
|
connect(m_overwriteButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(overwriteModeChanged(int)));
|
||||||
|
connect(m_evenFilterCustumParamsHelp, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(customParamsHelpRequested(QWidget*, QEvent*)));
|
||||||
|
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
// Force initial GUI update
|
// Force initial GUI update
|
||||||
@ -556,6 +571,7 @@ MainWindow::MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *cons
|
|||||||
updateMaximumInstances(ui->sliderMaxInstances->value());
|
updateMaximumInstances(ui->sliderMaxInstances->value());
|
||||||
toneAdjustTrebleChanged(ui->spinBoxToneAdjustTreble->value());
|
toneAdjustTrebleChanged(ui->spinBoxToneAdjustTreble->value());
|
||||||
toneAdjustBassChanged(ui->spinBoxToneAdjustBass->value());
|
toneAdjustBassChanged(ui->spinBoxToneAdjustBass->value());
|
||||||
|
normalizationEnabledChanged(ui->checkBoxNormalizationFilterEnabled->isChecked());
|
||||||
customParamsChanged();
|
customParamsChanged();
|
||||||
|
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
@ -1064,7 +1080,7 @@ void MainWindow::changeEvent(QEvent *e)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int comboBoxIndex[8];
|
int comboBoxIndex[6];
|
||||||
|
|
||||||
//Backup combobox indices, as retranslateUi() resets
|
//Backup combobox indices, as retranslateUi() resets
|
||||||
comboBoxIndex[0] = ui->comboBoxMP3ChannelMode->currentIndex();
|
comboBoxIndex[0] = ui->comboBoxMP3ChannelMode->currentIndex();
|
||||||
@ -1072,9 +1088,7 @@ void MainWindow::changeEvent(QEvent *e)
|
|||||||
comboBoxIndex[2] = ui->comboBoxAACProfile->currentIndex();
|
comboBoxIndex[2] = ui->comboBoxAACProfile->currentIndex();
|
||||||
comboBoxIndex[3] = ui->comboBoxAftenCodingMode->currentIndex();
|
comboBoxIndex[3] = ui->comboBoxAftenCodingMode->currentIndex();
|
||||||
comboBoxIndex[4] = ui->comboBoxAftenDRCMode->currentIndex();
|
comboBoxIndex[4] = ui->comboBoxAftenDRCMode->currentIndex();
|
||||||
comboBoxIndex[5] = ui->comboBoxNormalizationMode->currentIndex();
|
comboBoxIndex[5] = ui->comboBoxOpusFramesize->currentIndex();
|
||||||
comboBoxIndex[6] = 0; //comboBoxOpusOptimize->currentIndex();
|
|
||||||
comboBoxIndex[7] = ui->comboBoxOpusFramesize->currentIndex();
|
|
||||||
|
|
||||||
//Re-translate from UIC
|
//Re-translate from UIC
|
||||||
ui->retranslateUi(this);
|
ui->retranslateUi(this);
|
||||||
@ -1085,9 +1099,7 @@ void MainWindow::changeEvent(QEvent *e)
|
|||||||
ui->comboBoxAACProfile->setCurrentIndex(comboBoxIndex[2]);
|
ui->comboBoxAACProfile->setCurrentIndex(comboBoxIndex[2]);
|
||||||
ui->comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
|
ui->comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
|
||||||
ui->comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
|
ui->comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
|
||||||
ui->comboBoxNormalizationMode->setCurrentIndex(comboBoxIndex[5]);
|
ui->comboBoxOpusFramesize->setCurrentIndex(comboBoxIndex[5]);
|
||||||
//comboBoxOpusOptimize->setCurrentIndex(comboBoxIndex[6]);
|
|
||||||
ui->comboBoxOpusFramesize->setCurrentIndex(comboBoxIndex[7]);
|
|
||||||
|
|
||||||
//Update the window title
|
//Update the window title
|
||||||
if(MUTILS_DEBUG)
|
if(MUTILS_DEBUG)
|
||||||
@ -3739,6 +3751,16 @@ void MainWindow::opusSettingsChanged(void)
|
|||||||
void MainWindow::normalizationEnabledChanged(bool checked)
|
void MainWindow::normalizationEnabledChanged(bool checked)
|
||||||
{
|
{
|
||||||
m_settings->normalizationFilterEnabled(checked);
|
m_settings->normalizationFilterEnabled(checked);
|
||||||
|
normalizationDynamicChanged(ui->checkBoxNormalizationFilterDynamic->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dynamic normalization enabled changed
|
||||||
|
*/
|
||||||
|
void MainWindow::normalizationDynamicChanged(bool checked)
|
||||||
|
{
|
||||||
|
ui->spinBoxNormalizationFilterSize->setEnabled(ui->checkBoxNormalizationFilterEnabled->isChecked() && checked);
|
||||||
|
m_settings->normalizationFilterDynamic(checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3752,9 +3774,30 @@ void MainWindow::normalizationMaxVolumeChanged(double value)
|
|||||||
/*
|
/*
|
||||||
* Normalization equalization mode changed
|
* Normalization equalization mode changed
|
||||||
*/
|
*/
|
||||||
void MainWindow::normalizationModeChanged(int mode)
|
void MainWindow::normalizationCoupledChanged(bool checked)
|
||||||
{
|
{
|
||||||
m_settings->normalizationFilterEQMode(mode);
|
m_settings->normalizationFilterCoupled(checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Normalization filter size changed
|
||||||
|
*/
|
||||||
|
void MainWindow::normalizationFilterSizeChanged(int value)
|
||||||
|
{
|
||||||
|
m_settings->normalizationFilterSize(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Normalization filter size editing finished
|
||||||
|
*/
|
||||||
|
void MainWindow::normalizationFilterSizeFinished(void)
|
||||||
|
{
|
||||||
|
const int value = ui->spinBoxNormalizationFilterSize->value();
|
||||||
|
if((value % 2) != 1)
|
||||||
|
{
|
||||||
|
bool rnd = MUtils::parity(MUtils::next_rand32());
|
||||||
|
ui->spinBoxNormalizationFilterSize->setValue(rnd ? value+1 : value-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4095,31 +4138,33 @@ void MainWindow::resetAdvancedOptionsButtonClicked(void)
|
|||||||
{
|
{
|
||||||
PLAY_SOUND_OPTIONAL("blast", true);
|
PLAY_SOUND_OPTIONAL("blast", true);
|
||||||
|
|
||||||
ui->sliderLameAlgoQuality->setValue(m_settings->lameAlgoQualityDefault());
|
ui->sliderLameAlgoQuality ->setValue(m_settings->lameAlgoQualityDefault());
|
||||||
ui->spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault());
|
ui->spinBoxBitrateManagementMin ->setValue(m_settings->bitrateManagementMinRateDefault());
|
||||||
ui->spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRateDefault());
|
ui->spinBoxBitrateManagementMax ->setValue(m_settings->bitrateManagementMaxRateDefault());
|
||||||
ui->spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0);
|
ui->spinBoxNormalizationFilterPeak->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0);
|
||||||
ui->spinBoxToneAdjustBass->setValue(static_cast<double>(m_settings->toneAdjustBassDefault()) / 100.0);
|
ui->spinBoxNormalizationFilterSize->setValue(m_settings->normalizationFilterSizeDefault());
|
||||||
ui->spinBoxToneAdjustTreble->setValue(static_cast<double>(m_settings->toneAdjustTrebleDefault()) / 100.0);
|
ui->spinBoxToneAdjustBass ->setValue(static_cast<double>(m_settings->toneAdjustBassDefault()) / 100.0);
|
||||||
ui->spinBoxAftenSearchSize->setValue(m_settings->aftenExponentSearchSizeDefault());
|
ui->spinBoxToneAdjustTreble ->setValue(static_cast<double>(m_settings->toneAdjustTrebleDefault()) / 100.0);
|
||||||
ui->spinBoxOpusComplexity->setValue(m_settings->opusComplexityDefault());
|
ui->spinBoxAftenSearchSize ->setValue(m_settings->aftenExponentSearchSizeDefault());
|
||||||
ui->comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelModeDefault());
|
ui->spinBoxOpusComplexity ->setValue(m_settings->opusComplexityDefault());
|
||||||
ui->comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRateDefault());
|
ui->comboBoxMP3ChannelMode ->setCurrentIndex(m_settings->lameChannelModeDefault());
|
||||||
ui->comboBoxAACProfile->setCurrentIndex(m_settings->aacEncProfileDefault());
|
ui->comboBoxSamplingRate ->setCurrentIndex(m_settings->samplingRateDefault());
|
||||||
ui->comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingModeDefault());
|
ui->comboBoxAACProfile ->setCurrentIndex(m_settings->aacEncProfileDefault());
|
||||||
ui->comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompressionDefault());
|
ui->comboBoxAftenCodingMode ->setCurrentIndex(m_settings->aftenAudioCodingModeDefault());
|
||||||
ui->comboBoxNormalizationMode->setCurrentIndex(m_settings->normalizationFilterEQModeDefault());
|
ui->comboBoxAftenDRCMode ->setCurrentIndex(m_settings->aftenDynamicRangeCompressionDefault());
|
||||||
ui->comboBoxOpusFramesize->setCurrentIndex(m_settings->opusFramesizeDefault());
|
ui->comboBoxOpusFramesize ->setCurrentIndex(m_settings->opusFramesizeDefault());
|
||||||
|
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxBitrateManagement, m_settings->bitrateManagementEnabledDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxBitrateManagement, m_settings->bitrateManagementEnabledDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxNeroAAC2PassMode, m_settings->neroAACEnable2PassDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxNeroAAC2PassMode, m_settings->neroAACEnable2PassDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilter, m_settings->normalizationFilterEnabledDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterEnabled, m_settings->normalizationFilterEnabledDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxAutoDetectInstances, (m_settings->maximumInstancesDefault() < 1));
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterDynamic, m_settings->normalizationFilterDynamicDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxUseSystemTempFolder, !m_settings->customTempPathEnabledDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxNormalizationFilterCoupled, m_settings->normalizationFilterCoupledDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxAftenFastAllocation, m_settings->aftenFastBitAllocationDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxAutoDetectInstances, (m_settings->maximumInstancesDefault() < 1));
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxRenameOutput, m_settings->renameOutputFilesEnabledDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxUseSystemTempFolder, (!m_settings->customTempPathEnabledDefault()));
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmixDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxAftenFastAllocation, m_settings->aftenFastBitAllocationDefault());
|
||||||
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResampleDefault());
|
SET_CHECKBOX_STATE(ui->checkBoxRenameOutput, m_settings->renameOutputFilesEnabledDefault());
|
||||||
|
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmixDefault());
|
||||||
|
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResampleDefault());
|
||||||
|
|
||||||
ui->lineEditCustomParamLAME ->setText(m_settings->customParametersLAMEDefault());
|
ui->lineEditCustomParamLAME ->setText(m_settings->customParametersLAMEDefault());
|
||||||
ui->lineEditCustomParamOggEnc ->setText(m_settings->customParametersOggEncDefault());
|
ui->lineEditCustomParamOggEnc ->setText(m_settings->customParametersOggEncDefault());
|
||||||
|
@ -127,9 +127,12 @@ private slots:
|
|||||||
void metaTagsEnabledChanged(void);
|
void metaTagsEnabledChanged(void);
|
||||||
void neroAAC2PassChanged(bool checked);
|
void neroAAC2PassChanged(bool checked);
|
||||||
void neroAACProfileChanged(int value);
|
void neroAACProfileChanged(int value);
|
||||||
|
void normalizationCoupledChanged(bool checked);
|
||||||
|
void normalizationDynamicChanged(bool checked);
|
||||||
void normalizationEnabledChanged(bool checked);
|
void normalizationEnabledChanged(bool checked);
|
||||||
|
void normalizationFilterSizeChanged(int value);
|
||||||
|
void normalizationFilterSizeFinished(void);
|
||||||
void normalizationMaxVolumeChanged(double volume);
|
void normalizationMaxVolumeChanged(double volume);
|
||||||
void normalizationModeChanged(int mode);
|
|
||||||
void notifyOtherInstance(void);
|
void notifyOtherInstance(void);
|
||||||
void openFolderActionActivated(void);
|
void openFolderActionActivated(void);
|
||||||
void opusSettingsChanged(void);
|
void opusSettingsChanged(void);
|
||||||
|
@ -614,7 +614,7 @@ void ProcessingDialog::startNextJob(void)
|
|||||||
}
|
}
|
||||||
if(m_settings->normalizationFilterEnabled())
|
if(m_settings->normalizationFilterEnabled())
|
||||||
{
|
{
|
||||||
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume(), m_settings->normalizationFilterEQMode()));
|
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume(), m_settings->normalizationFilterDynamic(), m_settings->normalizationFilterCoupled(), m_settings->normalizationFilterSize()));
|
||||||
}
|
}
|
||||||
if(m_settings->renameOutputFilesEnabled() && (!m_settings->renameOutputFilesPattern().simplified().isEmpty()))
|
if(m_settings->renameOutputFilesEnabled() && (!m_settings->renameOutputFilesPattern().simplified().isEmpty()))
|
||||||
{
|
{
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
|
|
||||||
//MUtils
|
//MUtils
|
||||||
|
#include <MUtils/Global.h>
|
||||||
#include <MUtils/Exception.h>
|
#include <MUtils/Exception.h>
|
||||||
|
|
||||||
//Qt
|
//Qt
|
||||||
@ -33,17 +34,23 @@
|
|||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
|
|
||||||
NormalizeFilter::NormalizeFilter(int peakVolume, int equalizationMode)
|
static double dbToLinear(const double &value)
|
||||||
|
{
|
||||||
|
return pow(10.0, value / 20.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
NormalizeFilter::NormalizeFilter(const int &peakVolume, const bool &dnyAudNorm, const bool &channelsCoupled, const int &filterSize)
|
||||||
:
|
:
|
||||||
m_binary(lamexp_tools_lookup("sox.exe"))
|
m_binary(lamexp_tools_lookup("sox.exe")),
|
||||||
|
m_useDynAudNorm(dnyAudNorm),
|
||||||
|
m_peakVolume(qMin(-50, qMax(-3200, peakVolume))),
|
||||||
|
m_channelsCoupled(channelsCoupled),
|
||||||
|
m_filterLength(qBound(3, filterSize + (1 - (filterSize % 2)), 301))
|
||||||
{
|
{
|
||||||
if(m_binary.isEmpty())
|
if(m_binary.isEmpty())
|
||||||
{
|
{
|
||||||
MUTILS_THROW("Error initializing SoX filter. Tool 'sox.exe' is not registred!");
|
MUTILS_THROW("Error initializing SoX filter. Tool 'sox.exe' is not registred!");
|
||||||
}
|
}
|
||||||
|
|
||||||
m_peakVolume = qMin(-50, qMax(-3200, peakVolume));
|
|
||||||
m_equalizationMode = qMin(2, qMax(0, equalizationMode));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NormalizeFilter::~NormalizeFilter(void)
|
NormalizeFilter::~NormalizeFilter(void)
|
||||||
@ -54,7 +61,6 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
|
|||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
QStringList args;
|
QStringList args;
|
||||||
QString eqMode = (m_equalizationMode == 0) ? "-n" : ((m_equalizationMode == 1) ? "-ne" : "-nb");
|
|
||||||
|
|
||||||
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
|
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
|
||||||
|
|
||||||
@ -62,8 +68,23 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
|
|||||||
args << "--temp" << ".";
|
args << "--temp" << ".";
|
||||||
args << QDir::toNativeSeparators(sourceFile);
|
args << QDir::toNativeSeparators(sourceFile);
|
||||||
args << QDir::toNativeSeparators(outputFile);
|
args << QDir::toNativeSeparators(outputFile);
|
||||||
args << "gain";
|
|
||||||
args << eqMode << QString().sprintf("%.2f", static_cast<double>(m_peakVolume) / 100.0);
|
if(!m_useDynAudNorm)
|
||||||
|
{
|
||||||
|
args << "gain";
|
||||||
|
args << (m_channelsCoupled ? "-n" : "-nb");
|
||||||
|
args << QString().sprintf("%.2f", static_cast<double>(m_peakVolume) / 100.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args << "dynaudnorm";
|
||||||
|
args << "-p" << QString().sprintf("%.2f", qBound(0.1, dbToLinear(static_cast<double>(m_peakVolume) / 100.0), 1.0));
|
||||||
|
args << "-g" << QString().sprintf("%d", m_filterLength);
|
||||||
|
if(!m_channelsCoupled)
|
||||||
|
{
|
||||||
|
args << "-n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!startProcess(process, m_binary, args))
|
if(!startProcess(process, m_binary, args))
|
||||||
{
|
{
|
||||||
|
@ -27,13 +27,15 @@
|
|||||||
class NormalizeFilter : public AbstractFilter
|
class NormalizeFilter : public AbstractFilter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NormalizeFilter(int peakVolume = -50, int equalizationMode = 0);
|
NormalizeFilter(const int &peakVolume = -50, const bool &dnyAudNorm = false, const bool &channelsCoupled = true, const int &filterSize = 31);
|
||||||
~NormalizeFilter(void);
|
~NormalizeFilter(void);
|
||||||
|
|
||||||
virtual bool apply(const QString &sourceFile, const QString &outputFile, AudioFileModel_TechInfo *formatInfo, volatile bool *abortFlag);
|
virtual bool apply(const QString &sourceFile, const QString &outputFile, AudioFileModel_TechInfo *formatInfo, volatile bool *abortFlag);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QString m_binary;
|
const QString m_binary;
|
||||||
int m_peakVolume;
|
const bool m_useDynAudNorm;
|
||||||
int m_equalizationMode;
|
const bool m_channelsCoupled;
|
||||||
|
const int m_peakVolume;
|
||||||
|
const int m_filterLength;
|
||||||
};
|
};
|
||||||
|
@ -262,8 +262,10 @@ LAMEXP_MAKE_ID(mostRecentInputPath, "InputDirectory/MostRecentPath");
|
|||||||
LAMEXP_MAKE_ID(neroAACEnable2Pass, "AdvancedOptions/AACEnc/Enable2Pass");
|
LAMEXP_MAKE_ID(neroAACEnable2Pass, "AdvancedOptions/AACEnc/Enable2Pass");
|
||||||
LAMEXP_MAKE_ID(neroAacNotificationsEnabled, "Flags/EnableNeroAacNotifications");
|
LAMEXP_MAKE_ID(neroAacNotificationsEnabled, "Flags/EnableNeroAacNotifications");
|
||||||
LAMEXP_MAKE_ID(normalizationFilterEnabled, "AdvancedOptions/VolumeNormalization/Enabled");
|
LAMEXP_MAKE_ID(normalizationFilterEnabled, "AdvancedOptions/VolumeNormalization/Enabled");
|
||||||
LAMEXP_MAKE_ID(normalizationFilterEQMode, "AdvancedOptions/VolumeNormalization/EqualizationMode");
|
LAMEXP_MAKE_ID(normalizationFilterDynamic, "AdvancedOptions/VolumeNormalization/UseDynAudNorm");
|
||||||
|
LAMEXP_MAKE_ID(normalizationFilterCoupled, "AdvancedOptions/VolumeNormalization/ChannelCoupling");
|
||||||
LAMEXP_MAKE_ID(normalizationFilterMaxVolume, "AdvancedOptions/VolumeNormalization/MaxVolume");
|
LAMEXP_MAKE_ID(normalizationFilterMaxVolume, "AdvancedOptions/VolumeNormalization/MaxVolume");
|
||||||
|
LAMEXP_MAKE_ID(normalizationFilterSize, "AdvancedOptions/VolumeNormalization/FilterLength");
|
||||||
LAMEXP_MAKE_ID(opusComplexity, "AdvancedOptions/Opus/EncodingComplexity");
|
LAMEXP_MAKE_ID(opusComplexity, "AdvancedOptions/Opus/EncodingComplexity");
|
||||||
LAMEXP_MAKE_ID(opusDisableResample, "AdvancedOptions/Opus/DisableResample");
|
LAMEXP_MAKE_ID(opusDisableResample, "AdvancedOptions/Opus/DisableResample");
|
||||||
LAMEXP_MAKE_ID(opusFramesize, "AdvancedOptions/Opus/FrameSize");
|
LAMEXP_MAKE_ID(opusFramesize, "AdvancedOptions/Opus/FrameSize");
|
||||||
@ -638,8 +640,10 @@ LAMEXP_MAKE_OPTION_S(mostRecentInputPath, defaultDirectory())
|
|||||||
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass, true)
|
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass, true)
|
||||||
LAMEXP_MAKE_OPTION_B(neroAacNotificationsEnabled, true)
|
LAMEXP_MAKE_OPTION_B(neroAacNotificationsEnabled, true)
|
||||||
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled, false)
|
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled, false)
|
||||||
LAMEXP_MAKE_OPTION_I(normalizationFilterEQMode, 0)
|
LAMEXP_MAKE_OPTION_B(normalizationFilterDynamic, false)
|
||||||
|
LAMEXP_MAKE_OPTION_B(normalizationFilterCoupled, true)
|
||||||
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume, -50)
|
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume, -50)
|
||||||
|
LAMEXP_MAKE_OPTION_I(normalizationFilterSize, 31)
|
||||||
LAMEXP_MAKE_OPTION_I(opusComplexity, 10)
|
LAMEXP_MAKE_OPTION_I(opusComplexity, 10)
|
||||||
LAMEXP_MAKE_OPTION_B(opusDisableResample, false)
|
LAMEXP_MAKE_OPTION_B(opusDisableResample, false)
|
||||||
LAMEXP_MAKE_OPTION_I(opusFramesize, 3)
|
LAMEXP_MAKE_OPTION_I(opusFramesize, 3)
|
||||||
|
@ -179,8 +179,10 @@ public:
|
|||||||
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass)
|
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass)
|
||||||
LAMEXP_MAKE_OPTION_B(neroAacNotificationsEnabled)
|
LAMEXP_MAKE_OPTION_B(neroAacNotificationsEnabled)
|
||||||
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled)
|
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled)
|
||||||
LAMEXP_MAKE_OPTION_I(normalizationFilterEQMode)
|
LAMEXP_MAKE_OPTION_B(normalizationFilterDynamic)
|
||||||
|
LAMEXP_MAKE_OPTION_B(normalizationFilterCoupled)
|
||||||
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume)
|
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume)
|
||||||
|
LAMEXP_MAKE_OPTION_I(normalizationFilterSize)
|
||||||
LAMEXP_MAKE_OPTION_I(opusComplexity)
|
LAMEXP_MAKE_OPTION_I(opusComplexity)
|
||||||
LAMEXP_MAKE_OPTION_B(opusDisableResample)
|
LAMEXP_MAKE_OPTION_B(opusDisableResample)
|
||||||
LAMEXP_MAKE_OPTION_I(opusFramesize)
|
LAMEXP_MAKE_OPTION_I(opusFramesize)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user