[LAD] Identify Peek in Drum Samples

Stefano D'Angelo zanga.mail at gmail.com
Mon Dec 20 09:41:08 UTC 2010

2010/12/20 Oliver Jaun <olijaun at yahoo.com>:
> Hello
> 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 mailing list