[vorbis-dev] Idea for gapless tracks

Marshall Eubanks tme at 21rst-century.com
Sun Jan 7 08:03:18 PST 2001

Beni Cherniavsky wrote:
> Marshall Eubanks wrote:
> >
> > Davy Durham wrote:
> >
> > > Beni Cherniavsky wrote:
> > >
> > > > Instead of smoothing you can cross-mix, which is implemented in many
> > > > players anyway.  If you need sample-precision you can extrapolate both
> > > > signals a little with the spectrums they have at their begginings /
> > > > ends.  Maybe you can use the extra samples that the encoder puts in
> > > > and marks to be cropped - you can add a flag to encoder to force it
> > > > leaving so minimal extra samples on both ends - but I'm afraid that
> > > > this abuses the specification, since another encoder is permitted to put
> > > > any garbage he wants there.  So better put it in the player.
> > > > In any case I'm not sure whether it would sound better :-)
> > >
> > > I was going to suggest this, but wouldn't this change the length (which for some reason
> > > may be undesirable to any degree)?
> > >
> You need overlap for crossmixing, that's what the extrapolation is for.
> > This also want really fix the real problem - large changes in level between adjacent
> > audio samples will causes clicks or pops, regardless of whether they are within a ADU or
> > at ADU boundaries.
> >
> What's ADU?

Application Data Unit - the smallest logical "chunk" of a sound or video file
that stands independently. If you have
a sound file from one source, and another from another source, then the
simple-minded way
to join them is to follow the last ADU from file 1 with the first ADU
from file 2. If these
are silent, no problem, but if it happens that they're not, and the
beginning and end
sample values don't match up, you get audio artifacts.

> > I think you are really thinking of a mix segue where one track fades out while another starts.
> > No doubt a human DJ could do this, but what about automatic joins ?  (This is how
> > we came across the problem.)
> >
> Yes.  Isn't it the normal meaning of "crossmixing"?  Anyway, this can be
> done automatically with a fixed amount of overlap - some milliseconds should
> do.  (OT: there is a plugin for Winamp that chooses the crossmixed amount
> automatically according to the volume levels of the two sounds).  This should
> surely not be audible if you join two parts of the same sound.  If you join
> two unrelated sounds, this can make the join smoother, possibly even make
> unaudible, depending on how bad is the level change and how long is the
> crossmixed segment.  Of course this introduces an artifact - it replaces the
> click by a slope.  Maybe this can be improved by crossmixing different length
> at different frequencies, in the spirit of wavelets  (has anybody ever done
> such a thing?  This seems more like "cross-equalizing" - does vorbis allow
> fast and easy equalization in the decoder?).

I think that we are in substantial agreement here - this was basically
what I
proposed here, except that you are allowing the files to overlap some.
It would
be useful to have the ability to adjust the amount of overlap, down to zero
if you wanted.  


> --
> Beni Cherniavsky <cben at crosswinds.net>
>                  (also scben at t2,cben at tx in Technion)
>   No, No! You're not thinking; you're just being logical.
>                                              - Niels Bohr
> --- >8 ----


   Multicast Technologies, Inc.
   10301 Democracy Lane, Suite 201
   Fairfax, Virginia 22030
   Phone : 703-293-9624          Fax     : 703-293-9609     
   e-mail : tme at on-the-i.com     http://www.on-the-i.com

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Vorbis-dev mailing list