<CsoundSynthesizer> <CsOptions> csound -R -W -f -d -o dac </CsOptions> <CsInstruments> sr = 44100 ksmps = 100 nchnls = 2 ;-------------------------------------------------------- ;Instrument 1 : plucked strings chorused left/right and ; pitch-shifted and delayed taps thru exponential ; functions, and delayed. ;-------------------------------------------------------- instr 1 ishift = .00666667 ;shift it 8/1200. ipch = cpspch(p5) ;convert parameter 5 to cps. ioct = octpch(p5) ;convert parameter 5 to oct. kvib oscil 1/120, ipch/50, 1 ;vibrato ag pluck 2000, cpsoct(ioct+kvib), 1000, 1, 1 agleft pluck 2000, cpsoct(ioct+ishift), 1000, 1, 1 agright pluck 2000, cpsoct(ioct-ishift), 1000, 1, 1 kf1 expon .1, p3, 1.0 ;exponential from 0.1 to 1.0 kf2 expon 1.0, p3, .1 ;exponential from 1.0 to 0.1 adump delayr 2.0 ;set delay line of 2.0 sec atap1 deltapi kf1 ;tap delay line with kf1 func. atap2 deltapi kf2 ;tap delay line with kf2 func. ad1 deltap 2.0 ;delay 2 sec. ad2 deltap 1.1 ;delay 1.1 sec. delayw ag ;put ag signal into delay line. outs agleft+atap1+ad1, agright+atap2+ad2 endin ;------------------------------------------------------------- ;Instrument 2 : plucked strings chorused left/right and ; pitch-shifted with fixed delayed taps. ;------------------------------------------------------------ instr 2 ishift = .00666667 ;shift it 8/1200. ipch = cpspch(p5) ;convert parameter 5 to cps. ioct = octpch(p5) ;convert parameter 5 to oct. kvib oscil 1/120, ipch/50, 1 ;vibrato ag pluck 1000, cpsoct(ioct+kvib), 1000, 1, 1 agleft pluck 1000, cpsoct(ioct+ishift), 1000, 1, 1 agright pluck 1000, cpsoct(ioct-ishift), 1000, 1, 1 adump delayr 0.3 ;set delay line of 0.3 sec ad1 deltap 0.1 ;delay 100 msec. ad2 deltap 0.2 ;delay 200 msec. delayw ag ;put ag sign into del line. outs agleft+ad1, agright+ad2 endin ;----------------------------------------------------------- ;Instrument 3 : New FM algorithm, modified to produce large timbre ; shifts using modulation of I and r. Detuned chorusing employed. ;----------------------------------------------------------- instr 3 ishift = .00666667 ;shift it 8/1200. ipch = cpspch(p5) ;convert parameter 5 to cps. ioct = octpch(p5) ;convert parameter 5 to oct. kadsr linseg 0, p3/3, 1.0, p3/3, 1.0, p3/3, 0 ;ADSR envelope kmodi linseg 0, p3/3, 5, p3/3, 3, p3/3, 0 ;ADSR envelope for I kmodr linseg p6, p3, p7 ;r moves from p6->p7 in p3 sec. a1 = kmodi*(kmodr-1/kmodr)/2 a1ndx = abs(a1*2/20) ;a1*2 is normalized from 0-1. a2 = kmodi*(kmodr+1/kmodr)/2 a3 tablei a1ndx, 3, 1 ;lookup tbl in f3, normal index ao1 oscil a1, ipch, 2 ;cosine a4 = exp(-0.5*a3+ao1) ao2 oscil a2*ipch, ipch, 2 ;cosine aoutl oscil 1000*kadsr*a4, ao2+cpsoct(ioct+ishift), 1 ;fnl outleft aoutr oscil 1000*kadsr*a4, ao2+cpsoct(ioct-ishift), 1 ;fnl outright outs aoutl, aoutr endin </CsInstruments> <CsScore> ; Score for final project in Digital Audio Processing ; --------------------------------------------------- ; Piece entitled : X A N A D U (short version) ; Joseph T. Kung, 12/12/88 ; The first part of the score will specify all function ; tables used in the piece. The second part specifies ; the instruments and notes. The latter is divided into ; 7 sections, each playing a chord on a different ; instrument. ; The chords are uncommon guitar chords that use the open ; B and E strings often. These will be transposed by ; octaves on some chords. ; Each instrument will play a chord for 15 seconds. The ; timbre ; of the instrument will change in that interval and join ; with the next instrument/chord sequence. Instrument 3 ; uses a modified FM synthesis technique. This is joined ; by an additional plucked-string instrument ; (instruments 1 and 2). ; The Function Tables ; ------------------- ;All functions are post-normalized (max value is 1) if p4 is ;POSITIVE. f1 0 8192 10 1 ;sine wave f2 0 8192 11 1 ;cosine wave f3 0 8192 -12 20.0 ;unscaled ln(I(x)) from 0 to 20.0 ;----------------------------------------------------------- ;----- This section comprises all the new FM sounds ----------- ;F#7addB chord on a guitar i3 0 15 0 7.06 2.0 0.2 ;F# i3 . . . 8.01 . . ;C# above i3 . . . 8.06 . . ;F# octave above 1st one i3 . . . 8.10 . . ;Bb next one up i3 . . . 8.11 . . ;B i3 . . . 9.04 . . ;E ;D6add9 chord on a guitar i3 7.5 15 0 6.02 1.7 0.5 ;D i3 . . . 6.09 . . ;A above i3 . . . 7.02 . . ;D octave above 1st one i3 . . . 7.06 . . ;F# next one up i3 . . . 6.11 . . ;B i3 . . . 7.04 . . ;E ;Bmajadd11 chord on a guitar i3 15 15 0 7.11 1.4 0.8 ;B i3 . . . 8.06 . . ;F# above i3 . . . 8.11 . . ;B octave above 1st one i3 . . . 9.03 . . ;D# next one up i3 . . . 8.11 . . ;B i3 . . . 9.04 . . ;E; ;Amajadd9 chord on a guitar i3 22.5 15 0 6.09 1.1 1.1 ;A i3 . . . 7.04 . . ;E above i3 . . . 8.09 . . ;A octave above 1st one i3 . . . 8.01 . . ;C# next one up i3 . . . 7.11 . . ;B i3 . . . 8.04 . . ;E ;Bmajadd11 chord on a guitar i3 30 15 0 6.11 0.8 1.4 ;B i3 . . . 7.06 . . ;F# above i3 . . . 7.11 . . ;B octave above 1st one i3 . . . 8.03 . . ;D# next one up i3 . . . 7.11 . . ;B i3 . . . 8.04 . . ;E; ;Gmaj6 chord on a guitar i3 37.5 15 0 5.07 0.5 1.7 ;G i3 . . . 6.02 . . ;D above i3 . . . 6.07 . . ;G octave above 1st one i3 . . . 6.11 . . ;B on G string i3 . . . 6.11 . . ;B i3 . . . 7.04 . . ;E ;F#7addB chord on a guitar i3 45 15 0 7.06 0.2 2.0 ;F# i3 . . . 8.01 . . ;C# above i3 . . . 8.06 . . ;F# octave above 1st one i3 . . . 8.10 . . ;Bb next one up i3 . . . 8.11 . . ;B i3 . . . 9.04 . . ;E ; This section adds the plucked chords to the beginning of each ; section. ;F#7addB chord on a guitar i1 0 10 0 8.06 ;F# i1 0.1 . . 9.01 ;C# above i1 0.2 . . 9.06 ;F# octave above 1st one i1 0.3 . . 9.10 ;Bb next one up i1 0.4 . . 9.11 ;B i1 0.5 . . 10.04 ;E ;D6add9 chord on a guitar i2 7.5 10 0 8.02 ;D i2 7.6 . . 8.09 ;A above i2 7.7 . . 9.02 ;D octave above 1st one i2 7.8 . . 9.06 ;F# next one up i2 7.9 . . 9.11 ;B i2 8.0 . . 10.04 ;E ;Bmajadd11 chord on a guitar i2 15 10 0 8.11 ;B i2 15.1 . . 9.06 ;F# above i2 15.2 . . 9.11 ;B octave above 1st one i2 15.3 . . 10.03 ;D# next one up i2 15.4 . . 9.11 ;B i2 15.5 . . 10.04 ;E; ;Amajadd9 chord on a guitar i2 22.5 10 0 8.09 ;A i2 22.6 . . 9.04 ;E above i2 22.7 . . 10.09 ;A octave above 1st one i2 22.8 . . 10.01 ;C# next one up i2 22.9 . . 9.11 ;B i2 23.0 . . 10.04 ;E ;Bmajadd11 chord on a guitar i2 30 10 0 8.11 ;B i2 30.1 . . 9.06 ;F# above i2 30.2 . . 9.11 ;B octave above 1st one i2 30.3 . . 10.03 ;D# next one up i2 30.4 . . 9.11 ;B i2 30.5 . . 10.04 ;E; ;Gmaj6 chord on a guitar i2 37.5 10 0 8.07 ;G i2 37.6 . . 9.02 ;D above i2 37.7 . . 9.07 ;G octave above 1st one i2 37.8 . . 9.11 ;B on G string i2 37.9 . . 9.11 ;B i2 38.0 . . 10.04 ;E ;F#7addB chord on a guitar i1 45 10 0 9.06 ;F# i1 45.1 . . 10.01 ;C# above i1 45.2 . . 10.06 ;F# octave above 1st one i1 45.3 . . 10.10 ;Bb next one up i1 45.4 . . 10.11 ;B i1 45.5 . . 11.04 ;E e </CsScore> </CsoundSynthesizer>