Csound Csound-dev Csound-tekno Search About

clicks with envelopes;phasor and timout

Date1998-07-24 10:09
FromArne Hanna
Subjectclicks with envelopes;phasor and timout
Hi folks.  The orc/sco combo below uses phasor and timout to produce
streams of notes at rates independent of p3.  This method was suggested
to me some time ago by Jean Piche in response to my lamentations regarding
difficulties in generating repeating rhythmic patterns using standard
csound techniques.  His original version used the pluck ugen which has its
own built-in
amplitude envelope, but I want to be able to use a standard oscili set-up.
Unfortunately this introduces some clicking and popping of envelopes.  Using
oscil1 usually fixes these problems up, but, on the SGIs here, it just results
 in core dump, and experiments with linseg etc meet the same fate.
If anyone has any ideas, I'm all ears.
The score was produced with Andre Bartetski's CMASK.
I've left in Mr Piche's experiments with Tulips.

Cheers
Arne

;This orchestra is an attempt at realising pitch and onset-time
;using Markov processes.  The current problem has to do
;with clicking of envelopes    A.D. Hanna

sr = 44100
kr = 882
ksmps = 50
nchnls = 2

ga1 init 0

instr 1
itablesize = 32 ;pitch tables 2 and 3 are indexed from 0 to 31
iratchoose = p9 ;determines which of two tempos are used

;A neat way to represent Markov chains.
;Choose between two subsets of the set "furniture"
if (iratchoose == 0) igoto furniture.to.sit.on
if (iratchoose == 1) igoto furniture.to.put.stuff.in

;----------------------------------------------------------------------
furniture.to.sit.on:
        ;being here depends on outcome of p9

kindex phasor p5*p6 
        plantatulip:
        kenv linen 1,.001,1/p5,1/p5*.5

        inotechoose = p8
        ;Choose between two pitch tables
        ;the second of which is a transposition
        ;of the first in the order of 1 semitone.
        if (inotechoose == 1) igoto chair
        if (inotechoose == 0) igoto sofa
        
        ;--------------------------------------------------
        chair:  ;being here depends on the outcome of p9 and p8
                ipitch table i(kindex)*itablesize,2
                igoto resume
        
        ;--------------------------------------------------
        sofa:   ;being here depends on the outcome of p9 and p8
                ipitch table i(kindex)*itablesize,3
                igoto resume

        resume:
        timout 0,1/p5,pluckatulip
        reinit plantatulip

;----------------------------------------------------------------------
furniture.to.put.stuff.in:
        ;being here depends on outcome of p9
        kindex phasor (p5*p6)*1.125 ;varies phase of lfo vs beat 
        ;thus creating melodic patterns
        plantadaisy:
        kenv linen 1,.001,1/p5,1/p5*.5

        inotechoose = p8
        if (inotechoose == 1) igoto bookcase
        if (inotechoose == 0) igoto wardrobe

        ;-----------------------------------------------
        bookcase:       ;being here depends on the outcome of p9 and p8
                        ipitch table i(kindex)*itablesize,2
                        igoto continue

        ;--------------------------------------------------
        wardrobe:       ;being here depends on the outcome of p9 and p8
                        ipitch table i(kindex)*itablesize,3
                        igoto continue

        continue:
        timout 0,1/p5,pluckatulip
        reinit plantadaisy

pluckatulip:

a2    oscili ampdb(p4)*kenv,cpspch(ipitch+p7),1 ;p7 = octave transposition  
ga1=a2+ga1
outs a2,a2

endin

instr 50                   

kfreq expseg 0.01,p3*.2,.4,p3*.2,1,p3*.2,1.5,p3*.2,.1,p3*.2,.05
k1 oscili .5,kfreq*p4,1 ;kfreq*p4=cps of pan
k2 = .5+k1
k3 = 1-k2
a1 reverb2 ga1,2.1,.5
outs k2*a1,a1*k3*(-1)
ga1=0
endin

;score

f1 0 8192 10 1
f2 0 64 -2 7.10 7.02 7.07 8.05 9.02 7.05 8.10 8.02 7.07 8.07 8.05 8.02 8.10
9.02 7.07 9.07 8.00 7.02 8.02 8.10 7.07 7.05 8.00 8.02 9.02 9.02 8.10 7.07
8.05 9.02 8.02 9.07 
f3 0 64 -2 7.11 7.03 7.08 8.06 9.03 7.06 8.11 8.03 7.08 8.08 8.06 8.03 8.11
9.03 7.08 9.08 8.01 7.03 8.03 8.11 7.08 7.06 8.01 8.03 9.03 9.03 8.11 7.06
8.06 9.03 8.03 9.08 




i50 0   28     10


; ------- begin of field 1 --- seconds: 0.00 - 28.00 --------
;ins    time    dur     p4      p5      p6      p7      p8      p9

i1      0       0.25    65      3.29    0.46    -1      0       1       
i1      0.25    0.375   65      3.36    0.78    1       1       0       
i1      0.625   1       65      6.95    0.39    1       1       1       
i1      1.625   1.25    65      3.32    0.53    -1      1       0       
i1      2.75    0.25    65      4.2     0.86    1       0       1       
i1      3.75    1.25    65      7.36    0.15    1       0       0       
i1      4.125   1       65      6.2     0.99    -1      0       0       
i1      4.375   0.375   65      1.12    0.69    1       0       0       
i1      4.75    0.25    65      4.28    0.42    -1      0       1       
i1      5.75    0.375   65      1.69    0.18    1       0       1       
i1      6.875   1       65      8.19    0.91    1       1       0       
i1      7.875   1.25    65      3.28    0.34    -1      0       1       
i1      8.25    0.25    65      3.3     0.11    1       0       0       
i1      8.5     1.25    65      1.97    1       1       1       0       
i1      8.875   1       65      2.82    0.11    -1      0       0       
i1      9.875   0.375   65      3.4     0.21    1       1       0       
i1      11      0.25    65      3.01    0.97    1       1       1       
i1      12      0.375   65      5.54    0.18    -1      1       0       
i1      12.375  1       65      1.44    0.98    1       1       1       
i1      12.625  1.25    65      4.33    0.86    1       1       1       
i1      13      0.25    65      6.15    0.77    -1      1       1       
i1      14      1.25    65      6.48    0.24    1       1       0       
i1      15.125  1       65      3.91    0.62    -1      1       1       
i1      16.125  0.375   65      1.12    0.33    1       0       1       
i1      16.5    0.25    65      7.43    0.73    1       1       1       
i1      16.75   0.375   65      2.59    0.9     -1      0       0       
i1      17.125  1       65      5.57    0.13    1       0       1       
i1      18.125  1.25    65      4.08    0.77    1       0       0       
i1      19.25   0.25    65      8.57    0.37    -1      0       1       
i1      20.25   1.25    65      2.42    0.3     1       1       0       
i1      20.625  1       65      4.24    0.52    1       0       1       
i1      20.875  0.375   65      5.75    0.67    -1      1       1       
i1      21.25   0.25    65      1.24    0.64    1       0       0       
i1      22.25   0.375   65      8.26    0.75    1       1       0       
i1      23.375  1       65      7.23    0.24    -1      0       0       
i1      24.375  1.25    65      3.9     0.62    1       1       1       
i1      24.75   0.25    65      6.14    0.58    -1      1       0       
i1      25      1.25    65      7.11    0.96    1       0       0       
i1      25.375  1       65      6.33    0.14    1       1       0       
i1      26.375  0.375   65      8.53    0.92    -1      0       0       
i1      27.5    0.25    65      7.9     0.4     1       0       1       

; ------- end of field 1 --- number of events: 41 -------



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

http://www.geocities.com/SiliconValley/Peaks/3346



        "The year-round pest control  work has successfully kept the number of
cockroaches & mice in the Passenger cabin of our Boeing 777's below the
National Standard."
        From the in-flight magazine of China Southern Airlines, 1997.