René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback
 

FM instrument with varying carrier, modulator and index [CSound]

sr  = 44100
kr  = 4410

nchnls = 1

instr 1;
  ilen        = p3
  iamp        = p4
  ifrq        = cpspch(p5)
  
  k_carrier   oscili p6   , p7 *ifrq ,  1
  k_mod       oscili p9   , p10*ifrq ,  1
  k_index     oscili p12  , p13      ,  1

  k_carrier   = k_carrier + p8 
  k_mod       = k_mod     + p11
  k_index     = k_index   + p14

  asig        foscili 1, ifrq, k_carrier, k_mod, k_index, 1

  kenv        linseg 0, 1*ilen/10, iamp, 2*ilen/10, iamp/2, 3*ilen/10, iamp/3, 4*ilen/10, 0
              out   asig * kenv
endin
f1 0 2048 10 1

;                         +------------------+-------------------+---------------------+
;                         |   C A R R I E R  |     M O D U L A T.|      I N D E X      |
;                         | amp    frq     v |   amp   frq     v |   amp    frq      v |
;                         |  p6     p7    p8 |    p9   p10   p11 |   p12    p13    p14 |
;-------------------------+------------------+-------------------+---------------------+
i1   0    0.5 10000  5.00   1.03  1.00  2.03    1.00  2.03  4.00    0.24   3.00   0.10 ;
i1   +    0.5 10000  5.02   1.02  1.00  2.03    2.00  2.03  4.00    0.24   3.00   0.10 ;
i1   +    0.5 10000  5.04   1.02  1.00  2.03    3.00  2.03  4.00    0.24   3.00   0.10 ;
i1   +    0.5 10000  5.05   1.02  1.00  2.03    4.00  2.03  4.00    0.24   3.00   0.10 ;
                                                                                       ;
i1   +    0.5 10000  8.00   0.20  1.50  1.00    0.10  1.50  2.00    0.14   3.00   0.32 ;
i1   +    0.5 10000  8.02   0.20  1.50  1.00    0.10  1.50  2.00    0.14   3.00   0.34 ;
i1   +    0.5 10000  8.04   0.20  1.50  1.00    0.10  1.50  2.00    0.14   3.00   0.36 ;
i1   +    0.5 10000  8.05   0.20  1.50  1.00    0.10  1.50  2.00    0.14   3.00   0.38 ;
                                                                                       ;
i1   +    0.5 10000  9.00   0.12  2.00  1.00    0.10  1.50  2.00    0.14   3.00   0.32 ;
i1   +    0.5 10000  9.02   0.12  2.00  1.00    0.10  1.50  2.00    0.14   3.00   0.34 ;
i1   +    0.5 10000  9.04   0.12  2.00  1.00    0.10  1.50  2.00    0.14   3.00   0.36 ;
i1   +    0.5 10000  9.05   0.12  2.00  1.00    0.10  1.50  2.00    0.14   3.00   0.38 ;