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 >
Wrap
Text File
|
2001-03-26
|
5KB
|
184 lines
Release Notes for 4.12
======================
This is a set of small but annoying bug fixes, with some new opcodes.
Bug Fixes
---------
Bug in reading MIDI files in .csd fixed
Language Changes
----------------
In scores signed exponentials as now allowed.
In macros bodies the # can be escaped with a \
Opcode Fixes
------------
reverbx is now safe against the input and output being the same
delay also
sun also
mca also
Minor fix in mirror
Bug in hetro fixed, which had very bad effect in Macintish systems
New Opcodes
-----------
dconv -- a direct convolution opcode
polyaft -- well really restored from long ago
vdelayxwq, vdelayxws, vdelayxw, vdelayxq, vdelayxs and vdelayx
Other Changes:
-------------
In IRCAM format and 64fit versions a bug fixed which ruined outout files
Typing error in rt outout in Windows fixed
Windows GUI Changes
-------------------
-----------------------------------------------------------------------
==John ff
2001 March
========================================================================
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.
Performance
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 table 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 realtime 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 */
William 'Pete' Moss 2001
------------------------------------------------------------------------
aout vdelayx ain, adl, imd, iws, [ist]
aout1, aout2 vdelayxs ain1..2, adl, imd, iws,[ist]
aout1, ..., aout4 vdelayxq ain1..4, adl, imd, iws,[ist]
aout vdelayxw ain, adl, imd, iws, [ist]
aout1, aout2 vdelayxws ain1..2, adl, imd, iws,[ist]
aout1, ..., aout4 vdelayxwq ain1..4, adl, imd, iws,[ist]
adl: delay time in seconds
imd: max. delay time (seconds)
iws: interpolation window size (see below)
ist: skip initialization if not zero
These opcodes use high quality (and slow :() interpolation,
that is much more accurate than the currently available
linear and cubic interpolation. The iws parameter sets the
number of input samples used for calculating one output
sample (allowed values are any integer multiply of 4 in
the range 4 - 1024); higher values mean better quality and
slower speed.
The vdelayxw opcodes change the position of the write tap
in the delay line (unlike all other delay ugens that move
the read tap), and are most useful for implementing Doppler
effects where the position of the listener is fixed, and the
sound source is moving.
The multichannel opcodes (eg. vdelayxq) allow delaying 2 or
4 variables at once (stereo or quad signals); this is much
more efficient than using separate opcodes for each channel.
Notes:
- delay time is measured in seconds (unlike in vdelay
and vdelay3), and must be a-rate
- the minimum allowed delay is iws/2 samples
- using the same variables as input and output is allowed
in these opcodes
- in vdelayxw*, changing the delay time has some effects
on output volume:
a = 1 / (1 + dt)
where a is the output gain, and dt is the change of
delay time per seconds
- these opcodes are best used in the double-precision
version of Csound
------------------------------------------------------------------------