I know there is a project to avoid pauses between tracks by extending the
MP3 format with additional tags. But I don't understand why this is necessary and
AFAIS the handling is a little bit difficult.

Proposal:

  Input/Output file name pairs. A missing output file name is substituted by
  the input name with a new suffix.

    lame [options] [input]
    lame [options] [input] [output]
    lame [options] [input1] [output1] [input2] 
    lame [options] [input1] [output1] [input2] [output2]
    ...

  Input file names. Output file name are the input name with a new suffix.

    lame [options] --input [input]
    lame [options] --input [input1] [input2]
    lame [options] --input [input1] [input2] [input3]
    ...

What happens when lame is called with a collection of files?


CODING:
_________________________________________________________________
                                 |
        PCM File 1               |        PCM File 2
_________________________________|_______________________________
| 1           | 3           | 5           | 7            | 9       MP3 frames
       | 2           | 4           | 6            | 8           |

1-2 coded normally and written to the MP3 File 1.

3 coded to MP3 File 1 and clears the bit reservoir
   CBR: Use all bits of the bit reservoir and the current frame
   VBR: Code normally, determine frame size, round up frame size, code again
        for this frame size

4 overlaps with PCM File 2. So the PCM data is taken from PCM File 1 and 2,
coded and written to MP3 file 2. The only handicap for CBR is the cleared bit
reservoir.

5 ist also taken from PCM File 1 and 2.

6+ ist coded in the normal manner and written to MP3 File 2.

Coding can also be done from one big PCM File with Cue sheet or from a
pipe/socket.


DECODING:

Two successive MP3 files with the same sample frequency will be decoded in
the normal way and overlapped by a half MP3 frame without additional
weights.

    short file1 [...];
    short file2 [...];
    ...

    for ( i = 0; i < sizeofA (file1) - overlap; i++ )
        send ( file1 [i] );
    for ( i = 0; i < overlap; i++ )
        send ( file1 [sizeofA (file1) - overlap + i] + file2 [i] );
    for ( i = overlap; i < sizeofA (file2) - overlap; i++ )
        send ( file2 [i] );
    ...

CODING USAGE:

    cdparanoia -B /dev/hdd
    lame -b 192 --input *.cdda.wav

    No big changes so the chance is >1% that normal people will use it.
    If you need a FAQ then >90% of the album MP3 files out there are gappy.

DECODING:

    A small change in every decoder and the user have nothing to do at all.


-- 
Mit freundlichen Grüßen
Frank Klemm
 
eMail | [EMAIL PROTECTED]       home: [EMAIL PROTECTED]
phone | +49 (3641) 64-2721    home: +49 (3641) 390545
sMail | R.-Breitscheid-Str. 43, 07747 Jena, Germany

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to