Somewhat finished Organik.
This commit is contained in:
parent
3ea7a69169
commit
8cb25b643f
|
@ -1,18 +1,28 @@
|
|||
; Horowitz Organik - an 70s style string machine
|
||||
;
|
||||
; frequency multiplier scheme based on the code by Victor Lazzarini
|
||||
;
|
||||
; (s) Severák 2020
|
||||
; licensed with MIT license
|
||||
<Cabbage> bounds(0, 0, 0, 0)
|
||||
form caption("Horowitz Organik") size(400, 300), colour(0, 51, 153), pluginid("horg")
|
||||
keyboard bounds(8, 152, 381, 101)
|
||||
vslider bounds(16, 12, 28, 107) range(0.1, 1, 0.1, 1, 0.001) channel("attack")
|
||||
vslider bounds(52, 12, 31, 108) range(0.1, 1, 0.1, 1, 0.001) channel("decay")
|
||||
vslider bounds(118, 10, 30, 108) range(0, 0.3, 0, 1, 0.001) channel("cello")
|
||||
vslider bounds(166, 8, 33, 109) range(0, 0.3, 0.3, 1, 0.001) channel("viola")
|
||||
vslider bounds(218, 10, 34, 109) range(0, 1, 0, 1, 0.001) channel("violin")
|
||||
vslider bounds(304, 10, 36, 109) range(4000, 22000, 22000, 1, 0.001) channel("tone")
|
||||
vslider bounds(104, 12, 30, 108) range(0, 0.3, 0, 1, 0.001) channel("cello")
|
||||
vslider bounds(152, 10, 33, 109) range(0, 0.3, 0.3, 1, 0.001) channel("viola")
|
||||
vslider bounds(198, 10, 34, 109) range(0, 1, 0, 1, 0.001) channel("violin")
|
||||
vslider bounds(260, 10, 36, 109) range(2800, 22000, 22000, 1, 0.001) channel("tone")
|
||||
label bounds(8, 124, 80, 16) text("crescendo")
|
||||
label bounds(110, 124, 44, 16) text("cello")
|
||||
label bounds(160, 124, 44, 16) text("viola")
|
||||
label bounds(212, 124, 50, 16) text("violin")
|
||||
label bounds(300, 124, 45, 16) text("tone")
|
||||
label bounds(100, 124, 44, 16) text("cello")
|
||||
label bounds(144, 124, 44, 16) text("viola")
|
||||
label bounds(190, 124, 50, 16) text("violin")
|
||||
label bounds(256, 124, 45, 16) text("tone")
|
||||
label bounds(12, 260, 363, 32) text("Horowitz Organik")
|
||||
vslider bounds(306, 10, 33, 108) range(0, 1, 0, 1, 0.001) channel("reverb")
|
||||
vslider bounds(348, 10, 33, 108) range(0, 1, 0, 1, 0.001) channel("chorus")
|
||||
label bounds(302, 124, 43, 16) text("rev")
|
||||
label bounds(348, 124, 52, 16) text("chorus")
|
||||
</Cabbage>
|
||||
<CsoundSynthesizer>
|
||||
<CsOptions>
|
||||
|
@ -80,16 +90,20 @@ indx = round(frac(p5)*100)
|
|||
ioct = int(p5)
|
||||
itab = ioct < 4 ? 4 : (ioct > 12 ? 12 : ioct)
|
||||
|
||||
if ioct>5 then
|
||||
a1 = tablei:a(gaphs[indx]*2^(ioct-1),itab-1,1,0,1) * kcello
|
||||
gasig += a1*linenr:a(.2,0,idec+0.1,.01)
|
||||
endif
|
||||
|
||||
|
||||
if ioct<12 then
|
||||
a2 = tablei:a(gaphs[indx]*2^ioct,itab,1,0,1) * kviola
|
||||
gasig += a2*linenr:a(.2,0,idec+0.1,.01)
|
||||
endif
|
||||
|
||||
|
||||
if ioct<11 then
|
||||
a3 = tablei:a(gaphs[indx]*2^(ioct+1),itab+1,1,0,1) * kviolin
|
||||
gasig += a3*linenr:a(.2,0,idec+0.1,.01)
|
||||
endif
|
||||
|
||||
endin
|
||||
|
||||
|
@ -115,15 +129,31 @@ schedule(3,0,-1)
|
|||
instr 4
|
||||
|
||||
ktone chnget "tone"
|
||||
asig moogladder2 gasig, ktone, 0
|
||||
kreverb chnget "reverb"
|
||||
kchorus chnget "chorus"
|
||||
|
||||
|
||||
asig zdf_2pole gasig, ktone, 0.5
|
||||
|
||||
aLreverb, aRreverb reverbsc asig, asig, 0.7, 10000
|
||||
|
||||
aL ntrpol asig, aLreverb, kreverb
|
||||
aR ntrpol asig, aRreverb, kreverb
|
||||
|
||||
aL, aR reverbsc asig, asig, 0.8, 10000
|
||||
|
||||
amod1 = randi:a(3,.75)+oscili(2,.35)+31
|
||||
amod2 = randi:a(2,.65)+oscili(3,.55)+29
|
||||
a1 = vdelay(aL*.5,amod1,35)
|
||||
a2 = vdelay(aR*.5,amod2,35)
|
||||
out((aL + a1),(aR + a2))
|
||||
|
||||
aLchorus = aL + a1
|
||||
aRchorus = aR + a2
|
||||
|
||||
aL ntrpol aL, aLchorus, kchorus
|
||||
aR ntrpol aR, aRchorus, kchorus
|
||||
|
||||
out aL, aR
|
||||
|
||||
gasig = 0
|
||||
endin
|
||||
schedule(4,0,-1)
|
||||
|
|
Loading…
Reference in New Issue