Created some sound in Csound based on this video I found on Youtube:
https://soundcloud.com/hmikelson/pendula
<CsoundSynthesizer>
<CsOptions>
;-RWfo pendula.wav
</CsOptions>
<CsInstruments>
;---------------------------------------------------------
; Pendula
; Inspired by Youtube video of pendulums of various lengths like this one
; http://www.youtube.com/watch?v=eZm_-2O8ovI&list=UUeQEKFH31vvD-InkTGSvCrA
; Hans Mikelson March 2013
;---------------------------------------------------------
sr = 44100 ; Sample rate
kr = 44100 ; Kontrol rate
ksmps = 1 ; Samples/Kontrol period This must be 1 to make sure to update time appropriately
nchnls = 2 ; Normal stereo
;---------------------------------------------------------
; Pendula
;---------------------------------------------------------
instr 50
idur = p3 ; Duration
iamp = p4 ; Amplitude
il0 = p5 ; Length of pendulum
ib = p6 ; Damping factor for pendulum (smaller damping will ring longer)
ig = p7 ; Gravity
kdclk linseg 0, .005, 1, idur-.01, 1, .005, 0
atime init 0 ; Need to start time at 0
atime = atime + .1 ; Time is incremented each sample
ialpha0 = ib/2/il0 ; Calculate alpha exponential decay factor
aamp0 = 1*exp(-ialpha0*atime) ; Calculate exponetial decay
aout0 = aamp0*cos(sqrt(ig/il0-ib/il0/il0)*atime) ; Calculate the oscillator times amplitude
apan = .5 + aout0/2
outs aout0*iamp*apan*kdclk, aout0*iamp*(1-apan)*kdclk ; Amplify and output
;outs aout0*iamp*sqrt(apan)*kdclk, aout0*iamp*sqrt(1-apan)*kdclk ; Amplify and output
;outs aout0*iamp*kdclk, -aout0*iamp*kdclk ; Amplify and output
endin
</CsInstruments>
<CsScore>
;-------------------------------------------------------------------------
f1 0 65536 10 1
; Pendula
; Sta Dur Amp PendL Damp Gravity
i50 0.0 10 3000 100 0.02 9.81
i50 . . . 90 . .
i50 . . . 80 . .
i50 . . . 70 . .
i50 . . . 60 . .
i50 . . . 50 . .
i50 . . . 40 . .
i50 . . . 30 . .
i50 . . . 20 . .
i50 . . . 10 . .
; Pendula
; Sta Dur Amp PendL Damp Gravity
i50 10.0 10 3000 100 0.02 9.81
i50 . . . 95 . .
i50 . . . 90 . .
i50 . . . 85 . .
i50 . . . 80 . .
i50 . . . 75 . .
i50 . . . 70 . .
i50 . . . 65 . .
i50 . . . 60 . .
i50 . . . 55 . .
; Pendula
; Sta Dur Amp PendL Damp Gravity
i50 20.0 5 3000 200 0.1 9.81
i50 . . . 100 . .
i50 . . . 50 . .
i50 . . . 25 . .
i50 . . . 12 . .
i50 . . . 6 . .
; Pendula
; Sta Dur Amp PendL Damp Gravity
i50 25.0 5 3000 100 0.05 9.81
i50 . . . 90 . .
i50 . . . 81 . .
i50 . . . 73 . .
i50 . . . 66 . .
i50 . . . 59 . .
i50 . . . 53 . .
i50 . . . 48 . .
i50 . . . 43 . .
i50 . . . 39 . .
</CsScore>
</CsoundSynthesizer>
No comments:
Post a Comment