Re: zero-crossing division of an AIFF file
Re: zero-crossing division of an AIFF file
- Subject: Re: zero-crossing division of an AIFF file
- From: "Paul Kellett" <email@hidden>
- Date: Mon, 10 Feb 2003 09:44:27 -0000
"Andrew GFunk" <email@hidden> wrote:
>
>
Hi! You know how Emagic's Logic Audio searches for "zero-crossing" points in
>
the sample editor? I was wondering how one would split an AIFF file into two
>
seperate files at first occurance of a "zero-crossing" point. Is there a
>
standard method for searching for these points? What's the definition of
>
"zero-crossing" when we're dealing with a stereo sound (obviously it can't
>
be where BOTH channels are at 0dB... the likelyhood of that happening at any
>
point is next to nil)? Any help on this subject would be MUCH appreciated :)
The music-dsp mailing list is probably a better place for questions like
this, but...
To search for zero crossings, look for a change in sign. How to do this depends
on the data format - you could use a bit mask to look at the sign, or multiply
the current and previous sample and if the result is < 0 the sign has changed.
The reason to split at zero crossings is to avoid clicks, and the most audible
clicks are when there is only low frequency audio present as higher frequencies
tend to hide the click. As low frequencies will mostly be panned to the centre,
I would sum all the channels then look for zero crossings. Then if you do get
a click it will be in the differences between channels so should be quieter.
If the split files can overlap a little, you have much more freedom to use short
fades, or to split at different zero crossings in different channels and pad the
gaps at the start and end with silence.
Paul.
_____________________________
m a x i m | digital audio
http://mda-vst.com
_____________________________
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.