; Septieme-blues.orc ; Anthony Kozar ; July 2006 ; On the web at ; Email ; NOTE: at the time of my posting this file, the pans opcode ; is not yet in canonical Csound (but is on OS 9), so I've ; added the UDO substitute. You may need to remove the UDO ; code with future versions of Csound for this to work. ; Intruments 1, 98, and pans UDO by Anthony Kozar. ; Instrument 99 is the work of another Csounder (see below for source). ; I am placing the portions of this Csound orchestra file ; that are my original work into the public domain. I ; therefore waive all copyright interest in those portions. sr = 44100 nchnls = 2 ;; draft values ;; kr = 4410 ;; ksmps = 10 ;; final values kr = 44100 ksmps = 1 #define OSCOP # poscil # ; oscil, oscili, oscil3, or poscil (not poscil3) #define RNDPHS # rnd(1) # ; replace with 0 for in-phase oscillators ga1 init 0 ga2 init 0 ; stereo version of pan opcode pans, aa, akioo asig, kx, ifn, imode, ioffset xin ky init 1 ;; this should be size of ifn table if imode = 0 aleft, aright, a3, a4 pan asig, kx, ky, ifn, imode, ioffset xout aleft, aright endop ; simple table-lookup oscillator instrument with 2nd oscillator for envelope ; the 2nd oscillator will be played for exactly one period ; also has constant pan position and reverb sends instr 1 idur = p3 iamp = p4 ifreq = p5 ipan = p6 irvrb = p7 ifnum = p8 ienvnum = p9 ipannum = p10 aenv $OSCOP iamp, 1/idur, ienvnum ; envelope oscillator asig $OSCOP aenv, ifreq, ifnum, $RNDPHS al, ar pans asig, ipan, ipannum, 1 ga1 = ga1 + al*irvrb ga2 = ga2 + ar*irvrb outs al, ar endin ; Sean Costello FDN reverb ; (opcode implementation by Istvan Varga) instr 98 irevfactor = p4 ilowpass = p5 ioutputscale = p6 denorm ga1, ga2 alr, arr reverbsc ga1, ga2, irevfactor, ilowpass, sr, 0.2 outs alr*ioutputscale, arr*ioutputscale ga1 = 0 ga2 = 0 endin ;; Stanford Reverb ;; Available from the Csound FTP site at Bath Univ. ;; ftp://earth.cs.bath.ac.uk/pub/dream/documentation/orchestras+scores/reverbs/stanford ;instr 99 ; ; irevfactor = p4 ; ilowpass = 9000 ; ioutputscale = p5 ; ; idel1 = 1237.000/sr ; idel2 = 1381.000/sr ; idel3 = 1607.000/sr ; idel4 = 1777.000/sr ; idel5 = 1949.000/sr ; idel6 = 2063.000/sr ; idel7 = 307.000/sr ; idel8 = 97.000/sr ; idel9 = 71.000/sr ; idel10 = 53.000/sr ; idel11 = 47.000/sr ; idel12 = 37.000/sr ; idel13 = 31.000/sr ; ; icsc1 = .822 * irevfactor ; icsc2 = .802 * irevfactor ; icsc3 = .773 * irevfactor ; icsc4 = .753 * irevfactor ; icsc5 = .753 * irevfactor ; icsc6 = .753 * irevfactor ; ; icsc7 = .7 * irevfactor ; ; acomb1 comb ga1, icsc1, idel1 ; acomb2 comb ga1, icsc2, idel2 ; acomb3 comb ga1, icsc3, idel3 ; acomb4 comb ga1, icsc4, idel4 ; acomb5 comb ga1, icsc5, idel5 ; acomb6 comb ga1, icsc6, idel6 ; ; acomball = acomb1 + acomb2 + acomb3 + acomb4 + acomb5 + acomb6 ; ; allp1 alpass acomball, icsc7, idel7 ; allp2 alpass allp1, icsc7, idel8 ; allp3 alpass allp2, icsc7, idel9 ; alow tone allp3, ilowpass ; allp4 alpass alow, icsc7, idel10 ; allp5 alpass allp4, icsc7, idel12 ; arevout1 = allp5 * ioutputscale ; ; acomb1 comb ga2, icsc1, idel1 ; acomb2 comb ga2, icsc2, idel2 ; acomb3 comb ga2, icsc3, idel3 ; acomb4 comb ga2, icsc4, idel4 ; acomb5 comb ga2, icsc5, idel5 ; acomb6 comb ga2, icsc6, idel6 ; ; acomball = acomb1 + acomb2 + acomb3 + acomb4 + acomb5 + acomb6 ; ; allp1 alpass acomball, icsc7, idel7 ; allp2 alpass allp1, icsc7, idel8 ; allp3 alpass allp2, icsc7, idel9 ; alow tone allp3, ilowpass ; allp4 alpass alow, icsc7, idel10 ; allp6 alpass allp4,icsc7, idel13 ; arevout2 = allp6 * ioutputscale ; ; outs arevout1, arevout2 ; ; ga1 = 0 ; ga2 = 0 ; ;endin