Skip to content
Permalink
master
Go to file
 
 
Cannot retrieve contributors at this time
56 lines (36 sloc) 1.36 KB
/* Solina Chorus, based on Solina String Ensemble Chorus Module
based on:
J. Haible: Triple Chorus
http://jhaible.com/legacy/triple_chorus/triple_chorus.html
Hugo Portillo: Solina-V String Ensemble
http://www.native-instruments.com/en/reaktor-community/reaktor-user-library/entry/show/4525/
Parabola tabled shape borrowed from Iain McCurdy delayStereoChorus.csd:
http://iainmccurdy.org/CsoundRealtimeExamples/Delays/delayStereoChorus.csd
Author: Steven Yi
Date: 2016.05.22
*/
gi_solina_parabola ftgen 0, 0, 65537, 19, 0.5, 1, 180, 1
;; 3 sine wave LFOs, 120 degrees out of phase
opcode sol_lfo_3, aaa, kk
kfreq, kamp xin
aphs phasor kfreq
a0 = tablei(aphs, gi_solina_parabola, 1, 0, 1)
a120 = tablei(aphs, gi_solina_parabola, 1, 0.333, 1)
a240 = tablei(aphs, gi_solina_parabola, 1, -0.333, 1)
xout (a0 * kamp), (a120 * kamp), (a240 * kamp)
endop
opcode solina_chorus, a, akkkk
aLeft, klfo_freq1, klfo_amp1, klfo_freq2, klfo_amp2 xin
imax = 100
;; slow lfo
as1, as2, as3 sol_lfo_3 klfo_freq1, klfo_amp1
;; fast lfo
af1, af2, af3 sol_lfo_3 klfo_freq2, klfo_amp2
at1 = limit(as1 + af1 + 5, 0.0, imax)
at2 = limit(as2 + af2 + 5, 0.0, imax)
at3 = limit(as3 + af3 + 5, 0.0, imax)
a1 vdelay3 aLeft, at1, imax
a2 vdelay3 aLeft, at2, imax
a3 vdelay3 aLeft, at3, imax
xout (a1 + a2 + a3) / 3
endop