1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
|
<CsoundSynthesizer>
<CsOptions>
csound -m35 -R -W -f -d -o dac
</CsOptions>
<CsInstruments>
sr = 48000
ksmps = 128
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 oscili 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
af1 expon .1, p3, 1.0 ;exponential from 0.1 to 1.0
af2 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 af1 ;tap delay line with kf1 func.
atap2 deltapi af2 ;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 oscili 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.
aadsr linseg 0, p3/3, 1.0, p3/3, 1.0, p3/3, 0 ;ADSR envelope
amodi linseg 0, p3/3, 5, p3/3, 3, p3/3, 0 ;ADSR envelope for I
amodr linseg p6, p3, p7 ;r moves from p6->p7 in p3 sec.
a1 = amodi*(amodr-1/amodr)/2
a1ndx = abs(a1*2/20) ;a1*2 is normalized from 0-1.
a2 = amodi*(amodr+1/amodr)/2
a3 tablei a1ndx, 3, 1 ;lookup tbl in f3, normal index
ao1 oscili a1, ipch, 2 ;cosine
a4 = exp(-0.5*a3+ao1)
ao2 oscili a2*ipch, ipch, 2 ;cosine
aoutl oscili 1000*aadsr*a4, ao2+cpsoct(ioct+ishift), 1 ;fnl outleft
aoutr oscili 1000*aadsr*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 65536 10 1 ;sine wave
f2 0 65536 11 1 ;cosine wave
f3 0 65536 -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>
|