Skip to content

centroid

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

Syntax

kcent centroid asig, ktrig, ifftsize

Initialization

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

Performance

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).

Examples

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

Example of the centroid opcode.
<CsoundSynthesizer>
<CsOptions>
; 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
</CsOptions>
<CsInstruments>

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

endin
</CsInstruments>
<CsScore>

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

</CsScore>
</CsoundSynthesizer>

See also

Sensing and Control: Tempo and Pitch estimation

Credits

Author: V Lazzarini;
August 2012