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