From 011f204e558298baa4911d2c51e93cd9677fc796 Mon Sep 17 00:00:00 2001
From: LoRd_MuldeR
Date: Tue, 12 Dec 2023 00:39:28 +0100
Subject: [PATCH] Updated Opus encoder/decoder libraries to v1.4+9 (2023-11-03)
and Opus-Tools to v0.2+34 (2023-11-12).
---
LameXP_VS2019.vcxproj | 210 +++++++++++++++++++--------------
LameXP_VS2019.vcxproj.filters | 42 ++++---
doc/Changelog.html | 2 +-
doc/Changelog.md | 1 +
res/Tools.opusdec-avx.qrc | 2 -
res/Tools.opusdec-i686.qrc | 2 -
res/Tools.opusdec-sse2.qrc | 2 -
res/Tools.opusdec-x64-avx2.qrc | 2 +
res/Tools.opusdec-x64-sse2.qrc | 2 +
res/Tools.opusdec-x86-i686.qrc | 2 +
res/Tools.opusdec-x86-sse2.qrc | 2 +
res/Tools.opusenc-avx.qrc | 2 -
res/Tools.opusenc-i686.qrc | 2 -
res/Tools.opusenc-sse2.qrc | 2 -
res/Tools.opusenc-x64-avx2.qrc | 2 +
res/Tools.opusenc-x64-sse2.qrc | 2 +
res/Tools.opusenc-x86-i686.qrc | 2 +
res/Tools.opusenc-x86-sse2.qrc | 2 +
res/Tools.tag.qrc | 2 +
res/_ALL.qrc | 15 ++-
res/tools/opusdec.avx.exe | Bin 343552 -> 0 bytes
res/tools/opusdec.i686.exe | Bin 276992 -> 0 bytes
res/tools/opusdec.sse2.exe | Bin 327168 -> 0 bytes
res/tools/opusdec.x64-avx2.exe | Bin 0 -> 278528 bytes
res/tools/opusdec.x64-sse2.exe | Bin 0 -> 267776 bytes
res/tools/opusdec.x86-i686.exe | Bin 0 -> 173568 bytes
res/tools/opusdec.x86-sse2.exe | Bin 0 -> 296448 bytes
res/tools/opusenc.avx.exe | Bin 654336 -> 0 bytes
res/tools/opusenc.i686.exe | Bin 448000 -> 0 bytes
res/tools/opusenc.sse2.exe | Bin 638464 -> 0 bytes
res/tools/opusenc.x64-avx2.exe | Bin 0 -> 470528 bytes
res/tools/opusenc.x64-sse2.exe | Bin 0 -> 431616 bytes
res/tools/opusenc.x86-i686.exe | Bin 0 -> 288768 bytes
res/tools/opusenc.x86-sse2.exe | Bin 0 -> 445440 bytes
src/Tools.h | 14 ++-
35 files changed, 181 insertions(+), 133 deletions(-)
delete mode 100644 res/Tools.opusdec-avx.qrc
delete mode 100644 res/Tools.opusdec-i686.qrc
delete mode 100644 res/Tools.opusdec-sse2.qrc
create mode 100644 res/Tools.opusdec-x64-avx2.qrc
create mode 100644 res/Tools.opusdec-x64-sse2.qrc
create mode 100644 res/Tools.opusdec-x86-i686.qrc
create mode 100644 res/Tools.opusdec-x86-sse2.qrc
delete mode 100644 res/Tools.opusenc-avx.qrc
delete mode 100644 res/Tools.opusenc-i686.qrc
delete mode 100644 res/Tools.opusenc-sse2.qrc
create mode 100644 res/Tools.opusenc-x64-avx2.qrc
create mode 100644 res/Tools.opusenc-x64-sse2.qrc
create mode 100644 res/Tools.opusenc-x86-i686.qrc
create mode 100644 res/Tools.opusenc-x86-sse2.qrc
create mode 100644 res/Tools.tag.qrc
delete mode 100644 res/tools/opusdec.avx.exe
delete mode 100644 res/tools/opusdec.i686.exe
delete mode 100644 res/tools/opusdec.sse2.exe
create mode 100644 res/tools/opusdec.x64-avx2.exe
create mode 100644 res/tools/opusdec.x64-sse2.exe
create mode 100644 res/tools/opusdec.x86-i686.exe
create mode 100644 res/tools/opusdec.x86-sse2.exe
delete mode 100644 res/tools/opusenc.avx.exe
delete mode 100644 res/tools/opusenc.i686.exe
delete mode 100644 res/tools/opusenc.sse2.exe
create mode 100644 res/tools/opusenc.x64-avx2.exe
create mode 100644 res/tools/opusenc.x64-sse2.exe
create mode 100644 res/tools/opusenc.x86-i686.exe
create mode 100644 res/tools/opusenc.x86-sse2.exe
diff --git a/LameXP_VS2019.vcxproj b/LameXP_VS2019.vcxproj
index 4c08fde3..9474ca63 100644
--- a/LameXP_VS2019.vcxproj
+++ b/LameXP_VS2019.vcxproj
@@ -1821,96 +1821,6 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Shared\plugins\i
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)"
- 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)"
- 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)"
- 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)"
- 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)"
- 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)"
@@ -2406,6 +2316,126 @@ copy /Y "$(SolutionDir)\..\Prerequisites\Qt4\$(PlatformToolset)\Shared\plugins\i
false
true
+
+ 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)"
+ "$(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)"
+ "$(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)"
+ "$(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)"
+ "$(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)"
+ "$(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)"
+ "$(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)"
+ "$(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
+
diff --git a/LameXP_VS2019.vcxproj.filters b/LameXP_VS2019.vcxproj.filters
index 3e897706..c701f642 100644
--- a/LameXP_VS2019.vcxproj.filters
+++ b/LameXP_VS2019.vcxproj.filters
@@ -959,24 +959,6 @@
Resources
-
- Resources
-
-
- Resources
-
-
- Resources
-
-
- Resources
-
-
- Resources
-
-
- Resources
-
Resources
@@ -1082,6 +1064,30 @@
Resources
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
+
+ Resources
+
diff --git a/doc/Changelog.html b/doc/Changelog.html
index 727b5ba3..7e31ea8b 100644
--- a/doc/Changelog.html
+++ b/doc/Changelog.html
@@ -1 +1 @@
- LameXP LameXP v4.xx History
LameXP v4.21 [2023-??-??]
- Upgraded build environment to Microsoft Visual Studio 2019.11 (MSVC 16.11)
- Updated the Windows SDK version to 10.0.19041.0
- Updated FLAC encoder/decoder to v1.4.3 (2023-06-23), compiled with ICL 2024.0 and MSVC 16.11
- Updated mpg123 decoder to v1.32.3 (2023-10-02), compiled with GCC 13.2.0
- Updated MediaInfo to v23.11 (2023-11-30), compiled with ICL 2023.2 and MSVC 16.11
- Updated cURL to v8.4.0 (2023-10-11), with libcurl v8.4.0 and OpenSSL v1.1.1w
LameXP v4.20 [2023-03-07]
- Updated FLAC encoder/decoder to v1.4.1 (2022-09-22), compiled with ICL 2022.2 and MSVC 15.9
- Updated Monkey's Audio binary to v8.92 (2022-10-07), compiled with ICL 2022.2 and MSVC 15.9
- Updated mpg123 decoder to v1.30.2 (2022-08-02), compiled with GCC 12.2.0
- Updated MediaInfo to v22.12 (2022-12-22), compiled with ICL 2022.2 and MSVC 15.9
- Implemented workaround for
DwmEnableBlurBehindWindow()
not working on Windows 11 - Updated cURL to v7.87.0 (2022-12-21), with libcurl v7.87.0 and OpenSSL v1.1.1s
LameXP v4.19 [2021-08-29]
- 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
- Updated the Windows SDK version used for release builds (Visual Studio 2017) to 10.0.14393.0
- 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
+ LameXP LameXP v4.xx History
LameXP v4.21 [2023-??-??]
- Upgraded build environment to Microsoft Visual Studio 2019.11 (MSVC 16.11)
- Updated the Windows SDK version to 10.0.19041.0
- Updated Opus encoder/decoder libraries to v1.4+9 (2023-11-03) and Opus-Tools to v0.2+34 (2023-11-12)
- Updated FLAC encoder/decoder to v1.4.3 (2023-06-23), compiled with ICL 2024.0 and MSVC 16.11
- Updated mpg123 decoder to v1.32.3 (2023-10-02), compiled with GCC 13.2.0
- Updated MediaInfo to v23.11 (2023-11-30), compiled with ICL 2023.2 and MSVC 16.11
- Updated cURL to v8.4.0 (2023-10-11), with libcurl v8.4.0 and OpenSSL v1.1.1w
LameXP v4.20 [2023-03-07]
- Updated FLAC encoder/decoder to v1.4.1 (2022-09-22), compiled with ICL 2022.2 and MSVC 15.9
- Updated Monkey's Audio binary to v8.92 (2022-10-07), compiled with ICL 2022.2 and MSVC 15.9
- Updated mpg123 decoder to v1.30.2 (2022-08-02), compiled with GCC 12.2.0
- Updated MediaInfo to v22.12 (2022-12-22), compiled with ICL 2022.2 and MSVC 15.9
- Implemented workaround for
DwmEnableBlurBehindWindow()
not working on Windows 11 - Updated cURL to v7.87.0 (2022-12-21), with libcurl v7.87.0 and OpenSSL v1.1.1s
LameXP v4.19 [2021-08-29]
- 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
- Updated the Windows SDK version used for release builds (Visual Studio 2017) to 10.0.14393.0
- 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 0ff69844..838ed1de 100644
--- a/doc/Changelog.md
+++ b/doc/Changelog.md
@@ -9,6 +9,7 @@ subtitle: "Audio-Encoder Front-End – Changelog"
## LameXP v4.21 [2023-??-??] ## {-}
* Upgraded build environment to Microsoft Visual Studio 2019.11 (MSVC 16.11)
* Updated the Windows SDK version to 10.0.19041.0
+* Updated Opus encoder/decoder libraries to v1.4+9 (2023-11-03) and Opus-Tools to v0.2+34 (2023-11-12)
* Updated FLAC encoder/decoder to v1.4.3 (2023-06-23), compiled with ICL 2024.0 and MSVC 16.11
* Updated mpg123 decoder to v1.32.3 (2023-10-02), compiled with GCC 13.2.0
* Updated MediaInfo to v23.11 (2023-11-30), compiled with ICL 2023.2 and MSVC 16.11
diff --git a/res/Tools.opusdec-avx.qrc b/res/Tools.opusdec-avx.qrc
deleted file mode 100644
index 5eb47ea6..00000000
--- a/res/Tools.opusdec-avx.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusdec.avx.exe
diff --git a/res/Tools.opusdec-i686.qrc b/res/Tools.opusdec-i686.qrc
deleted file mode 100644
index 7188cdd8..00000000
--- a/res/Tools.opusdec-i686.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusdec.i686.exe
diff --git a/res/Tools.opusdec-sse2.qrc b/res/Tools.opusdec-sse2.qrc
deleted file mode 100644
index dbe091d1..00000000
--- a/res/Tools.opusdec-sse2.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusdec.sse2.exe
diff --git a/res/Tools.opusdec-x64-avx2.qrc b/res/Tools.opusdec-x64-avx2.qrc
new file mode 100644
index 00000000..15e1af16
--- /dev/null
+++ b/res/Tools.opusdec-x64-avx2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusdec.x64-avx2.exe
diff --git a/res/Tools.opusdec-x64-sse2.qrc b/res/Tools.opusdec-x64-sse2.qrc
new file mode 100644
index 00000000..40b612de
--- /dev/null
+++ b/res/Tools.opusdec-x64-sse2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusdec.x64-sse2.exe
diff --git a/res/Tools.opusdec-x86-i686.qrc b/res/Tools.opusdec-x86-i686.qrc
new file mode 100644
index 00000000..37219a1a
--- /dev/null
+++ b/res/Tools.opusdec-x86-i686.qrc
@@ -0,0 +1,2 @@
+
+tools/opusdec.x86-i686.exe
diff --git a/res/Tools.opusdec-x86-sse2.qrc b/res/Tools.opusdec-x86-sse2.qrc
new file mode 100644
index 00000000..9484489f
--- /dev/null
+++ b/res/Tools.opusdec-x86-sse2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusdec.x86-sse2.exe
diff --git a/res/Tools.opusenc-avx.qrc b/res/Tools.opusenc-avx.qrc
deleted file mode 100644
index 914ec51d..00000000
--- a/res/Tools.opusenc-avx.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusenc.avx.exe
diff --git a/res/Tools.opusenc-i686.qrc b/res/Tools.opusenc-i686.qrc
deleted file mode 100644
index ce9c41ae..00000000
--- a/res/Tools.opusenc-i686.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusenc.i686.exe
diff --git a/res/Tools.opusenc-sse2.qrc b/res/Tools.opusenc-sse2.qrc
deleted file mode 100644
index f5a4fa0a..00000000
--- a/res/Tools.opusenc-sse2.qrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tools/opusenc.sse2.exe
diff --git a/res/Tools.opusenc-x64-avx2.qrc b/res/Tools.opusenc-x64-avx2.qrc
new file mode 100644
index 00000000..f75fb59b
--- /dev/null
+++ b/res/Tools.opusenc-x64-avx2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusenc.x64-avx2.exe
diff --git a/res/Tools.opusenc-x64-sse2.qrc b/res/Tools.opusenc-x64-sse2.qrc
new file mode 100644
index 00000000..fafcf46e
--- /dev/null
+++ b/res/Tools.opusenc-x64-sse2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusenc.x64-sse2.exe
diff --git a/res/Tools.opusenc-x86-i686.qrc b/res/Tools.opusenc-x86-i686.qrc
new file mode 100644
index 00000000..80f5e905
--- /dev/null
+++ b/res/Tools.opusenc-x86-i686.qrc
@@ -0,0 +1,2 @@
+
+tools/opusenc.x86-i686.exe
diff --git a/res/Tools.opusenc-x86-sse2.qrc b/res/Tools.opusenc-x86-sse2.qrc
new file mode 100644
index 00000000..e2fc1288
--- /dev/null
+++ b/res/Tools.opusenc-x86-sse2.qrc
@@ -0,0 +1,2 @@
+
+tools/opusenc.x86-sse2.exe
diff --git a/res/Tools.tag.qrc b/res/Tools.tag.qrc
new file mode 100644
index 00000000..aa1b7769
--- /dev/null
+++ b/res/Tools.tag.qrc
@@ -0,0 +1,2 @@
+
+tools/tag.exe
diff --git a/res/_ALL.qrc b/res/_ALL.qrc
index 612ff900..cbbb32aa 100644
--- a/res/_ALL.qrc
+++ b/res/_ALL.qrc
@@ -253,12 +253,14 @@
tools/oggenc2.i686.exe
tools/oggenc2.sse2.exe
tools/oggenc2.x64.exe
- tools/opusdec.avx.exe
- tools/opusdec.i686.exe
- tools/opusdec.sse2.exe
- tools/opusenc.avx.exe
- tools/opusenc.i686.exe
- tools/opusenc.sse2.exe
+ tools/opusdec.x64-avx2.exe
+ tools/opusdec.x64-sse2.exe
+ tools/opusdec.x86-i686.exe
+ tools/opusdec.x86-sse2.exe
+ tools/opusenc.x64-avx2.exe
+ tools/opusenc.x64-sse2.exe
+ tools/opusenc.x86-i686.exe
+ tools/opusenc.x86-sse2.exe
tools/refalac.i686.exe
tools/refalac.sse2.exe
tools/refalac.x64.exe
@@ -267,6 +269,7 @@
tools/sox.i686.exe
tools/sox.sse2.exe
tools/speexdec.exe
+ tools/tag.exe
tools/tta.exe
tools/valdec.exe
tools/verify.exe
diff --git a/res/tools/opusdec.avx.exe b/res/tools/opusdec.avx.exe
deleted file mode 100644
index 20e664d944a55b52e340a871b224d567c6fe82e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 343552
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