home *** CD-ROM | disk | FTP | other *** search
/ earth.cs.bath.ac.uk / earth.cs.bath.ac.uk.zip / earth.cs.bath.ac.uk / pub / dream / Version4_12.Notes < prev    next >
Text File  |  2001-03-26  |  5KB  |  184 lines

  1. Release Notes for 4.12
  2. ======================
  3.  
  4. This is a set of small but annoying bug fixes, with some new opcodes.
  5.  
  6.  
  7. Bug Fixes
  8. ---------
  9.  
  10. Bug in reading MIDI files in .csd fixed
  11.  
  12.  
  13.  
  14. Language Changes
  15. ----------------
  16.  
  17. In scores signed exponentials as now allowed.
  18.  
  19. In macros bodies the # can be escaped with a \
  20.  
  21.  
  22. Opcode Fixes
  23. ------------
  24.  
  25. reverbx is now safe against the input and output being the same
  26. delay also
  27. sun also
  28. mca also
  29.  
  30. Minor fix in mirror
  31.  
  32. Bug in hetro fixed, which had very bad effect in Macintish systems
  33.  
  34.  
  35. New Opcodes 
  36. -----------
  37.  
  38. dconv -- a direct convolution opcode
  39.  
  40. polyaft -- well really restored from long ago
  41.  
  42. vdelayxwq, vdelayxws, vdelayxw, vdelayxq, vdelayxs and vdelayx
  43.  
  44.  
  45. Other Changes:
  46. -------------
  47.  
  48. In IRCAM format and 64fit versions a bug fixed which ruined outout files
  49.  
  50. Typing error in rt outout in Windows fixed
  51.  
  52.  
  53. Windows GUI Changes
  54. -------------------
  55.  
  56. -----------------------------------------------------------------------
  57. ==John ff
  58.   2001 March
  59. ========================================================================
  60. ar    dconv    asig, isize, ifn
  61.  
  62. Description
  63.  
  64. Output is the result of two signals directly convolved together, not
  65. the spectral based method of the convolve opcode.
  66.  
  67. Initialization
  68.  
  69. isize - the size of the convolution buffer to use.  if the buffer size
  70. is smaller than the size of ifn, then only the first isize values will
  71. be used from the table.
  72.  
  73. ifn - table number of a stored function containing the Impulse
  74. Response for convolution.
  75.  
  76. Performance
  77.  
  78. Rather than the analysis/resynthesis method of the convolve opcode,
  79. dconv uses direct convolution to create the result.  For small tables
  80. it can do this quite efficiently, however larger table require much
  81. more time to run.  dconv does (isize * ksmps) multiplies on every
  82. k-cycle.  Therefore, reverb and delay effects are best done with other
  83. opcodes (unless the times are short).
  84.  
  85. dconv was designed to be used with time varying tables to facilitate
  86. new realtime filtering capabilities.
  87.  
  88. Example
  89.  
  90. /* dconvtest.orc */
  91. sr = 44100
  92. kr = 4410
  93. ksmps = 10
  94. nchnls = 1
  95.  
  96. #define RANDI(A) #kout    randi    1, kfq, $A*.001+iseed, 1
  97.     tablew    kout, $A, itable#
  98.  
  99. instr 1
  100. itable    init    1
  101. iseed    init    .6
  102. isize    init    ftlen(itable)
  103. kfq    line    1, p3, 10
  104.  
  105. $RANDI(0)
  106. $RANDI(1)
  107. $RANDI(2)
  108. $RANDI(3)
  109. $RANDI(4)
  110. $RANDI(5)
  111. $RANDI(6)
  112. $RANDI(7)
  113. $RANDI(8)
  114. $RANDI(9)
  115. $RANDI(10)
  116. $RANDI(11)
  117. $RANDI(12)
  118. $RANDI(13)
  119. $RANDI(14)
  120. $RANDI(15)
  121.  
  122. asig    rand    10000, .5, 1
  123. asig    butlp    asig, 5000
  124. asig    dconv    asig, isize, itable
  125.  
  126.     out    asig *.5
  127. endin
  128. /* dconvtest.orc */
  129.  
  130. /* dconvtest.sco */
  131. f1 0 16 10 1
  132. i1 0 10
  133. e
  134. /* dconvtest.sco */
  135.  
  136. William 'Pete' Moss 2001
  137.  
  138. ------------------------------------------------------------------------
  139.   aout              vdelayx ain, adl, imd, iws, [ist]
  140.   aout1, aout2      vdelayxs ain1..2, adl, imd, iws,[ist]
  141.   aout1, ..., aout4 vdelayxq ain1..4, adl, imd, iws,[ist]
  142.  
  143.   aout              vdelayxw ain, adl, imd, iws, [ist]
  144.   aout1, aout2      vdelayxws ain1..2, adl, imd, iws,[ist]
  145.   aout1, ..., aout4 vdelayxwq ain1..4, adl, imd, iws,[ist]
  146.  
  147.     adl: delay time in seconds
  148.     imd: max. delay time (seconds)
  149.     iws: interpolation window size (see below)
  150.     ist: skip initialization if not zero
  151.  
  152. These opcodes use high quality (and slow :() interpolation,
  153. that is much more accurate than the currently available
  154. linear and cubic interpolation. The iws parameter sets the
  155. number of input samples used for calculating one output
  156. sample (allowed values are any integer multiply of 4 in
  157. the range 4 - 1024); higher values mean better quality and
  158. slower speed.
  159.  
  160. The vdelayxw opcodes change the position of the write tap
  161. in the delay line (unlike all other delay ugens that move
  162. the read tap), and are most useful for implementing Doppler
  163. effects where the position of the listener is fixed, and the
  164. sound source is moving.
  165.  
  166. The multichannel opcodes (eg. vdelayxq) allow delaying 2 or
  167. 4 variables at once (stereo or quad signals); this is much
  168. more efficient than using separate opcodes for each channel.
  169.  
  170. Notes:
  171.   - delay time is measured in seconds (unlike in vdelay
  172.     and vdelay3), and must be a-rate
  173.   - the minimum allowed delay is iws/2 samples
  174.   - using the same variables as input and output is allowed
  175.     in these opcodes
  176.   - in vdelayxw*, changing the delay time has some effects
  177.     on output volume:
  178.       a = 1 / (1 + dt)
  179.     where a is the output gain, and dt is the change of
  180.     delay time per seconds
  181.   - these opcodes are best used in the double-precision
  182.     version of Csound
  183. ------------------------------------------------------------------------
  184.