; Septieme.orc
; Anthony Kozar
; October 2005
; 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.
; Intrument 1 & 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
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
; 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