
                 _____.  __________.  __________. __ _____
                /     |_/    __    |_/    __    | \//    /
                |     ||      /    ||      /    |  /    /
                |     ||           ||           | /    /__
                |____/|__________/|__________/ \___/ \/
                .-----. http://www.1oo-percent.de .------.
                Name: LAMEr             Author: Devil/1oo%
                $VER: 1.00             Release: 16-Dec-00
                Type: Front-End for Lame


                                                          ...diSclaimer --.
- - ----------------------------------------------------------------------'
USE ENTIRELY AT YOUR OWN RISK. Neither I nor any other of the 1oo% members
will take ANY responsibility if this program causes damage to your head,
computer system or social behavior.

If this text looks strange formatted you're probably not using a fixed-
width font... which means you are lame... :)


                                                        ...introdUction --.
- - ----------------------------------------------------------------------'
LAMEr is a so-called Front-End for LAME. If you have no idea what LAME is,
then better skip this text and browse to http://www.sulaco.org/mp3 and
leech it! LAME is one of the best MP3 encoders I have ever seen - and the
best thing about it: it is completely free and available with full source
code.

Due to the nature of LAME being a command line only program, it is not so
nicely to handle as other MP3 encoders if you're not a hardcore user eager
to remember and type all the parameters you need for the encoding job. Not
speaking about batch encoding of multiple files, which is impossible with
the stand-alone LAME executable.

Introducing LAMEr by 1oo% - now, you have a GUI for setting parameters
quick 'n' easy, the possibility of batch encoding, including tagging the
encoded files with ID3 tags. You can specify the Title field of the ID3
Tag separately for EACH file, a feature not available in most of the other
front ends or generally encoders. This eases the task of correcly tagging
encoded files, which people didn't care much about in the past.


                                                               ...fActs --.
- - ----------------------------------------------------------------------'
o LAMEr is written in pure C++ - no lame and oversized code generating
  language like Basic or even worse: Delphi!

o support of encoding multiple files in a batch

o ID3 Tag support with the possibility of setting the ID3 Title for each
  file separately

o realtime encoding of input from line-in (etc.), encode what you hear
  on the fly!

o acts as a decoder as well, using LAME's excellent decoding feature

o report view of your last encoding session, overall statistics, and
  other gimmicks. :)


                                                             ...crEdits --.
- - ----------------------------------------------------------------------'
o programmed by Devil/1oo%

o LAMEr picture and icons by Miracle/1oo%

o HyperLink code used within the About dialog by Giancarlo Iovino
  (nice work!)


                                                        ...rEqUirements --.
- - ----------------------------------------------------------------------'
LAMEr has been tested on Windows 98 (SE) and Windows 2000 machines. It
SHOULD also work on Win95/ME and of course on NT systems. I don't recommend
any specific system or processor type 'cause LAME should work everywhere.
Having a GHz machine is nice of course :) but encoding works fine on old
Pentium/K6-x machines with barely no power :) as well.

Required DLLs are "MFC42.dll" and "MSVCRT.dll" and they should already been
placed in your win\System\ directory. It is possible that old (!) Win95
installations don't have them -> download them from Microsoft in that case.

Of course you need LAME "installed" on your system. LAMEr has been written
for and tested with LAME (release) version 3.70 and the beta versions 3.86
and 3.87. LAMEr will work with other versions of LAME as long as it
sends about the same output. If it doesn't work, please mail me and tell
me about the version you are using and describe the occurring error and I
will fix it ASAP.


                                                        ...instAllation --.
- - ----------------------------------------------------------------------'
Just copy the LAMEr.exe to a directory of your choice. That's all! Because
we in 1oo% are sick of programs writing stuff to the registry withou
deleting those keys upon deinstallation, here's what LAMEr adds to your
registry:

All 1oo% programs use a root key called "1oo%" located in the section
"HKEY_LOCAL_MACHINE\Software\1oo%"; LAMEr just creates another sub-key
called "LAMEr" in that branch. If you don't like or don't use LAMEr any
more (why on earth would you?! :-) you can safely remove the whole "LAMEr"
key and everything is fine.

In case you're not familiar with RegEdit or it scares the hell out of you,
you can run lamer with the "--ClearReg" argument to have the keys removed
automatically (or you can use the ClearReg.bat included in the archive).


                                                       ...cOnfigurAtion --.
- - ----------------------------------------------------------------------'
o Paths

  - LAME Executable: yes, you need to select a Lame executable to make
       LAMEr work.
  - Encoder's Thread Priority: it's the "priority" Lame.exe runs with. You
       should not set this to "idle" because Lame will do nothing as long
       as you do anything with your system. In "realtime" mode Lame takes
       all available resources and runs with maximum speed... even faster
       than the progress window (which means: not advisable). :)
  - Always use source path(s): activating this checkbox places the
       encoded/decoded files into the same directory as the source files.

o Input Options

  - Input is raw PCM: enable this if your input files contain RAW audio
       data with no RIFF (.WAV etc) headers. When enabled you must also
       specify the input's sampling frequency 'cause Lame can't detect it
       without RIFF headers (oh really).
  - force Byte-Swapping: enable this if your raw input files were created
       with Motorola's byte-order. (e.g. files from Amiga and Mac)
  - downmix to mono: guess what.
  - delete source files: after encoding/decoding the source files will be
       deleted. For safety measures, a confirm requester has been added
       to the en-/decoding if this checkbox is activated.
  - disable all filters: Lame uses a low-pass filter per default in order
       to make the MP3s sound better. If you don't want it, disable it.
 
o MPEG Stream Options

  - copyrighted: marks the stream as "copyrighted", but who cares, anyway?
  - add 16 Bit Checksum: when enabled two bytes of every frame will be
       replaced by a checksum. Nice error protection, but it can cause a
       little loss in quality.
  - original: marks the stream as "original". Man, those flags don't mean
       a thing. :)
  - use ISO MPEG specs: this forces Lame to strictly use the ISO specs.
       It usually makes your MP3s larger with NO difference in quality.
  - don't use short blocks: all MPEG frames will use long blocks.

o Filter Settings

  Enable low-pass or high-pass filters only if you know what you're doing.
  This can make your MP3s sound "strange".

o Encoding

  - Version: MPEG 1 Layer III is default. Use the other MPEG versions only
       if you need a very low bitrate or some extraordinary sampling
       frequencies for resampling the input files.
  - Mode: Stereo is default and the best selection in most cases. Use
       Joint Stereo only if you are sure that the input files have nearly
       equal stereo channels.
  - use VBR: enable this if you want to use Variable Bitrate for encoding.
  - resample Input: resample your input files to the desired frequency.
       You also should enable this option if you want to encode with low
       bitrate and KEEP this frequency.

  Read LAME's "usage" text for more info about these settings.

o CBR (constant bit rate)

 - Bitrate: the desired bitrate.
 - fast mode: makes Lame somehow a bit faster by disabling noise shaping.
 - high quality: makes the Joint Stereo files better in quality but
       encoding will be about 20% slower. (that's what Lame's doc says)

o VBR (variable bit rate)

 - Bitrate Range: specify the minimum and maximum bitrates for your MP3s.
 - never fall below min. VBR: enable this if you don't want Lame to use a
       bitrate below your specified minimum. NOTE: Lame is pretty smart in
       selecting good bitrates, so don't limit it. Remember that silence
       is silent with 8 kBit and with 320 kBit, too. 
 - no Xing tags: VBR MP3s usually have a header identifying them as VBRs.
       This header contains, by the way, the word "XING" and a table of
       offsets which makes it easy for players to seek within the file
       (allowing the position slider of your player to work correctly).

o Parameters

  Click on "Show Cmd Line" to see the parameters that will be passed to
  Lame in the commandline.
  You can also add other parameters if you need to. Like mentioned above:
  LEAVE IT ALONE IF YOU DO NOT KNOW WHAT YOU ARE DOING.
  If you add unsupported parameters, or even worse, forget the leading "-"
  or "--" of a parameter LAMEr will probably act strange and you might get
  even stranger results.


                                                               ...usAge --.
- - ----------------------------------------------------------------------'
First of all LAMEr's command line behavior:

--clearReg   use it to remove LAMEr's registry keys. (Config etc.)

<filename>   if you add a filename to the command line, this file will be
             automatically added to the list of files to batch-encode.

Well, what about the usage? I guess the GUI is pretty much self explaining.
Just select some files, adjust the config to your liking and hit the
"encode" (or "decode") button, that's all.

You'll then see a status window with progress information and other stuff.

After ENCODING you can view the generated report/stats to make sure that
everything was ok... of course you get a message if something went wrong,
anyway.

Tip: if you don't want the progress window to be updated so often, simply
     start the config and add the following line to the additional CLI
     parameters: "--disptime 1"
     Now the GUI is being updated every second instead of an 0.2 second
     interval (default).
     (This only works with Lame 3.87 and later!)


.-- RECORDER:
'-------- - -
Use it for realtime encoding of audio streams thru line-in or other input
devices. Just select the device from the list and adjust the input type
and buffer size. Note that the Recorder automatically sets the required
MPEG version for your selected input type 'cause certain frequencies are
not supported by all MPEG versions.

The default buffer size is 64kB and should be ok on most of the machines
around. If you running a slow system, try 4kB (or less) buffers 'cause
LAMEr will use more than two buffers to retrieve input.

Alright. Finally select an output file and go recording. During the
recording process you can still modify the ID3 Tag.


                                                   ...knOwn issUes/bugs --.
- - ----------------------------------------------------------------------'
o Decoding of VBRs

  while decoding VBRs the progress bar might show odd behaviour. This
  happens with all Lame versions I have tested so far. Lame seems not to
  be able to pre-calculate the true number of frames within the MP3 stream.
  So the progress bar will probably jump from a certain point straight to
  100%... this is more a "cosmetic" bug 'cause the stream gets decoded
  correctly, anyway.

o Decoding of damaged/strange MP3s

  during my tests I've discoverd that Lame sometimes crashes while decoding
  damaged or not-by-the-book-encoded MP3s. This hopefully gets fixed in the
  next beta version.

o Realtime encoding of VBRs

  yet another issue with VBRs. Usually Lame writes those VBR header stuff
  right after it's done with the source, but LAMEr's recorder will cancel
  Lame before doing it. So the final MP3 is still ok and has no errors but
  many players (such as WinAMP) may have problems pre-calculating the true
  song length of the MP3 and may display different lengths all the time.

o High frequencies and low bitrates

  if you want to encode a 44.1 kHz Wave with a very low bitrate, for
  example 64 kBit, Lame will automatically resample the input to 22.05 kHz
  because it will sound better! So if you still want to use the high
  frequency, force Lame by enabling the "resample input" option and select
  44.1 kHz. But trust me, 22.05 kHz will sound way better.
  So this "problem" is more a feature than a bug. ;)

o Using alternative compiles of Lame

  there are a couple of alternative Lame versions around and I tried only
  a few. The compile with Ogg Vorbis support seems to NOT work properly
  with LAMEr, so don't use it. :-/


                                                             ...histOry --.
- - ----------------------------------------------------------------------'
       Changes/Fixes                                             Date:

v0.96  initial version with most of the above mentioned          13-Sep-00
       features already included

v0.97  Added: - optional delete partial encoded files            26-Sep-00
              - remove registry keys (command line!) option
              - possibility of selecting NO genre for the ID3 Tag
       Fixed: - elapsed/estimated batch time calculation bug
              - "Punk" is on demand no longer the default genre...
                but hey, what else would you encode? :)

v0.97d Added: - Drag'n'Drop support                              02-Oct-00
              - progress in percent
              - nice picture by Miracle/1oo%
       Fixed: - time output (changed in Lame 3.87)

v0.97e Some minor changes to the code, optical corrections and   06-Oct-00
       a couple of other small things.

v0.98  Rewritten code for the progress window which hopefully    17-Oct-00
       fixes all those small calculation bugs. The BATCH progress
       should now be updated correctly.
       Enabled removing Listview Items with the DEL key.

v0.99  Added: - main windows disappears during encoding          21-Oct-00
              - a new button of the config gui allows you to
                check the generated Command Line string
              - possibility of writing all encoded files
                directly to the source directory of the input
                files
              - report/stats view for those detail freaks
                ok, I like it, too! ;)
       Fixed: - small time calculation bug caused by lags in
                Lame's output

v0.99b Added: - decoding support                                 26-Oct-00
       Added: - more pre-encoding checks for those crazy people
                out there
       Added: - single instance check
       Fixed: - small 'output filename' bug

v0.99c Added: - MP3 Recorder                                     02-Nov-00
              - pre-implementation of the Tag Editor

v0.99d Fixed a couple of little bugs. Even some progress with    06-Nov-00
-0.99f the Tag Editor.. but it'll probably not be finished for   28-Nov-00
       the final release.

v1.00  first public version.                                     16-Dec-00



                                                  ...thAnks & greetings --.
- - ----------------------------------------------------------------------'
Thanks to oVaMaZZtA for his moral support and keeping me coding 'til dawn,
and thanks to a couple of (lucky?!) people for testing LAMEr and reporting
bugs... 

Greetings (in alphabetical order and probably incomplete):
The whole 1oo% crew, Error.inside, Lander, MDeth, oVaMaZZtA, Terror,
Tomato KiD, Tupi, Zarastustra.



         _                    ...how the hell cAn I contact this Devil? --.
.--- - --\/-- - ----------------------------------------------------------'
|                                    <devil@1oo-percent.de>         (email)
|                                 <devil@p-lost.franken.de>         (email)
|                                                 <ask4it!> _         (AIM)
`------- - - http://www.franken.de/users/p-lost/ - - ---- --\/-- ---- - -






                      b a r i n g  a n y  s e n s e 

                  :::::::  .::::::::::::::.  .::::::::::::::.
                 ::::::::  :::::::  :::::::  :::::::  :::::::
                :::::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
   ______     _______    ______     _______    _______    ______    _________
.__\     \_.__\  ___/_:__\___  \_.__\ ____/_.__\  ___/_:__\  _  \_ _\  _     |
|    _     |    ______|     _  _/|.   \     |    ______|.    \    |   /______|
|.    \____|:   \     |.    /   \|:         |.   \     |:    /    |.     \
|:_    \   | _        |:   /     | _        |:_        |    /     |:_     \
:-)_____\  :-)________|---/______|-)________|-)________|---/______|-)______\
                  .......  .......  .......  .......  .......
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  :::::::  :::::::  :::::::  :::::::
                  :::::::  `::::::::::::::'  `::::::::::::::'

                   <LAMEr v1.00>  <16-Dec-00>  <Devil> 