Csound Csound-dev Csound-tekno Search About

Version 3.53

Date1999-03-22 11:12
Fromjpff@maths.bath.ac.uk
SubjectVersion 3.53
Message written at 21 Mar 1999 17:54:39 +0000

I have started the process to place v3/53 on the servers.  I attach
shortened release notes.
==John ffitch

------------------------------------------------------------------------
Release Notes for 3.53
======================

These are the release notes for version 3.53.  

Bug Fixes
---------

In vdelay it was possible for an error on wrapping the delay

(PC only) the shaker opcode did not work due to a file transfer
failure.

envlpxr could cause a crash due to a typing error

Bug in wgflute which caused silent notes eliminated

Bug in diskin/soundin fixed

cpsmidi nolonger attempts to track pitchbend

Language Changes
----------------

Internal changes to NeXT added in many places (thanks to Stephen Brandon)

Strings are now recognised in scores for a large number fo opcodes
(convolve, adsyn, diskin, soundin, pvoc etc. 

ftlen upgraded so it works with deferred function tables (it loads the
file) 

opcode ondur/ondur2 renamed to noteondur/noteondur2.

peakk renamed peak (with internal discrimination)

Inside [] in the score the form ~ will give a randon number in the
range 0 to 1.


Opcode Fixes
------------

ftsr -- this opcode/function got lost at some stage, mea culpa

mandol -- not accepts a negative base-frequency to skip initialisation

In various wg opcodes, if minimum frequency is not given and the
frequency is a k-rate value, instead of an error, a minimum of 50Hz is
assumed with a warning 

New Opcodes 
-----------

nestedap -- nested allpass filters

lorenz -- ode generator

pitch -- a spectrum-based pitch-tracker

Other Changes:
-------------


Windows GUI Changes
-------------------



------------------------------------------------------------------------
==John ff
  1999 Spring Equinox
========================================================================
nestedap implements three different nested all-pass filters useful for
implementing reverbs.

aout nestedap asig, imode, imaxdelay, idelay1, igain1 [, idelay2, igain2,
                                                         idelay3, igain3]

Mode 1 is a simple all-pass filter:

   __d1,g1__
  |         |
  v         v
------------->

Mode 2 is a single nested all-pass filter:

   __d1,g1____
  |  _d2,g2_  |
  | |       | |
  v v       v v
---------------->

Mode 3 is a double nested all-pass filter:

   __d1,g1______________
  |  _d2,g2_   _d3,g3_  |
  | |       | |       | |
  v v       v v       v v
-------------------------->

Note imaxdelay is not currently used but will be necessary if k-rate delay
is implemented.

Example:
instr 5
  insnd     =           p4
  gasig     diskin      insnd, 1
endin 

instr 10
  imax      =           1
  idel1     =           p4
  igain1    =           p5
  idel2     =           p6
  igain2    =           p7
  idel3     =           p8
  igain3    =           p9
  idel4     =           p10
  igain4    =           p11
  idel5     =           p12
  igain5    =           p13
  idel6     =           p14
  igain6    =           p15
  afdbk     init        0

  aout1     nestedap    gasig+afdbk*.4, 3, imax, idel1, igain1, idel2, igain2, idel3,    igain3      
  aout2     nestedap    aout1, 2, imax, idel4, igain4, idel5, igain5
  aout      nestedap    aout2, 1, imax, idel6, igain6
  afdbk     butterlp    aout, 1000

            outs        gasig+(aout+aout1)/2, gasig-(aout+aout1)/2
  gasig     =           0
endin 
f1 0 8192 10 1

; Diskin
;   Sta  Dur  Soundin
i5  0    3    1

; Reverb
;   Sta  Dur  Del1 Gain1 Del2 Gain2  Del3 Gain3 Del4 Gain4 Del5 Gain5 Del6 Gain6
i10 0    4    97   .11   23   .07    43   .09   72   .2    53   .2    119  .3

------------------------------------------------------------------------
lorenz implements the lorenz system of equations:

ax, ay, az lorenz ksv, krv, kbv, kh, ix, iy, iz, iskip

instr 20
  ksv       =           p4
  krv       =           p5
  kbv       =           p6

  ax, ay,az lorenz      ksv, krv, kbv, .01, .6, .6, .6, 1
            outs        ax*1000, ay*1000
endin 

; Lorenz system
;   Sta  Dur  S   R  V
i20 5    1    10  28  2.667
------------------------------------------------------------------------
pitch is a spectrum-based pitch tracker

koct, kamp  pitch asig, iupdte, ilo, ihi, idbthresh[, ifrqs, iconf, istrt,
                   iocts, ifrqs, iq, inptls, irolloff, istor]

The input signal is analysed to give a pitch/amplitude pair for the
strongest pitch in the signal.   The value is updates every iupdte
seconds.

INITIALISATION

ilo, ihi -- range in which pitch is detected (as decimal octaves)

idbthresh -- energy level in decibells necessary for pith to be
detected.  Once started it continues until it is 6bd down

iconf -- the number of conformations needed for an octave jump.
Default value is 10

istrt -- starting pitch for tracker, defaults to average of ilo and
ihi.

iocts -- number of octave decimations in spectrum, defaulting to 6

ifrqs -- number of divisons of an octave, defaults to 12 and is
limited to 120

iq -- Q rate of analysis, dafaulting to 10

inptls, irolloff -- number of harmonic partials used in matching.
Defaulst to 4 and 0.6

istor -- is none zero skips initialisation

PERFORMANCE

Using the same techniques as spectrum and specptrk estimates the pitch
of the signal.  Pitch is reported in decimal octave form, and
amplitude in db

While the default settings are reasonable for general use, some
experimentation may be necessary for complex sounds.
------------------------------------------------------------------------