centroid — Calculate the spectral centroid of a signal.


Calculate the spectral centroid of an audio signal on a given trigger.


kcent centroid asig, ktrig, ifftsize


ifftsize -- fftsize. Non pow-of-two values are converted to the next pow-of-two not smaller than ifftsize.


kcent -- the spectral centroid in Hz

asig -- an input audio signal

ktrig -- 1 to calculate a new centroid, 0 to skip the process (and output previous value).


Here is an example of the centroid opcode. It uses the file centroid.csd.

Example 126. Example of the centroid opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o centroid.wav -W ;;; for file output any platform

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

giSine ftgen 0, 0, 16384, 10, 1

instr 1

ktrig init 1				;calculate centroid
a1   oscil3 0.5, p4, giSine		;of the sine wave
k1   centroid a1, ktrig, 16384
asig oscil3 0.5, k1, giSine
     printk2 k1				;print & compare:
     outs a1, asig			;left = original, right = centroid signal


i1 0 2 20
i1 + 2 200
i1 + 2 2000


See also

Sensing and Control: Tempo and Pitch estimation


Author: V Lazzarini;
August 2012