[LAD] Identify Peek in Drum Samples
zanga.mail at gmail.com
Mon Dec 20 09:41:08 UTC 2010
2010/12/20 Oliver Jaun <olijaun at yahoo.com>:
> I bought the natural drum samples (http://www.naturaldrum.com/). It contains
> WAVs and presets for Kontakt and Halion. Now I'd like to create some
> gigasampler files in order to use it with linuxsampler.
> The documentation of the natural drum sample library is quite good. The only
> thing missing is the "loudness" of each sample in order to map each sample
> to a velocity level from 0-127.
Loudness is a complex beast (i.e., lots of psychoacoustics involved).
> What would you recommend in order to calculate the "peek" of each drum
> sample automatically? Is there a library which could do this? I would also
> be happy with a command line tool like this:
> $ peek bla.wav
> Peek value: 12345
> I could then write a C++-App using libgig.
> Any ideas? Libraries? Algorithms?
Something like this could do the trick for you (pseudocode):
attack = 0.99
level = 0
peek = 0
for each sample
level = (1 - attack) * level + attack * abs(sample)
peek = MAX(peek, level)
(I suppose that samples have 0 mean, i.e. DC component filtered out)
The attack thing should be close but less than 1, you can try different values.
More information about the Linux-audio-dev