Use Non-Frames Version Previous Page Next Page
Signal Modifiers: Convolution and Morphing

dconv

  ar      dconv     asig, isize, ifn

Description

Output is the result of two signals directly convolved together, not the spectral based method of the convolve opcode.

Initialization

isize – the size of the convolution buffer to use. If the buffer size is smaller than the size of ifn, then only the first isize values will be used from the table.

ifn – table number of a stored function containing the impulse response for convolution. If the size of ifn is smaller than isize, then isize will be adjusted accordingly.

Performance

ar – a-rate signal to be convolved

Rather than the analysis/resynthesis method of the convolve opcode, dconv uses direct convolution to create the result. For small tables it can do this quite efficiently, however larger tables require much more time to run. dconv does isize * ksmps multiplies on every k-cycle. Therefore, reverb and delay effects are best done with other opcodes (unless the times are short).

dconv was designed to be used with time varying tables to facilitate new real-time filtering capabilities.

Example

/* dconvtest.orc */
  sr      = 44100
	kr      = 4410
  ksmps   = 10
  nchnls  = 1
  
  #define RANDI(A) #kout	randi	1, kfq, $A*.001+iseed, 1
          tablew	kout, $A, itable#
  
  	       instr 1
  	itable init  1
  	iseed  init  .6
  	isize	 init  ftlen(itable)
  	kfq    line  1, p3, 10
  
  $RANDI(0)
  $RANDI(1)
  $RANDI(2)
  $RANDI(3)
  $RANDI(4)
  $RANDI(5)
  $RANDI(6)
  $RANDI(7)
  $RANDI(8)
  $RANDI(9)
  $RANDI(10)
  $RANDI(11)
  $RANDI(12)
  $RANDI(13)
  $RANDI(14)
  $RANDI(15)
  
  	
  asig     rand  10000, .5, 1
  asig     butlp asig, 5000
  asig     dconv asig, isize, itable
           out   asig *.5
           endin
  
/* dconvtest.orc */
  
/* dconvtest.sco */
  f1 0 16 10 1
  
  i1 0 10
  e
/* dconvtest.sco */

Author

William "Pete" Moss
University of Texas at Austin
Austin, Texas USA
March, 2001
New in Csound 4.12


Use Non-Frames Version Previous Page Next Page
Signal Modifiers: Convolution and Morphing