-odac -iadc -d -m0 sr=44100 ksmps=64 nchnls=2 gks init 1 gks2 init 2 gamix init 0 /* oscillator packs */ FLcolor 200,10,40, 140,60,60 FLpanel "synthesizer panel", 500, 260, 100, 100 FLcolor 200,10,40,200,10,40 ib1 FLbox "osc 1", 1, 1, 16, 50, 20, 45, 10 FLcolor 10,100,180,255,160,100 gixoff = 20 giyoff = 30 gk4, gib4 FLbutton "on", 1, 0, 2, 50, 30, 10+gixoff, 10+giyoff, 105, gks, 0, -1, 16000, 200 FLcolor 10,100,180,180,0,0 gk5, gik5 FLknob "pitch", 0.1, 10, -1, 1, -1, 50, 80+gixoff, 10+giyoff FLsetVal_i 1, gik5 FLcolor 200,10,40,200,10,40 ib11 FLbox "saw", 1, 1, 16, 50, 30, 10+gixoff, 52+giyoff FLcolor 200,10,40,200,10,40 ib1 FLbox "osc 2", 1, 1, 16, 50, 20, 45, 130 FLcolor 200,10,40, 140,60,60 FLcolor 10,100,180,255,160,100 gixoff = 20 giyoff = 150 gk6, gib6 FLbutton "on", 1, 0, 2, 50, 30, 10+gixoff, 10+giyoff, 105, gks2, 0, -1, 32000, 200 FLcolor 10,100,180,180,0,0 gk7, gik7 FLknob "pitch", 0.1, 10, -1, 1, -1, 50, 80+gixoff, 10+giyoff FLsetVal_i 1, gik7 FLcolor 200,10,40,200,10,40 ib1 FLbox "pulse", 1, 1, 16, 50, 30, 10+gixoff, 52+giyoff FLcolor 200,10,40,200,10,40 ib1 FLbox "moog ladder filter", 1, 1, 16, 150, 20, 270, 10 /* filter pack */ FLcolor 200,10,40, 140,60,60 gixoff = 230 giyoff = 30 FLcolor 255,255,255,255,255,255 iv1 FLvalue " ", 50, 20, 160+gixoff, 10+giyoff iv2 FLvalue " ", 50, 20, 160+gixoff, 60+giyoff FLcolor 200,10,40, 140,60,60 gk1, gis1 FLslider "cutoff frequency", 1, 20000, -1, 5, iv1, 140, 10, 10+gixoff, 10+giyoff gk2, gis2 FLslider "resonance", 0, 1, 0, 5, iv2, 140, 10, 10+gixoff, 60+giyoff FLsetVal_i 5000, gis1 FLsetVal_i 0.8, gis2 FLcolor 200,10,40,200,10,40 ib1 FLbox "mixer", 1, 1, 16, 50, 20, 310, 130 /* mixer pack */ gk3 init -90 gk8 init -90 gk9 init -90 gk10 init -90 FLcolor 200,10,40, 140,60,60 giyoff = 150 gixoff = 200 FLcolor 10,100,180,255,160,100 gk3, gik3 FLknob "osc 1", -90, 0, 0, 1, -1, 50, 10+gixoff, 10+giyoff gk8, gik8 FLknob "osc 2", -90, 0, 0, 1, -1, 50, 80+gixoff, 10+giyoff gk9, gik9 FLknob "noise", -90, 0, 0, 1, -1, 50, 150+gixoff, 10+giyoff gk10, gik10 FLknob "mic input", -90, 0, 0, 1, -1, 50, 220+gixoff, 10+giyoff FLpanelEnd FLsetVal_i -90, gik10 FLsetVal_i -90, gik9 FLsetVal_i -16, gik8 FLsetVal_i -16, gik3 FLrun gkchk init 0 gkfun init 400 massign 1, 11 /* MIDI keyboard input */ instr 11 gkchk = 1 /* activates MIDI input */ gkfun cpsmidib /* gets the key freq */ endin /* oscillator 1 */ instr 1 kon init 1 /* initially ON */ if gkchk == 1 then /* if MIDI is present, checks for key press */ kon active 11 /* checks for key press to control amp */ endif iamp = p4 ifund = p5 kamp init -90 kfun tonek gk5*gkfun, 10 if kon == 0 then kamp = -90 /* amp = -90 if not ON */ else kamp = gk3 /* otherwise amp comes from mixer */ endif kamp tonek kamp, 10 asig oscili p4, kfun, 1 gamix = gamix + asig*ampdb(kamp) endin instr 2 kon init 1 if gkchk == 1 then kon active 11 endif iamp = p4 ifund = p5 kamp init -90 kfun tonek gk7*gkfun, 10 if kon == 0 then kamp = -90 else kamp = gk8 endif kamp tonek kamp, 10 asig buzz p4, kfun, sr/(2*kfun), 2 gamix = gamix + asig*ampdb(kamp) endin instr 10 ain1,ain2 ins ain = (ain1+ain2)/2 anoi rand 16000 kcf tonek gk1, 10 kres tonek gk2, 10 knoi tonek gk9, 10 kin tonek gk10, 10 asig = gamix + anoi*ampdb(knoi) + ain*ampdb(kin) afil moogladder asig, kcf, kres outs afil,afil gamix = 0 /* MIDI control */ initc7 1, 7, 0.75 ; osc 1 amp initc7 2, 7, 0.75 ; osc 2 amp initc7 3, 7, 0 ; noise amp initc7 4, 7, 0 ; mic amp initc7 1, 10, 0.9 ; filter freq initc7 2, 10, 0.9 ; filter bw initc7 3, 10, 0.5 ; osc 1 pitch initc7 4, 10, 0.5 ; osc 2 pitch initc7 1, 11, 0 initc7 2, 11, 0 kc3 init 0 k3 ctrl7 1, 7, -90, 0 if k3 != kc3 then kc3 = k3 FLsetVal 1, k3, gik3 endif kc8 init 0 k8 ctrl7 2, 7, -90, 0 if kc8 != k8 then kc8 = k8 FLsetVal 1, k8, gik8 endif kc9 init 0 k9 ctrl7 3, 7, -90, 0 if kc9 != k9 then kc9 = k9 FLsetVal 1, k9, gik9 endif kc10 init 0 k10 ctrl7 4, 7, -90, 0 if kc10 != k10 then kc10 = k10 FLsetVal 1, k10, gik10 endif kc1 init 0 k1 ctrl7 1, 10, 0, 1 if kc1 != k1 then kc1 = k1 kex pow 20000, k1 FLsetVal 1, kex, gis1 endif kc2 init 0 k2 ctrl7 2, 10, 0, 1 if kc2 != k2 then kc2 = k2 FLsetVal 1, k2, gis2 endif kc5 init 0 k5 ctrl7 3, 10, 0, 1 if kc5 != k5 then kc5 = k5 kex pow 100, k5 FLsetVal 1, kex*0.1, gik5 endif kc7 init 0 k7 ctrl7 4, 10, 0, 1 if kc7 != k7 then kc7 = k7 kex pow 100, k7 FLsetVal 1, kex*0.1, gik7 endif endin instr 100 gks = 1 - gk4*2 gks2 = 2 - gk6*4 endin f1 0 16384 10 1 .5 .4 .3 .2 .1 .05 .04 .03 .02 .01 .01 .01 .01 f2 0 16384 10 1 i10 0 60000 i100 0 60000