quality transient analysis

Matthew Aidekman's icon

END GOAL-------------------------------------------------
A program which takes a soundfile.wav, and produces a soundfile.xml
in the same directory. the xml file would have tons of useful
metadata just waiting to be indexed and searched.

WHATS WRONG----------------------------------------------
it seems my detecting of transients and pitches are wavering around
in terms of latency. (15-40 ms) I'm using bonk~ and analyzer~. but I
can't measure the latency. Also, if my attack happens to be at time
zero bonk~ doesn't see it.

I'm hoping to generate protools' beat detective quality
information. maybe this project is over my head.... sob....

Can any know-it-alls advise me on generating quality transient maps?
(in or out of realtime) vector sizes? window shapes? magic objects?

-matt

this is an example of how I'm trying it now.

Max Patch
Copy patch and select New From Clipboard in Max.


Jean-Francois Charles's icon
Matthew Aidekman's icon

wow this is so helpful and I am so silly for not seeing it. bonk~
uses FFT as well.

maybe what I'll do is use the fft objects for quantity and
approximate positions of attacks, then focus on those areas and look
for attacks in the time domain.

Nonlinearity rocks!

I'll post an example if I get it.
-matt

. . . . . . . . . . . .
Http://www.EstateSound.com
Http://ideasforstuff.blogspot.com
. . . . . . . . . . . .

Peter McCulloch's icon

If you're doing off-line analysis, you could use a delay~ equal to the
FFT size (or possibly 2X to account for overlap?)

For quick and dirty approaches, you might try an envelope follower on a
highpass filter. (and looking at thresholds on that)

You also might get something out of zerox~ in combination with an
envelope follower. (multiply the output of the env follower by the
zerox~ sig?) That way it ignores the high values produced by zerox~
produced when nobody is playing.

Peter McCulloch