On Wed, Jan 14, 2009 at 06:39:48PM +0100, [email protected] wrote:
> I have noticed that often peaks do not coincide with real beat starts: 
> peaks are detected "right shifted", that is some time after beat really 
> starts. This could be due to two reasons: 1) the LP filter cuts too low: 
> typically kick drums peaks at about 100 Hz, but if kick drum is not 
> present at the begin of a track also higher frequency range should be 
> considered. 2) the envelope of a typical kickdrum waveform: there is a 
> short raise time before peak is reached. This raise time (some tens ms) 
> could be subtracted to peak positions.

The envelope-follower part of the algorithm is supposed to have
this effect, by predictively starting to rise upto 512 samples
before the signal. But by the time it's gone through two LPFs,
who knows what it looks like? 

Yes it is difficult to do BPM detection well, but it is definitely
not impossible, because Pioneer do it very well. CDJs correctly
detect BPM in about 99% of my tracks, which cover both 4/4 and
stuff like breaks and drum'n'bass (the latter sometimes detected 
as half the actual BPM, but effectively the same) Unfortunately
we stand little chance of figuring out how they do it (or, if we
can from a patent, being able to copy it because it's patented).
But clearly it is possible.

The biggest thing missing from mixxx's BPM handling is manual 
beat marker placement (and auto-filling between the manual marks.)
This could and should be as easy as using the Tap Tempo button 
to make marks, and then hunting for a peak within a few samples 
of the taps. But the Tap Tempo button needs to be on the GUI and
able to be MIDI controlled which it wasn't last time I checked.

Ben


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to