From 3a210e9135e1a1d933002429f9757e3d169fa975 Mon Sep 17 00:00:00 2001
From: LoRd_MuldeR
Date: Sun, 27 Jun 2021 21:37:18 +0200
Subject: [PATCH] Replaced GnuPG (gpgv) by CodeSign verification tool for
checking the auto-update signatures.
---
LameXP_VS2017.vcxproj | 56 ++++++++++------------------------
LameXP_VS2017.vcxproj.filters | 18 ++++-------
doc/Changelog.html | 2 +-
doc/Changelog.md | 1 +
res/Tools.gpgv.qrc | 2 --
res/Tools.keyring.qrc | 2 --
res/Tools.verify.qrc | 2 ++
res/_ALL.qrc | 3 +-
res/tools/gpgv.exe | Bin 201728 -> 0 bytes
res/tools/keyring.gpg | Bin 2240 -> 0 bytes
res/tools/verify.exe | Bin 0 -> 188416 bytes
src/Config.h | 4 +--
src/Dialog_Update.cpp | 9 +++---
src/Dialog_Update.h | 5 ++-
src/Tools.h | 3 +-
15 files changed, 36 insertions(+), 71 deletions(-)
delete mode 100644 res/Tools.gpgv.qrc
delete mode 100644 res/Tools.keyring.qrc
create mode 100644 res/Tools.verify.qrc
delete mode 100644 res/tools/gpgv.exe
delete mode 100644 res/tools/keyring.gpg
create mode 100644 res/tools/verify.exe
diff --git a/LameXP_VS2017.vcxproj b/LameXP_VS2017.vcxproj
index d1d98607..c45a26b4 100644
--- a/LameXP_VS2017.vcxproj
+++ b/LameXP_VS2017.vcxproj
@@ -492,16 +492,6 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\v141_xp\Shared\plugins\imageformats
true
false
-
- true
- true
- false
-
-
- true
- true
- false
-
true
true
@@ -692,6 +682,7 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\v141_xp\Shared\plugins\imageformats
true
false
+
true
true
@@ -1637,21 +1628,6 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\v141_xp\Shared\plugins\imageformats
true
false
-
- Document
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- true
- true
- false
-
Document
"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
@@ -2057,21 +2033,6 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\v141_xp\Shared\plugins\imageformats
true
false
-
- Document
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
- true
- true
- false
-
Document
"$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
@@ -2402,6 +2363,21 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\v141_xp\Shared\plugins\imageformats
true
false
+
+ Document
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
+ "$(QTDIR)\bin\rcc.exe" -o "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp" -no-compress -name "%(Filename)" "%(FullPath)"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ RCC "$(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp"
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+ $(SolutionDir)tmp\$(ProjectName)\QRC_%(Filename).cpp;%(Outputs)
+ true
+ false
+ true
+
diff --git a/LameXP_VS2017.vcxproj.filters b/LameXP_VS2017.vcxproj.filters
index 21d5e126..4fa25543 100644
--- a/LameXP_VS2017.vcxproj.filters
+++ b/LameXP_VS2017.vcxproj.filters
@@ -424,12 +424,6 @@
Generated Files\QRC
-
- Generated Files\QRC
-
-
- Generated Files\QRC
-
Generated Files\QRC
@@ -574,6 +568,9 @@
Generated Files\QRC
+
+ Generated Files\QRC
+
@@ -929,12 +926,6 @@
Resources
-
- Resources
-
-
- Resources
-
Resources
@@ -1082,6 +1073,9 @@
Resources
+
+ Resources
+
diff --git a/doc/Changelog.html b/doc/Changelog.html
index 03482354..1db8b710 100644
--- a/doc/Changelog.html
+++ b/doc/Changelog.html
@@ -1 +1 @@
- LameXP LameXP v4.xx History
LameXP v4.19 [unreleased]
- Updated LAME encoder to v3.100.1-SVN (2020-08-25), compiled with ICL 19.1 and MSVC 15.9
- Updated Vorbis encoder to OggEnc v2.88 (2020-07-07), using libvorbis v1.3.7 with aoTuV beta-6.03
- Updated Monkey's Audio binary to v6.29 (2021-05-25), compiled with ICL 19.2 and MSVC 15.9
- Updated mpg123 decoder to v1.26.4 (2020-12-24), compiled with GCC 10.2.0
- Updated MediaInfo to v21.03 (2021-03-26), compiled with ICL 2021.2 and MSVC 15.9
- Updated cURL to v7.77.0 (2021-05-26), with libcurl v7.77.0 and OpenSSL v1.1.1k
- Added Bulgarian (български) translation, thanks to Симеон Илиянов Цветков <sicvetkov@uni-sofia.bg>
- Added command-line switch
--no-splash
, which can be used to hide the "splash" screen at startup - Added a workaround for missing
normaliz.dll
to the installer (Windows XP only)
LameXP v4.18 [2019-12-18]
- Upgraded build environment to Microsoft Visual Studio 2017.9 (MSVC 14.16)
- Updated LAME encoder to v3.100.1-SVN (2019-07-23), compiled with ICL 19.0 and MSVC 14.16
- Updated Opus encoder/decoder libraries to v1.3.1 (2019-04-14) and Opus-Tools to v0.2+3 (2018-10-16)
- Updated Vorbis encoder to OggEnc v2.88 (2018-11-14), using libvorbis v1.3.6 with aoTuV b6.03 (2018)
- Updated FLAC encoder/decoder to v1.3.2+ Git (2018-09-19), compiled with ICL 19.0 and MSVC 14.16
- Updated Monkey's Audio binary to v4.73 (2019-05-15), compiled with ICL 19.0 and MSVC 14.16
- Updated mpg123 decoder to v1.25.11 (2019-07-18) and added 64-Bit binaries, compiled with GCC 9.1.0
- Updated MediaInfo to v19.07 (2019-07-16), compiled with ICL 19.0 and MSVC 14.16
- Added Japanese (日本語) translation, thanks to Maboroshin <pc.genkaku.in>
- Fixed encoding with Nero AAC encoder for input sampling rate less than 8 KHz or greater than 96 KHz
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.17 [2018-11-10]
- Upgraded build environment to Microsoft Visual Studio 2017.8 (MSVC 14.15)
- Updated Opus encoder/decoder libraries to v1.3 (2018-10-17) and Opus-Tools to v0.2+3 (2018-10-16)
- Updated MediaInfo to v18.05 (2018-05-09), compiled with ICL 18.2 and MSVC 14.14
- Updated GnuPG to v1.4.23 (2018-06-11), compiled with GCC 7.3.0
- Downgraded FAAD to from v2.8 to v2.7 for now, because v2.8 is currently broken with certain MP4 files
- Fixed detection of certain WMA and AAC files [regression in LameXP v4.16]
- Some improvements to the auto-update function, which is now using cURL instead of Wget
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.16 [2018-04-30]
- Upgraded build environment to Microsoft Visual Studio 2017.6 (MSVC 14.13)
- Updated LAME encoder to v3.100 Final (2017-10-13), compiled with ICL 18.0 and MSVC 14.1
- Updated mpg123 decoder to v1.25.10 (2018-03-05), compiled with GCC 7.3.0
- Updated Opus encoder/decoder libraries to v1.3-beta-31 (2018-03-27) and Opus-Tools to v0.1.10-51 (2018-03-04)
- Updated Monkey's Audio binary to v4.33 (2017-12-01), compiled with ICL 18.0 and MSVC 14.12
- Updated FAAD decoder to v2.8.6 (2017-10-10), compiled with ICL 18.0 and MSVC 15.5
- Updated Vorbis decoder to OggDec v1.10.1+ (2015-03-19), using libVorbis v1.3.6 (2018-03-16)
- Updated ALAC decoder to refalac v1.64 (2017-05-19), compiled with ICL 18.0 and MSVC 14.12
- Updated WavPack decoder to v5.1.0 (2017-01-20), compiled with ICL 18.0 and MSVC 14.12
- Updated MediaInfo to v18.03.1+ (2018-04-19), compiled with ICL 18.2 and MSVC 14.13
- Updated GnuPG to v1.4.22 (2017-07-19), compiled with GCC 7.2.0
- Updated QAAC add-in (separate download) to QAAC v2.64 (2017-07-19), compiled with ICL 18.0 and MSVC 14.12
- Complete re-write of MediaInfo parsing code, now using XML-based MediaInfo output
- Improved auto-detection of max. parallel instances on computers with "fast" (i.e. SSD or similar) drive
- Some improvements to output file name generation code
- Added "Visual Elements" manifest for Windows 8+ "Start" screen tile
- Some more protection against "DLL pre-loading" attacks has been implemented
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.15 [2017-05-31]
- Fixed a bug in auto-rename feature, that caused problems when a meta-tag contained path separators
- Fixed included MediaInfo binary not working on processor without SSE2 support
- Improved file name generation from meta-tags containing characters that are forbidden in file names
- Some improvements for "high DPI" screens: Adjust initial window size according to DPI setting
- Updated Opus encoder/decoder libraries to v1.2-beta (2017-05-26) and Opus-Tools to v0.1.10 (2017-05-25)
- Updated MediaInfo to v0.7.95 (2017-05-04), compiled with ICL 17.0 and MSVC 12.0
- Updated SoX to v14.4.2 (2015-02-22) with Dynamic Audio Normalizer v2.10 (2017-04-14) effect included
- Updated mpg123 decoder to v1.24.0 (2017-03-02), compiled with GCC 6.3.0
- Updated FAAD decoder to v2.7 from CVS in order to include latest libFAAD fixes (2016-11-11)
- Updated Monkey's Audio binary to v4.25 (2017-03-12), compiled with ICL 17.0 and MSVC 14.0
- Some tweaks to the auto-update function in order to speed-up the update check in most situations
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.14 [2016-11-19]
- Upgraded build environment to Microsoft Visual Studio 2015 with Update-3
- Fixed the location of temporary intermediate files for SoX-based audio effects
- Fixed embedding of meta tags with OggEnc2 when reading directly from OGG/FLAC input file
- Fixed encoding of non-Stereo sources with NeroAAC, when "HE-AAC v2 (SBR+PS)" is selected
- Fixed a bug that would cause the encoding job to fail, when an audio filter is skipped
- Enabled the "built-in" resampler for QAAC encoder
- The "Algorithm Quality" slider now also affects the QAAC encoder
- Added "AVX" (Advanced Vector Extensions) to CPU feature detection code
- Updated Opus encoder/decoder libraries to v1.2-alpha and Opus-Tools to v0.1.9 (2016-11-04)
- Updated LAME encoder to v3.100 Alpha-2 (2016-01-29), compiled with ICL 15.0 and MSVC 12.0
- Updated FLAC encoder/decoder to v1.3.1 (2016-10-04), compiled with ICL 17.0 and MSVC 12.0
- Updated MediaInfo to v0.7.90 (2016-10-31), compiled with ICL 17.0 and MSVC 12.0
- Updated mpg123 decoder to v1.23.8 (2016-09-27), compiled with GCC 6.2.0
- Updated ALAC decoder to refalac v1.61 (2016-10-02)
- Updated WavPack decoder to v4.80.0 (2016-03-28), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.21 (2016-08-17), compiled with GCC 6.1.0
- Updated QAAC add-in to the to QAAC v2.61 (2016-10-02)
- Updated FhgAacEnc add-in to "Case" edition (2015-10-24)
- Improved auto-update function (faster Internet connectivity check)
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.13 [2015-12-12]
- Upgraded build environment to Microsoft Visual Studio 2015 with Update-1
- Apply the original file's "creation" and "last modified" date/time to the output file (optional)
- Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015
- Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0
- Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87
- Fixed creation of Monkey's Audio (APE) files, when no meta data is being embedded
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.12 [2015-10-23]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-5
- Updated Qt runtime libraries to v4.8.7 Final (2015-05-25), compiled with MSVC 12.0
- Added support for building LameXP and MUtilities with Visual Studio 2015
- Added Hungarian translation, contributed by Zityi's Translator Team <zityisoft@gmail.com>
- Added optional support for the libfdk-aac encoder, using the fdkaac front-end by nu774
- Added detection of the 64-Bit version of QAAC encoder, requires 64-Bit Apple Application Support
- Added enhanced file renaming option: Default file extensions can now be overwritten
- Added enhanced file renaming option: Files can now be renamed via the regular expression engine
- Added capability to select multiple files on "Source Files" tab
- Updated Vorbis encoder to OggEnc v2.87 (2015-08-03), using libvorbis v1.3.5 and aoTuV b6.03_2015
- Updated MediaInfo to v0.7.76 (2015-08-06), compiled with ICL 15.0 and MSVC 12.0
- Updated mpg123 decoder to v1.22.4 (2015-08-12), compiled with GCC 5.1.0
- Updated ALAC decoder to refalac v1.47 (2015-02-15), based on reference implementation by Apple
- Updated Monkey's Audio binary to v4.16 (2015-03-24), compiled with ICL 15.0 and MSVC 12.0
- Updated WavPack decoder to v4.75.0 (2015-05-25), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.19 (2015-02-27), compiled with GCC 4.9.2
- Fixed potential deadlock in Cue Sheet import dialog when "Browse..." button is clicked
- Fixed function to restore the default Temp folder, if custom Temp folder doesn't exist anymore
- Fixed parsing of command-line parameters, regression in MUtilities library (LameXP v4.12 RC-1)
- QAAC encoder is now using
--cvbr
instead of --abr
when "ABR" mode is selected - Enable the embedding of cover artwork for Opus encoder (opusenc), using the
--picture
option - Some installer improvements have been implemented (especially in "update" mode)
- Full support for Windows 10 RTM (Build #10240)
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.11 [2015-04-05]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-4
- Starting with this version, LameXP is based on the MUtilities library + massive code clean-up
- Added support for the DynamicAudioNormalizer normalization filter
- Updated Qt runtime libraries to v4.8.7 snapshot-5 (2015-03-25), compiled with MSVC 12.0
- Updated MediaInfo to v0.7.72 (2015-01-07), compiled with ICL 15.0 and MSVC 12.0
- Updated SoX to v14.4.2-Final (2015-02-22), compiled with ICL 15.0 and MSVC 12.0
- Updated Opus libraries to v1.1.x and Opus-Tools v0.1.9 to latest Git Master (2015-03-26)
- Updated mpg123 decoder to v1.22.0 (2015-02-24), compiled with GCC 4.9.2
- Updated Vorbis encoder to OggEnc v2.87 (2014-07-03), using libvorbis v1.3.4 and aoTuV b6.03_2014
- Updated Vorbis decoder to OggDec v1.10.1 (2015-03-19), using libVorbis v1.3.5
- Updated FLAC encoder/decoder to v1.3.1 (2014-11-26), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.18 (2014-06-30), compiled with GCC 4.9.1
- Updated QAAC add-in to the latest to QAAC v2.44, including a fix for the
--artwork
option - Fixed potential crash in Cue Sheet importer (occurred when all input files were missing)
- Fixed a severe performance bottleneck, especially with a large number of parallel instances
- Fixed a very rare problem that, occasionally, prevented the TEMP folder from being removed
- The limit for the maximum number of parallel instances has been increased to 32
- Experimental support for Windows 10 Technical Preview
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.10 [2014-06-23]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-2
- Updated Qt runtime libraries to v4.8.6 (2014-04-25), compiled with MSVC 12.0
- Updated Opus libraries to v1.1.x and Opus-Tools v0.1.8 to latest Git Master (2014-04-13)
- Updated MediaInfo to v0.7.69 (2014-04-26), compiled with ICL 14.0 and MSVC 12.0
- Updated mpg123 decoder to v1.19.0 (2014-03-08), compiled with GCC 4.8.2
- Fixed a bug that could cause the cover artwork to be lost under certain circumstances
- Fixed "overwrite existing file" mode to NOT delete the input file
- Some more tweaks to the LAME algorithm quality selector
- Added command-line options to adjust the LameXP font size (see Manual for details)
- Various bugfixes and code improvements
LameXP v4.09 [2014-01-26]
- Upgraded build environment to Microsoft Visual Studio 2013 RTM
- Complete overhaul of the file analyzer, resulting in up to 2.5x faster file import speed
- Reworked the application initialization code, resulting in notably faster startup speed
- Added encoding support for Monkey's Audio (APE) format, including APEv2 tagging support
- Improved file analyzer to retain the original ordering of files imported from a playlist
- Improved internal encoder API, so each encoder can define its own configuration options
- Improved splash screen and working banner, using "sheet of glass" effect on supported OS
- Improved dropbox widget, including proper multi-monitor support
- Updated Opus encoder/decoder libraries to v1.1 and Opus-Tools to v0.1.8 (2013-12-05)
- Updated Monkey's Audio binary to v4.12 (2013-06-26)
- Updated mpg123 decoder to v1.16.0 (2013-10-06), compiled with GCC 4.8.1
- Updated WavPack decoder to v4.70.0 (2013-10-19), compiled with ICL 14.0 and MSVC 12.0
- Updated MediaInfo to v0.7.67 (2014-01-10), compiled with ICL 14.0 and MSVC 12.0
- Updated GNU Wget binary to v1.14.0 (2012-08-05), compiled with GCC 4.8.1
- Updated GnuPG to v1.4.16 (2013-12-13), compiled with GCC 4.8.1
- Updated the QAAC add-in for LameXP to QAAC v2.33 (2014-01-14), compiled with MSVC 12.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a resource (file descriptor) leak in "static" builds, didn't cause much harm though
- Various bugfixes and code improvements
LameXP v4.08 [2013-09-04]
- Upgraded build environment to Microsoft Visual Studio 2012 with Update-3
- Encoder settings (RC mode + bitrate/quality) are now stored separately for each encoder
- Updated Qt runtime libraries to v4.8.5 (2013-05-31), compiled with MSVC 11.0
- Updated FLAC encoder/decoder to v1.3.0 (2013-05-27), compiled with ICL 13.0
- Updated Opus encoder/decoder libraries to v1.1-beta and Opus-Tools to v0.1.6 (2013-07-22)
- Updated MediaInfo to v0.7.64 (2013-07-05), compiled with ICL 13.1 and MSVC 10.0
- Updated GnuPG to v1.4.14 (2013-07-25), compiled with GCC 4.8.1
- Updated GNU Wget binary to v1.13.4 (2011-09-17)
- Updated language files (big thank-you to all contributors !!!)
- Fixed a potential deadlock during startup when %TMP% points to an invalid folder
- Fixed a superfluous "beep" sound that appeared on application startup
- Fixed the Ogg Vorbis quality modes "-1" and "-2" (those were clipped to "0" before)
- Fixed a bug that could cause the output directory to be reset mistakenly
- Implemented "natural order" string comparison/sorting, using strnatcmp() by Martin Pool
LameXP v4.07 [2013-04-28]
- Upgraded build environment to Microsoft Visual Studio 2012 with Update-2
- Minimum supported platform now is Windows XP with Service Pack 3
- Added option to select the "overwrite mode" to advanced options tab
- Added option to filter the log entries on the "processing" dialog (see context menu)
- Added "Up One Level" button to the output folder tab
- Added Opus decoder option to output always at the native sample rate of 48.000 Hz
- Updated Qt runtime libraries to v4.8.4 (2012-11-29), compiled with MSVC 11.0
- Updated Opus encoder/decoder libraries to v1.1.x and Opus-Tools to v0.1.6 (2013-04-23)
- Updated Valdec decoder (2013-04-07), based on AC3Filter Tools v1.0a
- Updated mpg123 decoder to v1.15.3 (2013-04-03), compiled with GCC 4.8.0
- Updated MediaInfo to v0.7.62 (2013-02-22), compiled with ICL 12.1.7 and MSVC 10.0
- Updated Monkey's Audio binary to v4.11 (2013-01-20)
- Updated SoX to v14.4.1 (2012-02-09), compiled with ICL 13.0 and MSVC 10.0
- Updated GnuPG to v1.4.13, compiled with GCC 4.7.2
- Updated language files (big thank-you to all contributors !!!)
- Fixed handling of certain characters when passing meta tags on the command-line
- Fixed handling of certain characters when renaming output files
- Fixed Keccak library to not crash on systems without SSE/SSE2 support
- Fixed LAME algorithm quality selector better match the LAME documentation
LameXP v4.06 [2012-11-04]
- Updated Opus encoder/decoder libraries to v1.0.1 and Opus-Tools to v0.1.5 (2012-09-22)
- Updated mpg123 decoder to v1.14.4+ (2012-09-24), compiled with GCC 4.7.1
- Updated ALAC decoder to refalac v0.56 (2012-10-24), based on reference implementation by Apple
- Updated Qt runtime libraries to v4.8.3 (2012-09-13), compiled with MSVC 10.0
- Updated MediaInfo to v0.7.61+ (2012-10-28), compiled with ICL 12.1.7 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a bug with the "Store temporary files in your system's default TEMP director" checkbox
- Fixed a buffer overflow in FAAD2 decoder which could cause crashes with very long file names
- Fixed a regression in Qt v4.8.3 that broke Drag&Drop support (details #1) (details #2)
- Reworked the "About..." dialog – now using a custom dialog instead of message boxes
LameXP v4.05 [2012-09-03]
- Added support for Opus Audio Codec, based on Opus-Tools v0.1.4 (2012-08-16) by Xiph.org/Mozilla
- Added Swedish translation, thanks to Åke Engelbrektson <eson57@gmail.com>
- Updated Qt runtime libraries to v4.8.2 (2012-05-22), compiled with MSVC 10.0
- Updated mpg123 decoder to v1.14.4 (2012-07-26), compiled with GCC 4.6.1
- Updated MediaInfo to v0.7.59 (2012-08-08), compiled with ICL 12.1.7 and MSVC 10.0
- Updated optional add-ins for QAAC encoder and FHG AAC encoder (see Manual for details)
- Updated DCA Enc to v2 (2012-04-19), compiled with ICL 12.1.7 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Implemented multi-threading in file analyzer for faster file import (about 2.5x to 6.0x faster!)
- Implemented multi-threading in initialization code for faster application startup
- Fixed a potential crash (stack overflow) when adding a huge number of files
- Fixed a problem with Cue Sheet import and files that contain trailing dots in their name
- Workaround for a bug (feature?) of Qt's command-line parser that screwed up some arguments
LameXP v4.04 [2012-04-26]
- Added support for the QAAC Encoder, requires QuickTime v7.7.1 or newer (see Manual for details)
- Added Chinese and Taiwanese translations, thanks to 456Vv <123@456vv.com>
- Added experimental support for DCA Enc, created by Alexander E. Patrakov <patrakov@gmail.com>
- Added CSV export/import for Meta tags (available from the context-menu on the "Source Files" tab)
- Added a button to modify the current output folder path in an edit box
- Updated Qt runtime libraries to v4.8.1 (2012-03-14), compiled with MSVC 10.0
- Updated LAME encoder to v3.99.5 Final (2012-02-28), compiled with ICL 12.1.7 and MSVC 10.0 (details)
- Updated MediaInfo to v0.7.56 (2012-04-08), compiled with ICL 12.1.7 and MSVC 10.0
- Updated SoX to to v14.4.0 (2012-03-04), compiled with ICL 12.1.7 and MSVC 10.0
- Updated mpg123 decoder to v1.13.6 (2011-03-11), compiled with GCC 4.6.1
- Updated Monkey's Audio binary to v4.11 (2011-04-20)
- Updated Musepack decoder to revision 475 (2011-08-10), compiled with ICL 12.1.6 and MSVC 10.0
- Updated GnuPG to v1.4.12, compiled with GCC 4.6.1
- Updated language files (big thank-you to all contributors !!!)
- Implemented coalescing of update signals to reduce the CPU usage of the LameXP process (details)
- Run more than four instances in parallel on systems with more than four CPU cores
- Improved handling of different character encodings for Playlist and Cue Sheet import
- Tweaked directory outline on "output folder" tab for improved performance (hopefully)
- Improved LameXP inter-process communication by adding queue support
- Workaround for a bug that causes MediaInfo to not detect the duration of Wave files (64-Bit only)
- Prevent LameXP from blocking a system shutdown (encoding process is aborted, if necessary)
- Improved internal handling of MediaInfo output, including extraction of cover art
- Fixed a very rare "live-lock" situation in early initialization code
LameXP v4.03 [2011-11-12]
- Added an option to rename the output files (based on an user-defined naming pattern)
- Added an option to enforce Stereo Downmix for Multi-Channel sources
- Added "built-in" WMA decoder (see this thread for details) and removed all remnants of "old" decoder
- Added optional support for the FHG AAC Encoder included with Winamp 5.62
- Added a menu for bookmarking "favorite" output folders to the "output folder" tab
- Added an option to hibernate the computer (aka "Suspend-to-Disk") instead of shutting it down
- Added Polish translation, thanks to Sir Daniel K <sir.daniel.k@gmail.com>
- Added channel equalization options to the normalization filter (also fixes multi-channel processing)
- Added indicators for current CPU usage, RAM usage and free diskspace to the processing window
- Updated Qt runtime libraries to v4.8.0 RC-1 (2011-10-13), compiled with MSVC 10.0
- Updated LAME encoder to v3.99.1 Final (2011-11-05), compiled with ICL 12.1.6 and MSVC 10.0 (details)
- Updated mpg123 decoder to v1.13.4 (2011-09-07), compiled with GCC 4.6.1
- Updated MediaInfo to v0.7.51 (2011-11-11), compiled with ICL 12.1.6 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Improved "downmix" filter by using explicit channel mappings for each number of input channels
- Fixed a potential bug in CPU type detection that might have caused the wrong binary to be used
- Fixed Cue Sheet import for tracks with certain characters in the title
- Fixed a bug with "Prepend relative source file path to output file" under certain conditions
- Workaround for malicious "anti-virus" programs that prevent innocent applications from functioning
- Enabled "Aero Glass" theme in installer and web-update program (Vista and Windows 7 only)
- Restored Windows 2000 support with Visual Studio 2010 builds (this is experimental!)
- The "Open File(s)" and "Open Folder" dialogs will now remember the most recent directory
- Miscellaneous bugfixes
LameXP v4.02 [2011-06-14]
- Upgraded build environment to Microsoft Visual Studio 2010
- Dropping support for Windows 2000 and Windows XP RTM. Windows XP needs (at least) Service-Pack 2 now!
- Added Cue Sheet import wizard, which allows splitting and importing tracks from Cue Sheet images
- Added ATSC A/52 (AC-3) encoding support, based on Aften encoder v0.0.8+ (Git Master)
- Added Avisynth input (audio only!) using 'avs2wav' tool, partly based on code by Jory Stone
- Added a method to use custom tools instead of the "built-in" ones (see Manual for details)
- Added an option to copy all meta information of a single file over to the "meta information" tab
- Added two new command-line switches: "--add-folder " and "--add-recursive "
- Added one new translation: Korean
- Updated Qt runtime libraries to v4.7.3
- Updated LAME encoder to v3.99.1.0 (2011-04-15), compiled with ICL 12.0.3 and MSVC 10.0 (details)
- Updated Vorbis encoder to v2.87 using aoTuV Beta-6.03 (2011-05-04), compiled with ICL 11.1 and MSVC 9.0
- Updated mpg123 decoder to v1.13.3 (2011-04-21), compiled with GCC 4.6.0
- Updated MediaInfo to v0.7.45 Beta (2011-05-02), compiled with ICL 12.0.3 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed placement of the Dropbox when the Taskbar is located on the top or on the left side
- Improved playlist generation: Generate M3U (Latin-1) or M3U8 (UTF-8) playlist file as required
- Only show the most recent 50 items in the "processing" window (for better performance)
- Miscellaneous bugfixes
LameXP v4.01 [2011-04-04]
- Added an option to manually specify the number of parallel instances
- Added an option to select a user-defined TEMP directory
- Added an option to shutdown the computer as soon as all files are completed
- Added an option to add directories recursively
- Added support for embedding cover artwork (currently works with LAME, FLAC and Nero AAC only)
- Updated Qt runtime libraries to v4.7.2
- Updated LAME encoder to v3.99.0.16 (2011-04-04), compiled with ICL 12.0.2
- Updated Vorbis encoder to v2.87 using aoTuV Beta-6.02 (2011-02-28), compiled with ICL 11.1 and MSVC 9.0
- Updated TTA decoder multiplatform library to v2.1 (2011-03-11), compiled with MSVC 9.0
- Updated SoX to v14.3.2 (2010-02-27), compiled with ICL 12.0.2
- Updated MediaInfo to v0.7.43 (2011-03-20), compiled with ICL 12.0.2 and MSVC 9.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a problem with the LAME encoder that could cause glitches in the encoded file (VBR mode only)
- Fixed a problem with the LAME encoder that could cause very slow encoding speed
- Fixed a bug that caused AAC encoding to fail in CBR mode (the "-2pass" parameter was set wrongly)
- A warning message will be emitted, if diskspace drops below a critical limit while processing
LameXP v4.00 [2011-02-21]
- Complete re-write of LameXP in the C++ programming language
- Switched IDE from Delphi 7.0 to Visual Studio 2008 + Qt Framework v4.7.1 (GNU Toolchain not yet)
- Added cross-plattfrom support - only Windows and Wine for now, native Linux version planned
- Added full Unicode support for file names, meta tags and translations (no more Codepage headaches!)
- Added support for Qt Linguist tool, which makes creating/updating translations much easier
- Added support for multiple user interface styles, including "Plastique" and "Cleanlooks" themes
- Added support for user-defined encoder parameters (please use with care!)
- Added support for a true "portable" mode, which will store the configuration in the program folder
- Added resampling filter for all encoders, based on SoX
- Added simple tone adjustment filter, based on SoX
- Added an option to prepend the relative source file path to the output file path
- Updated all command-line tools to support Unicode file names, mostly required custom patches
- Updated LAME encoder to v3.99.0.11 (2011-02-11), compiled with ICL 11.1.065
- Updated Vorbis encoder to v2.87 using libvorbis v1.3.2 (2010-11-06), compiled with ICL 11.1 and MSVC 9.0
- Updated mpg123 decoder to v1.13.2 (2011-02-19), compiled with GCC 4.5.2
- Updated MediaInfo to v0.7.41 (2011-01-24), compiled with ICL 11.1.065
- Updated SoX to v14.3.1 (2010-04-11), compiled with MSVC 9.0
- Updated GnuPG to v1.4.11, compiled with GCC 4.5.2
- Updated language files (big thank-you to all contributors !!!)
- Removed TAK support for now, as their CloseSource(!) tools don't support Unicode file names yet
- Removed Volumax tool, as we are using SoX for normalization from now on
- Countless minor fixes and improvements (hopefully not too many regressions ^^)
LameXP v3.xx History
LameXP v3.19 [2010-07-12]
- Updated MediaInfo to v0.7.34 (2010-07-09), compiled with ICL 11.1.065
- Updated mpg123 decoder to v1.12.3 (2010-07-11), compiled with GCC 4.6.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed decoding of certain invalid WavPack files
LameXP v3.18 [2010-05-08]
- Added an Unicode-safe "Open" dialog: File names are converted to "short" names if required
- Fixed mpg123 decoder to work on Windows 2000 (reported by Tim Womack)
- Updated LAME encoder to v3.98.4 (2010-03-23), compiled with ICL 11.1.054
- Updated MediaInfo to v0.7.32 (2010-05-02), compiled with ICL 11.1.065
- Updated mpg123 decoder to v1.12.1 (2010-03-31), compiled with GCC 4.4.4
- Updated Ogg Vorbis decoder to v1.9.7 (2010-03-29), compiled with MSVC 9.0
- Updated language files (big thank-you to all contributors !!!)
LameXP v3.17 [2010-02-21]
- Updated TAK decoder to v2.0.0 (2010-01-07)
- Updated ALAC decoder to v0.2.0 (2009-09-05)
- Updated MediaInfo to v0.7.28 (2010-02-19), compiled with ICL 11.1.054
- Fixed "No Disk" error message box that could appear under certain circumstances
- Fixed "...is not responding" error message box that could appear during startup
- Various minor fixes and improvements
LameXP v3.16 [2010-01-26]
- Added support for Nero AAC encoder v1.5.3.0 (2009-12-29)
- Disable DPI warning on Vista and later, as they handle DPI != 96 much better than WinXP
- Updated WavPack decoder to v4.60.1 (2009-11-29)
- Updated MediaInfo to v0.7.27 (2010-01-04), compiled with ICL 11.1.054
- Updated GnuPG to v1.4.10b (2009-09-03), compiled with GCC 4.2.1
LameXP v3.15 [2009-12-24]
- Added support for Nero AAC encoder v1.5.1.0 (2009-12-17)
- Updated mpg123 decoder to v1.10.0 (2009-12-05)
- Updated MediaInfo to v0.7.26 (2009-12-18), compiled with ICL 11.1.051
- Updated AC3Filter Tools to v0.31b (2009-10-01), compiled with ICL 11.1.051
LameXP v3.14 [2009-12-01]
- Added Suspend and Resume buttons to the processing window
- Added another language: Castilian Spanish (Spanish from north/central Spain)
- Updated mpg123 decoder to v1.9.2 (2009-11-20)
- Updated MediaInfo to v0.7.25 (2009-11-13), compiled with ICL 11.1.046
- Updated AC3Filter Tools to v0.31b (2009-10-01), compiled with ICL 11.1.046
- Updated language files (big thank-you to all contributors !!!)
- Updated JEDI-VCL from v3.38 to v3.39 (2009-11-05)
- Various minor fixes and improvements
LameXP v3.13 [2009-10-21]
- Updated LAME encoder to v3.98.2 (2009-09-26), compiled with ICL 11.1.046
- Updated FLAC encoder to v1.2.1b (2009-10-01), compiled with ICL 11.1.046
- Updated MediaInfo to v0.7.23 (2009-10-16), using statically linked build (MSVC 9.0)
- Updated AC3Filter Tools to v0.31b (2009-10-01)
- Updated TAK decoder to v1.1.2 (2009-07-27)
- Updated mpg123 decoder to v1.9.1 (2009-10-09)
- Updated language files (big thank-you to all contributors !!!)
- Updated the Splash screen and modified the sound that plays on very first launch
- Updated JEDI-VCL from v3.34 to v3.38 (2009-08-27)
- Updated GnuPG to v1.4.10 (2009-09-02)
LameXP v3.12 [2009-09-19]
- Added support for FLAC (Free Lossless Audio Codec) output
- Added progress display for individual files (for the "encoding" step only)
- Added a SSE2 (Pentium 4) build of the Ogg Vorbis encoder that will be used if supported by the CPU
- Added options to override the Nero AAC profile (be aware: it's not recommended to do that!)
- Added an option to analyze media files (powered by MediaInfo™)
- Added experimental support for Windows 7 taskbar progress indicator and overlay icons
- Updated LAME encoder to v3.98.2 (2009-09-05), compiled with ICL 11.0
- Updated MediaInfo to v0.7.21 (2009-09-04), using statically linked build
- Updated mpg123 decoder to v1.9.0 (2009-08-14)
- Updated Speex decoder to v1.2 RC-1 (2009-07-04)
- Updated AC3Filter Tools to v0.3b (2009-09-19)
- Updated Auto-Update tool, from now on only signed updates will be accepted (using GnuPG)
- Fixed a number of minor glitches
LameXP v3.11 [2009-06-22]
- Added options to sort the source files (by title, by filename or by track number)
- Updated language files (big thank-you to all contributors !!!)
- Updated mpg123 decoder to v1.8.1 (2009-06-14)
- Updated FLAC decoder, now using the ICL 9.1 build of FLAC v1.2.1b
- Updated MediaInfo to v0.7.17 (statically linked)
- Updated the "Normalization" filter to v0.41 (2009-06-16)
- Fixed a few minor issues in meta tag processing
LameXP v3.10 [2009-06-11]
- Added a NSIS-based installer (will be released in addition to the ZIP package)
- Added support for the TAK lossless audio format
- Added two new languages: Serbian (Latin) and Ukrainian
- Updated language files (big thank-you to all contributors !!!)
- Updated MediaInfo to a custom build of v0.7.16 that is statically linked (and removed the DLL)
- Updated mpg123 decoder to v1.8.0 RC-3 (2009-06-03)
- Updated Musepack decoder to v1.0.0 (2009-04-02) and fixed Musepack VS8 support
- Updated Monkey's Audio decoder to v4.06 (2009-03-17)
- Updated the "Normalization" filter to allow multiple instances running in parallel
- Updated Auto-Update tool
- Fixed a few minor issues and refactored the code
LameXP v3.09 [2009-06-01]
- Added support for detecting the file type via MediaInfo instead of guessing the type from file extension
- Updated mpg123 decoder to v1.7.3 (2009-04-27)
- Updated FAAD decoder to v2.7 (2009-05-13)
- Updated MediaInfo to v0.7.16.0 (2009-05-20)
- Fixed detection of the WMA decoder under certain circumstances (e.g. Windows 7)
LameXP v3.08 [2009-03-05]
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.7 (2009-03-04)
- Updated mpg123 decoder to v1.6.4 (2009-01-10)
- Updated MediaInfo to v0.7.11.0 (2009-02-13)
LameXP v3.07 [2008-12-24]
- Added an option to disable multi-threading on multi-core machines
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.61 (2008-12-24)
- Updated mpg123 decoder to v1.6.3 (2008-12-20)
- Updated MediaInfo to v0.7.8.0 (2008-12-10)
- Updated language files (big thank-you to all contributors !!!)
LameXP v3.06 [2008-10-26]
- Added a custom build of the mpg123 decoder v1.5.1
- Added two more languages: Romanian and Polish
- Added support for the ALAC audio format
- Updated MediaInfo to v0.7.7.7 (2008-10-17)
- Updated AC3 Filter Tools to v0.2a (2008-06-30)
- Updated language files (big thank-you to all contributors !!!)
- Fixed and improved "Normalization" filter
- Fixed a few minor bugs
LameXP v3.05 [2008-10-11]
- Added support for Nero AAC encoder v1.3.3.0
- Added option to add an entire directory or an entire directory-tree
- Added new languages: Russian, Nederlands, Greek and Hungarian
- Added Dropbox for improved Drag&Drop support
- Updated language files (big thank-you to all contributors !!!)
- Updated LAME encoder to v3.98.2 Final (2008-09-24)
- Updated MediaInfo to v0.7.7.6 (2008-09-12)
LameXP v3.04 [2008-09-26]
- Added support for reading Meta Data from source files (using MediaInfo)
- Added support for languages: English, German, French, Spanish, Italian, Japanese, Chinese (Simplified) and Taiwanese
- Added support for WMA, Shorten and TTA files (input only)
- Added support for various playlist formats (M3U, PLS, ASX, CueSheet)
- Added an option to permanently disable the Shell Intgegration (Explorer Conext Menus)
- Added an option to disable the periodic Update Reminder
- Added an option to shutdown the computer automatically as soon as all files are completed
- Added code to minimize the LameXP window into the taskbar notification area
- Added balloon tooltip to inform the user about "hidden" options
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.6 (2008-09-05)
- Improved code to handle child processes and capture the console output
LameXP v3.03 [2008-08-12]
- Added generic support for pre-processing filters
- Added "Normalization" filter, based on Volumax by John33
- Improved code to add/remove context menus in Window Explorer
- Improved code to handle multiple instances of LameXP
LameXP v3.02 [2008-08-06]
- Added support for new input format: MPEG Audio Layer-2 (mp2)
- Added option to choose a custom TEMP folder
LameXP v3.01 [2008-08-01]
- Added an option to disable all sounds in LameXP
- Added warning message for bitrates that violate the current bitrate restriction
- Fixed bitrate restrictions for LAME encoder (strictly enforce bitrate restrictions using "-F" parameter)
- Fixed file associations code (set file associations only for the current user)
- Updated load/save configuration code (store settings in an INI file instead of the registry)
LameXP v3.00 [2008-07-04]
- Added support for Nero's AAC Encoder (not included, available as free download from Nero website)
- Added support for more input formats: Wave, MP3, Ogg Vorbis, AAC/MP4, FLAC, Speex, WavPack, Musepack, Monkey's Audio
- Added support for uncompressed Wave output
- Added support for Multi-Threading (use multiple instances for batch processing)
- Added shell integration for Windows Explorer (Context-Menus and "Send To" folder)
- Added commandline support: LameXP.exe -add <File 1> [<File 2> ... ]
- Added Auto-Update utility to periodically check for new updates
- Updated LAME encoder to v3.98 Final (2008-07-04)
- Updated Ogg Vorbis encoder to v2.85, aoTuV Beta-5.5 (2008-03-31)
LameXP v2.xx History
LameXP v2.03 [2007-08-17]
- Updated LAME encoder to v3.98 to Beta-5 (2007-08-13)
- Updated Ogg Vorbis encoder to v2.84 aoTuV Beta-5 (2007-08-17)
- Fixed a bug with 'title' meta tags
- Fixed a few typos
LameXP v2.00 [2007-02-19]
- Added Ogg Vorbis encoder
- Updated LAME encoder to latest builds
- Improved progress display (parsing encoder progress from console output now)
- Improved ID3-Tag support (now supports "title" and "track" fields)
- Added feature to automatically generate playlists (.m3u)
- Many bug-fixes and GUI improvements
LameXP v1.xx History
LameXP v1.00 [2004-12-10]
by LoRd_MuldeR <mulder2@gmx.de> | http://muldersoft.com/
EOF
\ No newline at end of file
+ LameXP LameXP v4.xx History
LameXP v4.19 [unreleased]
- Updated LAME encoder to v3.100.1-SVN (2020-08-25), compiled with ICL 19.1 and MSVC 15.9
- Updated Vorbis encoder to OggEnc v2.88 (2020-07-07), using libvorbis v1.3.7 with aoTuV beta-6.03
- Updated Monkey's Audio binary to v6.29 (2021-05-25), compiled with ICL 19.2 and MSVC 15.9
- Updated mpg123 decoder to v1.26.4 (2020-12-24), compiled with GCC 10.2.0
- Updated MediaInfo to v21.03 (2021-03-26), compiled with ICL 2021.2 and MSVC 15.9
- Updated cURL to v7.77.0 (2021-05-26), with libcurl v7.77.0 and OpenSSL v1.1.1k
- Added Bulgarian (български) translation, thanks to Симеон Илиянов Цветков <sicvetkov@uni-sofia.bg>
- Added command-line switch
--no-splash
, which can be used to hide the "splash" screen at startup - Added a workaround for missing
normaliz.dll
to the installer (Windows XP only) - GnuPG has been replaced by CodeSign verification tool for checking the auto-update signatures
LameXP v4.18 [2019-12-18]
- Upgraded build environment to Microsoft Visual Studio 2017.9 (MSVC 14.16)
- Updated LAME encoder to v3.100.1-SVN (2019-07-23), compiled with ICL 19.0 and MSVC 14.16
- Updated Opus encoder/decoder libraries to v1.3.1 (2019-04-14) and Opus-Tools to v0.2+3 (2018-10-16)
- Updated Vorbis encoder to OggEnc v2.88 (2018-11-14), using libvorbis v1.3.6 with aoTuV b6.03 (2018)
- Updated FLAC encoder/decoder to v1.3.2+ Git (2018-09-19), compiled with ICL 19.0 and MSVC 14.16
- Updated Monkey's Audio binary to v4.73 (2019-05-15), compiled with ICL 19.0 and MSVC 14.16
- Updated mpg123 decoder to v1.25.11 (2019-07-18) and added 64-Bit binaries, compiled with GCC 9.1.0
- Updated MediaInfo to v19.07 (2019-07-16), compiled with ICL 19.0 and MSVC 14.16
- Added Japanese (日本語) translation, thanks to Maboroshin <pc.genkaku.in>
- Fixed encoding with Nero AAC encoder for input sampling rate less than 8 KHz or greater than 96 KHz
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.17 [2018-11-10]
- Upgraded build environment to Microsoft Visual Studio 2017.8 (MSVC 14.15)
- Updated Opus encoder/decoder libraries to v1.3 (2018-10-17) and Opus-Tools to v0.2+3 (2018-10-16)
- Updated MediaInfo to v18.05 (2018-05-09), compiled with ICL 18.2 and MSVC 14.14
- Updated GnuPG to v1.4.23 (2018-06-11), compiled with GCC 7.3.0
- Downgraded FAAD to from v2.8 to v2.7 for now, because v2.8 is currently broken with certain MP4 files
- Fixed detection of certain WMA and AAC files [regression in LameXP v4.16]
- Some improvements to the auto-update function, which is now using cURL instead of Wget
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.16 [2018-04-30]
- Upgraded build environment to Microsoft Visual Studio 2017.6 (MSVC 14.13)
- Updated LAME encoder to v3.100 Final (2017-10-13), compiled with ICL 18.0 and MSVC 14.1
- Updated mpg123 decoder to v1.25.10 (2018-03-05), compiled with GCC 7.3.0
- Updated Opus encoder/decoder libraries to v1.3-beta-31 (2018-03-27) and Opus-Tools to v0.1.10-51 (2018-03-04)
- Updated Monkey's Audio binary to v4.33 (2017-12-01), compiled with ICL 18.0 and MSVC 14.12
- Updated FAAD decoder to v2.8.6 (2017-10-10), compiled with ICL 18.0 and MSVC 15.5
- Updated Vorbis decoder to OggDec v1.10.1+ (2015-03-19), using libVorbis v1.3.6 (2018-03-16)
- Updated ALAC decoder to refalac v1.64 (2017-05-19), compiled with ICL 18.0 and MSVC 14.12
- Updated WavPack decoder to v5.1.0 (2017-01-20), compiled with ICL 18.0 and MSVC 14.12
- Updated MediaInfo to v18.03.1+ (2018-04-19), compiled with ICL 18.2 and MSVC 14.13
- Updated GnuPG to v1.4.22 (2017-07-19), compiled with GCC 7.2.0
- Updated QAAC add-in (separate download) to QAAC v2.64 (2017-07-19), compiled with ICL 18.0 and MSVC 14.12
- Complete re-write of MediaInfo parsing code, now using XML-based MediaInfo output
- Improved auto-detection of max. parallel instances on computers with "fast" (i.e. SSD or similar) drive
- Some improvements to output file name generation code
- Added "Visual Elements" manifest for Windows 8+ "Start" screen tile
- Some more protection against "DLL pre-loading" attacks has been implemented
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.15 [2017-05-31]
- Fixed a bug in auto-rename feature, that caused problems when a meta-tag contained path separators
- Fixed included MediaInfo binary not working on processor without SSE2 support
- Improved file name generation from meta-tags containing characters that are forbidden in file names
- Some improvements for "high DPI" screens: Adjust initial window size according to DPI setting
- Updated Opus encoder/decoder libraries to v1.2-beta (2017-05-26) and Opus-Tools to v0.1.10 (2017-05-25)
- Updated MediaInfo to v0.7.95 (2017-05-04), compiled with ICL 17.0 and MSVC 12.0
- Updated SoX to v14.4.2 (2015-02-22) with Dynamic Audio Normalizer v2.10 (2017-04-14) effect included
- Updated mpg123 decoder to v1.24.0 (2017-03-02), compiled with GCC 6.3.0
- Updated FAAD decoder to v2.7 from CVS in order to include latest libFAAD fixes (2016-11-11)
- Updated Monkey's Audio binary to v4.25 (2017-03-12), compiled with ICL 17.0 and MSVC 14.0
- Some tweaks to the auto-update function in order to speed-up the update check in most situations
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.14 [2016-11-19]
- Upgraded build environment to Microsoft Visual Studio 2015 with Update-3
- Fixed the location of temporary intermediate files for SoX-based audio effects
- Fixed embedding of meta tags with OggEnc2 when reading directly from OGG/FLAC input file
- Fixed encoding of non-Stereo sources with NeroAAC, when "HE-AAC v2 (SBR+PS)" is selected
- Fixed a bug that would cause the encoding job to fail, when an audio filter is skipped
- Enabled the "built-in" resampler for QAAC encoder
- The "Algorithm Quality" slider now also affects the QAAC encoder
- Added "AVX" (Advanced Vector Extensions) to CPU feature detection code
- Updated Opus encoder/decoder libraries to v1.2-alpha and Opus-Tools to v0.1.9 (2016-11-04)
- Updated LAME encoder to v3.100 Alpha-2 (2016-01-29), compiled with ICL 15.0 and MSVC 12.0
- Updated FLAC encoder/decoder to v1.3.1 (2016-10-04), compiled with ICL 17.0 and MSVC 12.0
- Updated MediaInfo to v0.7.90 (2016-10-31), compiled with ICL 17.0 and MSVC 12.0
- Updated mpg123 decoder to v1.23.8 (2016-09-27), compiled with GCC 6.2.0
- Updated ALAC decoder to refalac v1.61 (2016-10-02)
- Updated WavPack decoder to v4.80.0 (2016-03-28), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.21 (2016-08-17), compiled with GCC 6.1.0
- Updated QAAC add-in to the to QAAC v2.61 (2016-10-02)
- Updated FhgAacEnc add-in to "Case" edition (2015-10-24)
- Improved auto-update function (faster Internet connectivity check)
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.13 [2015-12-12]
- Upgraded build environment to Microsoft Visual Studio 2015 with Update-1
- Apply the original file's "creation" and "last modified" date/time to the output file (optional)
- Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015
- Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0
- Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87
- Fixed creation of Monkey's Audio (APE) files, when no meta data is being embedded
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.12 [2015-10-23]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-5
- Updated Qt runtime libraries to v4.8.7 Final (2015-05-25), compiled with MSVC 12.0
- Added support for building LameXP and MUtilities with Visual Studio 2015
- Added Hungarian translation, contributed by Zityi's Translator Team <zityisoft@gmail.com>
- Added optional support for the libfdk-aac encoder, using the fdkaac front-end by nu774
- Added detection of the 64-Bit version of QAAC encoder, requires 64-Bit Apple Application Support
- Added enhanced file renaming option: Default file extensions can now be overwritten
- Added enhanced file renaming option: Files can now be renamed via the regular expression engine
- Added capability to select multiple files on "Source Files" tab
- Updated Vorbis encoder to OggEnc v2.87 (2015-08-03), using libvorbis v1.3.5 and aoTuV b6.03_2015
- Updated MediaInfo to v0.7.76 (2015-08-06), compiled with ICL 15.0 and MSVC 12.0
- Updated mpg123 decoder to v1.22.4 (2015-08-12), compiled with GCC 5.1.0
- Updated ALAC decoder to refalac v1.47 (2015-02-15), based on reference implementation by Apple
- Updated Monkey's Audio binary to v4.16 (2015-03-24), compiled with ICL 15.0 and MSVC 12.0
- Updated WavPack decoder to v4.75.0 (2015-05-25), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.19 (2015-02-27), compiled with GCC 4.9.2
- Fixed potential deadlock in Cue Sheet import dialog when "Browse..." button is clicked
- Fixed function to restore the default Temp folder, if custom Temp folder doesn't exist anymore
- Fixed parsing of command-line parameters, regression in MUtilities library (LameXP v4.12 RC-1)
- QAAC encoder is now using
--cvbr
instead of --abr
when "ABR" mode is selected - Enable the embedding of cover artwork for Opus encoder (opusenc), using the
--picture
option - Some installer improvements have been implemented (especially in "update" mode)
- Full support for Windows 10 RTM (Build #10240)
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.11 [2015-04-05]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-4
- Starting with this version, LameXP is based on the MUtilities library + massive code clean-up
- Added support for the DynamicAudioNormalizer normalization filter
- Updated Qt runtime libraries to v4.8.7 snapshot-5 (2015-03-25), compiled with MSVC 12.0
- Updated MediaInfo to v0.7.72 (2015-01-07), compiled with ICL 15.0 and MSVC 12.0
- Updated SoX to v14.4.2-Final (2015-02-22), compiled with ICL 15.0 and MSVC 12.0
- Updated Opus libraries to v1.1.x and Opus-Tools v0.1.9 to latest Git Master (2015-03-26)
- Updated mpg123 decoder to v1.22.0 (2015-02-24), compiled with GCC 4.9.2
- Updated Vorbis encoder to OggEnc v2.87 (2014-07-03), using libvorbis v1.3.4 and aoTuV b6.03_2014
- Updated Vorbis decoder to OggDec v1.10.1 (2015-03-19), using libVorbis v1.3.5
- Updated FLAC encoder/decoder to v1.3.1 (2014-11-26), compiled with ICL 15.0 and MSVC 12.0
- Updated GnuPG to v1.4.18 (2014-06-30), compiled with GCC 4.9.1
- Updated QAAC add-in to the latest to QAAC v2.44, including a fix for the
--artwork
option - Fixed potential crash in Cue Sheet importer (occurred when all input files were missing)
- Fixed a severe performance bottleneck, especially with a large number of parallel instances
- Fixed a very rare problem that, occasionally, prevented the TEMP folder from being removed
- The limit for the maximum number of parallel instances has been increased to 32
- Experimental support for Windows 10 Technical Preview
- Updated language files (big thank-you to all contributors !!!)
LameXP v4.10 [2014-06-23]
- Upgraded build environment to Microsoft Visual Studio 2013 with Update-2
- Updated Qt runtime libraries to v4.8.6 (2014-04-25), compiled with MSVC 12.0
- Updated Opus libraries to v1.1.x and Opus-Tools v0.1.8 to latest Git Master (2014-04-13)
- Updated MediaInfo to v0.7.69 (2014-04-26), compiled with ICL 14.0 and MSVC 12.0
- Updated mpg123 decoder to v1.19.0 (2014-03-08), compiled with GCC 4.8.2
- Fixed a bug that could cause the cover artwork to be lost under certain circumstances
- Fixed "overwrite existing file" mode to NOT delete the input file
- Some more tweaks to the LAME algorithm quality selector
- Added command-line options to adjust the LameXP font size (see Manual for details)
- Various bugfixes and code improvements
LameXP v4.09 [2014-01-26]
- Upgraded build environment to Microsoft Visual Studio 2013 RTM
- Complete overhaul of the file analyzer, resulting in up to 2.5x faster file import speed
- Reworked the application initialization code, resulting in notably faster startup speed
- Added encoding support for Monkey's Audio (APE) format, including APEv2 tagging support
- Improved file analyzer to retain the original ordering of files imported from a playlist
- Improved internal encoder API, so each encoder can define its own configuration options
- Improved splash screen and working banner, using "sheet of glass" effect on supported OS
- Improved dropbox widget, including proper multi-monitor support
- Updated Opus encoder/decoder libraries to v1.1 and Opus-Tools to v0.1.8 (2013-12-05)
- Updated Monkey's Audio binary to v4.12 (2013-06-26)
- Updated mpg123 decoder to v1.16.0 (2013-10-06), compiled with GCC 4.8.1
- Updated WavPack decoder to v4.70.0 (2013-10-19), compiled with ICL 14.0 and MSVC 12.0
- Updated MediaInfo to v0.7.67 (2014-01-10), compiled with ICL 14.0 and MSVC 12.0
- Updated GNU Wget binary to v1.14.0 (2012-08-05), compiled with GCC 4.8.1
- Updated GnuPG to v1.4.16 (2013-12-13), compiled with GCC 4.8.1
- Updated the QAAC add-in for LameXP to QAAC v2.33 (2014-01-14), compiled with MSVC 12.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a resource (file descriptor) leak in "static" builds, didn't cause much harm though
- Various bugfixes and code improvements
LameXP v4.08 [2013-09-04]
- Upgraded build environment to Microsoft Visual Studio 2012 with Update-3
- Encoder settings (RC mode + bitrate/quality) are now stored separately for each encoder
- Updated Qt runtime libraries to v4.8.5 (2013-05-31), compiled with MSVC 11.0
- Updated FLAC encoder/decoder to v1.3.0 (2013-05-27), compiled with ICL 13.0
- Updated Opus encoder/decoder libraries to v1.1-beta and Opus-Tools to v0.1.6 (2013-07-22)
- Updated MediaInfo to v0.7.64 (2013-07-05), compiled with ICL 13.1 and MSVC 10.0
- Updated GnuPG to v1.4.14 (2013-07-25), compiled with GCC 4.8.1
- Updated GNU Wget binary to v1.13.4 (2011-09-17)
- Updated language files (big thank-you to all contributors !!!)
- Fixed a potential deadlock during startup when %TMP% points to an invalid folder
- Fixed a superfluous "beep" sound that appeared on application startup
- Fixed the Ogg Vorbis quality modes "-1" and "-2" (those were clipped to "0" before)
- Fixed a bug that could cause the output directory to be reset mistakenly
- Implemented "natural order" string comparison/sorting, using strnatcmp() by Martin Pool
LameXP v4.07 [2013-04-28]
- Upgraded build environment to Microsoft Visual Studio 2012 with Update-2
- Minimum supported platform now is Windows XP with Service Pack 3
- Added option to select the "overwrite mode" to advanced options tab
- Added option to filter the log entries on the "processing" dialog (see context menu)
- Added "Up One Level" button to the output folder tab
- Added Opus decoder option to output always at the native sample rate of 48.000 Hz
- Updated Qt runtime libraries to v4.8.4 (2012-11-29), compiled with MSVC 11.0
- Updated Opus encoder/decoder libraries to v1.1.x and Opus-Tools to v0.1.6 (2013-04-23)
- Updated Valdec decoder (2013-04-07), based on AC3Filter Tools v1.0a
- Updated mpg123 decoder to v1.15.3 (2013-04-03), compiled with GCC 4.8.0
- Updated MediaInfo to v0.7.62 (2013-02-22), compiled with ICL 12.1.7 and MSVC 10.0
- Updated Monkey's Audio binary to v4.11 (2013-01-20)
- Updated SoX to v14.4.1 (2012-02-09), compiled with ICL 13.0 and MSVC 10.0
- Updated GnuPG to v1.4.13, compiled with GCC 4.7.2
- Updated language files (big thank-you to all contributors !!!)
- Fixed handling of certain characters when passing meta tags on the command-line
- Fixed handling of certain characters when renaming output files
- Fixed Keccak library to not crash on systems without SSE/SSE2 support
- Fixed LAME algorithm quality selector better match the LAME documentation
LameXP v4.06 [2012-11-04]
- Updated Opus encoder/decoder libraries to v1.0.1 and Opus-Tools to v0.1.5 (2012-09-22)
- Updated mpg123 decoder to v1.14.4+ (2012-09-24), compiled with GCC 4.7.1
- Updated ALAC decoder to refalac v0.56 (2012-10-24), based on reference implementation by Apple
- Updated Qt runtime libraries to v4.8.3 (2012-09-13), compiled with MSVC 10.0
- Updated MediaInfo to v0.7.61+ (2012-10-28), compiled with ICL 12.1.7 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a bug with the "Store temporary files in your system's default TEMP director" checkbox
- Fixed a buffer overflow in FAAD2 decoder which could cause crashes with very long file names
- Fixed a regression in Qt v4.8.3 that broke Drag&Drop support (details #1) (details #2)
- Reworked the "About..." dialog – now using a custom dialog instead of message boxes
LameXP v4.05 [2012-09-03]
- Added support for Opus Audio Codec, based on Opus-Tools v0.1.4 (2012-08-16) by Xiph.org/Mozilla
- Added Swedish translation, thanks to Åke Engelbrektson <eson57@gmail.com>
- Updated Qt runtime libraries to v4.8.2 (2012-05-22), compiled with MSVC 10.0
- Updated mpg123 decoder to v1.14.4 (2012-07-26), compiled with GCC 4.6.1
- Updated MediaInfo to v0.7.59 (2012-08-08), compiled with ICL 12.1.7 and MSVC 10.0
- Updated optional add-ins for QAAC encoder and FHG AAC encoder (see Manual for details)
- Updated DCA Enc to v2 (2012-04-19), compiled with ICL 12.1.7 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Implemented multi-threading in file analyzer for faster file import (about 2.5x to 6.0x faster!)
- Implemented multi-threading in initialization code for faster application startup
- Fixed a potential crash (stack overflow) when adding a huge number of files
- Fixed a problem with Cue Sheet import and files that contain trailing dots in their name
- Workaround for a bug (feature?) of Qt's command-line parser that screwed up some arguments
LameXP v4.04 [2012-04-26]
- Added support for the QAAC Encoder, requires QuickTime v7.7.1 or newer (see Manual for details)
- Added Chinese and Taiwanese translations, thanks to 456Vv <123@456vv.com>
- Added experimental support for DCA Enc, created by Alexander E. Patrakov <patrakov@gmail.com>
- Added CSV export/import for Meta tags (available from the context-menu on the "Source Files" tab)
- Added a button to modify the current output folder path in an edit box
- Updated Qt runtime libraries to v4.8.1 (2012-03-14), compiled with MSVC 10.0
- Updated LAME encoder to v3.99.5 Final (2012-02-28), compiled with ICL 12.1.7 and MSVC 10.0 (details)
- Updated MediaInfo to v0.7.56 (2012-04-08), compiled with ICL 12.1.7 and MSVC 10.0
- Updated SoX to to v14.4.0 (2012-03-04), compiled with ICL 12.1.7 and MSVC 10.0
- Updated mpg123 decoder to v1.13.6 (2011-03-11), compiled with GCC 4.6.1
- Updated Monkey's Audio binary to v4.11 (2011-04-20)
- Updated Musepack decoder to revision 475 (2011-08-10), compiled with ICL 12.1.6 and MSVC 10.0
- Updated GnuPG to v1.4.12, compiled with GCC 4.6.1
- Updated language files (big thank-you to all contributors !!!)
- Implemented coalescing of update signals to reduce the CPU usage of the LameXP process (details)
- Run more than four instances in parallel on systems with more than four CPU cores
- Improved handling of different character encodings for Playlist and Cue Sheet import
- Tweaked directory outline on "output folder" tab for improved performance (hopefully)
- Improved LameXP inter-process communication by adding queue support
- Workaround for a bug that causes MediaInfo to not detect the duration of Wave files (64-Bit only)
- Prevent LameXP from blocking a system shutdown (encoding process is aborted, if necessary)
- Improved internal handling of MediaInfo output, including extraction of cover art
- Fixed a very rare "live-lock" situation in early initialization code
LameXP v4.03 [2011-11-12]
- Added an option to rename the output files (based on an user-defined naming pattern)
- Added an option to enforce Stereo Downmix for Multi-Channel sources
- Added "built-in" WMA decoder (see this thread for details) and removed all remnants of "old" decoder
- Added optional support for the FHG AAC Encoder included with Winamp 5.62
- Added a menu for bookmarking "favorite" output folders to the "output folder" tab
- Added an option to hibernate the computer (aka "Suspend-to-Disk") instead of shutting it down
- Added Polish translation, thanks to Sir Daniel K <sir.daniel.k@gmail.com>
- Added channel equalization options to the normalization filter (also fixes multi-channel processing)
- Added indicators for current CPU usage, RAM usage and free diskspace to the processing window
- Updated Qt runtime libraries to v4.8.0 RC-1 (2011-10-13), compiled with MSVC 10.0
- Updated LAME encoder to v3.99.1 Final (2011-11-05), compiled with ICL 12.1.6 and MSVC 10.0 (details)
- Updated mpg123 decoder to v1.13.4 (2011-09-07), compiled with GCC 4.6.1
- Updated MediaInfo to v0.7.51 (2011-11-11), compiled with ICL 12.1.6 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Improved "downmix" filter by using explicit channel mappings for each number of input channels
- Fixed a potential bug in CPU type detection that might have caused the wrong binary to be used
- Fixed Cue Sheet import for tracks with certain characters in the title
- Fixed a bug with "Prepend relative source file path to output file" under certain conditions
- Workaround for malicious "anti-virus" programs that prevent innocent applications from functioning
- Enabled "Aero Glass" theme in installer and web-update program (Vista and Windows 7 only)
- Restored Windows 2000 support with Visual Studio 2010 builds (this is experimental!)
- The "Open File(s)" and "Open Folder" dialogs will now remember the most recent directory
- Miscellaneous bugfixes
LameXP v4.02 [2011-06-14]
- Upgraded build environment to Microsoft Visual Studio 2010
- Dropping support for Windows 2000 and Windows XP RTM. Windows XP needs (at least) Service-Pack 2 now!
- Added Cue Sheet import wizard, which allows splitting and importing tracks from Cue Sheet images
- Added ATSC A/52 (AC-3) encoding support, based on Aften encoder v0.0.8+ (Git Master)
- Added Avisynth input (audio only!) using 'avs2wav' tool, partly based on code by Jory Stone
- Added a method to use custom tools instead of the "built-in" ones (see Manual for details)
- Added an option to copy all meta information of a single file over to the "meta information" tab
- Added two new command-line switches: "--add-folder " and "--add-recursive "
- Added one new translation: Korean
- Updated Qt runtime libraries to v4.7.3
- Updated LAME encoder to v3.99.1.0 (2011-04-15), compiled with ICL 12.0.3 and MSVC 10.0 (details)
- Updated Vorbis encoder to v2.87 using aoTuV Beta-6.03 (2011-05-04), compiled with ICL 11.1 and MSVC 9.0
- Updated mpg123 decoder to v1.13.3 (2011-04-21), compiled with GCC 4.6.0
- Updated MediaInfo to v0.7.45 Beta (2011-05-02), compiled with ICL 12.0.3 and MSVC 10.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed placement of the Dropbox when the Taskbar is located on the top or on the left side
- Improved playlist generation: Generate M3U (Latin-1) or M3U8 (UTF-8) playlist file as required
- Only show the most recent 50 items in the "processing" window (for better performance)
- Miscellaneous bugfixes
LameXP v4.01 [2011-04-04]
- Added an option to manually specify the number of parallel instances
- Added an option to select a user-defined TEMP directory
- Added an option to shutdown the computer as soon as all files are completed
- Added an option to add directories recursively
- Added support for embedding cover artwork (currently works with LAME, FLAC and Nero AAC only)
- Updated Qt runtime libraries to v4.7.2
- Updated LAME encoder to v3.99.0.16 (2011-04-04), compiled with ICL 12.0.2
- Updated Vorbis encoder to v2.87 using aoTuV Beta-6.02 (2011-02-28), compiled with ICL 11.1 and MSVC 9.0
- Updated TTA decoder multiplatform library to v2.1 (2011-03-11), compiled with MSVC 9.0
- Updated SoX to v14.3.2 (2010-02-27), compiled with ICL 12.0.2
- Updated MediaInfo to v0.7.43 (2011-03-20), compiled with ICL 12.0.2 and MSVC 9.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed a problem with the LAME encoder that could cause glitches in the encoded file (VBR mode only)
- Fixed a problem with the LAME encoder that could cause very slow encoding speed
- Fixed a bug that caused AAC encoding to fail in CBR mode (the "-2pass" parameter was set wrongly)
- A warning message will be emitted, if diskspace drops below a critical limit while processing
LameXP v4.00 [2011-02-21]
- Complete re-write of LameXP in the C++ programming language
- Switched IDE from Delphi 7.0 to Visual Studio 2008 + Qt Framework v4.7.1 (GNU Toolchain not yet)
- Added cross-plattfrom support - only Windows and Wine for now, native Linux version planned
- Added full Unicode support for file names, meta tags and translations (no more Codepage headaches!)
- Added support for Qt Linguist tool, which makes creating/updating translations much easier
- Added support for multiple user interface styles, including "Plastique" and "Cleanlooks" themes
- Added support for user-defined encoder parameters (please use with care!)
- Added support for a true "portable" mode, which will store the configuration in the program folder
- Added resampling filter for all encoders, based on SoX
- Added simple tone adjustment filter, based on SoX
- Added an option to prepend the relative source file path to the output file path
- Updated all command-line tools to support Unicode file names, mostly required custom patches
- Updated LAME encoder to v3.99.0.11 (2011-02-11), compiled with ICL 11.1.065
- Updated Vorbis encoder to v2.87 using libvorbis v1.3.2 (2010-11-06), compiled with ICL 11.1 and MSVC 9.0
- Updated mpg123 decoder to v1.13.2 (2011-02-19), compiled with GCC 4.5.2
- Updated MediaInfo to v0.7.41 (2011-01-24), compiled with ICL 11.1.065
- Updated SoX to v14.3.1 (2010-04-11), compiled with MSVC 9.0
- Updated GnuPG to v1.4.11, compiled with GCC 4.5.2
- Updated language files (big thank-you to all contributors !!!)
- Removed TAK support for now, as their CloseSource(!) tools don't support Unicode file names yet
- Removed Volumax tool, as we are using SoX for normalization from now on
- Countless minor fixes and improvements (hopefully not too many regressions ^^)
LameXP v3.xx History
LameXP v3.19 [2010-07-12]
- Updated MediaInfo to v0.7.34 (2010-07-09), compiled with ICL 11.1.065
- Updated mpg123 decoder to v1.12.3 (2010-07-11), compiled with GCC 4.6.0
- Updated language files (big thank-you to all contributors !!!)
- Fixed decoding of certain invalid WavPack files
LameXP v3.18 [2010-05-08]
- Added an Unicode-safe "Open" dialog: File names are converted to "short" names if required
- Fixed mpg123 decoder to work on Windows 2000 (reported by Tim Womack)
- Updated LAME encoder to v3.98.4 (2010-03-23), compiled with ICL 11.1.054
- Updated MediaInfo to v0.7.32 (2010-05-02), compiled with ICL 11.1.065
- Updated mpg123 decoder to v1.12.1 (2010-03-31), compiled with GCC 4.4.4
- Updated Ogg Vorbis decoder to v1.9.7 (2010-03-29), compiled with MSVC 9.0
- Updated language files (big thank-you to all contributors !!!)
LameXP v3.17 [2010-02-21]
- Updated TAK decoder to v2.0.0 (2010-01-07)
- Updated ALAC decoder to v0.2.0 (2009-09-05)
- Updated MediaInfo to v0.7.28 (2010-02-19), compiled with ICL 11.1.054
- Fixed "No Disk" error message box that could appear under certain circumstances
- Fixed "...is not responding" error message box that could appear during startup
- Various minor fixes and improvements
LameXP v3.16 [2010-01-26]
- Added support for Nero AAC encoder v1.5.3.0 (2009-12-29)
- Disable DPI warning on Vista and later, as they handle DPI != 96 much better than WinXP
- Updated WavPack decoder to v4.60.1 (2009-11-29)
- Updated MediaInfo to v0.7.27 (2010-01-04), compiled with ICL 11.1.054
- Updated GnuPG to v1.4.10b (2009-09-03), compiled with GCC 4.2.1
LameXP v3.15 [2009-12-24]
- Added support for Nero AAC encoder v1.5.1.0 (2009-12-17)
- Updated mpg123 decoder to v1.10.0 (2009-12-05)
- Updated MediaInfo to v0.7.26 (2009-12-18), compiled with ICL 11.1.051
- Updated AC3Filter Tools to v0.31b (2009-10-01), compiled with ICL 11.1.051
LameXP v3.14 [2009-12-01]
- Added Suspend and Resume buttons to the processing window
- Added another language: Castilian Spanish (Spanish from north/central Spain)
- Updated mpg123 decoder to v1.9.2 (2009-11-20)
- Updated MediaInfo to v0.7.25 (2009-11-13), compiled with ICL 11.1.046
- Updated AC3Filter Tools to v0.31b (2009-10-01), compiled with ICL 11.1.046
- Updated language files (big thank-you to all contributors !!!)
- Updated JEDI-VCL from v3.38 to v3.39 (2009-11-05)
- Various minor fixes and improvements
LameXP v3.13 [2009-10-21]
- Updated LAME encoder to v3.98.2 (2009-09-26), compiled with ICL 11.1.046
- Updated FLAC encoder to v1.2.1b (2009-10-01), compiled with ICL 11.1.046
- Updated MediaInfo to v0.7.23 (2009-10-16), using statically linked build (MSVC 9.0)
- Updated AC3Filter Tools to v0.31b (2009-10-01)
- Updated TAK decoder to v1.1.2 (2009-07-27)
- Updated mpg123 decoder to v1.9.1 (2009-10-09)
- Updated language files (big thank-you to all contributors !!!)
- Updated the Splash screen and modified the sound that plays on very first launch
- Updated JEDI-VCL from v3.34 to v3.38 (2009-08-27)
- Updated GnuPG to v1.4.10 (2009-09-02)
LameXP v3.12 [2009-09-19]
- Added support for FLAC (Free Lossless Audio Codec) output
- Added progress display for individual files (for the "encoding" step only)
- Added a SSE2 (Pentium 4) build of the Ogg Vorbis encoder that will be used if supported by the CPU
- Added options to override the Nero AAC profile (be aware: it's not recommended to do that!)
- Added an option to analyze media files (powered by MediaInfo™)
- Added experimental support for Windows 7 taskbar progress indicator and overlay icons
- Updated LAME encoder to v3.98.2 (2009-09-05), compiled with ICL 11.0
- Updated MediaInfo to v0.7.21 (2009-09-04), using statically linked build
- Updated mpg123 decoder to v1.9.0 (2009-08-14)
- Updated Speex decoder to v1.2 RC-1 (2009-07-04)
- Updated AC3Filter Tools to v0.3b (2009-09-19)
- Updated Auto-Update tool, from now on only signed updates will be accepted (using GnuPG)
- Fixed a number of minor glitches
LameXP v3.11 [2009-06-22]
- Added options to sort the source files (by title, by filename or by track number)
- Updated language files (big thank-you to all contributors !!!)
- Updated mpg123 decoder to v1.8.1 (2009-06-14)
- Updated FLAC decoder, now using the ICL 9.1 build of FLAC v1.2.1b
- Updated MediaInfo to v0.7.17 (statically linked)
- Updated the "Normalization" filter to v0.41 (2009-06-16)
- Fixed a few minor issues in meta tag processing
LameXP v3.10 [2009-06-11]
- Added a NSIS-based installer (will be released in addition to the ZIP package)
- Added support for the TAK lossless audio format
- Added two new languages: Serbian (Latin) and Ukrainian
- Updated language files (big thank-you to all contributors !!!)
- Updated MediaInfo to a custom build of v0.7.16 that is statically linked (and removed the DLL)
- Updated mpg123 decoder to v1.8.0 RC-3 (2009-06-03)
- Updated Musepack decoder to v1.0.0 (2009-04-02) and fixed Musepack VS8 support
- Updated Monkey's Audio decoder to v4.06 (2009-03-17)
- Updated the "Normalization" filter to allow multiple instances running in parallel
- Updated Auto-Update tool
- Fixed a few minor issues and refactored the code
LameXP v3.09 [2009-06-01]
- Added support for detecting the file type via MediaInfo instead of guessing the type from file extension
- Updated mpg123 decoder to v1.7.3 (2009-04-27)
- Updated FAAD decoder to v2.7 (2009-05-13)
- Updated MediaInfo to v0.7.16.0 (2009-05-20)
- Fixed detection of the WMA decoder under certain circumstances (e.g. Windows 7)
LameXP v3.08 [2009-03-05]
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.7 (2009-03-04)
- Updated mpg123 decoder to v1.6.4 (2009-01-10)
- Updated MediaInfo to v0.7.11.0 (2009-02-13)
LameXP v3.07 [2008-12-24]
- Added an option to disable multi-threading on multi-core machines
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.61 (2008-12-24)
- Updated mpg123 decoder to v1.6.3 (2008-12-20)
- Updated MediaInfo to v0.7.8.0 (2008-12-10)
- Updated language files (big thank-you to all contributors !!!)
LameXP v3.06 [2008-10-26]
- Added a custom build of the mpg123 decoder v1.5.1
- Added two more languages: Romanian and Polish
- Added support for the ALAC audio format
- Updated MediaInfo to v0.7.7.7 (2008-10-17)
- Updated AC3 Filter Tools to v0.2a (2008-06-30)
- Updated language files (big thank-you to all contributors !!!)
- Fixed and improved "Normalization" filter
- Fixed a few minor bugs
LameXP v3.05 [2008-10-11]
- Added support for Nero AAC encoder v1.3.3.0
- Added option to add an entire directory or an entire directory-tree
- Added new languages: Russian, Nederlands, Greek and Hungarian
- Added Dropbox for improved Drag&Drop support
- Updated language files (big thank-you to all contributors !!!)
- Updated LAME encoder to v3.98.2 Final (2008-09-24)
- Updated MediaInfo to v0.7.7.6 (2008-09-12)
LameXP v3.04 [2008-09-26]
- Added support for reading Meta Data from source files (using MediaInfo)
- Added support for languages: English, German, French, Spanish, Italian, Japanese, Chinese (Simplified) and Taiwanese
- Added support for WMA, Shorten and TTA files (input only)
- Added support for various playlist formats (M3U, PLS, ASX, CueSheet)
- Added an option to permanently disable the Shell Intgegration (Explorer Conext Menus)
- Added an option to disable the periodic Update Reminder
- Added an option to shutdown the computer automatically as soon as all files are completed
- Added code to minimize the LameXP window into the taskbar notification area
- Added balloon tooltip to inform the user about "hidden" options
- Updated Ogg Vorbis encoder to v2.85, libvorbis v1.2.1 RC2, aoTuV b5.6 (2008-09-05)
- Improved code to handle child processes and capture the console output
LameXP v3.03 [2008-08-12]
- Added generic support for pre-processing filters
- Added "Normalization" filter, based on Volumax by John33
- Improved code to add/remove context menus in Window Explorer
- Improved code to handle multiple instances of LameXP
LameXP v3.02 [2008-08-06]
- Added support for new input format: MPEG Audio Layer-2 (mp2)
- Added option to choose a custom TEMP folder
LameXP v3.01 [2008-08-01]
- Added an option to disable all sounds in LameXP
- Added warning message for bitrates that violate the current bitrate restriction
- Fixed bitrate restrictions for LAME encoder (strictly enforce bitrate restrictions using "-F" parameter)
- Fixed file associations code (set file associations only for the current user)
- Updated load/save configuration code (store settings in an INI file instead of the registry)
LameXP v3.00 [2008-07-04]
- Added support for Nero's AAC Encoder (not included, available as free download from Nero website)
- Added support for more input formats: Wave, MP3, Ogg Vorbis, AAC/MP4, FLAC, Speex, WavPack, Musepack, Monkey's Audio
- Added support for uncompressed Wave output
- Added support for Multi-Threading (use multiple instances for batch processing)
- Added shell integration for Windows Explorer (Context-Menus and "Send To" folder)
- Added commandline support: LameXP.exe -add <File 1> [<File 2> ... ]
- Added Auto-Update utility to periodically check for new updates
- Updated LAME encoder to v3.98 Final (2008-07-04)
- Updated Ogg Vorbis encoder to v2.85, aoTuV Beta-5.5 (2008-03-31)
LameXP v2.xx History
LameXP v2.03 [2007-08-17]
- Updated LAME encoder to v3.98 to Beta-5 (2007-08-13)
- Updated Ogg Vorbis encoder to v2.84 aoTuV Beta-5 (2007-08-17)
- Fixed a bug with 'title' meta tags
- Fixed a few typos
LameXP v2.00 [2007-02-19]
- Added Ogg Vorbis encoder
- Updated LAME encoder to latest builds
- Improved progress display (parsing encoder progress from console output now)
- Improved ID3-Tag support (now supports "title" and "track" fields)
- Added feature to automatically generate playlists (.m3u)
- Many bug-fixes and GUI improvements
LameXP v1.xx History
LameXP v1.00 [2004-12-10]
by LoRd_MuldeR <mulder2@gmx.de> | http://muldersoft.com/
EOF
\ No newline at end of file
diff --git a/doc/Changelog.md b/doc/Changelog.md
index 3f0bd5f5..3bb0f3b3 100644
--- a/doc/Changelog.md
+++ b/doc/Changelog.md
@@ -16,6 +16,7 @@ subtitle: "Audio-Encoder Front-End – Changelog"
* Added Bulgarian (български) translation, thanks to Симеон Илиянов Цветков [](mailto:sicvetkov@uni-sofia.bg)
* Added command-line switch `--no-splash`, which can be used to hide the "splash" screen at startup
* Added a workaround for missing `normaliz.dll` to the installer (Windows XP only)
+* GnuPG has been replaced by CodeSign verification tool for checking the auto-update signatures
## LameXP v4.18 [2019-12-18] ## {-}
* Upgraded build environment to Microsoft Visual Studio 2017.9 (MSVC 14.16)
diff --git a/res/Tools.gpgv.qrc b/res/Tools.gpgv.qrc
deleted file mode 100644
index 32539286..00000000
--- a/res/Tools.gpgv.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/gpgv.exe
diff --git a/res/Tools.keyring.qrc b/res/Tools.keyring.qrc
deleted file mode 100644
index 855e1784..00000000
--- a/res/Tools.keyring.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/keyring.gpg
diff --git a/res/Tools.verify.qrc b/res/Tools.verify.qrc
new file mode 100644
index 00000000..ed7c0057
--- /dev/null
+++ b/res/Tools.verify.qrc
@@ -0,0 +1,2 @@
+
+tools/verify.exe
diff --git a/res/_ALL.qrc b/res/_ALL.qrc
index 9ea480e0..bf951c80 100644
--- a/res/_ALL.qrc
+++ b/res/_ALL.qrc
@@ -230,8 +230,6 @@
tools/flac.x64-sse2.exe
tools/flac.x86-i686.exe
tools/flac.x86-sse2.exe
- tools/gpgv.exe
- tools/keyring.gpg
tools/lame.x64-avx.exe
tools/lame.x64-sse2.exe
tools/lame.x86-i686.exe
@@ -270,6 +268,7 @@
tools/speexdec.exe
tools/tta.exe
tools/valdec.exe
+ tools/verify.exe
tools/vorbiscomment.exe
tools/wma2wav.exe
tools/wupdate.exe
diff --git a/res/tools/gpgv.exe b/res/tools/gpgv.exe
deleted file mode 100644
index 9f1b4e96d08bd29419d7dfb202e2f45e6ddfb0d5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 201728
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 hZ^2EZUfCep?21u3<1yGb{63bj(B0FC815hF7zj
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 |