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_09.Notes
< prev
next >
Wrap
Text File
|
2000-12-04
|
14KB
|
366 lines
Release Notes for 4.09
======================
Bug Fixes
---------
Some internal strings had been changed by mistake, confusing some
operating systems.
On Windows there was a bug in sfont stuff, now fixed
Language Changes
----------------
It is more likely that // and /* */ comments will work in .csd files
Peak chunks can be switched off with a -K option
There is a new form in a .csd file which allows version checking. One
can police whether the version of Csound can run a particular piece.
Format is
<CsVersion>
Before #.# or After #.# or #.#
</CsVersion>
The last two forms are equivalent
There was a simple but devistating bug in reading AIFF files
Opcode Fixes
------------
The 31-bit pseudo random number generators are now bipolar as they
should have been.
The sliders can now have text labels, which can be set with setctrl
opcode, which is extended to allow case 4 (label)
In sfont opcode there is a filter to stop teh printing of unprintabel
characters which was upsetting xterms on some unixes.
There was a bug in expseg which I had never seen but could occur if a
structure was reused internally.
There was a fence-post problem in looping oscilators.
The whole of wgpluck has been reworked. The bug whereby the first use
was quiet has been fixed, and the excitation of the string moved to
the correct place (it used to be added to outout of string not the
input). The loop filter has been reworked, for simpler and shorter
code, but i am still not convinced that it is correct. It is at least
no worse.
New Opcodes
-----------
babo -- Ball in a Box resonator (note copyright on this)
sense -- Check is a (computer) key has been pressed [Unix only at present]
transeg -- a mixed linear and exponential envelope opcode, rather like
in cmusic.
GEN16 -- new gen to do the same as transeg
Other Changes:
-------------
vreverb revised significantly to allow a more flexible structure
The entry table has been split into two to make it more manageable,
and in particular to allow a M68K system to be created.
Incorporation of BeOS patches
Windows GUI Changes
-------------------
------------------------------------------------------------------------
==John ff
2000 October
========================================================================
en ar nreverb asig, krvt, khdif [, iskip] [,inumCombs, ifnCombs] [,inumAlpas, ifnAlpas]
INITIALIZATION
inumCombs - number of filter constants in comb filter. If omitted, the
values default to the nreverb constants.
ifnCombs - function table with inumCombs comb filter time values
directly followed the same number of comb gain values. The ftable
should not be rescaled (use negative fgen number).
Positive time values are in seconds. The given time is
converted internally into number of samples, and then set to the
nearest greater prime number.
If time is negative, it is interpreted directly as time in
sample frames, and no processing is done (except negation).
inumAlpas, ifnAlpas - same as inumCombs/ifnCombs, for allpass filter.
PERFORMANCE
This is a revision of nreverb which adds the possibility of reading
any number of comb and allpass filter constants from a ftable.
EXAMPLES
Orchestra:
a1 soundin "neopren.wav"
a2 nreverb a1, 1.5, .75, 0, 8, 71, 4, 72
out a1 + a2 * .4
Score:
; freeverb time constants, as direct (negative) sample, with arbitrary gains
f71 0 16 -2 -1116 -1188 -1277 -1356 -1422 -1491 -1557 -1617 0.8 0.79 0.78 0.77 0.76 0.75 0.74 0.73
f72 0 16 -2 -556 -441 -341 -225 0.7 0.72 0.74 0.76
i1 0 7
e
------------------------------------------------------------------------
BABO(Csound) BABO(Csound)
Babo
ar,al babo asig,ksrcx,ksrcy,ksrcz,irx,iry,irz[,idiff[,ifno]]
DESCRIPTION
Babo stands for BAll-within-the-BOx. It is a physical
model reverberator based on the paper by Davide Rocchesso
"The Ball within the Box: a sound-processing metaphor",
Computer Music Journal, Vol 19, N.4, pp.45-47, Winter
1995.
A short description of the opcode should mention that it
allows to define the resonator geometry along with some of
its response characteristics, the position of the listener
within the resonator, and the position of the source of
sound. Babo then calculates early and later reflections
by means of a tapped delay line and a circulant feedback
delay network.
INITIALIZATION
irx,iry,irz - the coordinates of the geometry of the res
onator (length of the edges in meters)
idiff - is the coefficient of diffusion at the
walls, which regulates the amount of diffu
sion (0-1, where 0 = no diffusion, 1 = maxi
mum diffusion - default: 1)
ifno - expert values function: a function number
that holds all the additional parameters of
the resonator
INITIALIZATION (Expert Values)
These values are contained in a function, typically a
GEN2--type function used in non-rescaling mode.
decay - main decay of the resonator (default: 0.99)
hydecay - high frequency decay of the resonator
(default: 0.1)
rcvx,rcvy,rcvz -
the coordinates of the position of the
receiver (=the listener) (in meters; 0,0,0
is the resonator center)
rdistance - is the distance in meters between the two
pickups (i.e. your ears, for example... -
default: 0.3)
direct - is the attenuation of the direct signal
(0-1, default: 0.5)
early_diff - is the attenuation coefficient of the early
reflections (0-1, default: 0.8)
PERFORMANCE
ar,al - the stereo output signal
asig - the input signal
ksrcx,ksrcy,ksrcz -
the virtual coordinates of the source of
sound (i.e. the input signal); these are
allowed to move at k-rate and provide all
the necessary variations in terms of
response of the resonator
EXAMPLES
Orchestra File - Simple usage
;
; minimal babo instrument
;
instr 1
ix =p5 ; x position of source
iy =p6 ; y position of source
iz =p7 ; z position of source
ixsize =p8 ; width of the resonator
iysize =p9 ; depth of the resonator
izsize =p10 ; height of the resonator
ainput soundin p4
al,ar babo ainput*0.9, ix, iy, iz, ixsize, iysize, izsize
outs al,ar
endin
Score File - Simple Usage
;
; simple babo usage:
;
;p4 : soundin number
;p5 : x position of source
;p6 : y position of source
;p7 : z position of source
;p1 : width of the resonator
;p12 : depth of the resonator
;p13 : height of the resonator
;
i1 0 10 1 6 4 3 14.39 11.86 10
; ^^^^^^^ ^^^^^^^^^^^^^^
; ||||||| ++++++++++++++: optimal room dims according to
; ||||||| Milner and Bernard JASA 85(2), 1989
; +++++++++: source position
e
Orchestra File - Expert usage
;
; full blown babo instrument with movement
;
instr 2
ixstart=p5 ; start x position of source (left-right)
ixend =p8 ; end x position of source
iystart=p6 ; start y position of source (front-back)
iyend =p9 ; end y position of source
izstart=p7 ; start z position of source (up-down)
izend =p10 ; end z position of source
ixsize =p11 ; width of the resonator
iysize =p12 ; depth of the resonator
izsize =p13 ; height of the resonator
idiff =p14 ; diffusion coefficient
iexpert=p15 ; power user values stored in this function
ainput soundin p4
ksource_x line ixstart, p3, ixend
ksource_y line iystart, p3, iyend
ksource_z line izstart, p3, izend
al,ar babo ainput*0.9, ksource_x, ksource_y, ksource_z, ixsize, iysize, izsize, idiff, iexpert
outs al,ar
endin
Score File - Expert Usage
; full blown instrument
;p5 : start x position of source (left-right)
;p6 : end x position of source
;p7 : start y position of source (front-back)
;p8 : end y position of source
;p9 : start z position of source (up-down)
;p10 : end z position of source
;p11 : width of the resonator
;p12 : depth of the resonator
;p13 : height of the resonator
;p14 : diffusion coefficient
;p15 : power user values stored in this function
; decay hidecay rx ry rz rdistance direct early_diff
f1 0 8 -2 0.95 0.95 0 0 0 0.3 0.5 0.8 ; brighter
f2 0 8 -2 0.95 0.5 0 0 0 0.3 0.5 0.8 ; default (to be set as)
f3 0 8 -2 0.95 0.01 0 0 0 0.3 0.5 0.8 ; darker
f4 0 8 -2 0.95 0.7 0 0 0 0.3 0.1 0.4 ; to hear the effect of diffusion
f5 0 8 -2 0.9 0.5 0 0 0 0.3 2.0 0.98 ; to hear the movement
f6 0 8 -2 0.99 0.1 0 0 0 0.3 0.5 0.8 ; default vals
; ^
; ----- gen. number: negative to avoid rescaling
i2 10 10 1 6 4 3 6 4 3 14.39 11.86 10 1 6 ; defaults
i2 + 4 2 6 4 3 6 4 3 14.39 11.86 10 1 1 ; hear brightness 1
i2 + 4 2 6 4 3 -6 -4 3 14.39 11.86 10 1 2 ; hear brightness 2
i2 + 4 2 6 4 3 -6 -4 3 14.39 11.86 10 1 3 ; hear brightness 3
i2 + 3 2 .6 .4 .3 -.6 -.4 .3 1.439 1.186 1.0 0.0 4 ; hear diffusion 1
i2 + 3 2 .6 .4 .3 -.6 -.4 .3 1.439 1.186 1.0 1.0 4 ; hear diffusion 2
i2 + 4 2 12 4 3 -12 -4 -3 24.39 21.86 20 1 5 ; hear movement
;
i2 + 4 1 6 4 3 6 4 3 14.39 11.86 10 1 1 ; hear brightness 1
i2 + 4 1 6 4 3 -6 -4 3 14.39 11.86 10 1 2 ; hear brightness 2
i2 + 4 1 6 4 3 -6 -4 3 14.39 11.86 10 1 3 ; hear brightness 3
i2 + 3 1 .6 .4 .3 -.6 -.4 .3 1.439 1.186 1.0 0.0 4 ; hear diffusion 1
i2 + 3 1 .6 .4 .3 -.6 -.4 .3 1.439 1.186 1.0 1.0 4 ; hear diffusion 2
i2 + 4 1 12 4 3 -12 -4 -3 24.39 21.86 20 1 5 ; hear movement
; ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^ ^
; ||||||||||||||||||| ||||||||||||||||| | --: expert values function
; ||||||||||||||||||| ||||||||||||||||| +--: diffusion
; ||||||||||||||||||| ----------------: optimal room dims according to Milner and Bernard JASA 85(2), 1989
; |||||||||||||||||||
; --------------------: source position start and end
e
AUTHORS
Davide Rocchesso (rocchesso@sci.univr.it) invented Babo,
Padova 1994.
Paolo Filippi (paolfili@tiscalinet.it) coded the csound
implementation, Padova 1999
Nicola Bernardini (nicb@axnet.it) wrote the manual page
and cleaned up the code, Rome 2000.
------------------------------------------------------------------------
ksig sense
Returns the ascii code of one of the keys that has been pressed, or -1
if no key.
Note that this is not properly verified, and seems not to work at all
on Windows.
(JPff)
------------------------------------------------------------------------
ar transeg istart, idur, itype, ivalue, [idur, itype, ivalue,]*
kr transeg istart, idur, itype, ivalue, [idur, itype, ivalue,]*
Constructs an envelope between istart and ivalue for a duration of
idur seconds. If itype is 0 then a straight line is produced;
otherwise is creates the curve
istart + (ivalue - istart) * (1 - exp( i*itype/(n-1) )) / (1 - exp(itype))
for n steps
Thus if itype > 0 there is a slowly rising, fast decaying (convex)
curve, while is itype < 0 the curve is fast rising, slowly decaying
(concave).
(JPff -- with assistance from a number of people)
------------------------------------------------------------------------
GEN16
f # time size 16 start dur type end [dur type end ....]
Creates a table from start to end of dur steps. It typoe is 0 this is
a straight line. Otherwise it is
start + (end - start)*(1 - exp(i*type/(N-1)))/(1 - exp(type))
(JPff -- with assistance from a number of people)
------------------------------------------------------------------------