Convolution and Morphing

- convolve :: [Irate] -> Arate -> String -> MultiOut
- cross2 :: K k0 => Arate -> Arate -> Irate -> Irate -> Irate -> k0 -> Arate
- dconv :: Arate -> Irate -> Irate -> Arate
- ftconv :: [Irate] -> Arate -> Irate -> Irate -> MultiOut
- ftmorf :: K k0 => k0 -> Irate -> Irate -> SignalOut
- pconvolve :: [Irate] -> Arate -> String -> MultiOut

# Documentation

convolve :: [Irate] -> Arate -> String -> MultiOutSource

- opcode : convolve
- syntax :

ar1 [, ar2] [, ar3] [, ar4] convolve ain, ifilcod [, ichannel]

- description :

Output is the convolution of signal ain and the impulse response contained in ifilcod. If more than one output signal is supplied, each will be convolved with the same impulse response. Note that it is considerably more efficient to use one instance of the operator when processing a mono input to create stereo, or quad, outputs.

cross2 :: K k0 => Arate -> Arate -> Irate -> Irate -> Irate -> k0 -> ArateSource

- opcode : cross2
- syntax :

ares cross2 ain1, ain2, isize, ioverlap, iwin, kbias

- description :

This is an implementation of cross synthesis using FFT's.

dconv :: Arate -> Irate -> Irate -> ArateSource

- opcode : dconv
- syntax :

ares dconv asig, isize, ifn

- description :

A direct convolution opcode.

ftconv :: [Irate] -> Arate -> Irate -> Irate -> MultiOutSource

- opcode : ftconv
- syntax :

a1[, a2[, a3[,... a8]]] ftconv ain, ift, iplen[, iskipsamples [, iirlen[, iskipinit]]]

- description :

Low latency multichannel convolution, using a function table as impulse response source. The algorithm is to split the impulse response to partitions of length determined by the iplen parameter, and delay and mix partitions so that the original, full length impulse response is reconstructed without gaps. The output delay (latency) is iplen samples, and does not depend on the control rate, unlike in the case of other convolve opcodes.

ftmorf :: K k0 => k0 -> Irate -> Irate -> SignalOutSource

- opcode : ftmorf
- syntax :

ftmorf kftndx, iftfn, iresfn

- description :

Uses an index into a table of ftable numbers to morph between adjacent tables in the list.This morphed function is written into the table referenced by iresfn on every k-cycle.

pconvolve :: [Irate] -> Arate -> String -> MultiOutSource

- opcode : pconvolve
- syntax :

ar1 [, ar2] [, ar3] [, ar4] pconvolve ain, ifilcod [, ipartitionsize, ichannel]

- description :

Convolution based on a uniformly partitioned overlap-save algorithm. Compared to the convolve opcode, pconvolve has these benefits: