<- C I ->

specaddm, specdiff, specscal, spechist, specfilt

     wsig specaddm  wsig1, wsig2[, imul2]
     wsig specdiff  wsigin
     wsig specscal  wsigin, ifscale, ifthresh
     wsig spechist  wsigin
     wsig specfilt  wsigin, ifhtim

INITIALIZATION

imul2 (optional) - if non-zero, scale the wsig2 magnitudes before adding. The default value is 0.

PERFORMANCE

specaddm - do a weighted add of two input spectra. For each channel of the two input spectra, the two magnitudes are combined and written to the output according to: magout = mag1in + mag2in * imul2. The operation is performed whenever the input wsig1 is sensed to be new. This unit will (at Initialization) verify the consistency of the two spectra (equal size, equal period, equal mag types).

specdiff - find the positive difference values between consecutive spectral frames. At each new frame of wsigin, each magnitude value is compared with its predecessor, and the positive changes written to the output spectrum. This unit is useful as an energy onset detector.

specscal - scale an input spectral datablock with spectral envelopes. Function tables ifthresh and ifscale are initially sampled across the (logarithmic) frequency space of the input spectrum; then each time a new input spectrum is sensed the sampled values are used to scale each of its magnitude channels as follows: if ifthresh is non-zero, each magnitude is reduced by its corresponding table-value (to not less than zero); then each magnitude is rescaled by the corresponding ifscale value, and the resulting spectrum written to wsig.

spechist - accumulate the values of successive spectral frames. At each new frame of wsigin, the accumulations-to-date in each magnitude track are written to the output spectrum. This unit thus provides a running histogram of spectral distribution.

specfilt - filter each channel of an input spectrum. At each new frame of wsigin, each magnitude value is injected into a 1st-order lowpass recursive filter, whose half-time constant has been initially set by sampling the ftable ifhtim across the (logarithmic) frequency space of the input spectrum. This unit effectively applies a persistence factor to the data occurring in each spectral channel, and is useful for simulating the energy integration that occurs during auditory perception. It may also be used as a time-attenuated running histogram of the spectral distribution.

Example:  
     wsig2     specdiff       wsig1          ; sense onsets
     wsig3     specfilt       wsig2, 2       ; absorb slowly
               specdisp       wsig2, .1      ; & display both spectra
               specdisp       wsig3, .1


<- C I ->
Prepared from the MIT Media Lab Csound Manual, PJN, Nov 1994.