http://mp3Extractor.com

Manual / Help / Description

manual version 09-05-14 for program version 09-05-14

Index
1. What does this program do?
1.1 Brief description
1.2 Motivation

2. Getting started
    2.1 Requirements / Limitations
    2.2 Installation
            1. Check / install Winamp
            2. Mp3Extractor installation
            3. Acquainting mp3Extractor with Winamp
    2.3 First steps with mp3Extractor - A guide to quick results

3. Program Description

     3.1 A new project
            1. Choosing an input audio file

            2. Checks on the input file: History check
            3. Checks on the input file: PreScan
            4. Saving an MLF
            5. The project idea in mp3Extractor - Some words of warning
            6. General Project Options
    3.2 (Re)opening projects
    3.3 Controlling Winamp
            1. Synchronizing Winamp
            2. The track bar
            3. Adjustable speeds for fast forward and rewind: Step and Page
            4. Jumping to markers
            5.
Playing From Marker
            6.
Playing To Marker
            7. Settings for and problems with
Playing To Marker
           
8. Navigating Winamp using the marker bar
            9. Two hours in 20 minutes: Random Skip
    3.4 Setting Markers
            1. The four markers: in, out, cut, check
            2. Marker type vs. marker effect - and the color codes
            3. The marker bar
            4. Setting markers for trimming
            5. Splitter Wizard
    3.5 The marker list spreadsheet and its tag entries
            1. The fixed columns: Marker Time and Type
            2. The tag columns: Artist, Title, Album, Comment, Year
            3. How to enter tag information: The list's editing modes
            4. Copy & paste
    3.6 Resetting / converting / deleting markers
            1. Resetting
            2. Moving
            3. Converting types
            4. Deleting
    3.7 Extracting - Starting the actual file extraction
            1. File naming modes
            2. The extraction process
    3.8  Trimming
    3.9  Project links
           0. Web Links: Browsing your source's web sites
           1. Downloading and linking a file to a project
           2. Viewing linked files
          
3. Linking a local file
    3.10 Finally cleaning up: The CleanupExpert
    3.11 Miscellaneous
            0.
Controlling mp3Extractor via command line
            1. Mp3Extractor file association: *.mlf
            2. The Send To command in Windows Explorer
            3. MP3 Joiner tool
            4. MP3 Corrector tool
    3.12 MP3 Gain Visualization

4. Bits and pieces - Q&A
    4.1 Why doesn't this program have a standard Windows help file?
    4.2 The latter portion of my tag entry got lost! First it was there but now it's gone!
    4.3 How precise is cutting with mp3Extractor?
    4.4 
    4.5 Why is there such a restrictive project file naming convention?
    4.6 I have an MLF without the corresponding audio file and I can't open it. What's wrong?
    4.7 Why can't mp3Extractor be used with Winamp 3?
    4.8 mp3Extractor does not work with my audio file. I get funny error messages. What is wrong?




1. What does this program do?

1.1 Brief Descriptionfull.gif

Mp3Extractor's main objective is to extract one or several (adjacent or non adjacent, but no overlapping) portions from an audio file and write them to new (optionally tagged) audio file files. It can also be used to trim and split audio files.

The portions to be extracted (or where to trim, respectively) are determined by listening to the input file and dropping markers at the supposed times.

mp3Extractor does not include a player but uses Nullsoft Winamp 2 or 5 under (bi-directional) remote control. So, you can either navigate through your file using Winamp's interface - or control Winamp entirely through mp3Extractor. The latter is recommended (and obligatory for VBR files!) as it is specifically optimized for doing the job of scanning the input file and finding the right places for your markers - even in large files. However, by using Winamp, you still benefit from all of Winamp's features, such as the equalizer.

All the markers dropped appear on a spreadsheet where they can be modified and the playback can, of course, be made to jump to them. Additional information entered in the spreadsheet will be used to tag the exported audio files (and optionally written to a database). The spreadsheet data (marker times, marker type, tag information) can be saved to a tab delimited text file of the same name as the input file (InputFileName.mlf)

.

to index

1.2 Motivation

This program was originally written with the objective of simplifying the otherwise enervating process of cutting hour-long radio music shows: separating interesting songs from crap like the DJ's talk, the news, station jingles and the mass of uninteresting music - and write out these tracks (and only these tracks) properly named and tagged. There are lots of programs that can cut audio files (e.g. MP3TrackMaker which I used myself before deciding to write this program). However, THIS is my idea of how to do this quickly and efficiently on a regular basis. You will not find audio visualization (much too slow with large files and not very helpful when there are no obvious gaps in the audio signal). There are no means of audio editing (fading etc.) as I consider this too much fussing around. Everything is conceived to avoid any unnecessary mouse usage, as this always slows things down. Navigating the input file, setting, checking, and moving markers can (and should!) be done using keyboard shortcuts. Only then you will discover the true power and ease of mp3Extractor. Take some time to practice, it will pay off! If you have an idea on how to speed things up further, please let me know.

to index


2. Getting started

2.1 Requirements / Limitations

OS compatibility

32 bit Windows. Mp3Extractor was developed and tested under Windows ME.
All basic features should work under Win 9x,  the download client might not work with very old versions like 95 first release.

Tested and adapted to Windows XP. Compatibility probably covers all newer NT-based systems including Win 2000.


Requires Winamp 2.8 (April 2002) or Winamp 5

2.05 at least is essential, but you will experience problems with the Play To Marker feature with versions older than 2.8.
For best results, makes sure you have the current Winamp 2 or 5
(2.9x or 5)

Does NOT work with: Winamp 3 and never will.  Why?  With the release of Winamp 5, this problem is off the agenda. :o)

Supported audio file formats

1. MPEG layer III (*.mp3) version 1 and 2 (2.5 not tested).
2. Windows PCM Wave files (*.wav) (since 0406)
For details on both see below.

MP3 file requirements

MP3's should not contain any data except valid frames and ID3 tags (version 2 at byte zero only).
Variable bitrate files (VBR or ABR or patched files including different bit rates) are supported since 0406, but must have a Xing-style VBR header.
These conditions will be checked on project creation, incompatible files will be modified on request (Corrector tool).

mp3Extractor
has been tested mainly with input MP3's created by the Lame encoder (layer 3 version 1 - CD sampling rate) with bit rates between 80 and 192 kbps (joint stereo) and lengths between two and three hours.


If problems occur with other file sizes, encoders and bit rates, especially concerning cutting precision, please let me know so that I can have a look at the issue.

WAV files

WAV files will, in most cases, be of a simple and strict standard format. However, there are countless varieties out there and it seems hopeless to consider them all. This program only performs minimum checks on WAV files (unlike MP3's) and tries to take a flexible approach towards different formats, which will, hopefully, work out fine with most formats. It works smoothly, for example, with compressed WAV files (ADPCM) that are generated by my Medion MP3 player in record mode. The problem with this approach is that it might always fail unexpectedly. Please let me know of such cases - a solution will probably be right at hand.


Other issues

This program as well as Winamp need write access to the directories where their executables are located for the mp3Extractor to work correctly. (Don't try to run them from a CD or on a system that restricts access to the mentioned directories to read-only.)

Screen resolution: 800 x 600 minimum. 1024 x 768 or more recommended.
Demands on system speed are generally low as audio data is not visualized. However, frame to frame scans of large files (if necessary) can be time consuming on slow machines. And considerable number crunching is necessary when seeking in VBR files (offset correction by cyclic approximation)  but any 7th generation CPU (vulgo: ~500 MHz up) should be fine.

to index


2.2 Installation

2.2.1 Checking / installing Winamp

Make sure you have at least Winamp 2.8 or 5 installed (NOT Winamp 3), otherwise, download the installer from http://winamp.com  and complete the installation process. For help on installing and using Winamp, consult Winamp's help/ support.
Note unless you know:
Winamp is a very popular player, as it was, back in the 90's, distributed with the then quasi standard internet browser Netscape. It is FREE, at least in the standard version. All you need for mp3Extractor is the lightest version they offer - a rather tiny download.
 

2.2.2 Mp3Extractor installation

Now, you're ready to install mp3Extractor; just run the installer. There are no options to be considered, except for the installation directory.
 

2.2.3 Acquainting mp3Extractor with your Winamp 

The first time being run mp3Extractor will want to know the location (the full filename including path) of your Winamp installation. However, mp3Extractor will find Winamp on its own, if you make sure Winamp is running during this first start. There will be a reminder to that effect. If everything goes well, you'll be done.

Only if this auto detection fails (which is very unlikely, but who knows) you will have to set Winamp's location manually. Find out the path. It is probably something like C:\Programs\Winamp\winamp.exe. Search for "Winamp.exe" using the Windows file search in the Start Menu. If, for example, Winamp came with Netscape it will most likely be in Netscape's directory. Mp3Extractor will prompt you for the location of the Winamp program file (executable). A directory browser will pop up. Browse to the directory that contains "Winamp.exe" and click Open.

Only if Winamp moves out of sight, by reinstallation or other, will this procedure be necessary again. (Or if you delete mp3Extractor.ini for that matter.)

to index


2.3 First Steps with mp3Extractor - A guide to quick results

You are lost at what to do with mp3Extractor? This is the guide to getting started fast.

It is assumed in this guide that mp3Extractor and Winamp are already installed on your system and that mp3Extractor has already detected Winamp.

The next steps are as follows:

1. Starting a new project



For simplicity, start off by making Winamp play the input file that you want to extract from. (Consult Winamp's documentation on problems with Winamp.)
The scenery on your desktop will then look something like the screen shot on the right. You can now start a new project by clicking the Catch From Winamp button below the time display.
Depending on the program version, you might be asked if you'd like to "create an MLF" to save the new project. Decline this for simplicity as long as you are just trying things out. (Read below about saving projects.)
After a quick check of the input file, the new project will be opened and the program window will widen to show the marker list and all, as in the shot on the very top of this page. If you see a warning or error message instead, read details about the PreScan.
This catch from Winamp approach has the advantage, apart from being easy to explain, that Winamp is synchronized right away, that is, Winamp is actually playing the right audio file..
If problems occur or for details read this.

2. Navigating the input file



The next task is to find the portions you want to extract, or to be precise, the beginnings and endings of these portions.
You may use Winamp's interface to navigate your file, or take Winamp under remote control from mp3Extractor. The latter is recommended, this way, you will only have to deal with one window in the following. Note:
In mixed bit rate MP3's, direct access to Winamp will be blocked by mp3Extractor and remote control is obligatory.
Details about controlling Winamp through mp3Extractor.

3.a. Setting markers for extraction



MarkerBtns.gifFind the beginning of your desired track within your input file. Rewind a few seconds ahead of it (e.g. by clicking the Step back arrow button (<--) on mp3Extractor's main form)  and then click on the In button as playback passes along to set the in marker.
The In/ Cut / Out/ Check buttons are disabled? Winamp is not playing or playing the wrong track! Click the Synchronize Winamp button! Synchronizing Winamp
The result will be something like this:

 
As the gray bar suggests, extraction would now start at the In marker and extent up to the end of the input file.
Now find the end of your track and drop an
Out Marker:


At this stage, extraction in this example would yield a four minute track out of a two hour input file.
Repeat this procedure as many times as the number of tracks you want to get out of your input file.

For details and on how to extract consecutive tracks without gaps between them and the meaning of
cut and check markers read this.

3.b. Setting markers for trimming



You need one or two markers for trimming, depending on whether you want to trim your file at one end, only, or at both sides.
That means: If you want to cut away the first 20 seconds of your file, drop a marker there. If you want to cut off something at the end, drop a marker there. Or do both. (You will decide on the trimmer mode later, that is, after calling the trimmer routine.)
The task of setting markers is the same as in the above extraction example.
It does not matter what types of markers you use or how many additional markers you set, as trimming is done based on the first and/ or last markers in the list - of any type.

Now, you might be interesting in tuning your markers (see next point).

4. Checking and tuning markers



Basically you are ready now to extract your tracks, but as dropping markers while playback is moving along isn't exactly the most precise method for positioning markers, you might want to check and tune your marker first. (Else continue at the next point.)

InDblClick.gifThere are many ways to check a marker. For example: Double click on the marker time in the mark list to make Winamp jump to that marker. This way, out (and cut) markers will be played to marker, that is, playback will jump a little ahead of the marker and pause at the marker time. Details about and possible problems with this.

Having found out a marker isn't exactly where it is supposed to be, you might want to reset or move it. Here is how:
Select the marker in the list.

Resetting works like the initial dropping only that no new marker is created: Clicking the
Reset button will reset the marker's time property to Winamp's current playback time.
Buttons are disabled? Winamp is not playing or playing the wrong track! Click the Synchronize Winamp button! Synchronizing Winamp

If don't get it right this way, try moving the marker. Clicking a Move button will move the selected marker by one second back or ahead, respectively. Playback will automatically jump to the new marker time. (Again, Out and Cut markers will cause playing To Marker.)
One second will be a far too large step for fine tuning a marker. Try
right clicking the Move arrows instead, this will result in tenth of a second steps; the smallest steps available in mp3Extractor.
This should do for the moment.
In the long run it will be more efficient to use the space and backspace keys for moving ahead and back, respectively, and combine these with key factors as explained here for moving split or multiple seconds.

Markers can also be converted, that means, their type can be changed.

5. Adding track information



If you want to supply tag information for your extracted files, put them in the marker list.

Place the information for each track in line with the marker that starts this track.
That are the in or (preceding) cut markers, respectively, as in the screen shot.

6. Starting the extraction



When you're done setting and tuning all markers and having entered all tag information, click the Extract button to start the extraction.
For details on file naming modes and tagging read more here.

7. Saving/ re-opening projects



The information you entered with an mp3Extractor project can be saved to file (*.mlf). This program includes some mechanisms (the project history) to keep this MLF linked to the input audio file. The most important thing to keep in mind is that mp3Extractor will only re-open an MLF with an audio file of the same name. Therefore, there is no choice on the MLF's name on save.
More about the project idea in this program and some DO's and DONT's.
Consider setting some general project options according to your needs.

8. Cleaning Up



This feature is a tool for discarding projects the orderly way. Removes all project files in one step and keeps the project history clean.






to index


3. Program Description

NothingRunning.gif No Project, Winamp not running

to index

3.1 A new project

To start off with, you have an input audio file that you want to extract from.
 

3.1.1 Choosing an input audio file

Open that audio file in mp3Extractor by selecting Project -> New from the main menu. You have the choice of specifying a file location (-> Browse for audio file) or catching a file currently playing in Winamp (-> Catch From Winamp).
If Winamp is playing and there is no project open, the
context sensitive button below the time display has a similar effect (see screen shot).

You may also drag an audio file from Windows Explorer and drop it onto the program's form or use the Send To function in Windows Explorer.

Before mp3Extractor formally creates a new project, two checks are being performed (in the following order)
1. A history look-up.
2. A check of the input file (see below).

If everything goes well, a new project is created and written to history. (Earlier program versions wrote to history only on saving the MLF.)

Jump here to find out how to start working on the new project: Controlling Winamp
 

3.1.2 Checks on the input file: History check

The project history is being searched to find out if a project of the name of the chosen audio file is already known. The name of a mp3Extractor Project is the same as the audio file's without the file extension (and without the path). By convention, all files belonging to a project (beside the audio file, possibly an MLF, and optionally additional linked files, see below) have (and must have) the same (the project's) name and only differ in their file extensions. They do not have to be in the same directory, though. (Why is there such a restrictive project file naming convention?)

In case the project name already is in history, you will be asked some pop-up questions to avoid things getting screwed (and possibly work getting lost): One of which, of course, is the obvious one - if you meant to reopen an existing project.
JumpToTrack.gifOn reopening existing projects, the audio file will also be checked for signs of changes to audio data.
 

3.1.3 Checks on the input file: The PreScan

Mp3Extractor checks the input audio file for compatibility when a new project is created.
WAV files will either be accepted or rejected.

In case of MP3 files, the scan is a quite sophisticated procedure.
Its
main objective, apart from finding the exact output time, is to detect variable bit rate MP3's, VBR headers, junk data, and unsupported files.
The best case scenario is a clean constant bit rate file (CBR). After having looked at the 2000 frames in a file,
Quick Scan is able to project the findings on the rest of the file and the predictions made on this basis actually turn out to be true: The file size matches a sum of frame sizes and a random frame check proves that at selected offsets valid frames can actually be found. This means it is safe to calculate the output time and all frame positions by a simple formula, avoiding a time consuming full scan.
In all other cases, be it that frames of different bit rates or a VBR header was detected or the projections (maybe by as little as one byte) failed, a full frame by frame scan is called for. By now, that doesn't mean there is any significant problem with the file, it just means that it could not quickly be verified that there is none.
The full scan will locate any frame position in the file, calculate the output time precisely and surely find junk data and frames of different bit rates. A minor amount of junk is allowed, larger amounts are offensive. Mixed bitrate files and such that have a VBR header call for special treatment. Mixed bit rate files need to have a correct VBR header. Missing or invalid headers are offensive.

JumpToTrack.gifAfter all, in practice there are four possible outcomes of the PreScan:

1. The may be found to be okay, on way or the other.

2. The file contains minor amounts of junk, usage of the Corrector is optional.

3. The may be declared incompatible on the as-is basis.
In a dialog, such as the one in the screenshot, you will be asked about processing your file by the Corrector tool. If you accept, the file will automatically be modified, just as if you added it to the Corrector window manually, only that you won't see the Corrector form itself.
If you deny file modification, the file will be rejected.

JumpToTrack.gif4. The file will be rejected outright. Unsupported or unknown format, corrupted, whatever. Contact me if you think this is an error in case of your file. But first, read this: mp3Extractor does not work with my audio file.


3.1.4 Saving an MLF

You may save the information you entered with MP3Extractor, that is, the marker times and the entries in the marker list in an MLF (Maker List File, *.mlf), mp3Extractor own file format (a tab delimited text file organized in a certain way): Project -> Save .

As mentioned above, the projects name is defined by the input audio file, but you may select the directory to save the MLF in.
 

3.1.5 The project idea in mp3Extractor - Some words of warning

Mp3Extractor features quite an elaborate concept of project management that was designed to keep things in order even if you work on a couple of dozens of unfinished projects over weeks and month: you don't have to remember different file names or where you stored what file.

The concept, as it may already have been noticed, is based on two ideas:

a. Input audio file and the MLF that belong to a project (and possibly further linked files) have the same (preferably unique) name - the project name - and differ only in their extensions.

b. The history keeps track of the projects, in fact, it keeps track of the project names (not including path!) and records where (including absolute path) the input audio file and if and where a MLF was stored (including absolute path).

While these conventions are meant to simplify project handling they can (and will) only do so if the user does not try to work against them. In the latter case mp3Extractor might even turn a little bitchy. Here is a list of some DOs and DON'Ts (to be continued...):

DON'T

DO

Try to keep several projects of same name in different directories, like:

/030315/MyFavWeeklyShow.mp3

and

/030322/MyFavWeeklyShow.mp3

mp3Extractor will always assume it's the same project which has moved or has broken links and, in an effort to fix things, might tempt you into mixing up audio files and MLF's that do not belong together.

Make sure all your input files have unique names. If, for example, you make regular recordings, include the date in the filename:

MyFavWeeklyShow030315.mp3

Rename single project files.

mp3Extractor will NEVER open an MLF with an audio file of a different name.

Make sure you rename all files that belong to a project and give them the same name again. Reopen by MLF and supply the audio file's location.

Simply delete project files through the Windows Explorer. By doing so, the project history will get cluttered with dead links.

Use Run -> CleanupExpert to move all project files to an archive folder of your choice. At the same time, this project will be marked as trashed in the project history and will no longer be displayed.

Unfortunately, this concept has no good solution in cases where you might want different MLF's (different extraction schemes) to one audio file and keep both. I haven't yet come across such a case, so this possibility has so far not been seriously considered.
 

3.1.6 General project options

OptionsProjects.gifIf you work with mp3Extractor on a regular basis, you should check out the project options under Options -> Projects:

1. Set the directory where mp3Extractor expects your input audio file's - that is the audio file that you want to extract from. This simplifies browsing and helps the program in finding audio files in case you open a saved project by choosing an MLF.

2. On starting a new project...
You have three options: mp3Extractor can assume you want to create an MLF, ask you about it or leave you alone. Creating an MLF, either way, requires a decision on where to save - see next point...
3. When creating MLF...
If you keep all your MLF's in the same folder or always save MLF´s with the input audio file, you might not want to be asked about this anymore: Use Place MLF in default folder and make your choice below.
If you combine this with "automatically create MLF" (see above) all worries are behind you. :o)

4. By default, mp3Extractor auto saves MLF's after every change you make. Though you can turn auto save off (Project -> Auto Save), it will turn on ever again when you open (or create) the next project. To suppress this behavior for good, check the box Do not auto save MLF. Then, you may still switch auto save on and off manually, but the default for next projects is off. (In other words: mp3Extractor does NOT remember your manual setting beyond the current project. Every time you open or create a project the setting set herein takes effect.)

to index


3.2 (Re)opening projects

Because the project history keeps track of project names and file locations, you can reopen a project by specifying either the audio file or MLF of the project - by whatever you happen to run across first exploring your disk. This is reflected by the sub items (by audio file and by MLF) in the Project -> Open menu.

OpenProj.gifNote: You can choose any of the two types both ways. The only difference is that the directory browser starts off with the specific default directory of either input audio files or MLF's set under Options -> Projects.

If Winamp is running you may reopen (Project -> Open -> Catch from Winamp) a project by catching a file currently playing in Winamp.

You may also use the context sensitive button below the time display (see the above screen shot) for re-opening projects: The difference between this button and the menu items, though, is that by clicking it you do not explicitly tell mp3Extractor to either re-open or create as new. So, what it does, is look in history: If the project name is found, it is assumed that you mean to re-open an existing project.

If everything is fine and the corresponding other project file can be found at the original location the project is reopened without further comment. If there is no such project in history you can still open as new.
If something is wrong and the linked file can not be found, you'll be presented with alternatives on how to set things straight again. In this respect reopening from Winamp, of course, amounts to the same as opening by audio file.

You may reopen a project by going straight to the project history (Project->History) and choosing a name there. This approach will fail if both project files have been removed from their original location - but if at least on of them can be found you'll get prompted just like in the above cases.

Dropping an MLF on the program window will also result in the attempt to reopen the corresponding file.

The project history is stored in form of a tab delimited text file (the itself 'invisible' ASCII character 9 "tab" subdivides lines into virtual columns), by the name of "Mp3Extractor.hst" in the same directory as the program executable. You may view and edit it with a simple text editor such as Windows Notepad. This might come in handy if, for example, you decided to move all your project files to a different drive or something, in the case of which you could search and replace all drive characters using Notepad to set all links straight again.

Right next to the history is the ini file "Mp3Extractor.ini". It stores all permanent program settings.

As if it need be said, edit these files only if you know what you're doing. Especially, make sure that these files always end with a return character, that is, the cursor being in a last line that is still empty!
 

to index


3.3 Controlling Winamp

Skimming through your input file and deciding on the parts you want to extract will in many cases be the most time consuming part of working with the mp3Extractor. mp3Extractor offers some features that simplify both getting a quick overview of large input files as well as swift and precise navigation to particular points of interest.
 

3.3.1 Synchronizing Winamp

As a project is successfully opened, mp3Extractor will go looking for Winamp.

If it's not already running mp3Extractor will prompt you for starting it. If you accept, Winamp will automatically be launched and will begin to play the project audio file.

Likewise, if Winamp is running but playing nothing or a different track, than the project's audio file, a dialog box will pop up asking if to synchronize Winamp. This is a term used throughout the program and it means precisely this: Winamp is synchronized (to mp3Extractor) if it is playing the project audio file - and the current playback as supplied by Winamp is fit for use with the current project. (The second part of this condition might sound cryptic at this point. It alludes to synchronization of mixed bitrate MP3's, read below.)
These messages will be generated by mp3Extractor every time Winamp losesJumpToTrack.gif synchronization (by user intervention or other) while a project is open. However, if you decline synchronization (or launching Winamp) at such a prompt, the mp3Extractor remains in unsynchronized mode and you will not get prompted again in the course of this project unless you synchronize manually (Winamp -> Synchronize = Ctrl W). If, after a manual synchronization, Winamp later runs out of synchronization again, there will be, as makes a lot of sense, another pop-up reminder. The same applies if Winamp, by some way, returns to synchronization on its own – which will automatically be detected.

Synchronization is, of course, absolutely vital when setting markers, as it wouldn't make any sense to listen to just something instead of the input file and drop markers at it - markers that will later be mistakenly applied to the real input file. However, I didn't want mp3Extractor to take Winamp completely into custody, so I came up with the solution of having a synchronized and an unsynchronized mode of the mp3Extractor as described herein. 

You can't drop, move or jump to markers in unsynchronized mode, but this is the only feature exclusive to synchronized mode. Anything but unimportant features, though.

NoSync.gifWinamp not synchronized (Note the disabled buttons)

Synchronization and mixed bitrate MP3's

In mixed bitrate MP3's, mp3Extractor's co-operation with  Winamp is a lot more tricky, which is (apart from other problems) why previous versions of this program did not support such files.
The core of the problem is that in mixed bitrate files, unless Winamp has played a file continuously from the very beginning, the current track time displayed can not be regarded as being accurate, in fact, in longer files it may easily be as far as 30 seconds or more off the true time!

How come? I will try my best at explaining this shortly...
When an audio file is played, a player continuously moves from audio sample to audio sample (or frame to frame in MP3 files), puts out the sound and counts up playtime as it goes along. However, if players like Winamp seek within MP3 files, they do not scan a file from sample to sample (or frame to frame) to find the correct sample (or frame) to continue playback at, since this would be much too time consuming.
Instead, they make a simple calculation:  So and so many milliseconds of playback time equal
so and so many bits (or bytes) on disk. This relation is widely known as the bitrate of a file. So, to find the byte (offset) within a file that corresponds to a certain millisecond of playback time, all that must be done is to multiply the desired time by the bitrate and there you go.
Now, if a file contains audio data encoded in different bitrates, this calculation will invariably fail. Some strategies have been devised to at least keep errors within reasonable limits. One of which is the so called Xing header, that encoders add to mixed bitrate files. They contain information on the all over playback time and a 100 position table of contents that relates all integer valued percentages of playback time to a certain position in the file. But in the end, all of these are just crutches and absolute timing errors in large files remain tremendous compared to the precision you would naturally expect from a program like mp3Extractor.
It had seemed like a hopeless case as I cannot change Winamp's behavior when seeking in files. But
I came up with a solution that is based on correcting the times supplied by Winamp.
Apart from the obvious need to know all true positions of audio data within the file the only other condition is that mp3Extractor needs to stay up to date with seeking actions that occur in Winamp, since the errors occur (only) at seeking. 
In the end, it boils down to this: Take the current time as displayed by Winamp and correct it by the error that was (possibly) made at the last seek: The true timing is yours.

In practice, only two, but rather nasty, consequences have to be considered:

1. A mixed bitrate MP3 must always be scanned completely before work.

2. Knowing that Winamp is playing the input file is not enough for considering Winamp synchronized in case of mixed bitrate files. As long mp3Extractor doesn't know about at what point the last seek occurred (if a seek occurred, which must be reckoned with) it cannot correct track times which are therefore of no value at all.
mp3Extractor must take total control over Winamp, as Winamp cannot be asked about seeking actions after the fact and would not notify mpExtractor of such an event either. Thus, mp3Extractor must initiate playback in Winamp under own control - or gain control over playback already running by initiating a seek under own control before Winamp can be considered synchronized at all.
Then again, synchronization must be considered compromised as soon as the user has a chance to take direct control over Winamp behind mp3Extractor's back.

Access to Winamp's window must therefore be checked on. In practice,
mpExtractor will therefore minimize Winamp and disable its interface while working on a mixed bitrate MP3. User attempts at bringing up Winamp's window will cause a prompt from mp3Extractor warning you of loss of synchronization. Only if you accept, will Winamp interface be re-enabled - and synchronization will be considered compromised.

On return to mp3Extractor, a pop-up will appear informing you to the effect that mp3Extractor will initiate seeking in Winamp to regain synchronization. Seeking will be directed at the time currently displayed by Winamp - which is the obvious choice, as some seeking MUST be done, but preferably at a point not too far from the current playback position. Now, a funny effect might surface (which, however, shouldn't at all surprise you if you followed the reasoning so far):
playback might jump unexpectedly - back or forth. It proves the point that the timing Winamp displays on playing a certain section of a variable bitrate MP3 does not always align with the section it actually jumps to when it is asked to seek to the time it had previously displayed! (And mp3Extractor cannot prevent this funny effect caused by the seek, as long it hasn't gained control, which, in turn, it only gains AFTER the seek. This is the classic hen and egg problem!)
Don't try to trick mp3Extractor's regime over Winamp by any remote control that  accesses Winamp's functions circumventing Winamp's windows, such as Winamp's global shortcuts! You will face undesired effects!

3.3.2 The track bar

The mp3Extractor window features a track bar similar to the one on Winamp's interface. This one is larger, though and allows for more precise movements. The time display shows the track bar position during dragging.
 

3.3.3 Adjustable speeds for fast forward and rewind: Step and Page

JumpControls.gifMp3Extractor knows two types of incremental playback jumps: (small) step jumps and (wide) page jumps. While a step jump is one or several (or split, see below) seconds wide, the page jump counts in minutes.
To take a jump, either use the buttons on the main form or much rather use the
Home / End keys (step) or the Page Up / Page Down keys (page, hence the name). All these functions, including the key combinations explained below, are also accessible through the main menu Winamp -> Step or -> Page, respectively.

The jump increments (the jump sizes in seconds and minutes, respectively) can be adjusted (whole numbers only, though) under
Options - > Jumps /Skips. In older program versions these settings could be made directly on the main form. The button Jump and Skip Parameters?  is what is left of this, it brings you to the correct options tab.


As if this wasn't enough flexible jumping, there is even more to it. You can take split or multiplied jumps by using combinations with shift, ctrl and / or alt keys. This works for step as well as page jumps. For example: Pressing Ctrl+PageUp causes a rewind of 30 seconds if the preset page increment is 1 minute, since Ctrl causes a split by half. Here are all six supported combinations:

Ctrl

/2


Shift+ Ctrl

*2

Alt

/5


Shift+ Alt

*5

Ctrl+ Alt

/10


Shift+ Ctrl+ Alt

*10

Note: The same key combinations also work for moving markers, although in moving there is a fixed default length of one second, so all splits and multiples are applied to that basic one second.

How to remember the key combinations? Simple. Note that there are only three different factors (2, 5, 10) and the whole concept is strictly arithmetic. Ctrl stands for 2, Alt for 5. Pushing both at a time makes 2*5=10. Without Shift these numbers are dividers, if you also push Shift, they represent factors. (Shift causes reciprocal factors as one might put it.) Because split jumps will be more often used then multiplied jumps (the latter being also attainable by multiple jumps) they are assigned to the simpler key combinations. Now, all you have to remember are the factors 2 and 5 for Ctrl and Alt.
 

3.3.4 Jumping to markers

There is another way of controlling Winamp, once markers are set.  Playback time can be made to take a leap at a marker.

This feature is helpful for navigating the input file and even essential for checking the exact position of a marker.

Mp3Extractor knows two ways of jumping to markers:.. (Note that jumping to is used as the general term that covers both  Playing From and Playing To.)
 

3.3.5 Playing From Marker 

Playing From Marker  (Winamp -> Jump To Marker -> Play From Marker)

Pressing Shift+Return shifts playback to the marker selected in the marker list spreadsheet and resumes at its exact time.

The same happens on double clicking an In or Check Marker or pressing the Jump To Marker Button below the time display while either an In or Check marker is selected.

InDblClick.gif

Tip: Drop a Check marker at a time that you might want to return to later.
 

3.3.6 Playing To Marker 

Playing To Marker (Winamp -> Jump To Marker -> Play To Marker)

Pressing Ctrl+Return triggers Play to Marker on the selected marker.

OutDblClick.gif

Playing To Marker works like this:

Playback jumps a little ahead (default 1s, subject to setting) of the actual marker time.
The time display inverts at this stage,

BackStep.gif

then pauses shortly (again default 1s, subject to setting) at the marker's time (as exactly as possible, see below) while the display turns olive

Pause.gif

and finally continues playing from that position (the display turns normal again).

This is especially useful for finding the exact time to end a certain section, for finding the 'punch out'.

Therefore, this is the default action performed if you double click an out marker's time cell in the marker list spreadsheet. The same goes for Cut markers, for which the time ahead as well as after matters. Both can be judged best using Play To Marker. However, In and Check marker's will default to Play From Marker on double clicking. The same rules apply to clicking the Jump To Marker button below the time display,

Pressing Ctrl while double clicking will trigger the respective non default action.

The same rules apply for jumps performed automatically on moving markers - in the case of which, however, the default action will always take place.

3.3.7 Possible problems with and settings for jumping to markers

Stopping Winamp precisely at a given time proved to be kind of tricky to implement, as this is a feature that Winamp's API does not support directly. The workaround: Taking a time reading, calculating the time left, wait for that time to pass and then 'press the pause button' under program control. However, it turned out that the actual times where Winamp comes to pause show an offset and a considerable variation at each individual attempt  - in the range of one or two MP3 frames or more - with the risk of these errors being far larger at times, e.g. when the Windows message cue is crowded with other application's messages.

Output Plugins

The Output Plugins determine Winamp's exact behavior and reactions on seek and pause, both basic functions needed for jumping to (and stopping at) markers.
Nowadays, Winamp 2 and 5 come with two standard output plugins: WaveOut and DirectOut, the former being the older and simpler one.
In Winamp, press Ctrl+P to get to the Preferences window; on the left, select Plug-ins -> Output to see the plug-ins you have installed and their settings.
Both plug-ins can be a problem with mp3Extractor.
Only since Winamp 2.8 is the included WaveOut.dll capable of stopping precisely enough to make Playing To Marker possible with reasonable precision. (Indeed, Nullsoft's version history has an entry: "WaveOut made skip less" listed with V 2.80. This change seems to correspond to this effect.)

On the other hand,
DirectOut out includes optional fading effects that, if enabled, are the sure death to all precision with mp3Extractor, since they obscure the true marker positions when playing to or from markers. To make matters worse, the default settings for fade on seek and on pause are enabled!

To prevent unnecessary dissatisfaction with mp3Extractor that may arise from these problems, mp3Extractor checks on Winamp's output plug-ins (since v04.03.x) once per session when the first attempt at seeking occurs, and again if there's evidence something's wrong.
Only WaveOut and DirectOut will be allowed as output plug-ins, and in DirectOut, fades on seek and on pause will be disabled. These checks and manipulations take place via Winamp's ini file and Winamp's registry keys. Winamp will automatically be shut down and restarted so that  changes take effect.

OptionsWinamp.gif

Settings for Play To Marker

Whatever the output plug-in, mp3Extractor keeps track of the discrepancies between supposed and true pause times  and tries to individually optimize an offset variable for the  system (and the output plug-in!) it's running on, to minimize errors. Nevertheless, it might always happen that an attempt at pausing at the right time will go amiss more than a tolerable amount, in which case a pop-up window will appear informing you to that effect.

You can set the Precision Threshold (the maximum tolerated error that does not cause a pop-up) can be set under Options -> Winamp.


This also includes other Options for Playing To Marker:
1. the Back Step: the time playback starts off ahead of the marker
2. the Pause time playback pauses at the marker time.


3.3.8 Navigating Winamp using the marker bar 

As the marker bar is strongly marker related, its features are explained in the context of markers. See there.



3.3.9 Two hours in 20 minutes: Random Skip

Random Skip is a function to simplify the task of quickly screening large audio files.
Usually, you would listen and periodically hit the Jump Forward button in search of whatever you're looking for. But how about quickly screening last night's two hour radio recording while having breakfast - without staring at the screen and spreading butter over keyboard or mouse?
In Random Skip mode playback will automatically skip from time to time. Both the width of these skips and the time between skips are randomly varied within ranges of values that can be set under Options -> Jumps / Skips (see shot). At the end of file playback will start over from the beginning. Since jumps and skips are randomly varied, you will hear different fractions every time around.
To give you an idea of how fast your screening will be, resulting average values are automatically being calculated for the current settings and displayed below.
To eliminate random effects simply make minimum and maximum values equal.

Random Skip is activated on the main form pushing the button or by Ctrl+R. Active Random Skip is signaled by the Rnd Skip button appearing pushed and a counter appearing below which counts down the seconds to the next skip. Once a skip has a occurred, another button, Skip Back, is enabled. Now, what's that? According to Murphy's Law, random events always occur when you need them least. This also goes for random skips: They always occur at the very moment you're hearing something interesting. Now you'd like to jump back, but the bad deal with random skips is... that they're randomized and you won't be able to tell where the last skip originated from. Skip Back brings you back there.

to index


3.4 Setting Markers

MarkerBtns.gifThis is actually the core of the whole business: Setting the markers according to which later the process of extracting the new files will take place.
What we want to do in extraction is
picking out the raisins from the cake. To extract rather than cut in this sense, you'll need at least two different kinds of markers: One to signify the beginning of a part to be extracted (to stay in the picture: edge of raisin) and another to call it an end (other edge of raisin). We will be looking at this concept more closely soon.
Trimming is a much simpler task and mp3Extractor takes a simpler approach as far as setting markers for trimming is concerned, see below.

Whatever your aim is, having Winamp synchronized, you can start browsing your input file and
drop  in, out, cut, check markers at the desired times clicking the buttons on the form above the spreadsheet or using the main menu (Marker -> Add -> ...) or by using short cuts (Num+,  Num -, Num /, Num *; that is, the arithmetic symbols on the number block of your keyboard - all to the right).  The "Num /" might be missing on the menu item's short cut display, although it should be there and actually works, at least this is the case in Windows Me, for some unknown reason.


All the markers dropped will appear in the marker bar and as rows in the marker list spreadsheet with their time in the first column and their type in the second.

3.4.1 The concept of the four markers: in, out, cut, check

Use an in  marker to specify the beginning of a part to be extracted and an out marker to signify the end.
The
marker bar visualizes the extraction pattern. In the following, only the marker bar will be shown in the screen shots.
Here is a simple example:

In - Out

The entire bar represents the input file in its entire length. The grayed part between the (green) in marker and the (red) out marker is a track to be extracted. (In case someone might wonder: The tiny gray line shows Winamp's current playback position - which is not important here.)
Even simpler: If an in marker is all there is, extraction starts at that time and continues to the end of the input file:

In

This amounts to trimming the input file at the beginning (yawn).
Now, here comes an example where you can see the difference between an extractor and a cutter:


In - Out, In - Out

This would yield two tracks. (A cutter would produce five tracks, three of which would later have to be discarded manually.)
However, if you actually also wanted everything in between the two tracks to go into another track, here is what you would do:

In - Cut - Cut - Out


The two markers in the middle are (yellow, actually olive)
cut markers. Like an out, the cut signifies the end of a track but unlike the out also results in the beginning of a new track to be created containing the audio data beginning with the next frame (or sample). (Theoretically, this is - almost - the same as an in and an out on top of each other. Again, in case someone might wonder: The central track in the above example is visualized as darker gray, because the first of the cut markers is currently selected in the marker list - not that this would matter right now.)

Finally, here is a real life example, a three hour radio show with a couple of songs in the range of 4 -5 minutes marked for extraction:


As you can see, quite to the end of the show, the DJ played two nice tracks in a row.
But you can also see something new: More to the left, the two lonely black bars represent
check markers. They have no effect on extraction at all. You can use them as a reminder, or to insert a comment in the marker list, or as a target to jump to. In fact, I use them to signify locations in the input file where there are songs I couldn't yet decide on whether they're worth extracting or not: check this out later, so to say (hence the name).

Note: A simplification was used in all of the above. The marker bar illustrates the actual effect of marker which may not always coincide with what you'd expect it to be by its formal type.
Huh, what?! This distinction will be laid out in the following...


3.4.2 Marker type vs. marker effect and the color codes

The concept of markers as projected above would, fully enforced, require strict syntactic criteria. That is, the first marker would have to be in, followed possibly by one or several cuts, and after that an out. Now the whole thing over starting with in and the final marker in the list having to be an out. Any other arrangement would be, strictly speaking, wrong.
Well, I want to use this program myself, and I must admit I'm not exactly keen on getting bombed with stupid error pop-ups, that would be inevitable if this approach had been followed. But how can we have the cake and eat it? Here we go...

 Instead of insisting on a strict order of marker types mp3Extractor will always interpret them in a sensible way, if possible, without correcting any user input (in the sense of automatic marker type conversions) but, instead, will give users visual feedback on the actual effect of their marker setting by way of color codes.

This means:

1. Ins and cuts always cause the effect of ins or cuts whatever is appropriate, although they keep their formal types, as specified in the second column of the list.

2. Outs cause outs - and if they make no sense they are ignored, although, again they remain in the list as they are.

3. The end of file is, of course, an implicit out
.

The color codes in the marker list and the marker bar signify the actual effect of a marker.

There are three possible effects:

1. A marker starting a track extraction (being it an in or cut marker - the latter being strictly speaking not correct) makes for a green code.

2. An actual cut (either raised by a cut or an in - the latter again an errand) is yellow (olive).

3. Outs can only be caused by outs and are red.

4. Markers and tag entries that have no effect on extraction (and tagging respectively) are black and/ or italic. Therefore check markers always appear black and italic.

Finally, there is one thing that never ever makes sense: Putting several outs in a row or starting a marker list with such. These outs get stricken as a reminder.

Note: Tag entries in rows of Out markers are never used for tagging and are therefore also black/ italic. Put the entries in the line that starts the extraction of the file you want to tag, that is either an in or a cut.
 

Justification 

Why do I make up such strict rules (as described above) and don't enforce them? Why not block off wrong entries in the first place or force the user to set things straight right away? And: Sharp brains might have noticed, that Ins and cuts are actually interchangeable in their effect. What are the cuts good for then?

After having extracted hundreds of hours of radio shows, there is one lesson I learned for sure: it's a fuzzy business. The point of the concept described here is the following: it's not only the effect that counts but the intention when you drop a cut marker.
It goes to show that you decided to extract both the material before and after the
cut. Even if you haven't by then found the preceding in or the following Out yet. And - if you use cuts wisely - you'll remember this decision even if you get interrupted and return to work later. It often (if not in most cases) happens that you find an Out first, and not the In, just naturally because you just heard the material and decided it's worth it. (You would rarely listen backward, with Winamp, in fact, that's not possible.) Now, would you want to deal with a pop-up that asks you to find the in first?
 

Again, the overall concept in short: The mp3Extractor will never erase or change a marker you set but interpret them in such a way that it can always make the extraction without bothering you with error pop-ups. However, it offers the cut marker as a tool as well as the check and gives you optical feedback on the effect of your markers. The rest is up to you.



3.4.3 The marker bar

All markers in a project are displayed in the marker bar and the marker list.

Whereas the marker list displays the numeric marker time, the
formal marker type as a word, the marker effect expressed as a color code, and - optionally - tag entries, the marker bar visualizes all marker's effects and thereby the parts marked for extraction.

Both can also be used to navigate in a synchronized input file.


A couple of examples have already been shown and described here.

The entire bar represents a time scale of the input file in its entire length.
The
grayed parts are marked for extraction. They are headed by a green bar, representing an in marker (precisely, a marker with an in effect, which might also be a formal cut) and end in a red bar (an out marker) - if they do not extent to the end of file.
Yellow (olive) bars within grayed areas indicate the cutting effect of a cut marker: the data left and right  of the markers will go in consecutive tracks. (In turn, the cutting effect can also be caused by a formal in marker.)
Any marker that has no effect on extraction, check markers and senseless outs, are represented by black bars.

The marker bar also mirrors the status of the marker list: A marker selected in the marker list will show a
longer bar. If a marker that heads a track is selected, that track is shown in a darker gray. (The marker that heads (starts) a track, by the way, is the one that should include the corresponding tag information - this justifies the special treatment.)

The track bar shows a
little gray bar corresponding to Winamp's position on the time scale. That is, only if Winamp is synchronized - playing the project file. (It makes no sense to indicate the location of person on a inner city street map of, let's say, London, if that person is actually in Paris.)

Navigation with the marker bar:
1. Clicking on the marker bar selects the marker closest to the click. (Selecting a marker changes the highlighted row in the marker list and switches the focus of operations such as
move, reset, delete, jump to to this marker.)
2. Double clicking makes playback jump to that marker (equals double clicking the marker time cell in the list).
3. Right clicking makes playback jump to the corresponding time of the input file. (Same as dragging the track bar, but easier. Renders track bar almost obsolete.)
In cases 2 and 3 Winamp will have to be synchronized first.

3.4.4 Markers for trimming

Trimming does not require such an elaborate marker concept as extraction. Only one or two markers are needed for trimming, depending on whether you want to trim your file at one end, only, or at both sides.
However, mp3Extractor does not know anything like explicit "trim markers". Instead,
trimming is always done based on the first and/ or last markers in the list - of any type. It does not matter what types of markers you use or how many additional markers you set.
You will decide on the trimmer mode later, that is, in the window that appears on calling the Trimmer routine, which looks something like in the screenshot. Note the modified marker bar and the Trimmer Mode which is set to  Trim (both sides). The first and last markers are both check markers that delimit the red areas thereby marked for deletion. (Yes, the trimmer modifies the input file and actually deletes data!) All other markers do not play a role in trimming.

Now, in short: If you want to cut away, let's say,  the first 20 seconds of your file, drop a marker there. If you want to cut off something at the end, drop a marker there. Or do both. Then, as usual, tweak the markers, if necessary. Finally, call the Trimmer routine and set the trimmer mode.



3.4.5 Setting markers using the Splitter Wizard

The Splitter Wizard automatically creates the appropriate marker patterns for extractions that amount to simple splitting procedures:
1. Splitting into a given number of equally sized chunks.
2. Splitting into chunks of a given size (in minutes and seconds) + possibly a shorter rest chunk.
(See screen shot. )

Call the Wizard from the main menu: Markers -> Splitter Wizard.
In any case, the Wizard will add markers to the marker list in the following manner:
In at 0:0.0, Cut, Cut, ...
Markers already in the list will neither be deleted nor taken into account by the Wizard in any way. Usually one wouldn't mix these generated markers with manually set ones.
But the generated markers can of course later be moved and everything, as usual.

As the Wizard is only a tool for setting markers, and nothing else, the extraction itself is started by calling the extraction routine.

to index


3.5 The marker list spreadsheet and its tag entries

The marker list spreadsheet (in short, the spreadsheet or the marker list) contains all existing markers for overview and modification. 

There is one row to each marker.

markerlist.gif 

3.5.1 The fixed columns: Marker Time and Type

FixedCols.gifThe first two columns contain the markers time and type, properties that are initially set when the marker is created (dropped, set) but may also be changed later. 

Marker entries are colored according to a code reflecting their actual effect, if you want to know more, make sure you read this.

The time and type columns are horizontally fixed (meaning they don't scroll with the horizontal scroll bar) and they are obligatory (a marker always has a time and type). Markers are always sorted in ascending order according to their time value.
 

3.5.2 The tag columns: Artist, Title, Album, Comment, Year

The tag columns can optionally be filled by the user manually to supply information on the tracks to be extracted.

TagCols.gifThese columns reflect the structure of a standard ID3 MP3 tag. (Except for the one byte genre value that the author considers silly and decided not to support.)

Information entered here will be written to the tag sections automatically appended to the MP3 files created during the extraction process and, in database mode, will also be written to the database file. Tagging is not supported for WAV files!

Note: The tag information for a particular track has to be entered with the marker that signals the beginning of that very track! This might be either an (effective) in or cut marker – the entries then appearing green or yellow. Entries in rows of check and Out markers (black/italic) are merely of temporary or informational value while working on the project (see also tuning markers, copy & paste tag columns).
 

ResizeCol.gifThe width of the tag columns can be changed by dragging the borders in the caption row, to fit individual needs. The current program version stores the column widths in the ini file, so user settings will be kept.
 

3.5.3 How to enter tag information: The list's editing modes

The spreadsheet has three different selection/editing modes.

Row select: The default mode equals the select entire rows mode known from standard spreadsheet programs (row select). In this mode the two fixed columns (time and type) of the selected marker will have a (darker) grayed background.

RowEditClose.gif

Cell select: To add track information in the tag columns, switch to tag editing mode, by choosing Marker ->Tag -> Cell Select Mode from the main menu or by simply pressing Enter. The tag editing mode (cell select) allows for selection of single cells in the tag columns. While the selected single cell turns gray, the fixed columns of the corresponding marker row shift to a lighter gray. Use arrow keys to change between selected cells. Press Enter again to toggle to row select

cellselectclose.gif

Cell editing: Having one cell selected (in cell select mode) pressing standard windows key F2 (edit) or simply starting to type something will result in switching this particular cell to cell editing mode. Now the left and right arrows move along the entered text. Press Enter or the Up or Down arrow keys when you're done; Escape to cancel changes to that particular cell. Another Return will switch to row select again.

celleditclose.gif

You can also maneuver the spreadsheet by mouse clicking: Click / double-click the cell you want to select / edit. Clicking on one of the fixed columns will cause a switch to row select mode. Otherwise, the program's behavior will be self explaining. A double-click on the fixed columns, however, will cause playback to jump to the corresponding marker time. 

Generally, choose Marker -> Tag to find out about the features in present mode and how to change between modes, as the menu items available change accordingly.

3.5.4 Copy & paste

The spreadsheet supports the standard Windows commands copy, cut & paste via the standard short cuts Ctrl+c, Ctrl+x, Ctrl+v.

In row select, these operations apply to all tags in a row, in cell select to singe cells and in editing mode to selected text. These changes in functionality are reflected by the dynamic menu items filed under Marker -> Tag. 

In essence: Use copy & paste in row select mode only to copy all tags from one marker to another. Otherwise use cell select

Deleting is only available for entire makers, to clear all tag entries for a marker, use cut in row select mode.

Note: Copying and pasting of multiple column rows is performed through writing and reading tab delimited lines from / to the Windows clipboard. As a result, copying a row of tags from mp3Extractor to any text editor will yield one line containing the tag entries separated by tabs. Accordingly, pasting a tab delimited string to a row in mp3Extractor will result in proper columns entries – whereas a pasted line not containing tabs will end up entirely in the first (the Artist) column.

to index


3.6 Tuning markers : Resetting / moving / converting / deleting

 

3.6.1 Resetting a markerTuningMarkerBtns.gif

While synchronized to Winamp, you can reset a selected marker's time property. Select a marker in the marker list spreadsheet by clicking or using the up and down arrow keys. Then, at the desired new marker time, push the Reset button on the program's main form or press Shift+Insert or consult the menu item (Marker -> Reset Time). Time will be reset to current play back time, all other marker properties (type and tag entries) will not be effected.
 

3.6.2 Moving a marker

This feature is intended to be used for fine tuning marker positions. It allows for a precision of down to 100 ms (0.1 seconds) – and you will immediately hear the result.

You might say, resetting a marker also moves it. Now, where is the difference?

Whereas re(-)setting (as described above) very much resembles the initial setting (or dropping) of a marker, and the previous marker position doesn't play a role, moving markers is different. Moving means changing a marker position by a defined time offset, in fact, making it take a jump. This is very much like the jumping features described above (Controlling Winamp: Page jump, Step jump) - only that a marker is being taken along the leap.

Select the marker you want to adjust and use the Move buttons on the form or Shift+BackSpace (or Shift+Space, respectively) to move it back and forth. Immediately after moving the marker, playback will automatically jump to the new marker time. In and Check markers will be played from marker, whereas Outs and Cuts will be played to marker. See Jumping to markers for details.

These movements are 1 second by a fixed default. Use combinations of Ctrl, Alt and Shift for smaller or greater leaps, just as with Page and Step jumps. All values are also available through Marker -> Move -> ... 

The difference regarding short cut keys, though, is that factor 1 move already requires pushing Shift. This is to avoid confusing double functionality conflicts when the marker list is in cell select or edit mode. Note that all short cuts that deal with changing existing markers include pushing Shift (if not Ctrl or Alt).

3.6.3 Converting marker types

Converting a selected marker's type does not require synchronization. It is only available from the marker menu (Marker -> Convert To -> ...), and by the short cut keys displayed there, which are, in fact, the same (+,-,*,/) as for adding a new marker, only that here Shift is supposed to be pushed additionally.

short cut

  converts marker to

Shift +

in

Shift -

out

Shift *

check

Shift /

cut


 

3.6.4 Deleting markers

Delete a selected marker by choosing Marker -> Delete from the main menu or by pressing the Del key (in cell select mode it's Shift+Del.) There will be a confirmation pop-up.

to index


3.7 Extracting - the actual file extraction

Come the point when you have dropped, shuffled around and tagged all your markers, you will want to make track extraction happen.
If all is set, from the main menu choose Run -> Extract, or click the Extract button [Ctrl E].

This will bring up the
Extraction Options window (see screen shot). Here is where you choose an output folder for the extracted files to be written to, determine the scheme according to which these will be named, and in case of MP3's, decide about  tags. Check the box to show the CleanupExpert when extraction is done.OptionsOutput.gif

Continue to start the actual extraction process by clicking the OK / Start Extraction button.

When extraction has been successful, a window appears with a list of the extracted files that offers an easy way to put these files in Winamp's playlist to check them. Especially take a look at the beginnings and endings. (How precise is cutting with mp3Extractor?
)
 

3.7.1  File naming modes

There are three naming schemes to choose from:


1. An approach based on numbering: ProjectName_##.mp3  (or ....wav) (## being the track number starting off with 00).

2. Another based on tag information: ARTIST title.mp3 (or ....wav)

The artist string is capitalized automatically. This scheme, obviously, does only work if there is tag information that makes for a valid file name. (mp3Extractor will automatically propose usage of the number based scheme if such problems arise during the extraction's pre scan.)

As of now, there are no user options to further customize file naming. There are hundreds of – even free – MP3 naming/ tagging  tools on the Internet.
 

3. The database mode

Then there is the database mode that the author has tailored according to his own needs. (In fact this is the reason why normal mode file naming has so far been very much neglected during development.) You might consider this concept of a database funny – then forget about it and don't bother.

The basic idea is that all extracted tracks will always be plainly consecutively number named – no matter what input files they came from and what mp3Extractor project produced them, e.g.: 0001.mp3 .... (up to maybe years later) ... 5842.mp3. 

A database file (DatabaseName.txt) keeps tabs on numbering and serves as a file reference. 

It is a plain text tab delimited file with one line to each audio file on record. Each line starts off with the audio file's name (its number) followed by its tag information (artist, title,...) in virtual columns separated by tabs. This list may be interrupted by lines explaining the source of the following audio file or other info. The mp3Extractor integrates with this database concept and reads from (in order to retrieve current number information) and automatically writes to such database files – if in database mode.

If you plan to use the database mode make sure there is a database file name and location defined (Options -> Database). 


3.7.2  The extraction process

Extraction won't start blindly. Mp3Extractor will at first enter sort of a test run to make sure that all file names that result from the chosen naming scheme don't cause conflicts in the output directory. The user will be prompted in this and thereby given a chance to cancel processing before any data has been written. This is especially useful in database mode where such conflicts should never arise – if everything goes well – otherwise they indicate that things somehow got screwed up: in fact, such a conflict can only arise if audio file files exist in the output directory that the database doesn't know about...

After test run has been successfully performed, the extractor engine starts to scan the input file. This can take a minute depending on the size of the input audio file and the speed of your machine. Only after that will the actual extraction take place which should happen rather quickly especially if just a small percentage of the input data is being extracted.

Tagging (MP3 only)

The newly created MP3 files be tagged with ID3V1 and ID3V2 tags during extraction, if the corresponding boxes in the options window were selected.

The tag types are independent, as the V2 tag will be written ahead of the audio data at the beginning of the file, whereas the V1 tag, if present, makes up the last 128 bytes of the file.
mp3Extractor supports only the basic fields that are common to both formats. If you select to write both tags (recommended), both tags will eventually contain the same information apart from the fact that V1 tags has certain limits to the length of the entries (
The program has swallowed the latter portion of my tag entry!), so V2 is generally preferable. If both tags are present in a file, it depends on your hard or software MP3 player what tag data is actually displayed.
As
the audio file Extractor does not support the tag field for these wacky predefined music styles, the corresponding byte is always zeroed which happens to be the code for “classical.

Database Mode

If in database mode, the database file is automatically appended with a sub header line specifying the name of the current mp3Extractor project followed by the names and tags of the new tracks. If something went wrong and/or you decide to delete the new tracks, remember to also delete the database entries – otherwise you might later wonder what happened to the tracks or why there is gap in numbering. For easy access use Database -> Open (w/ Notepad) [Ctrl D]. While experimenting with cut times etc. rather use normal mode.

to index


3.8 Trimming

mp3Extractor can also be used to cut off unwanted material at the beginning and / or end of audio files.
Unlike the extraction routine, which copies audio data from the input audio file, the Trimmer directly writes to the input file. This makes things a lot easier if all you want is the original file trimmed and nothing else, since it avoids the detour necessary if you used extraction for this purpose: extracting to a new file, erasing the source file and renaming the extracted file back to the original name.
The disadvantage is that
the audio data cut off by the Trimmer will be permanently lost unless the user makes a manual backup of the original file!
As with extraction, trimming is based on marker times as described above:
setting markers for trimming.

When you are done setting the markers necessary for trimming, start the Trimmer routine from the main menu (Run -> Trimmer [Ctrl T]), and a window as the one in the screenshot will appear.

In the example shown, the user is obviously planning to trim the file as well as extract 5 tracks (In, Cut, Out, In, Cut, Cut, Out) from it. Check markers are used as first and last markers to control trimming. The same marker pattern can afterwards be used to extract the five tracks, as the check markers do not interfere with extraction.
Such a scenario can make sense if not only the extracted tracks but, for example, the entire radio show is supposed to be put in an archive with only the very beginning and ending (perhaps the news or commercials) left out to save storage space. This goes to show that it does make sense to also include a trimmer in mp3Extractor.


Set the Trimmer Mode according to your needs.
In MP3's existing tags can be kept (
preserve), loaded to be rewritten or removed.
To load an existing tag, first choose Rewrite and then click either the V1 or V2 button to fill the tag editor with the corresponding entries. If you want to add a tag, use Rewrite also. If you choose Rewrite for both tag types, both tags will come out the same (within format limits).
You can further decide whether to close the current project or call the CleanupExpert when trimming is done.

If all is set, hit
Start Trimming. What is happening now is essentially an extraction to a temporary file that  is written to the same folder as the source file (allow for sufficient disc space!). Only after another reminder is the original file deleted and replaced by the temporary (trimmed) file.
Extraction takes place to the same folder (and not the Windows temp directory) to save time in case the folder is on a (slow) network drive, since, as it is, the the final replacement is merely a file renaming and does not involve copying any data.


3.9 Project links

If you are lucky, you might have a HTML- or text file that describes the contents of your input audio file. A set list or something like that, which you might want to keep and open with your project. Friendly radio (and TV) stations usually publish playlists on the web.

3.9.0 Web Links: Browsing your audio source's web sites

This feature assumes the following scenario: You regularly record a certain event and the audio files are named something like: MyShowXXXXXX.mp3

XXXX  being the date, or continues numbers or whatever.
Then there are other events, their file names being My2ndShowXXXXX.mp3, MyOtherShowXX.mp3, etc.
The idea now is to have a list that associates the characteristic parts (sub strings) of the file names with the URL's where the stations publish their playlist archives for the respective show. In practice, this can look like in the screenshot.
Once you have these links established, Project -> Links -> Browse Web Link [Ctrl B] will automatically open up the URL linked to the project your are currently working on in your web browser.


3.9.1 Downloading and linking a file to a project

No matter whether you got there by the mechanism above or another, once you reached the track list or whatever you need to work on your project, you might want to save it locally for off line reading. Now, this can be done the hard way using your browser: Finding a decent folder, making up a sensible filename... Click, click, click, click, type, type, type...
... Or use mp3Extractor's download client.
All you need is the complete URL of the file you want to save on the Windows clipboard.
If you already have the page open in your browser, copy the address from the address bar to the clipboard (Ctrl+C). If you have a link to that page, right click ->
Copy link location. The latter is the better approach: You need go only as far as the page that contains the link to the actual page. This way, you don't have to wait for the page to download twice.
Either way, in mp3Extractor, choose Project -> Link -> Download [Ctrl G]. The download agent's form will pop up - with the address already filled in. Mp3Extractor will download this file (only the page, no embedded pictures), name it the same as your project (*.htm) and save it along with your project files. You can also just drag the URL from your browser and drop it on mp3Extractor's form.


Well big deal, all that's done is that the page is saved in a certain folder and named a certain name, that is the "linking". But hey, programming is all about laziness, and nobody ever said that strategies against too much work need to always involve too much work... ;o)

3.9.2 Viewing linked files

Mp3Extractor automatically regards a HTML file ProjectFileName.htm located in either the audio file's or the MLF's directory as being part of the project. Choosing Project -> Link -> View (Ctrl L) will open this file in a new window of you standard browser.

3.9.3 Linking a local file

If the html file to link is already on your system, the easiest way to link it to a project is to drag it from the Windows Explorer and drop it on to mp3Extractor's form with the project open.

You may also choose Project -> Link -> Associate and then browse for the file.
The file will be copied to the project directory and saved under the project's name. Deleting the source file is optional.

Note: Text files' extensions will be changed from .txt to .htm and will later be displayed in your browser instead of your text editor.

Linked files will optionally be taken along by the CleanupExpert.
 

to index


3.10 Finally, cleaning up: The CleanupExpert


The CleanupExpert is a refined version of a feature that in previous program versions was being called Trasher.
The idea is to simplify standard clean-up tasks after a project has been completed, an audio file trimmed or extracted or both. There is at least a source audio file to a project, probably an MLF and maybe a
linked HTML file.
When you 're done with an extraction you might want to delete the source file to save disk space. This makes the MLF worthless, so you might as well delete this too. Or you want both to be moved to a "ToBeBurnedOnDVD" folder. Or a trimmed audio file to a "Trimmed" folder and the  MLF is supposed to be deleted.
With the finished project still being open, select
Run -> CleanupExpert from the main menu. (Both the Trimmer and the Extractor also offer the choice of automatically calling the CleanupExpert when done.) Set the radio buttons to define the action for each type of file, and  if necessary, choose an Archive folder. The Start button will get things going.
Note:
Deleting will permanently delete files, there will be no undo; you will not find these files in the Windows Recycling folder.  (Who wants a couple of 100 MB's in the dustbin, anyway?)
The other advantage of this approach over manual file moving or deleting in Windows Explorer is - apart from this being only one step – the fact that the
project will also be removed from project history. Thereby you can avoid having history cluttered with dead links and maintain an overview of unfinished projects.

to index


3.11 Miscellaneous
3.11.0 Controlling mp3Extractor via command line

As all well behaved Windows (or DOS) programs, mp3Extractor supports command line options of the type: <Path>\Program.exe <argument> (space in between).

Use either audio or MLF file names (of course, including path) as arguments:

Mp3Extractor.exe MyProject.mp3 will launch mp3Extractor which will then attempt to create a new project on the basis of MyProject.mp3.

Mp3Extractor.exe MyProject.mlf will launch mp3Extractor with MyProject to be re-opened as an already existing project.

However, mp3Extractor will only run in single instances (you might say: it can only be started once). So, attempting to run another instance will merely cause the first instance's window to move in the foreground. Nevertheless, if the program call contains a command line, the command will be forwarded to the previous instance, which, in turn, will then process the command. This is a standard behavior of single instance Windows programs such as Winamp.

Although you will rarely ever use the command line explicitly, Windows uses it behind the scenes if you double click a file with a registered file extension in Explorer or use the Send To command.


3.11.1 Mp3Extractor file association: *.mlf

Mp3Extractor's installer registers the file extension .MLF to mp3Extractor automatically. You can start mp3Extractor by double clicking its files, the marker list files (*.mlf).

3.11.2 The Send To command in Windows Explorer

However, mp3Extractor's installer does add an item mp3Extractor to your system's Send To folder. Right click an audio file or MLF in Explorer, choose Send To -> mp3Extractor.

3.11.3 MP3 Joiner


Mp3Extractor does also contain a joiner, a tool for copying the audio data of several MP3 files to a single MP3. The joiner uses some of the Extractor's code internally and is therefore directly integrated with the main program, although practically it is an independent tool. (There is no logical relation between the project possibly open in mp3Extractor and any joiner job.)

Usage should be intuitive: Add files to the joiner list by drag and drop or by clicking
Add  Files and browsing (multiple file adding allowed!). The running order of the files in the list (representing the order in which files will be joined) can be modified by clicking the Move Up and Move Down buttons.
Check the V1 and/ or V2 tag check box(es) if the target file is supposed to be tagged. The window will enlarge by the tag editor box. You may load a tag existing in the marked input file by clicking the V1 / V2 buttons in the lower right hand corner of the editor box. Edit freely.
Clicking
Ok / Join triggers a prompt for the joined file's name and finally starts writing the joined file. The current contents of the edit boxes will be written as tag(s) to the joined file. V1 and V2 tags are thus always the same.

If the joined file contains frames of different bitrates, a Xing VBR is automatically added.


So far, there is no Joiner support for WAV files.

to index



3.11.4 MP3 Corrector

The MP3 Corrector tool is meant to fix compatibility problems with mp3Extractor. It modifies MP3 files so as to match the Extractor format requirements: The file will be stripped off junk, Xing headers will be added or corrected if necessary. The modified file will keep the original file name, whereas the data of the original file will be copied to a backup file (*.bak.mp) in the same folder.
The interface is very similar to the Joiner's window and should be self explaining. It allows for batch processing of several files.
Corrector's processing routine is also called internally by the pre scan dialog if an MP3 file fails to match the program's criteria at the attempt of project creation - and the user allows for file modification.
So far, there is no Corrector support for WAV files.



3.12 MP3 Gain Visualization

MP3 Gain Visualization was conceived to facilitate locating particular parts within (long) MP3's that display characteristic dynamic features. 
Such features may, in the most stroking case, be silent gaps (such as gaps between song tracks of an digitalized LP). But much more subtle features may also be detected, such as the presence/ absence/ changes of  steady beates in music or the characteristics of spoken word. The latter make gain visualization particularly useful to quickly locate tracks in audio material that has been cross-faded or that is separated by speech instead of silence (radio recordings).

Conventionally, sound is visualized in wave plots (amplitude over time). While these plots doubtlessly convey more information to those used to "reading" them, they have a considerable drawback compared to the gain visualization proposed here. Visualizing audio material on large scale (more than in the order of seconds) in wave representation at screen resolution leads to almost complete loss of information due to overcrowding. Zooming will give precise small scale information - but at the expense of the loss of large scale orientation. In contrast, GainVisualization allows to assess audio material on a scale of many minutes to hours at a single glance without any zooming.


Gain visualization window
Gain visualization is offered in an additional (non-modal) window of mp3Extractor (screen shot on the right) that is brought up by choosing the corresponding entry in the Tools item of the main menu or by pressing the "GainVis" button in the main window. The feature is available for MP3 files only. A complete scan of the input file is mandatory. A dialog will appear in cases where only a quick scan was performed on opening of the project.
Apart from a main menu, and two white number displays, the gain visualization window features
a scroll box containing a marker bar above one or two colored "gain bars" (one for each stereo channel). In the screen shot, these bars appear in different shades of blue. Both bars represent a common horizontal time axis. Unlike the marker in the main window, these bars may be wider than their container and then can be scrolled.

Gain bar
The color of each pixel of a gain bar represents the so called "global gain" parameters of an MP3 frame (two per channel), and is a rough measure for the playback volume of this frame (representing ~25 ms of playback time).
Lighter blue tones represent rather soft frames in contrast to dark blue loud frames.
Beginning top left, the sequential ordering is top to bottom and then left to right. Thus, left to right is the big scale ordering.
On moving the mouse over the pixels of the bar, the corresponding time offset and gain value of a frame is displayed in the white boxes of the window. Clicks trigger corresponding playback jumps in Winamp.
In the example given in the screen shot, three regions have been selected for extraction by
in and out markers, as can be seen in the marker bar in the upper part of the scroll box.
Each region corresponds to three tracks of indie-pop music. While the first two tracks are rather dense with a dominating continuous drumbeat, the third track is very light with just voice and sparing piano. In between is the DJ's commentary.
The acoustic features of each are reflected in the color patterns. The dense songs are in shades of dark blue with the steady beats causing regular diagonal patterns. Spoken word without background sound appears medium blue with characteristically irregular light blue gaps. Well distinguished from both is the piano and voice song, with its rather steady medium blue with just some regular patterns, indicating the soft broken beat.
Note: Global gain values are scale factors determined by the MP3 encoder. They are not the only factors determining playback volume. Different encoders may have different policies on how to scale and thus produce different patters from the same source material. (In the example, the FastEncoder by Fraunhofer was used.)

Options and Handling
By default, the box auto-scrolls keeping the current playback time in the center of display; alternatively, auto-scrolling may be turned of. Color coding can optionally be optimized to maximum variety.

Keyboard short cuts available in the main window of the program (for setting and checking markers etc.) are also available in the gain visualization window.















4. Bits and pieces - Q&A

4.1 Why doesn't this program have a standard Windows help file?

I decided against writing too much platform dependent code. A Windows help file definitely would be too much effort invested in Windows specific stuff. A cross linked html file should do.

to index

4.2 The program has swallowed the latter portion of my tag entry! 

Note that Id3V1 tags impose a 30 character limit on single tag entries (5 ? chars for year), longer strings will be truncated without warning while writing ID3V1 tags.  However, Id3V2 tags will be written out in full length.

to index

4.3 How precise is cutting with the mp3Extractor?

It seems precise enough to separate a DJ’s onset of talk over music and plain music reliably and sharply. The cuts do actually appear where expected, as far as one can tell under the circumstances where reaction times of both man and machine have to be taken into account.

The extractor engine itself works frame based and therefore can't be imprecise – as in general counting is the only process that can, at least theoretically, be done with absolutely no error. So precision is in this respect only limited by the MP3's frame size (< 25 ms in layer 3 version 1 files).

However, the mp3Extractor's cutting entirely relies on the track position times as supplied by Winamp which come on a nominal basis of milliseconds but their true accuracy is not known. Mp3Extractor does therefore never make any time displays with a precision higher than to the full tenth of a second - thereby aiming to avoid the impression of a precision that cannot be guaranteed.


to index

4.4 



to index

4.5 Why is there such a restrictive project file naming convention?

If you consider this convention too restrictive see it in the light of the project concept described here and you will notice that it is absolutely essential. It is not a result of programmer's laziness but will save you lots of clicking around in file browsers because by adhering to this convention the program can much better guess at what you are trying to do. The only downturn, however, is that it is not possible to have several mark list files to one MP3 or several projects of the same name without losing project history support. If you start to manually rename files you will lose the history links and therefore face confrontation with the resulting prompts - and also risk a mix-up of wrong mark list files with wrong MP3 files and so on. In effect you will be getting in the exact situation that this project concept is trying to avoid.

to index

4.6 I have an MLF without the corresponding MP3 and I can't open it. What's wrong?

Nothing. This is a consequence of the project concept. If there's no MP3 to the MLF then there is no project and you can't open it. The markers in there are worthless without the MP3, anyway. If there is information in the tag fields that you are interested in you can view the MLF in a text editor. Another way to get hold of it is to create a dummy MP3 with the corresponding project name (same as the MLF, of course apart from the extension) and trick the program into "opening" this pseudo project. You can then copy and paste the tags into a text file or anywhere else. Finally trash the pseudo project. 

to index

4.7 Why can't mp3Extractor be used with Winamp 3?

The reason for this is that the makers of Winamp dumped the entire Winamp API while moving on from Winamp 2 to 3. (The API is the programming interface that other programs can use to talk to Winamp.) There is a third party plugin for Winamp 3 that is supposed to emulate the Winamp 2.x API, called Winamp 2x Plugin Manager. Unfortunately, this plug in has a bug related to determining track length and thereby disqualifies itself for use with mp3Extractor.

to index

4.8 mp3Extractor does not work with my audio file. I get funny error messages. What is wrong?
Hm, hm, I wished I knew! ;o)
Please, first make sure that your file is of the supported formats as explained here. Then read the section of this manual that covers the part of the program or the stage of proceedings where the error occurs, especially about the pre scan.
If you are still at loss, visit http://mp3Extractor.com. Check your program version (
Help -> About on the main menu) against the current version published on the web. Check the version history on the download page. If there's a newer release, look for bug fixes that might be related to your problem - and download and install the current version anyway, as I don't list every minor bug fix.
Try different files from different sources, to make sure it is really a particular file (type) that causes the problem.
Finally, write an email to mail@mp3Extractor.com and describe the problem. If it's with a particular file, include information about it: how it was generated (program, encoder) or where you got it from. Very helpful in cases of problems with certain MP3's is the MPEG info window in Winamp. You reach it by right clicking the file in Winamp's play list and choosing
view file info. Mark, copy and paste the frame in the lower left (entitled MPEG info) to your email. You will usually get an answer within a day.
I'm looking forward to your complaints as they help a lot in making this program better. Remember, it is not YOUR problem if the program fails, but probably MY fault and MY problem. So, don't hesitate to bother me. You'll help other users also. Thanks.

4.9 Why is mp3Extractor so sensitive to compatibility issues?
The reason for this lies in the program design, which is based on cooperation with Winamp - that is used for file browsing and renders track timings.