| kLAME is a GUI
wrapper for the LAME
file compression utility. It was designed to allow a number of WAV
files to be converted to mp3 using one or more sets of options,
options; destination directory and filename tag. kLAME provides bulk
conversion in one operation with the
being stored in the selected directories. Threaded operation allows the
full power of latest multicore CPUs to be used for maximum speed. An
example of use is to
as well as lower quality compressed files for transmission or
kLAME was originally developed using QT3 initially, then imported to
3.3.1 (which includes a fork of QT3). It has now been ported to QT5. kLAME is provided under the GPL 3 licence.
The port to QT4 showed up some interesting problems.
18 March 2013: kLAME
is currently outdated and needs significant bug fixing and conversion
to later versions of QT. It works under Linux with QT4.8 but the
Windows version is no longer usable.
3 March 2016: Updated to QT5.
need QT5, gcc and the latest version of Lame installed. For Ubuntu
install qt4-developer, qt5-qmake, g++, libmp3lame0, libmp3lame-dev. In
the kLAME directory use:
The klame executable will be found in the klame directory.
Note: These instructions are outdated. To compile on Windows
you will need to install QT5 and MinGW and set
system environment up according to the instructions provided with MinGW
and QT5 open source edition. This is not straightforward so read the
documentation carefully. Some additional information is provided in
INSTALL-QT4 file found in the kLAME source. If you wish to use an
there are some notes provided here
under DevC++, although its recommended to
use Eclipse. You can either install the Eclipse IDE or
work from the command line. Unzip one of the source packages, change to
the source directory and run:
earlier statically built Windows package is provided
for the brave, foolhardy and lazy (those after my own heart), however
it requires the MinGW runtime libraries to be installed and may not work on recent Windows distributions..
The main window for
kLAME has a table of filenames and option columns, with a row for each
file and a column for each conversion option set that includes LAME
options, a destination
directory and a filename tag used to describe the converted files. The window
provides a toolbar with a set of buttons described below. Columns are
provided with checkboxes that can be used to select whether the
will be converted according to the options set for the particular
Project. All settings are cleared to defaults.
The full set of columns, options and LAME options can be saved
for later restoration.
This dialogue allows the user to select a list of filenames and have
them added to a table for later conversion. Additional selections will
result in the additional files being added.
Files. This removes the currently selected row.
Columns. When pressed an additional column is added with default
removes the currently selected column (or the last one if no
selection is made).
Options. When a column is added, LAME options must be set. These are
able to be set for any selected column, or if no column is selected,
for the last column. LAME options described separately below.
the conversion operation. This performs all conversions
requested, and informs with a message box when complete.
tabbed form provides for most of the more common options to be passed
General Output options.
This refers to the column for which options are being
set. Defaults to a selected column if present, or else to the last
Allows selection of a different output directory for each
Allows for a tag to be added to the end of a filename (before the
first dot) to distinguish the different conversion products.
settings. This saves a simple one-line string identical to that passed
to LAME as options. These options can be used for creating new projects
with standard LAME option settings.
settings. When loaded, the options string is parsed and the settings
are made directly in the settings form.
Basic LAME Settings
settings are described on the LAME website, the MAN page for LAME and
the information given by the --longhelp and --preset help options to LAME.
These can change in meaning over time, so please check the website.
Note that the documentation is often outdated for some options. The
most accurate documentation appears to be in the --longhelp option.
chooses between VBR (quality) and ABR/CBR (bitrate).
This is a slider between 10 and 100, and provides the VBR
quality setting associated with -v. The option associated with -v is
determined by subtracting the slider value from 100 and dividing by 10.
Algorithm. Chooses between --vbr-old and --vbr-new.
"use CBR". If CBR is checked, this sets --cbr and -b n. If not
checked this sets --abr n. The slider provides the value of n.
Advanced LAME settings.
(-m) Various mode settings (mono, stereo etc).
Setting from a spin box 0-9 with default 5. This sets a quality
factor tradeoff with bitrate that is additional to that specified for
the VBR conversions.
Pass Frequency (kHz).
Pass Width (kHz).
Pass Frequency (kHz).
Pass Width (kHz).
(kHz) (--cwlimit). Limit to which audible frequencies are
Bandwidth (-k). No filtering applied, not even defaults. Can result in
These are a set of optimized default settings. It is not
clear if these can be used with other specific settings.
Minimum VBR Bitrate (-b). If checked, a VBR minimum bitrate of 115kHz
default is used, and minimum bitrate settings for ABR and CBR are
added. LAME can experience problems if the value is too low
compared to the average bitrate.
Maximum VBR Bitrate (-B). If checked, a maximum bitrate can be set on
the slider. This can also cause problems with LAME if its value is too
(--resample). If checked, the selected resample frequency
given in the spinbox) is used.
Measure (-X). Measures 0 to 9 given in a spinbox.
This allows any other options to be specified. These are
parsed and invalid options are discarded if the checkbox is selected
(default). Any options added that clash with those set on the form will
take precedence. Any LAME option can be specified (watch that LAME does
not change options over time). Options relating to stdout outputs are
This is a
binary file (QT format) with an ASCII header with the program name and
date, followed by:
for the wav files
Linux, settings will be saved in the .config/Jiggerjuice directory in
your home folder. In Windows they are in the registry
do to improve kLAME but it is substantially providing the functions
necessary for my work.
- Add some navigation buttons to Help.
- Add some more advanced options tabs for LAME.
- Allow other input formats, such as raw PCM.
- Do other conversions such as mp3 back to wav,
- Handle various tag headers such as ID3.
Changes (see README)
- Fixed a problem where columns could not be selected if no
rows were visible.
- Added Doxygen development documentation.
- Fixed the same display problem in QT4.3.
- Fixed a display problem in QT4.2 that was not present in
- Some refactoring to eliminate global variables and
implement signals and slots for progress dialogue.
- Corrected a bug that incorrectly identified the directory
name when a file dialog was cancelled.
- Added a check and an offer to create a non-existing output
directory in the options dialogue.
- Fixed a problem accessing an array beyond its bounds that
caused a segfault.
- Fixed a problem where initial settings for main window size
and location put it off screen under Windows.
- Fixed a bug where kLAME would hang waiting for non-existent
threads to finish.
- Fixed a bug where some directory paths did not have a
trailing separator under Windows.
- Minor change to remove 512MB limitation on wav file size.
- Port from QT3 to QT4.
- Added threading and a global progress indication.
- Added menus, added row deletion, changed column deletion
- Fixed a bug that did not synchronise sliders and spinboxes.
- Added a call to flush the LAME buffers at end of conversion.
- Added some traps in the event a file was not found during
- Port from QT4 to QT5.
The latest source code is kept on GitHub. The zip file can be downloaded and extracted to a suitable directory.
binary (includes mingw10.dll) klame-2.0.4.exe. This has only been tested on Windows XP and is not guaranteed to work on other distributions.
"The QT Company" http://www.qt.io/
"Minimalist GNU for Windows MinGW" http://www.mingw.org/
Warning: this author uses
popular PC operating system sparingly
and usually on
emergency basis, and for playing games of course. All software is
developed on and for Linux, which
only OS worth spending time and effort on, apart from the Commodore 64
My email address can be constructed
username "ksarkies" and the
ISP DNS address internode.on.net