-m2 -d -W -o mosquiz.wav
Before 4.30
After 4.23
sr=44100
kr=4410
ksmps=10
nchnls=2
; synth waveform
giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1
; blending window
giblend ftgen 2, 0, 1024, -19, 1, 0.5, 270, 0.5
opcode PathCircle, kk, ikkkk
ilen,kf1,kf2,ka1,ka2 xin
kt line 0,ilen,ilen-1
kx = ka1*sin(2*3.1416*kf1*kt+3.1416/2)
ky = ka2*cos(2*3.1416*kf2*kt+3.1416/2)
xout kx, ky
endop
opcode PathSpline, kk, iiiiiiiii
ilen,ix0,iy0,ix1,iy1,ix2,iy2,ix3,iy3 xin ; orig endpoint (x0,y0),orig controlpoint (x1,y1),dest controlpoint (x2,y2),dest endpoint (x3,y3)
icx = 3*(ix1 - ix0) ; coefficient values
ibx = 3*(ix2 - ix1) - icx
iax = ix3 - ix0 - icx - ibx
icy = 3*(iy1 - iy0)
iby = 3*(iy2 - iy1) - icy
iay = iy3 - iy0 - icy - iby
kmu line 0, p3, 1
kmu2 = kmu*kmu
kmu3 = kmu2*kmu
kx = iax*kmu3 + ibx*kmu2 + icx*kmu + ix0
ky = iay*kmu3 + iby*kmu2 + icy*kmu + iy0
xout kx, ky
endop
opcode Doppler, aa, akk
idlen init .5 ; length of the delay line
iphaz init .01 ; phase difference between right and left ears
kdoplr init idlen/2
asamp, kx, ky xin
kdx diff kx
kdy diff ky
; Calculate deltap increment for use in doppler effect
;-------------------------------------------------------------
kdist = sqrt(kx*kx+ky*ky) ; find the distance to the source
kddoplr = (kx*kdx+ky*kdy)/(kdist+0.001) ; doppler effect or deltap increment
kdoplr = kdoplr+kddoplr/40000
; Calculate pan modifiers for use in attenuation and spatialization effect
;-------------------------------------------------------------
kpanl = 1/(1+exp(kx/150)) ; compute pan left
kpanr = 1/(1+exp(-kx/150)) ; compute pan right
; Apply doppler effects
;-------------------------------------------------------------
adel1 delayr idlen ;There has to be enough room for
atap1 deltap3 kdoplr ;an object coming from a long ways
atap2 deltap3 kdoplr+iphaz ;away. Take two taps for right and
delayw asamp/(kdist+100) ;left ears.
; Apply attenuation and spatialization effect
;-------------------------------------------------------------
aleft = atap1*kpanl
aright = atap2*kpanr
xout aleft, aright
endop
;-------------------------------------------------------------
; Plays a sound following a 2d bézier path taking into account doppler effect.
;-------------------------------------------------------------
instr 1
; Initializations (sound source)
;--------------------------------------------------------------
ilen = p3 ; length of the note
iamp = p4 ; amplitude of the sound source
ifqc = cpspch(p5) ; convert pitch to frequency
; Sound source
;-------------------------------------------------------------
; Mosquito
;--------------------------
kmod jspline 4,20,22
kenv linseg 0, ilen*0.4, 1, ilen-ilen*0.4, 1, ilen*0.1, 0
asamp buzz (2000*iamp)*kenv, ifqc, 10, 2
; Path and Doppler
;-------------------------------------------------------------
kx, ky PathSpline ilen,p6,p7,p6,p7,p6,-p7,p6,-p7
kmodx jspline 30,2,20
kmody jspline 30,2,20
kxa = kx + kmodx
kya = ky + kmody
aleft, aright Doppler asamp,kxa,kya
; Scale and output
;-------------------------------------------------------------
kenv linseg 0, ilen*0.4, iamp/100, ilen-ilen*0.8, iamp/100, ilen*0.4, 0
outs kenv*aleft,kenv*aright
endin
instr 2
; p4 = freq of fundamental (Hz)
; p5 = amp
; p6 = initial offset of freq - .03 Hz
; init values correspond to freq.
; offsets for oscillators based on original p6
i1 = p6
i2 = 2*p6
i3 = 3*p6
i4 = 4*p6
; A de-click envelope
ampenv linen p5,0.0001,p3,0.6*p3
; Nine oscillators with the same amplitude env
; and waveform, but slightly different
; frequencies to create the beating effect
a1 oscili 1,p4,1 ; 65.41 Hz.
a2 oscili 1,p4+i1,1 ; 65.41 +.03 = 65.44 Hz.
a3 oscili 1,p4+i2,1 ; 65.41 +.06 = 65.47 Hz.
a4 oscili 1,p4+i3,1 ; 65.41 +.09 = 65.50 Hz.
a5 oscili 1,p4+i4,1 ; 65.41 +.12 = 65.53 Hz.
a6 oscili 1,p4-i1,1 ; 65.41 -.03 = 65.38 Hz.
a7 oscili 1,p4-i2,1 ; 65.41 -.06 = 65.35 Hz.
a8 oscili 1,p4-i3,1 ; 65.41 -.09 = 65.32 Hz.
a9 oscili 1,p4-i4,1 ; 65.41 -.12 = 65.29 Hz.
outs ampenv*(a1+a2+a3+a4+a5+a6+a7+a8+a9)/2, ampenv*(a1+a2+a3+a4+a5+a6+a7+a8+a9)/2
endin
; Instrument #3 - produces Risset's glissando.
instr 3
iatt init p5
idec init p6
kamp = p4
kbrite = -0.5
ibasfreq = 12
ioctcnt = 5
; Change ktone linearly from 0 to 1,
; over the period defined by p3.
kmod jspline 0.05,1,4
ktone line 0, p3, 1
a1 hsboscil kamp, ktone+kmod, kbrite, ibasfreq, giwave, giblend, ioctcnt, -1
ampenv linen 1,p3*iatt,p3,p3*idec
outs a1/2*ampenv,a1/2*ampenv
endin
instr 4
; Sound source
;-------------------------------------------------------------
; p4 = freq of fundamental (Hz)
; p5 = amp
; p6 = initial offset of freq - .03 Hz
; init values correspond to freq.
; offsets for oscillators based on original p6
i1 = p6
i2 = 2*p6
i3 = 3*p6
i4 = 4*p6
; A de-click envelope
ampenv linen p5,0.0001,p3,0.6*p3
; Nine oscillators with the same amplitude env
; and waveform, but slightly different
; frequencies to create the beating effect
a1 oscili 1,p4,1 ; 65.41 Hz.
a2 oscili 1,p4+i1,1 ; 65.41 +.03 = 65.44 Hz.
a3 oscili 1,p4+i2,1 ; 65.41 +.06 = 65.47 Hz.
a4 oscili 1,p4+i3,1 ; 65.41 +.09 = 65.50 Hz.
a5 oscili 1,p4+i4,1 ; 65.41 +.12 = 65.53 Hz.
a6 oscili 1,p4-i1,1 ; 65.41 -.03 = 65.38 Hz.
a7 oscili 1,p4-i2,1 ; 65.41 -.06 = 65.35 Hz.
a8 oscili 1,p4-i3,1 ; 65.41 -.09 = 65.32 Hz.
a9 oscili 1,p4-i4,1 ; 65.41 -.12 = 65.29 Hz.
asamp = ampenv*(a1+a2+a3+a4+a5+a6+a7+a8+a9)/2
; Path and Doppler
;-------------------------------------------------------------
kx, ky PathCircle p3,sqrt(1.5)/3,sqrt(2)/3,200,150
kmodx jspline 40,2,3
kmody jspline 40,2,3
kxa = kx + kmodx
kya = ky + kmody
aleft, aright Doppler asamp,kxa,kya
; Scale and output
;-------------------------------------------------------------
kenv linseg p5/1.8, p3*0.4, p5/1.8, p3-p3*0.8, p5/1.8, p3*0.4, 0
outs kenv*aleft,kenv*aright
endin
instr 5
; Wind
iamp init p4
iatt init p7
idec init p8
asig rand p4
kmodfq jspline 50,1,3
kmodbw jspline 10,2,3
abp butterbp asig, p5+kmodfq, p6+kmodbw
ampenv linen 1,p3*iatt,p3,p3*idec
outs abp*ampenv,abp*ampenv
endin
f1 0 1024 10 1 0 0 0 .8 .8 .8 .8 .8 .8
f2 0 4096 10 1000
t 0 180
; ------- begin of field background --- seconds: 0.00 - 120.00 -------- Motor
i3 0 100 15 0.1 0
i3 + 27 15 0 0
; ------- begin of field background --- seconds: 0.00 - 120.00 -------- Arpeggio
i4 126.1 160 65.41 1500 .03
; ------- begin of field 1 --- seconds: 12.00 - 120.00 --------
;ins time dur p4 p5 p6 p7
i1 12 20.49038 294.766 5.4 -200 2228.004
i1 35.71 14.35194 264.0971 5.43 -50 2322.733
i1 48.5 19.61471 187.2318 5.48 -100 2208.747
i1 54.76 16.50229 153.2303 5.42 100 2235.115
i1 59.86 15.53759 121.2509 5.49 200 2135.502
i1 63.53 12.96877 152.9630 5.45 300 2236.549
i1 64.7 6.6637 110.5866 5.49 -300 2612.049
i1 67.99 12.04802 147.5536 5.38 -50 2286.538
i1 71.2 9.24606 164.1038 5.49 -100 2195.715
i1 72.46 19.13753 108.815 5.4 100 2506.943
i1 75.58 15.91429 186.8783 5.4 200 2003.204
i1 78.13 18.57804 182.7522 5.34 100 2664.907
i1 83.71 6.51651 121.7396 5.41 -300 2461.989
i1 85.57 7.37936 128.3361 5.49 -200 2214.148
i1 87.54 13.9771 153.8817 5.5 300 2625.874
i1 90.06 16.42615 182.2715 5.46 -200 2516.251
i1 91.1 10.19885 128.2263 5.49 300 2547.105
i1 96.8 11.6464 142.9499 5.47 100 2177.831
i1 98.18 13.74552 197.3034 5.41 50 2718.070
i1 103.41 15.49131 141.8741 5.33 -300 2111.301
i1 109.36 17.88353 139.9271 5.44 -300 2539.933
i1 110.9 8.32702 180.4038 5.43 50 2360.302
i1 112.06 9.57633 117.8988 5.46 200 2634.510
i1 112.63 9.79124 135.2654 5.35 50 2335.368
i1 116.81 19.11959 141.2226 5.42 -200 2823.328
i1 117.84 9.83995 198.6096 5.46 300 2601.978
i1 118.92 6.04375 148.9300 5.33 -300 2116.52
; ------- end of field 1 --- number of events: 27 -------
; ------- begin of field background --- seconds: 0.00 - 120.00 -------- Arpeggio
i5 0 126.1 1200 700 50 0.1 0
i5 127 160 3200 1000 20 0 0.5