centroid

centroid — Calculate the spectral centroid of a signal.

Description

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 125. Example of the centroid opcode.

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

<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