Imran Rashid
4/30/01
    Note that this is not a polished presentation at all -- this is just some notes of mine to help future developers.

My work with CSOUND

    My original idea was to take notes on all the things I did with CSOUND, to make it easier for other people to understand CSOUND.  But I realized, there are really lots of good tutorials out there on the web.  There isn't any point to me writing something which others have already done a very good job of.  But I will point you to some good websites.
    There is a very good tutorial at http://www.csounds.com/tutorials/toots/index.html.
    Also, check out http://www.lakewoodsound.com/csound and http://www.csounds.com for more CSound related info.


    Basically, all I did was work through the tutorials above.  Then I made a bunch of different test files, playing around with all of the different parameters.  Playing around with it is really the important part -- its amazing how changing a few of those numbers around creates completely different sounds.

Here's the orchestra file I used, though its not anything special, so I'd advise starting from scratch rather than using what I have as a base:

instr 1
    k1 linen 1000, .02, p3, .08
    a1 oscil k1, cpspch(p4), 1
    out a1
endin

instr 2
    a1 oscil 2500, cpspch(p4), 1
    out a1
endin


instr 3
    
ifunc     =         1                                ; select the basic waveform

irel      =         0.01                               ; set vibrato release time

idel1     =         p3 * .8                           ; calculate initial delay (% of dur)

isus      =         p3 - (idel1 + irel)                ; calculate remaining duration



iamp      =         7000

iscale    =         iamp * .333                        ;

inote     =         cpspch(p4)                         ; p4=freq



k3        linseg    0, idel1, 9, isus, 9, irel, 0    ;

k2        oscil     k3, 6, 1                          ;
k1        linen     iscale, .03, p3, .07                 ;



a3        oscil     k1, inote*.999+k2, ifunc           ;

a2        oscil     k1, inote*1.001+k2, ifunc          ;

a1        oscil     k1, inote+k2, ifunc



          out       a1+a2+a3

endin




instr 4
    
ifunc     =         2                                ; select the basic waveform

irel      =         0.01                               ; set vibrato release time

idel1     =         p3 * .8                           ; calculate initial delay (% of dur)

isus      =         p3 - (idel1 + irel)                ; calculate remaining duration



iamp      =         2000

iscale    =         iamp * .333                        ;

inote     =         cpspch(p4)                         ; p4=freq



k3        linseg    0, idel1, 9, isus, 9, irel, 0    ;

k2        oscil     k3, 6, 1                          ;
k1        linen     iscale, .03, p3, .07                 ;



a3        oscil     k1, inote*.999+k2, ifunc           ;

a2        oscil     k1, inote*1.001+k2, ifunc          ;

a1        oscil     k1, inote+k2, ifunc



          out       a1+a2+a3

endin



instr 5
    k1 linen 1000, .02, p3, .08
    a1 oscil k1, cpspch(p4), 1
    out a1
endin


Converted by Mathematica      May 6, 2001