sr = 44100
ksmps = 1
nchnls = 2
0dbfs = 1
/* joachim heintz
ATT...
csound code 23 jan 2011
www.joachimheintz.de/att.htm
*/
seed 5
giSin ftgen 1, 0, 2^14, 10, 1
giHim ftgen 2, 0, 2^14, 10, 1, .5, .33, .167, .1
gi_a_prd ftgen 3, 0, 2^14, 10, 0.027, 0.037, 0.026, 0.118, 0.125
gi_a_prd2 ftgen 4, 0, 2^14, 10, 0.027, 0.037
gi_a_frei ftgen 5, 0, 2^14, 10, 1, .5
gi_fof ftgen 0, 0, 2^14, 20, 2, 1
opcode ExpLine, i, ioppo
indx, imin, imax, imult, ioff xin
ia = imin - 1
ib = log(imax-ia)
ires = (ia + exp(ib*indx)) * imult + ioff
xout ires
endop
opcode IntLine, i, ioppo
indx, imin, imax, imult, ioff xin
ires = ((imax-imin) * indx + imin) * imult + ioff
xout ires
endop
opcode AccelRit, i, iii
indx, istauch, idur xin
indx = (istauch > 0 ? 1-indx : indx) ;index von hinten nach vorn wenn accel
ival ExpLine indx, 0, abs(istauch), idur*(1/abs(istauch))
ival = (istauch > 0 ? idur-ival : ival)
xout ival
endop
instr 1
istart = p2
idur = p3
icount = p4 ;anzahl der schritte
istauch = p5 ;immer != 0. positiv = accel, negativ = rit.
iwackel = p6 ;mögliche verschiebung der startzeiten in %
idb1 = p7 ;laustärke in dbfs am anfang
idb2 = p8 ;und am ende (dazwischen linear)
idbdiff = p9 ;maximale db-abweichung für jeden ton
instdur = p10 ;dauer des aufgerufenen instruments
idurdiff = p11 ;maximale abweichung von der dauer in %
ihul1 = p12 ;form der hüllkurve für den beginn des tropfens
itim1inf = p13 ;untere grenze für die zeit dieses beginns
itim1sup = p14 ;obere grenze für die zeit des beginns
ihul2 = p15 ;form der hüllkurve für die ausblende im tropfen
ipch = p16 ;tonhöhe als pch-class
ipan = p17 ;panning 0-1
indx = 0
iprevtim = 0 ;vorige startzeit
loop:
itim AccelRit indx, istauch, idur ;startzeit
if indx > 0 && indx < 1-1/icount then ;alle außer erstem und letztem
igap = itim-iprevtim
itim random itim-igap*iwackel/100, itim+igap*iwackel/100
endif
instdur random instdur-idurdiff/100*instdur, instdur+idurdiff/100*instdur
idb IntLine indx, idb1, idb2
idb random idb-idbdiff, idb+idbdiff
itim1 random itim1inf, itim1sup
event_i "i", 11, itim, instdur, idb, ihul1, itim1,ihul2,cpspch(ipch),ipan
iprevtim = itim
loop_le indx, 1/icount, 1, loop
endin
instr 2
afil soundin p4
aL, aR pan2 afil, p5
outs aL*p6, aR*p6
endin
instr 3
ibaspch = p4 ;grundton
iptnm = p5 ;nummer des teiltons
idb = p6 ;db lautstärke am scheitelpunkt
iprop = p7 ;wie lange bis zum scheitel: 0 für random
iprop = (iprop == 0 ? rnd(.8)+.1 : iprop)
ipan = p8 ;panning 0-1: -1 für random
ipan = (ipan == -1 ? rnd(1) : ipan)
iwdmix = p9 ;in prozent
ikurv = 1 ;kurvenform für transeg
aenv transeg 0, iprop*p3, ikurv, ampdb(idb), (1-iprop)*p3, -ikurv, 0
aton poscil aenv, cpspch(ibaspch)*iptnm, giHim
aL, aR pan2 aton, ipan
outs aL, aR
endin
instr 4
ibaspch = p4 ;grundton
ifqrel = p5 ;relation dieser freq zum grundton
ifreq = cpspch(ibaspch)*ifqrel
idb = p6 ;db lautstärke am scheitelpunkt
iprop = p7 ;wie lange bis zum scheitel: 0 für random
iprop = (iprop == 0 ? rnd(.8)+.1 : iprop)
ipan = p8 ;panning 0-1: -1 für random
ipan = (ipan == -1 ? rnd(1) : ipan)
iwdmix = p9 ;in prozent
ikurv1 = p10 ;kurvenform für einblende
ikurv2 = p11 ;kurvenform für ausblende
ikurv = 1 ;kurvenform für transeg
aenv transeg 0, iprop*p3, ikurv1, ampdb(idb), (1-iprop)*p3, ikurv2, 0
aton poscil aenv, ifreq, giHim
aL, aR pan2 aton, ipan
outs aL, aR
endin
instr 6
istart = p2
idur = p3
icount = p4 ;anzahl der schritte
istauch = p5 ;immer != 0. positiv = accel, negativ = rit.
idb1 = p6 ;laustärke in dbfs am anfang
idb2 = p7 ;und am ende
idbdiff = p8 ;maximale db abweichung
instdur = p9 ;dauer des aufgerufenen instruments
idurdiff = p10 ;maximale abweichung von der dauer in %
ihul1 = p11 ;form der hüllkurve für den beginn des tropfens (einblende)
itim1inf = p12 ;untere grenze für die zeit dieses beginns
itim1sup = p13 ;obere grenze für die zeit des beginns
ihul2 = p14 ;form der hüllkurve für die ausblende im tropfen
ipch = p15 ;tonhöhe als pch-class
ipan = p16 ;panning 0-1
iwackel1 = p17 ;% der möglichen verschiebung der startzeiten am anfang
iwackel2 = p18 ;% der möglichen verschiebung der startzeiten am ende
indx = 0
iauspf = 19 ;p-feld in dem erstes auslassen steht
iprevtim = 0 ;vorige startzeit
loop:
itim AccelRit indx, istauch, idur ;startzeit
iwackel IntLine indx, iwackel1, iwackel2
if indx > 0 && indx < 1-1/icount then
igap = itim-iprevtim
itim random itim-igap*iwackel/100, itim+igap*iwackel/100
endif
instdur random instdur-idurdiff/100*instdur, instdur+idurdiff/100*instdur
idb IntLine indx, idb1, idb2
idb random idb-idbdiff, idb+idbdiff
itim1 random itim1inf, itim1sup
if round(indx*icount+1) == p(iauspf) then
iauspf = iauspf+1
else
event_i "i", 11, itim, instdur, idb, ihul1, itim1, ihul2, cpspch(ipch), ipan
endif
iprevtim = itim
loop_le indx, 1/icount, 1, loop
endin
instr 11
iamp = ampdb(p4) ;amplitude
ihul1 = p5 ;hüllkurvenform für einblende
itim1 = p6 ;dauer der einblende
ihul2 = p7 ;hüllkurvenform für ausblende
ifreq = p8 ;hz
ipan = p9 ;pan 0-1
ahul transeg 0, itim1, ihul1, iamp, p3-itim1, ihul2, 0
aton poscil ahul, ifreq, giSin
aL, aR pan2 aton, ipan
outs aL, aR
endin
t 0 52
i 1 0 6 18 12 5 -3 -6 4 .2 20 0 .005 .01 -10
8.07 .15
i 2 0 1 "./Samples/110123_A.wav" .15 4
i 1 9 8 24 -12 5 -3 -6 4 .2 20 0 .007 .01 -10
8.02 .5
i 6 20 14 30 -.5 -6 -12 2 .25 20 3 .01 .015 -10 7.08
.85 2 2 14 24 29
i 2 20 1 "./Samples/110123_E1.wav" .85 2
b 39
i 1 0 7 18 15 5 -3 -6 4 .2 20 0 .005 .01 -10
8.05 .3
i 2 -0.01 2 "./Samples/110123_O2.wav" .3 .5
i 1 9 4 12 -15 5 -3 -6 4 .2 20 0 .005 .01 -10
7.11 .5
i 1 15 3 9 -15 5 -3 -6 4 .2 20 0 . . .
7.1067 .5
i 6 21 17 30 -.1 -9 -10 2 .25 10 3 .01 .02 -7 7.04
.7 2 50 14 24 29
i 2 21 1 "./Samples/110123_E2.wav" .85 3
b 2.8
i 3 0 3 10.09 2 -38 .5 -1 50
i 3 .25 . 10.10 . -40 .5 . 50
i 3 1 . 10.04 . -42 0 . 50
i 3 1.2 . 11.03 . -44 0 . 50
i 3 1.4 . 11.01 . -46 0 . 50
i 3 1.6 . 11.07 . -48 0 . 50
i 3 1.8 . 11.05 . -50 0 . 50
b 9
i 3 0 3 10.01 2 -38 .5 -1 50
i 3 .2 . 10.04 . -40 .5 . 50
i 3 .4 . 10.03 . -42 0 . 50
i 3 .6 . 11.09 . -44 0 . 50
i 3 .8 . 11.10 . -46 0 . 50
i 3 1 . 11.08 . -48 0 . 50
i 3 1.75 . 11.06 . -50 0 . 50
b 42
i 3 0 3 10.02 2 -38 .5 -1 50
i 3 .75 . 10.09 . -40 .5 . 50
i 3 1 . 10.03 . -42 0 . 50
i 3 1.2 . 10.08 . -44 0 . 50
i 3 1.4 . 10.11 . -46 0 . 50
i 3 1.6 . 11.04 . -48 0 . 50
i 3 1.8 . 11.06 . -50 0 . 50
b 48
i 3 0 3 11.04 2 -44 .5 -1 50
i 3 .2 . 10.08 . -42 .5 . 50
i 3 .4 . 10.11 . -40 . . 50
i 3 1.15 . 11.06 . -38 . . 50
i 3 1.4 . 11.03 . -36 . . 50
b 54
i 3 0 1.5 11.02 2 -40 .5 -1 50
i 3 .2 . 11.08 . -42 .5 . 50
i 3 .4 . 11.09 . -44 . . 50
i 3 .6 . 11.04 . -46 . . 50
b 81
i 4 0 5 10.02 [5/4] -44 .1 -1 50 1 -1
i . 1.388 4.75 . [3/2] -44 . -1 50 . .
i . 2.403 4.5 . [64/45] -44 . -1 50 . .
i . 2.903 4.25 . [16/15] -44 . -1 50 . .
i . 3.370 4 . [48/25] -44 . -1 50 . .
i . 4.483 3.75 . [5/3] -44 . .1 50 . .
i . 5.426 3.5 . [8/5] -44 . .9 50 . .
i . 7 6 . 2 -37 . .4 50 . -6
i . 7.667 5.7 . [9/4] -43 . .6 50 . .