Csound Csound-dev Csound-tekno Search About

gen01fromm360

Date1998-11-07 22:16
FromJeffrey John Hall
Subjectgen01fromm360
Hello,
                  I have a considerable background in the M360           
        ancestor of Csound. While much is the same and accordingly
        I've been able to translate and expand a fair amount of my old
        stuff (dating back to 1982), there are a few things that don't
        seem to have a ready equivalent, at least without a lot of grunt
        work. Sooooo, it seems that a more efficient way is to ask    
        whether any antediluvians recall the old Gen01, Gen13, & Gen03,
        subroutines, and what might be their best substitutes in Csound.
        I have been able to utilize the "new" Gen05, Gen06, Gen08, and 
        Gen09, Gen10, but am most concerned with getting something to do 
        the equivalent of the old Gen01, inter alia.
                  So, if anyone recalls and can point me where to grub
        I'll be very grateful.
                            Thanks and good Luck to All,

Date1998-11-09 16:01
FromManning
SubjectRe: gen01from M360
In order to help this enquiry re substitutes for the old Gen01, Gen13, and
gen03 in MUSIC360 (see below) it might be helpful to quote from the 1973
MIT manual what these functions used to do, and then let the experts
have a go:-

"Gen01:  This routine simply stores 512 values along a monotonic curve.
the first value (before rescaling) is p(4) and the last p(6).  The shape
of the curve is determined by p(5) which is the middle value according  to
the following formula :  f(y)= x**(y[squared]) where f(0)=p(4),
f(.5)=p(5), and f(1)=p(6).  From this information the routine determines
the values of x and z.  the principle use of this routine is to control
produced amplitude as a function of intended loudness.  Neither a straight
line nor an exponential curve is a very good approximation to this
relation:  Gen01 can conveniently provide a plausible intermediate shape.  
(Note:  Gen01 also allows the alternative of specifying the exponent z in
the above formula directly.  If p(5) is zero, z=p(7) and f(.5) is
calculated accordingly.)"

"Gen13:  This routine simply stores 512 values along a monotonic curve
like Gen01; but in this case only the first and last values are specified
and interpolation is made according to the SONE scale of amplitude
relationship.  (This scale was devised by S.S. Stevens, and is described
in  The Journal of the Acoustical Society of America, Vol. 27, No. 5, Sept
1955)  Thus Gen13 may provide a better approximation to perceived loudness
than Gen01 or any other Gen-subroutine.  p(4) and p(5) specify the initial
and terminal values, and all other parameter fields are ignored"

[The information on the old Gen03 makes explicit reference to Gen05.
Fortunately Gen05 has survived intact from Music360, though Music11 to
Csound...!!]

"Gen03:  This routine is the same as Geno5 except that the number of
values on a given segment is not specified directly.  The function is
expected to be...treated as a formant function of the fixed frequencies
from 0 to (511/512ths of 1/2 of the sampling rate) Hertz.  In the
odd-numbered P-fields the user specifies in 8VE.PC form the pitch to be
associated with the value given in the next P-field

For the same reason as Gen05, zero values must not be used.  Also the
pitches must be given in rising order, and no two must be the same, foir
this would amount to an instruction to store a segment with no values.

Example:

p(4)    p(5)    p(6)    p(7)    p(8)    p(9)    p(10)    p(11)   p(12)
  1     8.09     20     9.09     5      10.09     20     11.00      1

This card[!!] calls for a formant-function with peaks at A (440 Hertz) and
at the A two octaves above, with a trough at the intervening octave and a
steep cutoof after the second peak.  Component partials close to the peaks
will be relatively amplified, but not as much as components coinciding
exactly with the peaks, etc.

Note that since harmonic particals of a given tone are equally spaced in
Hertz, the increase or decrease from one harmonic within a segment to the
next is by equal proportions."

It is interesting to note, incidentally, that MUSIC360 also offered a unit
generator known as FORMNT which did not survive to Music11 and Csound. 


Peter Manning
Music Dept, University of Durham, UK

**********************************************************


On Sat, 7 Nov 1998, Jeffrey John Hall wrote:

> Hello,
>                   I have a considerable background in the M360           
>         ancestor of Csound. While much is the same and accordingly
>         I've been able to translate and expand a fair amount of my old
>         stuff (dating back to 1982), there are a few things that don't
>         seem to have a ready equivalent, at least without a lot of grunt
>         work. Sooooo, it seems that a more efficient way is to ask    
>         whether any antediluvians recall the old Gen01, Gen13, & Gen03,
>         subroutines, and what might be their best substitutes in Csound.
>         I have been able to utilize the "new" Gen05, Gen06, Gen08, and 
>         Gen09, Gen10, but am most concerned with getting something to do 
>         the equivalent of the old Gen01, inter alia.
>                   So, if anyone recalls and can point me where to grub
>         I'll be very grateful.
>                             Thanks and good Luck to All,
>                                                     Jeff Hall
>