instr 7
ifunc1 = p11 ; начальная волновая форма
ifunc2 = p12 ; другая волновая форма
ifad1 = p3 * p13 ; вычисляем начальный переход (% от длительности)
ifad2 = p3 - ifad1 ; вычисляем оставшуюся длительность
irel = .01 ; устанавливаем время филировки вибрато
idel1 = p3 * p10 ; вычисляем начальную задержку (% от длительности)
isus = p3 - (idel1 + irel) ; вычисляем оставшуюся длительность
iamp = ampdb(p4)
iscale = iamp * .166 ; p4=амлитуда
inote = cpspch(p5) ; p5=частота
k3 linseg 0, idel1, p9, isus, p9, irel, 0 ; p6=время атаки
k2 oscil k3, p8, 1 ; p7=время филировки
k1 linen iscale, p6, p3, p7 ; p8=скорость вибрато
a6 oscil k1, inote*.998+k2, ifunc2 ; p9=глубина вибрато
a5 oscil k1, inote*1.002+k2, ifunc2 ; p10=задержка вибрато (0-1)
a4 oscil k1, inote+k2, ifunc2 ; p11=начальная волна
a3 oscil k1, inote*.997+k2, ifunc1 ; p12=другая волна
a2 oscil k1, inote*1.003+k2, ifunc1 ; p13=время перехода
a1 oscil k1, inote+k2, ifunc1
kfade linseg 1, ifad1, 0, ifad2, 1
afunc1 = kfade * (a1+a2+a3)
afunc2 = (1 - kfade) * (a4+a5+a6)
out afunc1 + afunc2
endin
|