Skip to content

ceps

Calculate the cepstrum of an array input, optionally filtering coefficients.

Syntax

keps[] = ceps(kmags[] [, icoefs])
keps[] ceps kmags[] [, icoefs]

Initialization

icoefs -- the number of retained coefficients in the cepstrum output. By default, no coefficients are filtered.

Performance

keps[] -- the cepstrum output, an array of size N+1, where N is a power of two.

kmags[] -- an input array containing N+1 magnitudes.

Examples

Here is an example of the use of the ceps opcode. It uses the file ceps-modern.csd.

Example of the _ceps_ opcode.
<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>

instr 1
  a1 = diskin("fox.wav", 1, 0, 1)
  k1 = randh(80, 2.5)
  a2 = vco2(1, 220+k1)
  kfsig[] = init(1026)
  fsig = pvsanal(a1, 1024, 256, 1024, 1)
  fsig2 = pvsanal(a2, 1024, 256, 1024, 1)
  kf = pvs2tab(kfsig, fsig)
  keps[] = ceps(c2r(kfsig), 30)
  kenv[] = cepsinv(keps)
  fenv = tab2pvs(r2c(kenv))
  out(pvsynth(pvsfilter(fsig2, fenv, 1)))
endin

</CsInstruments>
<CsScore>
i1 0 60
</CsScore>
</CsoundSynthesizer>

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

Example of the _ceps_ opcode.
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>

instr 1

a1 diskin "fox.wav",1,0,1
k1 randh  80, 2.5
a2 vco2  1, 220+k1
kfsig[] init 1026
fsig pvsanal a1,1024,256,1024,1
fsig2 pvsanal a2,1024,256,1024,1
kf pvs2tab kfsig,fsig
keps[] ceps c2r(kfsig),30
kenv[] cepsinv keps
fenv tab2pvs r2c(kenv)
fvoc pvsfilter fsig2, fenv, 1
asig pvsynth fvoc

    out asig
endin


</CsInstruments>
<CsScore>
i1 0 60
</CsScore>
</CsoundSynthesizer>

See Also

Array-based spectral opcodes

Credits

Author: Victor Lazzarini
2014