@@ -0,0 +1,33 @@ | |||
*~ | |||
*.a | |||
*.cdbs-orig | |||
*.dll | |||
*.dylib | |||
*.exe | |||
*.la | |||
*.o | |||
*.so | |||
*.so.* | |||
*.lv2 | |||
*.make | |||
Makefile | |||
object_script.*.Debug | |||
object_script.*.Release | |||
.directory | |||
.fuse* | |||
.svn | |||
.*.kate-swp | |||
.DS_Store | |||
.kdev_include_paths | |||
.kdev4 | |||
bin/lv2 | |||
bin/vst | |||
debian | |||
intermediate | |||
lv2_ttl_generator | |||
sdks/ASIOSDK2/* | |||
sdks/vstsdk2.4/* |
@@ -8,8 +8,20 @@ PREFIX = /usr | |||
all: | |||
$(MAKE) -C ports | |||
$(MAKE) gen | |||
# ----------------------------------------- | |||
# gen | |||
gen: gen_lv2 gen_vst | |||
gen_lv2: | |||
@./scripts/generate-cabbage-lv2.sh | |||
@./scripts/generate-ttl.sh | |||
gen_vst: | |||
@./scripts/generate-cabbage-vst.sh | |||
# ----------------------------------------- | |||
# install | |||
@@ -18,9 +30,13 @@ install: | |||
install -d $(DESTDIR)$(PREFIX)/lib/lv2/ | |||
install -d $(DESTDIR)$(PREFIX)/lib/vst/ | |||
# install ports | |||
# install plugins | |||
ifneq (,$(wildcard bin/lv2/TheFunction.lv2)) | |||
cp -r bin/lv2/*.lv2/ $(DESTDIR)$(PREFIX)/lib/lv2/ | |||
endif | |||
ifneq (,$(wildcard bin/vst/TheFunction.so)) | |||
cp -r bin/vst/* $(DESTDIR)$(PREFIX)/lib/vst/ | |||
endif | |||
# ----------------------------------------- | |||
# clean | |||
@@ -28,6 +44,19 @@ install: | |||
clean: | |||
$(MAKE) clean -C ports | |||
rm -rf bin/lv2/*.lv2/ | |||
rm -rf bin/lv2-extra/ | |||
rm -rf bin/vst-extra/ | |||
distclean: clean | |||
$(MAKE) distclean -C ports | |||
# ----------------------------------------- | |||
# Custom build types | |||
lv2: | |||
$(MAKE) -C ports lv2 | |||
$(MAKE) gen_lv2 | |||
vst: | |||
$(MAKE) -C ports vst | |||
$(MAKE) gen_vst |
@@ -0,0 +1,101 @@ | |||
<Cabbage> | |||
form caption("Autopan / Tremolo") size(440, 102), pluginID("aptr") | |||
image pos( 0, 0), size(440, 102), colour("Maroon"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 5, 6, 90, 90), text("Freq.[Hz]"), channel("rate"), range(0.1, 50, 0.5, 0.5), textBox(1), trackercolour("tomato") | |||
rslider bounds( 80, 6, 90, 90), text("Tempo[BPM]"), channel("tempo"), range(6, 3000, 30, 0.5, 1), textBox(1), trackercolour("tomato") | |||
rslider bounds(175, 6, 90, 90), text("Depth"), channel("depth"), range(0, 1.00, 1, 0.5), textBox(1), trackercolour("tomato") | |||
rslider bounds(345, 6, 90, 90), text("Level"), channel("level"), range(0, 1.00, 1), textBox(1), trackercolour("tomato") | |||
checkbox bounds(160, 15, 25, 25), colour("yellow"), channel("indicator"), value(0), shape("rounded") | |||
combobox bounds(260, 13, 90,20), channel("mode"), value(1), text("Autopan", "Tremolo") | |||
combobox bounds(260, 38, 90,20), channel("wave"), value(1), text("Sine", "Triangle", "Square", "Randomi", "Randomh") | |||
checkbox bounds(260, 63, 90, 15), text("TEST TONE"), colour("lime"), channel("test"), value(0) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
opcode PanTrem,aa,aakkkK | |||
ainL,ainR,krate,kdepth,kmode,kwave xin ;READ IN INPUT ARGUMENTS | |||
ktrig changed kwave ;IF LFO WAVEFORM TYPE IS CHANGED GENERATE A MOMENTARY '1' (BANG) | |||
if ktrig=1 then ;IF A 'BANG' HAS BEEN GENERATED IN THE ABOVE LINE | |||
reinit UPDATE ;BEGIN A REINITIALIZATION PASS FROM LABEL 'UPDATE' SO THAT LFO WAVEFORM TYPE CAN BE UPDATED | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
UPDATE: ;LABEL CALLED UPDATE | |||
iwave init i(kwave) | |||
iwave limit iwave, 0, 4 ; | |||
if iwave==3 then ;if randomi chosen... | |||
klfo randomi -kdepth,kdepth,krate,1 | |||
elseif iwave==4 then ;of randomh chosen... | |||
klfo randomh -kdepth,kdepth,krate,1 | |||
else | |||
klfo lfo kdepth, krate, iwave ;CREATE AN LFO | |||
endif | |||
rireturn ;RETURN FROM REINITIALIZATION PASS | |||
klfo = (klfo*0.5)+0.5 ;RESCALE AND OFFSET LFO SO IT STAY WITHIN THE RANGE 0 - 1 ABOUT THE VALUE 0.5 | |||
if iwave=2||iwave==4 then ;IF SQUARE WAVE MODULATION HAS BEEN CHOSEN... | |||
klfo portk klfo, 0.001 ;SMOOTH THE SQUARE WAVE A TINY BIT TO PREVENT CLICKS | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
if kmode=0 then ;PAN ;IF PANNING MODE IS CHOSEN FROM BUTTON BANK... | |||
alfo interp klfo ;INTERPOLATE K-RATE LFO AND CREATE A-RATE VARIABLE | |||
aoutL = ainL*sqrt(alfo) ;REDEFINE GLOBAL AUDIO LEFT CHANNEL SIGNAL WITH AUTO-PANNING | |||
aoutR = ainR*(1-sqrt(alfo)) ;REDEFINE GLOBAL AUDIO RIGHT CHANNEL SIGNAL WITH AUTO-PANNING | |||
kindicator = (klfo>0.5?1:0) | |||
chnset kindicator,"indicator" | |||
elseif kmode=1 then ;TREM ;IF TREMELO MODE IS CHOSEN FROM BUTTON BANK... | |||
kindicator = (klfo>0.5?1:0) | |||
chnset kindicator,"indicator" | |||
klfo = klfo+(0.5-(kdepth*0.5)) ;MODIFY LFO AT ZERO DEPTH VALUE IS 1 AND AT MAX DEPTH CENTRE OF MODULATION IS 0.5 | |||
alfo interp klfo ;INTERPOLATE K-RATE LFO AND CREATE A-RATE VARIABLE | |||
aoutL = ainL*(alfo^2) ;REDEFINE GLOBAL AUDIO LEFT CHANNEL SIGNAL WITH TREMELO | |||
aoutR = ainR*(alfo^2) ;REDEFINE GLOBAL AUDIO RIGHT CHANNEL SIGNAL WITH TREMELO | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
xout aoutL,aoutR ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 | |||
krate chnget "rate" | |||
ktempo chnget "tempo" | |||
kdepth chnget "depth" | |||
kmode chnget "mode" | |||
kwave chnget "wave" | |||
klevel chnget "level" | |||
ktest chnget "test" | |||
ktrig changed krate | |||
ktrig2 changed ktempo | |||
if ktrig=1 then | |||
chnset krate*60,"tempo" | |||
elseif ktrig2=1 then | |||
chnset ktempo/60,"rate" | |||
endif | |||
if ktest=1 then | |||
a1 vco2 0.2,300,4,0.5 | |||
a2 = a1 | |||
else | |||
a1,a2 ins | |||
endif | |||
a1,a2 PanTrem a1,a2,krate,kdepth,kmode-1,kwave-1 | |||
a1 = a1 * klevel | |||
a2 = a2 * klevel | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,134 @@ | |||
<Cabbage> | |||
form caption("Band Filter"), colour("DarkSlateGrey"), size(470, 360), pluginID("band") | |||
xypad bounds(5, 5, 350, 350), channel("cf", "bw"), rangex(0, 1, 0.5), rangey(0, 1, 0.3), text("x:cutoff | y:bandwidth"), colour("white") | |||
checkbox bounds(370, 10, 25, 25), channel("balance"), FontColour("white"), value(0) | |||
label bounds(400, 15, 80, 14), text("Balance"), FontColour("white") | |||
label bounds(375, 43, 85, 15), text("Filter Type"), FontColour("white") | |||
combobox bounds(370, 60,85, 20), channel("type"), value(1), text("reson", "butterbp", "areson", "butterbr") | |||
rslider bounds(368, 93, 90, 90), text("Mix"), fontcolour("white"), channel("mix"), range(0, 1.00, 1), trackercolour("white") | |||
rslider bounds(368,190, 90, 90), text("Level"), fontcolour("white"), channel("level"), range(0, 1.00, 1), trackercolour("white") | |||
rslider bounds(360,283, 50, 30), text("CF"), fontcolour("white"), TextBox(1), channel("cfDisp"), range(1, 20000, 1) | |||
rslider bounds(415,283, 50, 30), text("BW"), fontcolour("white"), TextBox(1), channel("bwDisp"), range(1, 20000, 1) | |||
image bounds(75, 343, 315, 18), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kcf chnget "cf" | |||
kbw chnget "bw" | |||
kbalance chnget "balance" | |||
rslider bounds(360,283, 50, 30), text("CF"), fontcolour("white"), TextBox(1), channel("cfDisp"), range(1, 20000, 1) | |||
rslider bounds(415,283, 50, 30), text("BW"), fontcolour("white"), TextBox(1), channel("bwDisp"), range(1, 20000, 1) | |||
image bounds(75, 343, 315, 18), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kcf chnget "cf" | |||
kbw chnget "bw" | |||
kbalance chnget "balance" | |||
rslider bounds(360,283, 50, 30), text("CF"), fontcolour("white"), TextBox(1), channel("cfDisp"), range(1, 20000, 1) | |||
rslider bounds(415,283, 50, 30), text("BW"), fontcolour("white"), TextBox(1), channel("bwDisp"), range(1, 20000, 1) | |||
image bounds(75, 343, 315, 18), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kcf chnget "cf" | |||
kbw chnget "bw" | |||
kbalance chnget "balance" | |||
ktype chnget "type" | |||
kmix chnget "mix" | |||
klevel chnget "level" | |||
kporttime linseg 0,0.001,0.05 | |||
kcf expcurve kcf, 4 | |||
kcf scale kcf,18000,20 | |||
kbw expcurve kbw, 16 | |||
kbw scale kbw,3,0.01 | |||
aL,aR ins | |||
;aL,aR diskin2 "seashore.wav",1,0,1 | |||
;aL pinkish 1 ;USE FOR TESTING | |||
;aR pinkish 1 | |||
kbw limit kbw*kcf,1,20000 | |||
chnset kcf,"cfDisp" ;send actual values for cutoff and bandwidth to GUI value boxes | |||
chnset kbw,"bwDisp" | |||
kcf portk kcf,kporttime | |||
kbw portk kbw,kporttime | |||
if ktype==1 then ;if reson chosen... | |||
aFiltL reson aL,kcf,kbw,1 | |||
aFiltR reson aR,kcf,kbw,1 | |||
elseif ktype==2 then ;or if butterworth bandpass is chosen | |||
aFiltL butbp aL,kcf,kbw | |||
aFiltR butbp aR,kcf,kbw | |||
elseif ktype==3 then ;or if areson is chosen... | |||
aFiltL areson aL,kcf,kbw,1 | |||
aFiltR areson aR,kcf,kbw,1 | |||
else ;otherwise must be butterworth band reject | |||
aFiltL butbr aL,kcf,kbw | |||
aFiltR butbr aR,kcf,kbw | |||
endif | |||
if kbalance==1 then ;if 'balance' switch is on... | |||
aFiltL balance aFiltL,aL,0.3 | |||
aFiltR balance aFiltR,aR,0.3 | |||
endif | |||
amixL ntrpol aL,aFiltL,kmix ;create wet/dry mix | |||
amixR ntrpol aR,aFiltR,kmix | |||
outs amixL*klevel,amixR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,284 @@ | |||
;BreakBeatCutter.csd | |||
;Iain McCurdy, 2013. | |||
; Break Beat Cut Up using the bbcut opcode with additional processing | |||
;==BBCUT========================================================================================================================== | |||
'Sub-division' determines the note duration used as the base unit in cut-ups. | |||
For example a value of 8 represents quavers (eighth notes), 16 represents semiquavers (sixteenth notes) and so on. | |||
'Bar Length' represents the number of beats per bar. For example, a value of 4 represents a 4/4 bar and so on. | |||
'Phrase' defines the number of bars that will elapse before the cutting up pattern restarts from the beginning. | |||
'Stutter' is a separate cut-up process which occasionally will take a very short fragment of the input audio and repeat | |||
it many times. | |||
'Stutter Speed' defines the duration of each stutter in relation to 'Sub-division'. | |||
If subdivision is 8 (quavers / eighth notes) and 'Stutter Speed' is 2 then each stutter will be a semiquaver / sixteenth note. | |||
'Stutter Chance' defines the frequency of stutter moments. | |||
The range for this parameter is 0 to 1. Zero means stuttering will be very unlikely, 1 means it will be very likely. | |||
'Repeats' defines the number of repeats that will be employed in normal cut-up events. | |||
When processing non-rhythmical, unmetered material it may be be more interesting to employ non-whole numbers for parameters such as 'Sub-division', 'Phrase' and 'Stutter Speed'. | |||
;======================================================================================================================== | |||
;==FILTER================================================================================================================ | |||
Additionally in this example a randomly moving band-pass filter has been implemented. | |||
'Filter Mix' crossfades between the unfiltered bbcut signal and the filtered bbcut signal. | |||
'Cutoff Freq.' consists of two small sliders which determine the range from which random cutoff values are derived. | |||
'Interpolate<=>S&H' fades continuously between an interpolated random function and a sample and hold type random function. | |||
'Filter Div.' controls the frequency subdivision with which new random cutoff frequency values are generated - a value of '1' means that new values are generated once every bar. | |||
;======================================================================================================================== | |||
;==WGUIDE================================================================================================================ | |||
A waveguide effect can randomly and rhythmically cut into the audio stream | |||
'Chance' defines the probability of this happening. 0=never 1=always | |||
The range of frequencies the effect will choose from is defined by the user as note values. | |||
Frequencies are quatised to adhere to equal temperament. | |||
;======================================================================================================================== | |||
;==SQUARE MOD. (Square wave ring modulation)============================================================================= | |||
This effect can similarly randomly and rhythmically cut into the audio stream using the 'chance' control | |||
The range of frequencies the modulator waveform can move between is defined as 'oct' values. | |||
;======================================================================================================================== | |||
;==F.SHIFT (Frequency Shifter)=========================================================================================== | |||
Similar to the above except using a frequency shifter effect. | |||
;======================================================================================================================== | |||
<Cabbage> | |||
form size(440,485), caption("Break Beat Cutter"), pluginID("bbct") | |||
snapshot bounds( 5,450,200, 25), preset("BreakBeatCutter"), master(1), items("Preset 1", "Preset 2", "Preset 3", "Preset 4", "Preset 5", "Preset 6", "Preset 7", "Preset 8", "Preset 9", "Preset 10") | |||
groupbox bounds( 0, 0,440,145), text("CUTTER"), plant("cutter"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Sub-div."), channel("subdiv"), range(1, 512, 8, 1, 1) | |||
rslider bounds( 80, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Bar Length"), channel("barlen"), range(1, 16, 2, 1, 1) | |||
rslider bounds(150, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Phrase"), channel("phrase"), range(1, 512, 8, 1, 1) | |||
rslider bounds(220, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Repeats"), channel("repeats"), range(1, 32, 2, 1, 1) | |||
rslider bounds(290, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Stut. Speed"), channel("stutspd"), range(1, 32, 4, 1, 1) | |||
rslider bounds(360, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Stut. Chance"), channel("stutchnc"), range(0, 1.00, 0.5) | |||
hslider bounds( 5, 95,425, 40), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), textBox(1) channel("BPM"), range(10, 500, 110,1,1) | |||
label bounds(198,127, 25, 11), text("BPM"), FontColour("silver") | |||
} | |||
groupbox bounds( 0,145,440,100), text("FILTER"), plant("filter"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), text("Mix"), channel("FltMix"), range(0, 1.00, 0.6) | |||
rslider bounds( 80, 25, 70, 70), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), text("Division"), channel("fltdiv"), range(1, 16, 1,1,1) | |||
rslider bounds(150, 25, 70, 70), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), text("Bandwidth"), channel("bw"), range(0.1, 10, 1, 0.5, 0.001) | |||
hslider bounds(220, 25,140, 35), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), channel("cfmin"), range(50, 10000, 50 ,0.5,0.1) | |||
hslider bounds(220, 50,140, 35), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), channel("cfmax"), range(50, 10000, 10000,0.5,0.1) | |||
label bounds(254, 77, 80, 12), text("Cutoff Freq."), FontColour("white") | |||
rslider bounds(360, 25, 70, 70), colour(200,100,50,255), trackercolour(200,100,50,255), fontcolour("silver"), text("Int./S&H"), channel("i_h"), range(0, 1, 0) | |||
} | |||
groupbox bounds( 0,245,220,100), text("WAVE GUIDE"), plant("waveguide"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour(150,150,50,255), trackercolour(150,150,50,255), fontcolour("silver"), text("Chance"), channel("WguideChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(150,150,50,255), trackercolour(150,150,50,255), fontcolour("silver"), channel("wguidemin"), range(22, 100, 50,1,1) | |||
hslider bounds( 80, 50,140, 35), colour(150,150,50,255), trackercolour(150,150,50,255), fontcolour("silver"), channel("wguidemax"), range(22, 100, 70,1,1) | |||
label bounds(108, 77, 85, 12), text("Pitch Range"), FontColour("white") | |||
} | |||
groupbox bounds(220,245,220,100), text("SQUARE MOD."), plant("sqmod"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour(200,150,200,255), trackercolour(200,150,200,255), fontcolour("silver"), text("Chance"), channel("SqModChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(200,150,200,255), trackercolour(200,150,200,255), fontcolour("silver"), channel("sqmodmin"), range(1, 14.0, 6) | |||
hslider bounds( 80, 50,140, 35), colour(200,150,200,255), trackercolour(200,150,200,255), fontcolour("silver"), channel("sqmodmax"), range(1, 14.0, 12) | |||
label bounds(108, 77, 85, 12), text("Freq.Range"), FontColour("white") | |||
} | |||
groupbox bounds(0,345,220,100), text("FREQUENCY SHIFT"), plant("fshift"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour(250,110,250,255), trackercolour(250,110,250,255), fontcolour("silver"), text("Chance"), channel("FshiftChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(250,110,250,255), trackercolour(250,110,250,255), fontcolour("silver"), channel("fshiftmin"), range(-4000, 4000,-1000) | |||
hslider bounds( 80, 50,140, 35), colour(250,110,250,255), trackercolour(250,110,250,255), fontcolour("silver"), channel("fshiftmax"), range(-4000, 4000, 1000) | |||
label bounds(108, 77, 85, 12), text("Freq.Range"), FontColour("white") | |||
} | |||
groupbox bounds(220,345,220,100), text("OUTPUT"), plant("output"), FontColour(silver),colour(20,20,20){ | |||
rslider bounds( 10, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Layers"), channel("layers"), range(1, 20, 1,1,1) | |||
rslider bounds( 80, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Dry/Wet"), channel("DryWet"), range(0, 1.00, 0.6) | |||
rslider bounds(150, 25, 70, 70), colour("Tan"), trackercolour("Tan"), fontcolour("silver"), text("Level"), channel("gain"), range(0, 1.00, 0.75) | |||
} | |||
label bounds(10,472, 200, 12), text("Iain McCurdy [2013]"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -dm0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs=1 | |||
seed 0 | |||
gisine ftgen 0,0,131072,10,1 | |||
opcode BBCutIteration,aa,aaiiiiiiiii | |||
aL,aR,iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc, icount, ilayers xin | |||
abbcutL bbcutm aL, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc | |||
abbcutR bbcutm aR, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc | |||
amixL = 0 | |||
amixR = 0 | |||
if icount<ilayers then | |||
amixL,amixR BBCutIteration aL,aR, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc, icount+1, ilayers | |||
endif | |||
xout abbcutL+amixL,abbcutR+amixL | |||
endop | |||
opcode FreqShifter,a,aki | |||
ain,kfshift,ifn xin ;READ IN INPUT ARGUMENTS | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
xout aFS ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 ; read widgets | |||
gksubdiv chnget "subdiv" ; read in widgets | |||
gkbarlen chnget "barlen" | |||
gkphrase chnget "phrase" | |||
gkrepeats chnget "repeats" | |||
gkstutspd chnget "stutspd" | |||
gkstutchnc chnget "stutchnc" | |||
gkBPM chnget "BPM" | |||
gkfltdiv chnget "fltdiv" | |||
gkDryWet chnget "DryWet" | |||
gkFltMix chnget "FltMix" | |||
gkbw chnget "bw" | |||
gkcfmin chnget "cfmin" | |||
gkcfmax chnget "cfmax" | |||
gki_h chnget "i_h" | |||
gklayers chnget "layers" | |||
gkgain chnget "gain" | |||
konoff chnget "onoff" | |||
endin | |||
instr 2 | |||
kSwitch changed gkBPM, gkrepeats, gkphrase, gkstutspd, gkstutchnc, gkbarlen, gksubdiv, gkfltdiv, gklayers ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif | |||
UPDATE: | |||
/* INPUT */ | |||
aL,aR ins ; live input | |||
;;;; use a loop sound file for testing | |||
;#define SOUNDFILE #"loop.wav"# ; macro | |||
; ilen filelen $SOUNDFILE ; length of sound file | |||
; ibeats = 8 ; number of beats in the drum loop | |||
; ispd = (ilen/ibeats) * (i(gkBPM)/60) ; speed ratio for this sample to sync with master clock | |||
; aL diskin $SOUNDFILE,ispd,0,1 ; read sound file | |||
; aR = aL ; right channel same as left | |||
iBPS = i(gkBPM)/60 | |||
kmetro metro iBPS ; metronome used for triggering random parameter changes | |||
; call UDO | |||
;OUTPUT OPCODE INPUT | BPM | SUBDIVISION | BAR_LENGTH | PHRASE_LENGTH | NUM.OF_REPEATS | STUTTER_SPEED | STUTTER_CHANCE | |||
abbcutL,abbcutR BBCutIteration aL,aR, i(gkBPM)/60, i(gksubdiv), i(gkbarlen), i(gkphrase), i(gkrepeats), i(gkstutspd), i(gkstutchnc), 1, i(gklayers) | |||
;FILTER================================================================================================================================================================= | |||
ifreq = iBPS * i(gkfltdiv) ; FREQUENCY WITH WHICH NEW FILTER CUTOFF VALUES ARE GENERATED | |||
kcf1h randomh gkcfmin, gkcfmax, ifreq ; sample and hold random frequency values | |||
kcf1i lineto kcf1h, 1/ifreq ; interpolate values | |||
kcf1 ntrpol kcf1i, kcf1h, gki_h ; crossfade between interpolating and sample and hold type random values | |||
abbFltL resonz abbcutL, kcf1, kcf1*gkbw, 2 ; band-pass filter | |||
abbMixL ntrpol abbcutL, abbFltL, gkFltMix ; crossfade between unfiltered and filter audio signal | |||
kcf2h randomh gkcfmin, gkcfmax, ifreq ; RIGHT CHANNEL | |||
kcf2i lineto kcf2h, 1/ifreq ; | |||
kcf2 ntrpol kcf2i, kcf2h, gki_h ; | |||
abbFltR resonz abbcutR, kcf2, kcf2*gkbw, 2 ; | |||
abbMixR ntrpol abbcutR, abbFltR, gkFltMix ; | |||
;======================================================================================================================================================================= | |||
;WGUIDE1================================================================================================================================================================ | |||
kchance chnget "WguideChnc" | |||
kdice trandom kmetro,0,1 | |||
if kdice<kchance then | |||
kwguidemin chnget "wguidemin" | |||
kwguidemax chnget "wguidemax" | |||
knum randomh kwguidemin,kwguidemax,iBPS | |||
afrq interp cpsmidinn(int(knum)) | |||
kfb randomi 0.8,0.99,iBPS/4 | |||
kcf randomi 800,4000,iBPS | |||
abbMixL wguide1 abbMixL*0.7,afrq,kcf,kfb | |||
abbMixR wguide1 abbMixR*0.7,afrq,kcf,kfb | |||
endif | |||
;======================================================================================================================================================================= | |||
;SQUARE MOD============================================================================================================================================================== | |||
kchance chnget "SqModChnc" ; read in widgets | |||
ksqmodmin chnget "sqmodmin" ; | |||
ksqmodmax chnget "sqmodmax" ; | |||
kDiceRoll trandom kmetro,0,1 ; new 'roll of the dice' upon each new time period | |||
if kDiceRoll<kchance then ; if 'roll of the dice' is within chance boundary... | |||
kratei randomi ksqmodmin,ksqmodmax,iBPS ; interpolating random function for modulating waveform frequency | |||
krateh randomh ksqmodmin,ksqmodmax,iBPS ; sample and hold random function for modulating waveform frequency | |||
kcross randomi 0,1,iBPS ; crossfader for morphing between interpolating and S&H functions | |||
krate ntrpol kratei,krateh,kcross ; create crossfaded rate function | |||
amod lfo 1,cpsoct(krate),2 ; modulating waveform (square waveform) | |||
kcf limit cpsoct(krate)*4,20,sr/3 ; cutoff freq for filtering some of the high freq. content of the square wave | |||
amod clfilt amod,kcf,0,2 ; low-pass filter square wave | |||
abbMixL = abbMixL*amod ; ring modulate audio | |||
abbMixR = abbMixR*amod ; | |||
endif | |||
;======================================================================================================================================================================= | |||
;FSHIFT================================================================================================================================================================= | |||
kchance chnget "FshiftChnc" ; read in widgets | |||
kdice trandom kmetro,0,1 ; new 'roll of the dice' upon each new time period | |||
if kdice<kchance then ; if 'roll of the dice' is within chance boundary... | |||
kfshiftmin chnget "fshiftmin" ; read in widgets | |||
kfshiftmax chnget "fshiftmax" ; | |||
kfsfrqi randomi kfshiftmin,kfshiftmax,iBPS*2 ; interpolating random function for modulating waveform frequency | |||
kfsfrqh randomh kfshiftmin,kfshiftmax,iBPS*2 ; sample and hold random function for modulating waveform frequency | |||
kcross randomi 0,1,iBPS*2 ; crossfader for morphing between interpolating and S&H functions | |||
kfsfrq ntrpol kfsfrqi,kfsfrqh,kcross ; create crossfaded rate function modulating waveform (square waveform) | |||
abbMixL FreqShifter abbMixL,kfsfrq,gisine ; | |||
abbMixR FreqShifter abbMixR,kfsfrq,gisine ; | |||
endif ; | |||
;======================================================================================================================================================================= | |||
rireturn ; RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
amixL sum aL*(1-gkDryWet), abbMixL*gkDryWet ;SUM AND MIX DRY SIGNAL AND BBCUT SIGNAL (LEFT CHANNEL) | |||
amixR sum aR*(1-gkDryWet), abbMixR*gkDryWet ;SUM AND MIX DRY SIGNAL AND BBCUT SIGNAL (RIGHT CHANNEL) | |||
outs amixL*gkgain, amixR*gkgain ;SEND AUDIO TO OUTPUTS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i1 0 36000 | |||
i2 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,166 @@ | |||
Convolution Reverb | |||
------------------ | |||
You are encouraged to experiment with different impulse files. | |||
You can find some here: http://www.openairlib.net/ | |||
The one I reference in this example can be found here: http://www.iainmccurdy.org/CsoundRealtimeExamples/SourceMaterials/Stairwell.wav | |||
NOTE THAT ZERO LATENCY (or close to zero) CONV0LUTION WILL NOT BE POSSIBLE. | |||
Instructions | |||
------------ | |||
'Size Ratio' compresses the duration of the impulse file (provided that 'compressed' is chosen for 'resize' mode). | |||
'Curve' defines the shape of an envelope applied to compressed impulse files using GEN16 | |||
zero = straight line decaying | |||
positive vals. = increasingly convex decaying | |||
negative vals = increasingly concave decaying | |||
Increase 'iplen' (must be a power of 2) if experiencing performance problems, or reduce it to reduce latency. | |||
'Delay OS' fine tunes the delay applied to the dry signal. Normally this should be zero but adjust it to modify how the dry signal lines up with the convoluted signal. | |||
<Cabbage> | |||
form caption("Convolution Reverb") size(505, 90), pluginID("Conv") | |||
image bounds(0, 0, 505, 90), colour(135, 30, 30,220), shape("rounded"), outline(255,255,150), line(4) | |||
button bounds( 10, 10, 90, 20), text("forward","backward"), channel("FwdBwd"), value(0), fontcolour(250,250,250) | |||
label bounds( 30, 30, 60, 12), text("direction"), fontcolour(250,250,250) | |||
button bounds( 10, 50, 90, 20), text("normal","compressed"), channel("resize"), value(0), fontcolour(250,250,250) | |||
label bounds( 35, 70, 60, 12), text("resize"), fontcolour(250,250,250) | |||
rslider bounds(105, 11, 70, 70), text("Size Ratio"), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("CompRat"), range(0, 1.00, 1) | |||
rslider bounds(170, 11, 70, 70), text("Curve"), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("Curve"), range(-8.00, 8.00, 0) | |||
rslider bounds(235, 11, 70, 70), text("In Skip"), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("skipsamples"), range(0, 1.00, 0) | |||
rslider bounds(300, 11, 70, 70), text("Del.OS."), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("DelayOS"), range(-1.00, 1.00, 0) | |||
rslider bounds(365, 11, 70, 70), text("Mix"), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("mix"), range(0, 1.00, 0.25) | |||
rslider bounds(430, 11, 70, 70), text("Level"), colour(135, 30, 30), trackercolour(255,255,150), fontcolour(250,250,250), channel("level"), range(0, 1.00, 0.4) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
; IMPULSE RESPONSES STORED AS STEREO GEN01 FUNCTION TABLES | |||
giImpulse ftgen 1, 0, 262144, 1, "stairwell.wav", 0, 0, 0 ;stereo file, duration 1.176s | |||
; reverse function table UDO | |||
opcode tab_reverse,i,i | |||
ifn xin | |||
iTabLen = nsamp(ifn) | |||
iTableRev ftgen ifn+100,0,-iTabLen,-2, 0 | |||
icount = 0 | |||
loop: | |||
ival table iTabLen-icount-1, ifn | |||
tableiw ival,icount,iTableRev | |||
loop_lt icount,1,iTabLen,loop | |||
xout iTableRev | |||
endop | |||
; compress function table UDO | |||
opcode tab_compress,i,iii | |||
ifn,iCompRat,iCurve xin | |||
iTabLen = nsamp(ifn) | |||
iTabLenComp = int(nsamp(ifn)*iCompRat) | |||
iTableComp ftgen ifn+200,0,-iTabLenComp,-2, 0 | |||
iAmpScaleTab ftgen ifn+300,0,-iTabLenComp,-16, 1,iTabLenComp,iCurve,0 | |||
icount = 0 | |||
loop: | |||
ival table icount, ifn | |||
iAmpScale table icount, iAmpScaleTab | |||
tableiw ival*iAmpScale,icount,iTableComp | |||
loop_lt icount,1,iTabLenComp,loop | |||
xout iTableComp | |||
endop | |||
; compress reverse function table UDO | |||
opcode tab_compress_rev,i,iii | |||
ifn,iCompRat,iCurve xin | |||
iTabLen = nsamp(ifn) | |||
iTabLenComp = int(nsamp(ifn)*iCompRat) | |||
iTableComp ftgen ifn+400,0,-iTabLenComp,-2, 0 | |||
iAmpScaleTab ftgen ifn+500,0,-iTabLenComp,-16, 1,iTabLenComp,iCurve,0 | |||
icount = 0 | |||
loop: | |||
ival table icount, ifn | |||
iAmpScale table icount, iAmpScaleTab | |||
tableiw ival*iAmpScale, iTabLenComp-icount-1,iTableComp | |||
loop_lt icount,1,iTabLenComp,loop | |||
xout iTableComp | |||
endop | |||
instr 1 ;CONVOLUTION REVERB INSTRUMENT | |||
kFwdBwd chnget "FwdBwd" | |||
kresize chnget "resize" | |||
kmix chnget "mix" | |||
klevel chnget "level" | |||
kCompRat chnget "CompRat" | |||
kCurve chnget "Curve" | |||
kskipsamples chnget "skipsamples" | |||
kDelayOS chnget "DelayOS" | |||
kCompRat init 1 ;IF THIS IS LEFT UNINITIALISED A CRASH WILL OCCUR! | |||
ainL,ainR ins ;READ STEREO AUDIO INPUT | |||
;ainL,ainR diskin2 "808loop.wav",1,0,1 ;USE A SOUND FILE FOR TESTING | |||
ainMix sum ainL,ainR | |||
;CREATE REVERSED TABLES | |||
irev tab_reverse giImpulse | |||
kSwitch changed kskipsamples,kFwdBwd,kDelayOS,kCompRat,kCurve ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE IS CHANGED... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS IN ORDER TO EFFECT THIS CHANGE. BEGIN THIS PASS AT LABEL ENTITLED 'UPDATE' AND CONTINUE UNTIL rireturn OPCODE | |||
endif ;END OF CONDITIONAL BRANCHING | |||
UPDATE: ;LABEL | |||
;CREATE COMPRESSED TABLES | |||
icomp tab_compress giImpulse,i(kCompRat),i(kCurve) | |||
;CREATE COMPRESSED REVERSED TABLES | |||
icomprev tab_compress_rev giImpulse,i(kCompRat),i(kCurve) | |||
iplen = 1024 ;BUFFER LENGTH (INCREASE IF EXPERIENCING PERFORMANCE PROBLEMS, REDUCE IN ORDER TO REDUCE LATENCY) | |||
itab = giImpulse ;DERIVE FUNCTION TABLE NUMBER OF CHOSEN TABLE FOR IMPULSE FILE | |||
iirlen = nsamp(itab)*0.5 ;DERIVE THE LENGTH OF THE IMPULSE RESPONSE IN SAMPLES. DIVIDE BY 2 AS TABLE IS STEREO. | |||
iskipsamples = nsamp(itab)*0.5*i(kskipsamples) ;DERIVE INSKIP INTO IMPULSE FILE. DIVIDE BY 2 (MULTIPLY BY 0.5) AS ALL IMPULSE FILES ARE STEREO | |||
;FORWARDS REVERB | |||
if kFwdBwd==0&&kresize==0 then | |||
aL,aR ftconv ainMix, itab, iplen,iskipsamples, iirlen ;CONVOLUTE INPUT SOUND | |||
adelL delay ainL, abs((iplen/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE | |||
adelR delay ainR, abs((iplen/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE | |||
;BACKWARDS REVERB | |||
elseif kFwdBwd==1&&kresize==0 then | |||
aL,aR ftconv ainMix, irev, iplen, iskipsamples, iirlen ;CONVOLUTE INPUT SOUND | |||
adelL delay ainL,abs((iplen/sr)+(iirlen/sr)-(iskipsamples/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE AND THE DURATION OF THE IMPULSE FILE | |||
adelR delay ainR,abs((iplen/sr)+(iirlen/sr)-(iskipsamples/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE AND THE DURATION OF THE IMPULSE FILE | |||
elseif kFwdBwd==0&&kresize==1 then | |||
aL,aR ftconv ainMix, icomp, iplen,iskipsamples, iirlen*i(kCompRat) ;CONVOLUTE INPUT SOUND | |||
adelL delay ainL, abs((iplen/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE | |||
adelR delay ainR, abs((iplen/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE | |||
elseif kFwdBwd==1&&kresize==1 then | |||
aL,aR ftconv ainMix, icomprev, iplen, iskipsamples, iirlen*i(kCompRat) ;CONVOLUTE INPUT SOUND | |||
adelL delay ainL,abs((iplen/sr)+((iirlen*i(kCompRat))/sr)-(iskipsamples/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE AND THE DURATION OF THE IMPULSE FILE | |||
adelR delay ainR,abs((iplen/sr)+((iirlen*i(kCompRat))/sr)-(iskipsamples/sr)+i(kDelayOS)) ;DELAY THE INPUT SOUND ACCORDING TO THE BUFFER SIZE AND THE DURATION OF THE IMPULSE FILE | |||
endif | |||
; CREATE A DRY/WET MIX | |||
aMixL ntrpol adelL,aL*0.1,kmix | |||
aMixR ntrpol adelR,aR*0.1,kmix | |||
outs aMixL*klevel,aMixR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 3600 ;INSTRUMENT 2 (CONVOLUTION INSTRUMENT) RUNS FOR 1 HOUR (AND KEEPS REAL-TIME PERFORMANCE GOING) | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,223 @@ | |||
DelayGrain.csd | |||
Iain McCurdy, 2013 | |||
CONTROLS | |||
-------- | |||
Grain Size -- range of possible grain sizes (in seconds) | |||
Density -- grain density in grains per second (note that the addition of delay will disrupt the regularity of grains) | |||
Delay -- range of delay times possible (in seconds) | |||
Transpose -- range of transpositions (in semitones) | |||
Spread -- random panning spread of grains | |||
Amplitude Decay -- the larger this value, the more grains are delayed, the more their amplitudes will be lowered | |||
Reversal Proability -- probability of material within the grains being played backwards: 0 = all forwards | |||
1 = all backwards | |||
0.5 = 50:50 | |||
reversal might be hard to hear unless grain size is large | |||
Mix -- dry/wet mix | |||
Level -- output level (both dry and wet) | |||
Grain Env. -- sets the amplitude enveloping window for each grain | |||
Hanning: natural sounding soft attack, soft decay envelope | |||
Half-sine: like the hanning but with a slightly sharper attack and decay | |||
Decay 1: a percussive decay envelope with linear segments | |||
Decay 2: a percussive decay envelope with a exponential decay segment. Probably more natural sounding than 'Decay 1' but longer grain sizes may be necessary | |||
Gate: sharp attack and decay. Rather synthetic sounding. | |||
Delay Distr. -- random delay time distribution: exponential, linear or logarithmic. Effect are quite subtle but exponential might be most natural sounding. | |||
<Cabbage> | |||
form caption("Delay Grain") size(410, 540), pluginID("DGrn") | |||
hslider bounds( 5, 5, 400, 25), channel("GSize1"), range(0.005, 2, 0.01, 0.5, 0.0001) | |||
hslider bounds( 5, 20, 400, 25), channel("GSize2"), range(0.005, 2, 0.09, 0.5, 0.0001) | |||
label bounds(161, 39, 120, 11), text("G R A I N S I Z E"), fontcolour(105,105,255) | |||
hslider bounds( 5, 60, 400, 25), channel("Dens"), range(0.2, 2000, 50,0.5,0.001) | |||
label bounds(172, 79, 120, 11), text("D E N S I T Y"), fontcolour(105,105,255) | |||
hslider bounds( 5,100, 400, 25), channel("Dly1"), range(0, 5, 0.01, 0.5, 0.0001) | |||
hslider bounds( 5,115, 400, 25), channel("Dly2"), range(0, 5, 0.5, 0.5, 0.0001) | |||
label bounds(180,134, 120, 11), text("D E L A Y"), fontcolour(105,105,255) | |||
hslider bounds( 5,160, 400, 25), channel("Trns1"), range(-12, 12, 0, 1, 0.001) | |||
hslider bounds( 5,175, 400, 25), channel("Trns2"), range(-12, 12, 0, 1, 0.001) | |||
label bounds(162,194, 120, 11), text("T R A N S P O S E"), fontcolour(105,105,255) | |||
hslider bounds( 5,215, 400, 25), channel("PanSpread"), range(0, 1.00, 0.5,1,0.001) | |||
label bounds(158,234, 120, 11), text("P A N S P R E A D"), fontcolour(105,105,255) | |||
hslider bounds( 5,260, 400, 25), channel("AmpSpread"), range(0, 1.00, 0.5,1,0.001) | |||
label bounds(158,279, 120, 11), text("A M P S P R E A D"), fontcolour(105,105,255) | |||
hslider bounds( 5,300, 400, 25), channel("FiltSpread"), range(0, 1.00, 0.5,1,0.001) | |||
label bounds(147,319, 120, 11), text("F I L T E R S P R E A D"), fontcolour(105,105,255) | |||
hslider bounds( 5,340, 400, 25), channel("ampdecay"), range(0, 1.00, 0.5,1,0.001) | |||
label bounds(134,359, 220, 11), text("A M P L I T U D E D E C A Y"), fontcolour(105,105,255) | |||
hslider bounds( 5,380, 400, 25), channel("reverse"), range(0, 1.00, 0,1,0.001) | |||
label bounds(112,399, 220, 11), text("R E V E R S A L P R O B A B I L I T Y"), fontcolour(105,105,255) | |||
hslider bounds( 5,420, 400, 25), channel("mix"), range(0, 1.00, 1,1,0.001) | |||
label bounds(191,439, 120, 11), text("M I X"), fontcolour(105,105,255) | |||
hslider bounds( 5,460, 400, 25), channel("level"), range(0, 2.00, 1, 0.5, 0.001) | |||
label bounds(183,479, 120, 11), text("L E V E L"), fontcolour(105,105,255) | |||
combobox bounds( 10,506, 90, 17), channel("window"), value(1), text("Hanning","Half Sine","Decay 1","Decay 2","Gate") | |||
label bounds( 19,495, 90, 11), text("GRAIN ENV."), fontcolour(105,105,255) | |||
combobox bounds(110,506, 90, 17), channel("DlyDst"), value(1), text("Exp.","Lin.","Log") | |||
label bounds(119,495, 90, 11), text("DELAY DISTR."), fontcolour(105,105,255) | |||
label bounds( 10,528, 200, 11), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2013) | |||
; window functions | |||
giwfn1 ftgen 0, 0, 131072, 9, .5, 1, 0 ; HALF SINE | |||
giwfn2 ftgen 0, 0, 131072, 7, 0, 3072, 1, 128000, 0 ; PERCUSSIVE - STRAIGHT SEGMENTS | |||
giwfn3 ftgen 0, 0, 131072, 16, 0, 3072,0,1, 128000,-2, 0 ; PERCUSSIVE - EXPONENTIAL SEGMENTS | |||
giwfn4 ftgen 0, 0, 131072, 7, 0, 3536, 1, 124000, 1, 3536, 0 ; GATE - WITH ANTI-CLICK RAMP UP AND RAMP DOWN SEGMENTS | |||
giwfn5 ftgen 0, 0, 131072, 7, 0, 128000,1, 3072, 0 ; REVERSE PERCUSSIVE - STRAIGHT SEGMENTS | |||
giwfn6 ftgen 0, 0, 131072, 5, .001, 128000,1, 3072, 0.001 ; REVERSE PERCUSSIVE - EXPONENTIAL SEGMENTS | |||
giwfn7 ftgen 0, 0, 131072, 20, 2, 1 ; HANNING WINDOW | |||
giwindows ftgen 0,0,8,-2,giwfn7,giwfn1,giwfn2,giwfn3,giwfn4 | |||
giBufL ftgen 0,0,1048576,-2,0 ; function table used for storing audio | |||
giBufR ftgen 0,0,1048576,-2,0 ; function table used for storing audio | |||
gigaussian ftgen 0,0,4096,20,6,1,1 ; a gaussian distribution | |||
gaGMixL,gaGMixR init 0 ; initialise stereo grain signal | |||
instr 1 ; grain triggering instrument | |||
kGSize1 chnget "GSize1" ; grain size limit 1 | |||
kGSize2 chnget "GSize2" ; grain size limit 2 | |||
kDens chnget "Dens" ; grain density | |||
kDly1 chnget "Dly1" ; delay time limit 1 | |||
kDly2 chnget "Dly2" ; delay time limit 2 | |||
kTrns1 chnget "Trns1" ; transposition in semitones | |||
kTrns2 chnget "Trns2" | |||
kPanSpread chnget "PanSpread" ; random panning spread | |||
kAmpSpread chnget "AmpSpread" ; random amplitude spread | |||
kFiltSpread chnget "FiltSpread" ; random filter spread | |||
kreverse chnget "reverse" ; reversal probability | |||
kampdecay chnget "ampdecay" ; amount of delay->amplitude attenuation | |||
kwindow chnget "window" ; window | |||
kDlyDst chnget "DlyDst" ; delay time distribution | |||
kmix chnget "mix" ; dry/wet mix | |||
klevel chnget "level" ; output level (both dry and wet signals) | |||
aL, aR ins ; read audio input | |||
outs aL*klevel*(1-kmix),aR*klevel*(1-kmix) | |||
/* WRITE TO BUFFER TABLES */ | |||
ilen = ftlen(giBufL) ; table length (in samples) | |||
aptr phasor sr/ilen ; phase pointer used to write to table | |||
aptr = aptr*ilen ; rescale pointer according to table size | |||
tablew aL, aptr, giBufL ; write audio to table | |||
tablew aR, aptr, giBufR ; write audio to table | |||
kptr downsamp aptr ; downsamp pointer to k-rate | |||
ktrig metro kDens ; grain trigger | |||
/* GRAIN SIZE */ | |||
kGSize random 0,1 ; random value 0 - 1 | |||
;kGSize expcurve kGSize,50 ; exponentially redistribute range 0 - 1 | |||
kMinGSize min kGSize1,kGSize2 ; find minimum grain size limit | |||
kMaxGSize max kGSize1,kGSize2 ; find maximum grain size limit | |||
kGSize scale kGSize,kMaxGSize,kMinGSize ; rescale random value according to minimum and maximum limits | |||
/* DELAY TIME */ | |||
kDly random 0,1 ; uniform random value 0 - 1 | |||
if kDlyDst=1 then ; if delay time distribution is exponential | |||
kDly expcurve kDly,100 ; exponential distrubution range 0 - 1 | |||
elseif kDlyDst=3 then ; .. or if logarithmic | |||
kDly logcurve kDly,100 ; exponential distrubution range 0 - 1 | |||
endif ; (other linear so do not alter) | |||
if kDly1=kDly2 then | |||
kMinDly = kDly1 ; delays can't be the same value!! | |||
kMaxDly = kDly2+0.001 | |||
else | |||
kMinDly min kDly1,kDly2 ; find minimum delay time limit | |||
kMaxDly max kDly1,kDly2 ; find maximum delay time limit | |||
endif | |||
ioffset = 1/sr ; delay offset (can't read at same location as write pointer!) | |||
kDly scale kDly,kMaxDly,kMinDly; distribution rescaled to match the user defined limits | |||
/* CALL GRAIN */ | |||
; p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 | |||
schedkwhen ktrig,0,0,2,kDly+0.0001,kGSize,kptr,kPanSpread,kreverse,kDly,kMinDly+ioffset,kMaxDly+0.0001,kampdecay,klevel*kmix,kwindow,kAmpSpread,kFiltSpread,kTrns1,kTrns2 ; call grain instrument | |||
endin | |||
instr 2 ; grain instrument | |||
iGStart = p4 ; grain start position (in samples) | |||
ispread = p5 ; random panning spread | |||
ireverse= (rnd(1)>p6?1:-1) ; decide fwd/bwd status | |||
iwindow table p12-1,giwindows ; amplitude envelope shape for this grain | |||
/* AMPLITUDE CONTROL */ | |||
idly = p7 ; delay time | |||
iMinDly = p8 ; minimum delay | |||
iMaxDly = p9 ; maximum delay | |||
iampdecay= p10 ; amount of delaytime->amplitude attenuation | |||
ilevel = p11 ; grain output level | |||
iAmpSpread = p13 | |||
iFiltSpread = p14 | |||
iRto divz idly-iMinDly , iMaxDly-iMinDly, 0 ; create delay:amplitude ration (safely) | |||
iamp = (1 - iRto) ^ 2 ; invert range | |||
iamp ntrpol 1,iamp,iampdecay ; mix flat amplitude to scaled amplitude according to user setting | |||
iRndAmp random 1-iAmpSpread, 1 ; random amplitude value for this grain | |||
iamp = iamp*iRndAmp ; apply random amplitude | |||
/* TRANSPOSITION */ | |||
iTrns random p15,p16 | |||
iRto = semitone(iTrns) | |||
if iRto>1 then | |||
iStrtOS = (iRto-1) * sr * p3 | |||
else | |||
iStrtOS = 0 | |||
endif | |||
aline line iGStart-iStrtOS,p3,iGStart-iStrtOS+(p3*iRto*sr*ireverse) ; grain pointer | |||
aenv oscili iamp,1/p3,iwindow ; amplitude envelope | |||
aL tablei aline,giBufL,0,0,1 ; read audio from table | |||
aR tablei aline,giBufR,0,0,1 ; read audio from table | |||
if iFiltSpread>0 then | |||
iRndCfOct random 14-(iFiltSpread*10),14 | |||
iRndCf = cpsoct(iRndCfOct) | |||
aL butlp aL,iRndCf | |||
aR butlp aR,iRndCf | |||
endif | |||
ipan random 0.5-(ispread*0.5),0.5+(ispread*0.5) ; random pan position for this grain | |||
gaGMixL = gaGMixL + (aL*aenv*ipan*ilevel) ; left channel mix added to global variable | |||
gaGMixR = gaGMixR + (aR*aenv*(1-ipan)*ilevel) ; right channel mix added to global variable | |||
endin | |||
instr 3 ; output instrument (always on) | |||
outs gaGMixL,gaGMixR ; send global audio signals to output | |||
clear gaGMixL,gaGMixR ; clear global audio variables | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ; read audio, write to buffers, call grains. | |||
i 3 0 [60*60*24*7] ; output | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,142 @@ | |||
doppler.csd | |||
Written by Iain McCurdy, 2013 | |||
; CONTROLS | |||
; Input - select input: either left channel, right channel, or a mix of both channels | |||
; Shape - shape of the LFO moving the source: either sine, triangle, random spline OR manual | |||
note, if 'random' is chosen, 'speed' can take a little while to respond to changes | |||
made to the 'speed' control is the speed was previously slow | |||
If 'manual' is selected source position is controlled using the on screen slider | |||
; Room Size - effectively the dpeth of the doppler pitch modulating effect | |||
; Speed - speed of the LFO moving the source with respect to the mic. position | |||
; Depth - amplitude of the LFO moving the source | |||
; Smoothing - a smoothing filter applied to doppler pitch modulation. Its effect can be subtle. | |||
; Mix - a dry/wet mixer. Mixing the dry and wet signals can be used to create chorus effects. | |||
; Ampscale - amount of amplitude drop off as the source moves away from the source. | |||
Kind of like another room size control | |||
; Pan Depth - Amount of left-right movement in the output as the source swings past the microphone | |||
; Out Amp - scales the output signal | |||
; Mic.Position - Position of the microphone | |||
; Source Position- Location of the source (for display only unless 'manual' shape is chosen) | |||
<Cabbage> | |||
form caption("-oOo-"), size(610, 180), pluginID("dopp") | |||
label bounds(23, 10, 60,11), text("Input") | |||
combobox bounds(10, 23, 60,20), channel("input"), value(4), text("left","right","mixed","test") | |||
label bounds(23, 50, 60,11), text("Shape") | |||
combobox bounds(10, 63, 60,20), channel("shape"), value(1), text("sine","triangle","random","manual") | |||
rslider bounds( 75, 10, 80, 80), channel("RoomSize"), range(0.1,100,40,0.5,0.5), text("Room Size"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(140, 10, 80, 80), channel("speed"), range(0,10,0.08,0.5,0.01), text("Speed"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(205, 10, 80, 80), channel("depth"), range(0,0.5,0.5,0.5,0.01), text("Depth"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(270, 10, 80, 80), channel("filtercutoff"), range(1,20,6,1,1), text("Smoothing"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(335, 10, 80, 80), channel("ampscale"), range(0,1,0.98), text("Amp.Scale"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(400, 10, 80, 80), channel("PanDep"), range(0,0.5,0.4), text("Pan Depth"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(465, 10, 80, 80), channel("mix"), range(0,1,1), text("Mix"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
rslider bounds(530, 10, 80, 80), channel("OutAmp"), range(0,1,0.5), text("Level"), TextBox(1), colour( 45, 45, 45), trackercolour(200,200,200) | |||
hslider bounds( 10, 86,590, 40), channel("microphone"), range(0,1.00,0.5), text("Mic. Position"), TextBox(1), colour(100,100,100), trackercolour(200,200,200) | |||
hslider bounds( 10,111,590, 40), channel("source"), range(0,1.00,0.5), text("Source Position"), TextBox(1), colour(100,100,100), trackercolour(200,200,200) | |||
label bounds(22, 155,200,18), text("D O P P L E R"), fontcolour(100,100,100) | |||
label bounds(20, 153,200,18), text("D O P P L E R"), fontcolour(180,180,180) | |||
label bounds(232,160, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE VALUE | |||
;AMPLITUDE SCALING CURVE | |||
giampcurve ftgen 0,0,131072,5,0.01,131072*0.5,1,131072*0.5,0.01 | |||
instr 1 | |||
gkinput chnget "input" | |||
gkRoomSize chnget "RoomSize" | |||
gkspeed chnget "speed" | |||
gkdepth chnget "depth" | |||
gkfiltercutoff chnget "filtercutoff" | |||
gkfiltercutoff init 6 | |||
gkampscale chnget "ampscale" | |||
gkPanDep chnget "PanDep" | |||
kmix chnget "mix" ;READ IN DRY/WET CROSSFADER WIDGET | |||
gkOutAmp chnget "OutAmp" | |||
gkmicrophone chnget "microphone" | |||
gkshape chnget "shape" | |||
gkshape init 1 | |||
/* INPUT */ | |||
aL,aR ins | |||
if gkinput=1 then | |||
asig = aL | |||
elseif gkinput=2 then | |||
asig = aR | |||
elseif gkinput=3 then | |||
asig = (aL+aR)*0.677 | |||
else | |||
;INPUT TONE=============================================(for testing) | |||
asig vco2 .5, 300 ;GENERATE TONE | |||
asig tone asig, 1200 ;LOW PASS FILTER TO SOFTEN THE TONE | |||
;======================================================= | |||
endif | |||
;LFO(modulates source position)========================= | |||
ktrig changed gkshape ;IF I-RATE VARIABLE SLIDER IS CHANGED GENERATE A '1' | |||
if ktrig=1 then ;IF TRIGGER IS '1'... | |||
reinit RESTART_LFO ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
RESTART_LFO: ;LABEL CALLED 'UPDATE' | |||
if i(gkshape)=3 then ;IF 'RANDOM' SHAPE IS SELECTED... | |||
gksource rspline 0.5-gkdepth, 0.5+gkdepth, gkspeed,gkspeed*2 | |||
elseif i(gkshape)=4 then ;IF 'MANUAL' SHAPE IS SELECTED... | |||
gksource chnget "source" ;READ SOURCE POSITION FROM SLIDER | |||
else | |||
gksource lfo gkdepth, gkspeed, i(gkshape)-1 ;LFO | |||
gksource = gksource + 0.5 ;OFFSET INTO THE POSITIVE DOMAIN | |||
endif | |||
rireturn | |||
chnset gksource,"source" | |||
;====================================================== | |||
kporttime linseg 0, 0.001, 0.1 ;RAMPING UP PORTAMENTO TIME VARIABLE | |||
;DOPPLER================================================ | |||
ispeedofsound init 340.29 ;SPEED OF SOUND DEFINED | |||
ksource portk gksource, kporttime ;SMOOTH SOURCE POSITION MOVEMENT | |||
kmicrophone portk gkmicrophone, kporttime ;SMOOTH MICROPHOPNE POSITION MOVEMENT | |||
ktrig changed gkfiltercutoff ;IF I-RATE VARIABLE SLIDER IS CHANGED GENERATE A '1' | |||
if ktrig=1 then ;IF TRIGGER IS '1'... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
UPDATE: ;LABEL CALLED 'UPDATE' | |||
kdisp limit ksource-(kmicrophone-0.5), 0, 1 ;CALCULATE DISPLACEMENT (DISTANCE) BETWEEN SOURCE AND MICROPHONE AND LIMIT VALUE TO LIE BETWEEN ZERO AND 1 | |||
kamp table kdisp, giampcurve,1 ;READ AMPLITUDE SCALING VALUE FROM TABLE | |||
kamp ntrpol 1, kamp, gkampscale ;CALCULATE AMOUNT OF AMPLITUDE SCALING DESIRED BY THE USER FROM THE ON SCREEN SLIDER | |||
aout doppler asig*kamp, ksource*gkRoomSize, kmicrophone*gkRoomSize, ispeedofsound, i(gkfiltercutoff) ;APPLY DOPPLER EFFECT | |||
rireturn ;RETURN FROM REINITIALISATION PASS | |||
kpan = (gksource<gkmicrophone?0.5+gkPanDep:0.5-gkPanDep) ;CALCULATE PAN VALUE ACCORDING TO SOURCE AND MIC POSITION | |||
kpan portk kpan, kporttime ;APPLY PORTAMENTO SMOOTHING TO PAN POSITION VALUE | |||
aL ntrpol asig,aout*sqrt(kpan)*gkOutAmp,kmix ;DRY/WET MIX LEFT CHANNEL | |||
aR ntrpol asig,aout*sqrt(1-kpan)*gkOutAmp,kmix ;DRY/WET MIX RIGHT CHANNEL | |||
outs aL, aL ;SEND AUDIO TO OUTPUTS AND APPLY PANNING | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 3600 ;DUMMY SCORE EVENT - PERMITS REAL-TIME PERFORMANCE FOR 1 HOUR | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,165 @@ | |||
DopplerSpin.csd | |||
Written by Iain McCurdy, 2013 | |||
; CONTROLS | |||
; Frequency of Rotation -- Frequency of the spinning | |||
; Central/Edge -- Listening position in relation to the circulat motion. Can be thought of as a control for the amount of amplitude modulation. | |||
; Orientation (radians) -- direction of listeing | |||
; Panning Width -- amount of panning directionality in the modulation | |||
; Doppler Depth -- amount of doppler effect (circle size). | |||
; (Reverb) Scaling -- a dry/wet mixer. Mixing the dry and wet signals can be used to create chorus effects. | |||
; (Reverb) Time -- amount of amplitude drop off as the source moves away from the source. | |||
; (Reverb) Damping -- Amount of left-right movement in the output as the source swings past the microphone | |||
; Mix -- scales the output signal | |||
; Level -- Output Level | |||
; Auto-Frequency -- If this button is activated the frequency of the spinning moves randomly between -Frequency of Rotation and +Frequency of Rotation | |||
; This example uses three LFOs to create the effect of a sound moving in a circle around the listener. | |||
; The three parameters controlled by these LFOs are amplitude, panning and delay time. | |||
; The modulation of the delay time also results in a modulation of pitch which is sometimes referred to as the Doppler effect. | |||
; Note that in this example the 'vdelayxw' opcode is used to implement the delay and doppler shift. | |||
; This opcode is unique in that the delay time of the write pointer rather than the read pointer is modulated. | |||
; This is appropriate here as it is the sound source that is moving, not the listener. | |||
; Crucial to this effect is that that all three LFOs share the same frequency value. | |||
; Negative frequency values are also allowed - this would represent a change in direction of the source sounds motion around us. | |||
; Also of crucial importance is the phase relationship between the three LFOs as this defines exactly where the sound source is in relation to the listener. | |||
; The panning LFO should be at its points of minimum rate of change when the sound source is moving parallel to the direction in which the listener is facing, i.e. directly to the left or to the right of the listener. | |||
; The delay time LFO (pitch modulation/doppler) should be at its points of minimum rate of change when the sound source is moving perpendicular to the direction in which the listener is facing, i.e. directly in front of or behind the listener. | |||
; The phase difference between these two LFOs is either 90 or 270 degrees, depending on whether the source sound is moving in a clockwise or anticlockwise direction around us. | |||
; Amplitude modulation comes into play whenever we are not listening from the centre of the circle of motion. | |||
; The close to the edge of the circle we are the greater the amount of amplitude modulation we will experience. | |||
; If the amplitude modulation is extreme then the circle of the source sound's motion must be extremely large. The phase of the amplitude modulation LFO is also adjustable ('Orientation' slider - | |||
; this define which edge of the circle we are closest to, e.g. upper, lower, left, right etc. It is probably best to always include at least a small amount of amplitude modulation as we perceive sounds directly to our left or to our right to be | |||
; louder, even if they remain equidistant from us. In this case the amplitude LFO phase ('Orientation') should be 0.5 (radians). | |||
; The waveform for all three LFOs is a sine wave. | |||
; This defines the object's motion as being circular. | |||
; If we were to use a different waveform this would model non-circular motion. | |||
; There is interesting potential in experimentation in this direction with this example. | |||
; Finally as the moving signal becomes more distant, i.e. when the amplitude scaling function is at its minimum, a reverberated version of the signal can become more evident. | |||
; The degree to which this is present can be scaled using the 'Reverb Scaling' slider. | |||
<Cabbage> | |||
form caption("Doppler Spin"), size(700,265), pluginID("SDop") | |||
;label bounds(23, 10, 60,11), text("Input") | |||
label bounds( 10, 4,120, 15), text("i n p u t"), fontcolour("white") | |||
combobox bounds(10, 30, 60,20), channel("input"), value(1), text("left","right","mixed","test") | |||
line bounds( 85, 5, 2, 70), colour("Grey") | |||
label bounds(185, 4,120, 15), text("r e v e r b"), fontcolour("white") | |||
checkbox bounds(100, 33,110, 20), text("Reverb On/Off") channel("RvbOnOff"), FontColour("White"), colour("lime") value(1) | |||
rslider bounds(210, 23, 55, 55), channel("RvbScaling"), range(0,1.000,0.3,1,0.001), text("Scaling"), TextBox(0), colour( 95, 45,115), trackercolour( 95, 45,115) | |||
rslider bounds(270, 23, 55, 55), channel("RvbTime"), range(0.3,0.990,0.7,1,0.001), text("Time"), TextBox(0), colour( 85, 45,125), trackercolour( 85, 45,125) | |||
rslider bounds(330, 23, 55, 55), channel("RvbFilt"), range(20,20000,4000,0.5,0.001), text("Damping"), TextBox(0), colour( 75, 45,135), trackercolour( 75, 45,135) | |||
line bounds(390, 5, 2, 70), colour("Grey") | |||
label bounds(411, 4,120, 15), text("o u t p u t"), fontcolour("white") | |||
rslider bounds(400, 23, 55, 55), channel("mix"), range(0,1.000,1,1,0.001), text("Mix"), TextBox(0), colour( 65, 45,145), trackercolour( 65, 45,145) | |||
rslider bounds(460, 23, 55, 55), channel("OutGain"), range(0,1.000,0.7,1,0.001), text("Level"), TextBox(0), colour( 55, 45,155), trackercolour( 65, 45,145) | |||
line bounds(520, 5, 2, 70), colour("Grey") | |||
checkbox bounds(530, 33,110, 20), text("Auto-Frequency") channel("AutoFreq"), FontColour("White"), colour("lime") value(0) | |||
hslider bounds( 5, 80,690, 35), channel("freq"), range(-10,10.00,0.2,1,0.0001), text("Frequency of Rotation"), TextBox(1), colour(145, 45, 65), trackercolour(145, 45, 65) | |||
hslider bounds( 5,110,690, 35), channel("AmpDepth"), range(0,1.000,0.7,1,0.001), text("Central/Edge"), TextBox(1), colour(135, 45, 75), trackercolour(135, 45, 75) | |||
hslider bounds( 5,140,690, 35), channel("AmpPhase"), range(0,1.000,0.5,1,0.001), text("Orientation [radians]"), TextBox(1), colour(125, 45, 85), trackercolour(125, 45, 85) | |||
hslider bounds( 5,170,690, 35), channel("PanDepth"), range(0,1.000,1,1,0.001), text("Panning Width"), TextBox(1), colour(115, 45, 95), trackercolour(115, 45, 95) | |||
hslider bounds( 5,200,690, 35), channel("DopDep"), range(0,0.030,0.003,0.5,0.000001), text("Doppler Depth"), TextBox(1), colour(105, 45,105), trackercolour(105, 45,105) | |||
label bounds( 5,247, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE VALUE | |||
gisine ftgen 0,0,131072,10,1 | |||
instr 1 | |||
gkinput chnget "input" | |||
kfreq chnget "freq" | |||
kAmpDepth chnget "AmpDepth" | |||
kAmpPhase chnget "AmpPhase" | |||
kPanDepth chnget "PanDepth" | |||
kDopDep chnget "DopDep" | |||
kRvbScaling chnget "RvbScaling" | |||
kRvbTime chnget "RvbTime" | |||
kRvbFilt chnget "RvbFilt" | |||
kmix chnget "mix" | |||
kOutGain chnget "OutGain" | |||
kRvbOnOff chnget "RvbOnOff" | |||
kAutoFreq chnget "AutoFreq" | |||
/* INPUT */ | |||
aL,aR ins | |||
if gkinput=1 then | |||
asig = aL | |||
elseif gkinput=2 then | |||
asig = aR | |||
elseif gkinput=3 then | |||
asig = (aL+aR)*0.677 | |||
else | |||
;INPUT TONE=============================================(for testing) | |||
asig vco2 .5, 300 ;GENERATE TONE | |||
asig tone asig, 1200 ;LOW PASS FILTER TO SOFTEN THE TONE | |||
;======================================================= | |||
endif | |||
if kAutoFreq=1 then | |||
kfreq jspline kfreq,1,4 | |||
endif | |||
kporttime linseg 0,0.001,0.1 ;CREATE 'PORTAMENTO TIME'. A FUNCTION THAT RISES QUICKLY FROM ZERO TO A HELD VALUE. | |||
kAmpPhase portk kAmpPhase, kporttime ;APPLY PORTAMENTO TO gkAmpPhase. CREATE NEW OUTPUT VARIABLE kAmpPhase (GLOBAL VARIABLES CAN'T BE BOTH INPUT AND OUTPUT) | |||
kDopDep portk kDopDep, kporttime ;APPLY PORTAMENTO TO gkDopDep. CREATE NEW OUTPUT VARIABLE kDopDep (GLOBAL VARIABLES CAN'T BE BOTH INPUT AND OUTPUT) | |||
aAmp osciliktp kfreq, gisine, kAmpPhase ;AN LFO DEFINES A VARIABLE USED TO MODULATE AMPLITUDE (NOTE: VARIABLE PHASE). THIS MODELS THE LOCATION WITHIN THE CIRCLE FROM WHICH WE ARE LISTENING. NO AMPLITUDE MODULATION REPRESENT REPRESENTS OUR LISTENING POSITION BEING EXACTLY CENTRAL, MAXIMUM MODULATION REPRESENTS US BEING NEAR TO THE EDGE OF A LARGE CIRCLE. THE CONTROL OVER PHASE OF THIS LFO REPRESENTS WHICH EDGE WE ARE CLOSER TO. | |||
aAmp = (aAmp * 0.5 * kAmpDepth) + 0.5 ;RESCALE AND OFFSET AMPLITUDE MODULATION LFO | |||
aPan oscili (kPanDepth * 0.5), kfreq, gisine, 0.75 ;AN LFO DEFINES A VARIABLE FOR PANNING CONTROL - I.E. WHETHER SOUND IS CURRENTLY TO OUT LEFT OR TO OUT RIGHT. NOTE THAT PHASE IS 0.75 AND THEREFORE 0.75 RADIANS (OR 270 DEGREES OUT OF PHASE) WITH THE DELAY MODULATION | |||
aPan = aPan + 0.5 ;OFFSET PANNING LFO | |||
iMaxDelay = 1 ;DEFINE A VARIABLE THAT WILL BE USE FOR 'MAXIMUM DELAY TIME' (BUFFER LENGTH) | |||
aDelTim oscili kDopDep, kfreq, gisine, 0 ;AN LFO DEFINES A VARIABLE FOR DELAY TIME (NOTE PHASE AT ZERO) | |||
aDelTim = aDelTim + kDopDep ;DELAY TIME VARIABLE 'aDelay' IS OFFSET TO STAY WITHIN THE POSITIVE DOMAIN | |||
;vdelayxw IS USED FOR THE DELAY READ/WRITE AS IT MODULATES THE WRITE POINTER RATHER THAN THE READ POINTER. | |||
;THIS IS MORE APPROPRIATE IN THIS EXAMPLE AS THE SOURCE IS MOVING BUT THE POINT OF LISTENING IS STATIONARY | |||
aDelTap vdelayxw asig, aDelTim, iMaxDelay, 16 | |||
aL, aR pan2 aDelTap, aPan, 1 ;APPLY PANNING TO SIGNAL OUTPUT FROM DELAY USING pan2 OPCODE. CREATE A NEW | |||
aL = aL * (aAmp^0.5) ;APPLY AMPLITUDE MODULATION (CREATE A NEW AUDIO SIGNAL - DRY (UN-REVERBERATED) SIGNAL) | |||
aR = aR * (aAmp^0.5) ;APPLY AMPLITUDE MODULATION (CREATE A NEW AUDIO SIGNAL - DRY (UN-REVERBERATED) SIGNAL) | |||
if kRvbOnOff=1 then | |||
aRvbL, aRvbR reverbsc aL, aR, kRvbTime, kRvbFilt ;REVERB (UNAFFECTED BY AMPLITUDE MODULATION) | |||
aL = (aL+(aRvbL*kRvbScaling)) | |||
aR = (aR+(aRvbL*kRvbScaling)) | |||
endif | |||
aL ntrpol asig,aL,kmix | |||
aR ntrpol asig,aR,kmix | |||
outs aL * kOutGain , aR * kOutGain ;SEND AUDIO TO OUTPUTS. MIX DRY AND REVERBERATED SIGNALS. | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7*52] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,351 @@ | |||
; FilterLFO.csd | |||
; Author: Iain McCurdy (2013) | |||
; INTRODUCTION | |||
; ------------ | |||
; multimode filter with a 2 multimode LFOs on the cutoff frequency | |||
; additional controls for specific filter models are accessed using the pop-up buttons | |||
; The outputs of both LFOs are added to the main cutoff frequency (Freq.) | |||
; LFO amplitude are in 'octaves' | |||
; LFO rates are in beats per minute | |||
; 'Smoothing' adds a small amount of portamento to changes in cutoff frequency | |||
; this can be useful in square wave-type modulations | |||
; 'Type' is ignored when 'moogladder', 'resonz', 'phaser2' or 'resony' are chosen as 'model' | |||
; some subtlety is required when using the more complex filter models (e.g. phaser2, resony) | |||
; often low LFO amplitudes and rate work better with these | |||
; CONTROL | |||
; ------- | |||
; Freq. -- global manual frequency control. Like an LFO offset value. | |||
; Res. -- resonance control. Affects moogladder, resonz and phaser2 models | |||
; Mix -- dry/wet (filtered/unfiltered) mix | |||
; Level -- global output level control | |||
; Model -- (drop down menu) filter model | |||
; Type -- Filter type: highpass/lowpass - affects tone, butterworth, cl-butterworth, cl-Chebychev models only | |||
; Input -- choose between live input and (for testing) sawtooth tone and pink noise | |||
; Resync -- resync. (i.e. restart) the two LFOs | |||
; clfilt/phaser2/resony -- pop-up panels with further controls for these models | |||
; LFO Type -- sine, triangle, square (bipolar), square (unipolar), sawtooth up, sawtooth down, random sample & hold and random spline | |||
; LFO Amp -- amplitude of the LFOs | |||
; LFO Rate -- rates of the LFOs in beats per minute | |||
; Link Rates -- when this switch is activate Rate controls for the two LFOs will be linked | |||
; LFO Rate Div. -- integer division of Rate control value (unaffected by 'Link Rates' setting) | |||
; Smooth -- a small amount of smoothing can be appied to the LFO to smooth abrupt changes in value (may be useful and 'square' and 'rand.S&H' type modulations | |||
<Cabbage> | |||
form caption("Filter LFO") size(790,170), pluginID("FLFO") | |||
image pos(0, 0), size(790,170), colour(0,0,0,170), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 11, 70, 70), text("Freq."), colour( 30, 30, 30), trackercolour("black"), fontcolour("white"), channel("cf"), range(1, 20000, 300, 0.333) | |||
rslider bounds( 75, 11, 70, 70), text("Res."), colour( 30, 30, 30), trackercolour("black"), fontcolour("white"), channel("res"), range(0,1.00,0.75) | |||
rslider bounds(140, 11, 70, 70), text("Mix"), colour( 30, 30, 30), trackercolour("black"), fontcolour("white"), channel("mix"), range(0,1.00,1) | |||
rslider bounds(205, 11, 70, 70), text("Level"), colour( 30, 30, 30), trackercolour("black"), fontcolour("white"), channel("level"), range(0, 1.00, 0.2) | |||
combobox bounds( 20, 90, 100, 18), channel("model"), value(6), text("Tone","Butterworth","Moogladder","cl-Butterworth","cl-Chebychev I","resonz","phaser2","resony") | |||
label bounds( 44,108, 80, 12), text("MODEL"), fontcolour("white") | |||
combobox bounds(140, 90, 100, 18), channel("type"), value(1), text("Low-pass","High-pass") | |||
label bounds(169,108, 80, 12), text("TYPE"), fontcolour("white") | |||
combobox bounds( 20,127,100, 18), channel("input"), value(2), text("Live","Tone","Noise") | |||
label bounds( 46,145,100, 12), text("INPUT"), fontcolour("white") | |||
button bounds(140,127, 80, 18), colour("Green"), text("RESYNC.", "RESYNC."), channel("resync"), value(1) | |||
; controls pertaining to the setup of clfilt accessed in a pop-up panel. | |||
groupbox bounds(280, 15,150, 90), colour("black"), plant("clfilt"), line(0), popup(1);, fontcolour("white") | |||
{ | |||
rslider bounds( 5, 16, 70, 70), text("N.Poles"), colour( 30 , 30, 30), trackercolour("black"), FontColour("white"), channel("npol"), range(2, 80, 2, 1, 2) | |||
rslider bounds( 75, 16, 70, 70), text("Ripple"), colour( 30 , 30, 30), trackercolour("black"), FontColour("white"), channel("pbr"), range(0.1, 50.00, 1, 0.5, 0.001) | |||
} | |||
; controls pertaining to the setup of phaser2 accessed in a pop-up panel. | |||
groupbox bounds(280, 55,315, 90), colour("black"), plant("phaser2"), line(0), popup(1);, fontcolour(white) | |||
{ | |||
rslider bounds( 5, 16, 70, 70), text("Q"), channel("q"), range(0.0001,4,3), colour( 30 , 30, 30), trackercolour("black"), FontColour("white") | |||
rslider bounds( 75, 16, 70, 70), text("N.Ords."), channel("ord"), range(1, 256, 8, 0.5,1), colour( 30 , 30, 30), trackercolour("black"), FontColour("white") | |||
label bounds(160, 20, 60,12), text("Sep. Mode") | |||
combobox bounds(150, 34, 80,25), channel("mode"), size(100,50), value(1), text("Equal", "Power"), colour( 30 , 30, 30), trackercolour("black"), FontColour("white") | |||
rslider bounds(240, 16, 70, 70), text("Separation"), channel("sep"), range(-3, 3.00, 0.9), colour( 30 , 30, 30), trackercolour("black"), FontColour("white") | |||
} | |||
; controls pertaining to the setup of resony accessed in a pop-up panel. | |||
groupbox bounds(280, 95,565, 90), colour("black"), plant("resony"), line(0), popup(1);, fontcolour(white) | |||
{ | |||
rslider bounds( 5, 16, 70, 70), text("BW."), fontcolour("white"), channel("bw"), range(0.01, 1000, 13, 0.5), colour( 30 , 30, 30), trackercolour("black") | |||
rslider bounds( 75, 16, 70, 70), text("Num."), fontcolour("white"), channel("num"), range(1, 80, 10, 1,1), colour( 30 , 30, 30), trackercolour("black") | |||
rslider bounds(145, 16, 70, 70), text("Sep.oct."), fontcolour("white"), channel("sepR"), range(-11, 11, 2), colour( 30 , 30, 30), trackercolour("black") | |||
rslider bounds(215, 16, 70, 70), text("Sep.semi."), fontcolour("white"), channel("sepR2"), range(-48, 48, 24,1,1), colour( 30 , 30, 30), trackercolour("black") | |||
combobox bounds(285, 10,130, 70), caption("Scaling Mode"), channel("scl"), value(2), text("none", "peak response", "RMS") | |||
combobox bounds(425, 10,130, 70), caption("Separation Mode"), channel("sepmode"), value(1), text("octs.total", "hertz", "octs.adjacent") | |||
} | |||
;checkbox bounds(400, 50,100, 15), text("Balance") channel("balance"), FontColour("white"), colour("yellow") value(0) | |||
line bounds(390, 10, 2,150), colour("Grey") | |||
;LFO | |||
label bounds(405, 11, 45, 17), text("LFO 1"), fontcolour("white") | |||
combobox bounds(405, 50, 100, 18), channel("LFOtype"), value(3), text("Sine","Triangle","Square[bi]","Square[uni]","Saw Up","Saw Down","Rand.S&H","Rand.Spline") | |||
label bounds(425, 54, 80, 12), text("LFO-Shape"), fontcolour("white") | |||
rslider bounds(515, 11, 70, 70), text("Amp"), colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOamp"), range(0, 9.00, 0.67) | |||
rslider bounds(580, 11, 70, 70), text("Rate"), colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOBPM"), range(0, 480, 60, 1, 1) | |||
rslider bounds(645, 11, 70, 70), text("Rate Div."),colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOBPMDiv"), range(1, 64, 1, 1, 1) | |||
rslider bounds(710, 11, 70, 70), text("Smoothing"),colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOport"), range(0, 0.1, 0.005, 0.25, 0.000001) | |||
checkbox bounds(405, 31, 80, 12), text("Link Rates"), channel("RateLink"),colour(yellow), fontcolour("white"), value(0) | |||
;LFO2 | |||
label bounds(405, 91, 45, 17), text("LFO 2"), fontcolour("white") | |||
combobox bounds(405,130, 100, 18), channel("LFOtype2"), value(8), text("Sine","Triangle","Square[bi]","Square[uni]","Saw Up","Saw Down","Rand.S&H","Rand.Spline") | |||
label bounds(425,134, 80, 12), text("Shape"), fontcolour("white") | |||
rslider bounds(515, 91, 70, 70), text("Amp"), colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOamp2"), range(0, 9.00, 2.5) | |||
rslider bounds(580, 91, 70, 70), text("Rate"),colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOBPM2"), range(0, 480, 1, 1, 1) | |||
rslider bounds(645, 91, 70, 70), text("Rate Div."),colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOBPMDiv2"), range(1, 64, 1, 1, 1) | |||
rslider bounds(710, 91, 70, 70), text("Smoothing"),colour( 30, 30 ,30), trackercolour("black"), fontcolour("white"), channel("LFOport2"), range(0, 0.1, 0.001, 0.25, 0.000001) | |||
checkbox bounds(405,111, 80, 12), text("Link Rates"), channel("RateLink"),colour(yellow), fontcolour("white"), value(0) | |||
label bounds(220,150, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2013) | |||
opcode resony2,a,akkikii | |||
ain, kbf, kbw, inum, ksep , isepmode, iscl xin | |||
;IF 'Octaves (Total)' MODE SELECTED... | |||
if isepmode==0 then | |||
irescale divz inum,inum-1,1 ;PREVENT ERROR IF NUMBER OF FILTERS = ZERO | |||
ksep = ksep * irescale ;RESCALE SEPARATION | |||
;IF 'Hertz' MODE SELECTED... | |||
elseif isepmode==1 then | |||
inum = inum + 1 | |||
ksep = inum | |||
;IF 'Octaves (Adjacent)' MODE SELECTED... | |||
elseif isepmode==2 then | |||
irescale divz inum,inum-1,1 ;PREVENT ERROR IF NUMBER OF FILTERS = ZERO | |||
ksep = ksep * irescale ;RESCALE SEPARATION | |||
ksep = ksep * (inum-1) ;RESCALE SEPARATION INTERVAL ACCORDING TO THE NUMBER OF FILTERS CHOSEN | |||
isepmode = 0 | |||
endif | |||
aout resony ain, kbf, kbw, inum, ksep , isepmode, iscl, 0 | |||
xout aout | |||
endop | |||
instr 1 | |||
kporttime linseg 0,0.001,1 | |||
kcf chnget "cf" ; | |||
kcf portk kcf,kporttime*0.05 | |||
kres chnget "res" ; | |||
kmodel chnget "model" ; | |||
ktype chnget "type" ; | |||
kresync chnget "resync" ; | |||
kmix chnget "mix" ; | |||
klevel chnget "level" ; | |||
kpbr chnget "pbr" ; | |||
kpbr init 1 | |||
knpol chnget "npol" ; | |||
knpol init 2 | |||
kq chnget "q" ; | |||
kmode chnget "mode" ; | |||
kmode init 1 | |||
kmode init i(kmode)-1 | |||
ksep chnget "sep" ; | |||
kfeedback chnget "feedback" ; | |||
kord chnget "ord" ; | |||
;resony | |||
kbw chnget "bw" | |||
knum chnget "num" | |||
ksepR chnget "sepR" | |||
ksepR2 chnget "sepR2" | |||
ksepmode chnget "sepmode" | |||
ksepmode = ksepmode - 1 | |||
ksepmode init 1 | |||
kscl chnget "scl" | |||
kscl = kscl - 1 | |||
kscl init 1 | |||
;kbalance chnget "balance" ; | |||
kLFOtype chnget "LFOtype" | |||
kLFOamp chnget "LFOamp" | |||
kLFOamp portk kLFOamp, kporttime*0.05 | |||
kLFOBPM chnget "LFOBPM" | |||
kLFOBPMDiv chnget "LFOBPMDiv" | |||
kLFOcps = (kLFOBPM*4)/(60*kLFOBPMDiv) | |||
kLFOport chnget "LFOport" | |||
kLFOtype2 chnget "LFOtype2" | |||
kLFOamp2 chnget "LFOamp2" | |||
kLFOamp2 portk kLFOamp2, kporttime*0.05 | |||
kLFOBPM2 chnget "LFOBPM2" | |||
kLFOBPMDiv2 chnget "LFOBPMDiv2" | |||
kLFOcps2 = (kLFOBPM2*4)/(60*kLFOBPMDiv2) | |||
kLFOport2 chnget "LFOport2" | |||
kRateLink chnget "RateLink" | |||
if kRateLink=1 then | |||
ktrig1 changed kLFOBPM | |||
ktrig2 changed kLFOBPM2 | |||
if ktrig1=1 then | |||
chnset kLFOBPM,"LFOBPM2" | |||
elseif ktrig2=1 then | |||
chnset kLFOBPM2,"LFOBPM" | |||
endif | |||
endif | |||
/* INPUT */ | |||
kinput chnget "input" | |||
if kinput=1 then | |||
aL,aR ins | |||
elseif kinput=2 then | |||
aL vco2 0.2, 150 | |||
aR = aL | |||
else | |||
aL pinkish 0.2 | |||
aR pinkish 0.2 | |||
endif | |||
; RETRIGGERING FOR I-RATE VARIABLE | |||
kLFOtype init 1 | |||
kLFOtype2 init 1 | |||
ktrig changed knpol,kpbr,kLFOtype,kLFOtype2,kmodel,ktype,kord,kmode, kscl, knum, ksepmode, kresync,kLFOBPMDiv,kLFOBPMDiv2,kRateLink | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
; LFO | |||
if i(kLFOtype)==7 then | |||
klfo randomh -kLFOamp, kLFOamp, kLFOcps | |||
elseif i(kLFOtype)==8 then | |||
klfo jspline kLFOamp, kLFOcps, kLFOcps*5 | |||
else | |||
klfo lfo kLFOamp, kLFOcps, i(kLFOtype)-1 | |||
endif | |||
klfo portk klfo,kporttime*kLFOport | |||
;kcf limit kcf * octave(klfo),20,sr/2 | |||
; LFO2 | |||
if i(kLFOtype2)==7 then | |||
klfo2 randomh -kLFOamp2, kLFOamp2, kLFOcps2 | |||
elseif i(kLFOtype2)==8 then | |||
klfo2 jspline kLFOamp2, kLFOcps2, kLFOcps2*5 | |||
else | |||
klfo2 lfo kLFOamp2, kLFOcps2, i(kLFOtype2)-1 | |||
endif | |||
klfo2 portk klfo2,kporttime*kLFOport2 | |||
kcf limit kcf * octave(klfo) * octave(klfo2),20,sr/2 | |||
; FILTER MODEL SELECT | |||
if i(kmodel)==1 then | |||
if i(ktype)==1 then ; tone | |||
aFiltL tone aL, kcf | |||
aFiltR tone aR, kcf | |||
else | |||
aFiltL atone aL, kcf | |||
aFiltR atone aR, kcf | |||
endif | |||
elseif i(kmodel)==2 then ; butterworth | |||
if i(ktype)==1 then | |||
aFiltL butlp aL, kcf | |||
aFiltR butlp aR, kcf | |||
else | |||
aFiltL buthp aL, kcf | |||
aFiltR buthp aR, kcf | |||
endif | |||
elseif i(kmodel)==3 then ; moogladder | |||
kres scale kres,0.95,0 | |||
aFiltL moogladder aL,kcf,kres | |||
aFiltR moogladder aR,kcf,kres | |||
elseif i(kmodel)==4 then ; cl-butterworth | |||
if i(ktype)==1 then | |||
aFiltL clfilt aL, kcf, 0, i(knpol) | |||
aFiltR clfilt aR, kcf, 0, i(knpol) | |||
else | |||
aFiltL clfilt aL, kcf, 1, i(knpol) | |||
aFiltR clfilt aR, kcf, 1, i(knpol) | |||
endif | |||
elseif i(kmodel)==5 then ; cl-chebychev I | |||
if i(ktype)==1 then | |||
aFiltL clfilt aL, kcf, 0, i(knpol), 1, i(kpbr) | |||
aFiltR clfilt aR, kcf, 0, i(knpol), 1, i(kpbr) | |||
else | |||
aFiltL clfilt aL, kcf, 1, i(knpol), 1, i(kpbr) | |||
aFiltR clfilt aR, kcf, 1, i(knpol), 1, i(kpbr) | |||
endif | |||
elseif i(kmodel)==6 then ; resonz | |||
kres logcurve kres,4 | |||
kbw scale 1-kres,3,0.1 | |||
aFiltL resonz aL, kcf, kcf*kbw, 1 | |||
aFiltR resonz aR, kcf, kcf*kbw, 1 | |||
elseif i(kmodel)==7 then ; phaser2 | |||
kfeedback scale kres,0.99,0 | |||
aFiltL phaser2 aL, kcf, kq, kord, kmode, ksep, kfeedback ; PHASER2 IS APPLIED TO THE LEFT CHANNEL | |||
aFiltR phaser2 aR, kcf, kq, kord, kmode, ksep, kfeedback ; PHASER1 IS APPLIED TO THE RIGHT CHANNEL | |||
elseif i(kmodel)==8 then ; resony | |||
;CALL resony2 UDO | |||
aFiltL resony2 aL, kcf, kbw, i(knum), ksepR , i(ksepmode), i(kscl) | |||
aFiltR resony2 aR, kcf, kbw, i(knum), ksepR , i(ksepmode), i(kscl) | |||
endif | |||
rireturn | |||
/* | |||
if kbalance==1 then | |||
aFiltL balance aFiltL,aL | |||
aFiltR balance aFiltR,aR | |||
endif | |||
*/ | |||
aL ntrpol aL,aFiltL,kmix | |||
aR ntrpol aR,aFiltR,kmix | |||
outs aL*klevel,aR*klevel | |||
endin | |||
instr UpdateWidgets | |||
ksepR chnget "sepR" | |||
ksepR2 chnget "sepR2" | |||
ktrig1 changed ksepR | |||
ktrig2 changed ksepR2 | |||
if ktrig1==1 then | |||
chnset ksepR*12, "sepR2" | |||
elseif ktrig2==1 then | |||
chnset ksepR2/12, "sepR" | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
i "UpdateWidgets" 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,89 @@ | |||
<Cabbage> | |||
form caption("Flanger") size(510, 90), pluginID("flan") | |||
image pos(0, 0), size(510, 90), colour("lightgreen"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 5, 10, 70, 70), text("Rate"), channel("rate"), range(0.001, 40, 0.15, 0.5, 0.001), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
rslider bounds( 75, 10, 70, 70), text("Depth"), channel("depth"), range(0, 0.01, 0.005,1,0.0001), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
rslider bounds(145, 10, 70, 70), text("Delay"), channel("delay"), range(0.0001, 0.1, 0.0001, 0.5, 0.0001), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
rslider bounds(215, 10, 70, 70), text("Feedback"), channel("fback"), range(-1, 1, 0), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
rslider bounds(285, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.5), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
checkbox bounds(355, 10, 80, 15), colour("yellow"), channel("ThruZero"), value(1), text("Thru.Zero"), fontcolour( 0, 30, 0) | |||
label bounds(365, 37, 70, 12), text("LFO Shape"), fontcolour( 0, 30, 0) | |||
combobox bounds(355, 50, 80, 20), channel("lfoshape"), size(100,50), value(1), text("parabola", "sine", "triangle", "randomi", "randomh") | |||
rslider bounds(435, 10, 70, 70), text("Level"), channel("level"), range(0, 1.00, 1), colour("DarkGreen"), trackercolour( 0, 30, 0), fontcolour( 0, 30, 0) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
opcode Flanger,a,akkkkk | |||
ain,krate,kdepth,kdelay,kfback,klfoshape xin ;read in input arguments | |||
iparabola ftgentmp 0, 0, 131072, 19, 0.5, 1, 180, 1 ;u-shape parabola for lfo | |||
isine ftgentmp 0, 0, 131072, 19, 1, 0.5, 0, 0.5 ;sine-shape for lfo | |||
itriangle ftgentmp 0, 0, 131072, 7, 0,131072/2,1,131072/2,0;triangle-shape for lfo | |||
adlt interp kdelay ;a new a-rate variable 'adlt' is created by interpolating the k-rate variable 'kdlt' | |||
if klfoshape==1 then | |||
amod oscili kdepth, krate, iparabola ;oscillator that makes use of the positive domain only u-shape parabola | |||
elseif klfoshape==2 then | |||
amod oscili kdepth, krate, isine ;oscillator that makes use of the positive domain only sine wave | |||
elseif klfoshape==3 then | |||
amod oscili kdepth, krate, itriangle ;oscillator that makes use of the positive domain only triangle | |||
elseif klfoshape==4 then | |||
amod randomi 0,kdepth,krate,1 | |||
else | |||
amod randomh 0,kdepth,krate,1 | |||
endif | |||
adlt sum adlt, amod ;static delay time and modulating delay time are summed | |||
adelsig flanger ain, adlt, kfback , 1.2 ;flanger signal created | |||
adelsig dcblock adelsig | |||
aout sum ain*0.5, adelsig*0.5 ;create dry/wet mix | |||
xout aout ;send audio back to caller instrument | |||
endop | |||
instr 1 | |||
krate chnget "rate" ;read in widgets | |||
kdepth chnget "depth" | |||
kdelay chnget "delay" | |||
kfback chnget "fback" | |||
klevel chnget "level" | |||
klfoshape chnget "lfoshape" | |||
kThruZero chnget "ThruZero" | |||
kmix chnget "mix" | |||
;a1,a2 ins ;read live stereo audio input | |||
a1 pinkish 0.2 ;for testing... | |||
a2 pinkish 0.2 | |||
kporttime linseg 0,0.001,0.1 | |||
kdelay portk kdelay,kporttime | |||
afla1 Flanger a1,krate,kdepth,kdelay,kfback,klfoshape ;call udo (left channel) | |||
afla2 Flanger a2,krate,kdepth,kdelay,kfback,klfoshape ;call udo (right channel) | |||
if kThruZero==1 then ;if 'Thru.Zero' mode is selected... | |||
a1 delay a1,0.0001 | |||
a2 delay a2,0.0001 | |||
a1 ntrpol -a1,afla1,kmix ;invert delayed dry signal and mix with flanger signal | |||
a2 ntrpol -a2,afla2,kmix | |||
else ;otherwise... (standard flanger) | |||
a1 ntrpol a1,afla1,kmix ;create mix between dry signal and flanger signal | |||
a2 ntrpol a2,afla2,kmix | |||
endif | |||
outs a1*klevel,a2*klevel ;send audio to outputs, scale amplitude according to GUI knob value | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,286 @@ | |||
FormantFilter.csd | |||
reson 1 uses reson with scaling method 1. | |||
reson 2 uses reson with scaling method 2. | |||
'gain' controls the gain the the bandpass filtered sound only. | |||
'BW.Mult' is a factor which all five bandwidth values are multiplied by. | |||
'Freq.Mult.' is a factor by which all cutoff frequencies are multiplied by. | |||
<Cabbage> | |||
form caption("Formant Filter"), colour("SlateGrey"), size(550, 300), pluginID("form") | |||
xypad bounds(5, 5, 350, 260), channel("x", "y"), rangex(0, 1, 0.5), rangey(0, 1, 0), text("upper edge:A E I | lower :U O"), fontcolour("white") | |||
vslider bounds(360, 0, 30,140), text("f1"), channel("f1"), range(0, 1.00, 1), fontcolour("white") | |||
vslider bounds(380, 0, 30,140), text("f2"), channel("f2"), range(0, 1.00, 1), fontcolour("white") | |||
vslider bounds(400, 0, 30,140), text("f3"), channel("f3"), range(0, 1.00, 1), fontcolour("white") | |||
vslider bounds(420, 0, 30,140), text("f4"), channel("f4"), range(0, 1.00, 1), fontcolour("white") | |||
vslider bounds(440, 0, 30,140), text("f5"), channel("f5"), range(0, 1.00, 1), fontcolour("white") | |||
combobox bounds(365, 155,100, 20), channel("voice"), value(1), text("bass", "tenor", "countertenor", "alto", "soprano") | |||
combobox bounds(365, 185,100, 20), channel("filter"), value(1), text("reson 1", "reson 2", "butterworth") | |||
checkbox bounds(365, 215,100, 20), colour("yellow"), channel("balance"), value(0), text("Balance"), fontcolour("white") | |||
button bounds(365, 245,100, 20), text("Live Input","Noise Input"), channel("input"), value(0), fontcolour("lime") | |||
rslider bounds(480, 5, 60, 60), text("BW.Mult"), channel("BWMlt"), range(0.01, 4, 1, 0.4), fontcolour("white") | |||
rslider bounds(480, 70, 60, 60), text("Freq.Mult"), channel("FrqMlt"), range(0.25, 4, 1, 0.4), fontcolour("white") | |||
rslider bounds(480,140, 60, 60), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white") | |||
rslider bounds(480,210, 60, 60), text("Gain"), channel("gain"), range(0, 5.00, 1, 0.5), fontcolour("white") | |||
image bounds( 5, 275, 350, 18), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .6, .8), text("Author: Iain McCurdy |2012|"), colour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;FUNCTION TABLES STORING DATA FOR VARIOUS VOICE FORMANTS | |||
;THE FIRST VALUE OF EACH TABLE DEFINES THE NUMBER OF DATA ELEMENTS IN THE TABLE | |||
; THIS IS NEEDED BECAUSE TABLES SIZES MUST BE POWERS OF 2 TO FACILITATE INTERPOLATED TABLE READING (tablei) | |||
;BASS | |||
giBFA ftgen 0, 0, 8, -2, 4, 600, 400, 250, 350 ;FREQ | |||
giBFE ftgen 0, 0, 8, -2, 4, 1040, 1620, 1750, 600 ;FREQ | |||
giBFI ftgen 0, 0, 8, -2, 4, 2250, 2400, 2600, 2400 ;FREQ | |||
giBFO ftgen 0, 0, 8, -2, 4, 2450, 2800, 3050, 2675 ;FREQ | |||
giBFU ftgen 0, 0, 8, -2, 4, 2750, 3100, 3340, 2950 ;FREQ | |||
giBDbA ftgen 0, 0, 8, -2, 4, 0, 0, 0, 0 ;dB | |||
giBDbE ftgen 0, 0, 8, -2, 4, -7, -12, -30, -20 ;dB | |||
giBDbI ftgen 0, 0, 8, -2, 4, -9, -9, -16, -32 ;dB | |||
giBDbO ftgen 0, 0, 8, -2, 4, -9, -12, -22, -28 ;dB | |||
giBDbU ftgen 0, 0, 8, -2, 4, -20, -18, -28, -36 ;dB | |||
giBBWA ftgen 0, 0, 8, -2, 4, 60, 40, 60, 40 ;BAND WIDTH | |||
giBBWE ftgen 0, 0, 8, -2, 4, 70, 80, 90, 80 ;BAND WIDTH | |||
giBBWI ftgen 0, 0, 8, -2, 4, 110, 100, 100, 100 ;BAND WIDTH | |||
giBBWO ftgen 0, 0, 8, -2, 4, 120, 120, 120, 120 ;BAND WIDTH | |||
giBBWU ftgen 0, 0, 8, -2, 4, 130, 120, 120, 120 ;BAND WIDTH | |||
;TENOR | |||
giTFA ftgen 0, 0, 8, -2, 5, 650, 400, 290, 400, 350 ;FREQ | |||
giTFE ftgen 0, 0, 8, -2, 5, 1080, 1700, 1870, 800, 600 ;FREQ | |||
giTFI ftgen 0, 0, 8, -2, 5, 2650, 2600, 2800, 2600, 2700 ;FREQ | |||
giTFO ftgen 0, 0, 8, -2, 5, 2900, 3200, 3250, 2800, 2900 ;FREQ | |||
giTFU ftgen 0, 0, 8, -2, 5, 3250, 3580, 3540, 3000, 3300 ;FREQ | |||
giTDbA ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giTDbE ftgen 0, 0, 8, -2, 5, -6, -14, -15, -10, -20 ;dB | |||
giTDbI ftgen 0, 0, 8, -2, 5, -7, -12, -18, -12, -17 ;dB | |||
giTDbO ftgen 0, 0, 8, -2, 5, -8, -14, -20, -12, -14 ;dB | |||
giTDbU ftgen 0, 0, 8, -2, 5, -22, -20, -30, -26, -26 ;dB | |||
giTBWA ftgen 0, 0, 8, -2, 5, 80, 70, 40, 40, 40 ;BAND WIDTH | |||
giTBWE ftgen 0, 0, 8, -2, 5, 90, 80, 90, 80, 60 ;BAND WIDTH | |||
giTBWI ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 100 ;BAND WIDTH | |||
giTBWO ftgen 0, 0, 8, -2, 5, 130, 120, 120, 120, 120 ;BAND WIDTH | |||
giTBWU ftgen 0, 0, 8, -2, 5, 140, 120, 120, 120, 120 ;BAND WIDTH | |||
;COUNTER TENOR | |||
giCTFA ftgen 0, 0, 8, -2, 5, 660, 440, 270, 430, 370 ;FREQ | |||
giCTFE ftgen 0, 0, 8, -2, 5, 1120, 1800, 1850, 820, 630 ;FREQ | |||
giCTFI ftgen 0, 0, 8, -2, 5, 2750, 2700, 2900, 2700, 2750 ;FREQ | |||
giCTFO ftgen 0, 0, 8, -2, 5, 3000, 3000, 3350, 3000, 3000 ;FREQ | |||
giCTFU ftgen 0, 0, 8, -2, 5, 3350, 3300, 3590, 3300, 3400 ;FREQ | |||
giTBDbA ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giTBDbE ftgen 0, 0, 8, -2, 5, -6, -14, -24, -10, -20 ;dB | |||
giTBDbI ftgen 0, 0, 8, -2, 5, -23, -18, -24, -26, -23 ;dB | |||
giTBDbO ftgen 0, 0, 8, -2, 5, -24, -20, -36, -22, -30 ;dB | |||
giTBDbU ftgen 0, 0, 8, -2, 5, -38, -20, -36, -34, -30 ;dB | |||
giTBWA ftgen 0, 0, 8, -2, 5, 80, 70, 40, 40, 40 ;BAND WIDTH | |||
giTBWE ftgen 0, 0, 8, -2, 5, 90, 80, 90, 80, 60 ;BAND WIDTH | |||
giTBWI ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 100 ;BAND WIDTH | |||
giTBWO ftgen 0, 0, 8, -2, 5, 130, 120, 120, 120, 120 ;BAND WIDTH | |||
giTBWU ftgen 0, 0, 8, -2, 5, 140, 120, 120, 120, 120 ;BAND WIDTH | |||
;ALTO | |||
giAFA ftgen 0, 0, 8, -2, 5, 800, 400, 350, 450, 325 ;FREQ | |||
giAFE ftgen 0, 0, 8, -2, 5, 1150, 1600, 1700, 800, 700 ;FREQ | |||
giAFI ftgen 0, 0, 8, -2, 5, 2800, 2700, 2700, 2830, 2530 ;FREQ | |||
giAFO ftgen 0, 0, 8, -2, 5, 3500, 3300, 3700, 3500, 2500 ;FREQ | |||
giAFU ftgen 0, 0, 8, -2, 5, 4950, 4950, 4950, 4950, 4950 ;FREQ | |||
giADbA ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giADbE ftgen 0, 0, 8, -2, 5, -4, -24, -20, -9, -12 ;dB | |||
giADbI ftgen 0, 0, 8, -2, 5, -20, -30, -30, -16, -30 ;dB | |||
giADbO ftgen 0, 0, 8, -2, 5, -36, -35, -36, -28, -40 ;dB | |||
giADbU ftgen 0, 0, 8, -2, 5, -60, -60, -60, -55, -64 ;dB | |||
giABWA ftgen 0, 0, 8, -2, 5, 50, 60, 50, 70, 50 ;BAND WIDTH | |||
giABWE ftgen 0, 0, 8, -2, 5, 60, 80, 100, 80, 60 ;BAND WIDTH | |||
giABWI ftgen 0, 0, 8, -2, 5, 170, 120, 120, 100, 170 ;BAND WIDTH | |||
giABWO ftgen 0, 0, 8, -2, 5, 180, 150, 150, 130, 180 ;BAND WIDTH | |||
giABWU ftgen 0, 0, 8, -2, 5, 200, 200, 200, 135, 200 ;BAND WIDTH | |||
;SOPRANO | |||
giSFA ftgen 0, 0, 8, -2, 5, 800, 350, 270, 450, 325 ;FREQ | |||
giSFE ftgen 0, 0, 8, -2, 5, 1150, 2000, 2140, 800, 700 ;FREQ | |||
giSFI ftgen 0, 0, 8, -2, 5, 2900, 2800, 2950, 2830, 2700 ;FREQ | |||
giSFO ftgen 0, 0, 8, -2, 5, 3900, 3600, 3900, 3800, 3800 ;FREQ | |||
giSFU ftgen 0, 0, 8, -2, 5, 4950, 4950, 4950, 4950, 4950 ;FREQ | |||
giSDbA ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giSDbE ftgen 0, 0, 8, -2, 5, -6, -20, -12, -11, -16 ;dB | |||
giSDbI ftgen 0, 0, 8, -2, 5, -32, -15, -26, -22, -35 ;dB | |||
giSDbO ftgen 0, 0, 8, -2, 5, -20, -40, -26, -22, -40 ;dB | |||
giSDbU ftgen 0, 0, 8, -2, 5, -50, -56, -44, -50, -60 ;dB | |||
giSBWA ftgen 0, 0, 8, -2, 5, 80, 60, 60, 70, 50 ;BAND WIDTH | |||
giSBWE ftgen 0, 0, 8, -2, 5, 90, 90, 90, 80, 60 ;BAND WIDTH | |||
giSBWI ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 170 ;BAND WIDTH | |||
giSBWO ftgen 0, 0, 8, -2, 5, 130, 150, 120, 130, 180 ;BAND WIDTH | |||
giSBWU ftgen 0, 0, 8, -2, 5, 140, 200, 120, 135, 200 ;BAND WIDTH | |||
instr 1 | |||
gkx chnget "x" | |||
gky chnget "y" | |||
gkf1 chnget "f1" | |||
gkf2 chnget "f2" | |||
gkf3 chnget "f3" | |||
gkf4 chnget "f4" | |||
gkf5 chnget "f5" | |||
gkvoice chnget "voice" | |||
gkvoice init 1 | |||
gkBWMlt chnget "BWMlt" | |||
gkFrqMlt chnget "FrqMlt" | |||
gkmix chnget "mix" | |||
gkgain chnget "gain" | |||
gkfilter chnget "filter" | |||
gkbalance chnget "balance" | |||
gkinput chnget "input" | |||
endin | |||
instr 2 | |||
kporttime linseg 0,0.001,0.1 | |||
if gkinput==0 then | |||
asigL,asigR ins | |||
else | |||
asigL pinkish 1 | |||
asigR pinkish 1 | |||
endif | |||
kx portk gkx,kporttime | |||
ky portk gky,kporttime | |||
kSwitch changed gkvoice ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit START ;BEGIN A REINITIALISATION PASS FROM LABEL 'START' | |||
endif | |||
START: | |||
;A TEXT MACRO IS DEFINED THAT WILL BE THE CODE FOR DERIVING DATA FOR EACH FORMANT. A MACRO IS USED TO AVOID HAVING TO USING CODE REPETITION AND TO EASIER FACICLITATE CODE MODIFICATION | |||
#define FORMANT_DATA(N) | |||
# | |||
invals table 0, giBFA+((i(gkvoice)-1)*15)+$N-1 ;NUMBER OF DATA ELEMENTS IN EACH TABLE | |||
invals = invals-1 ; | |||
kfreq$N_U tablei 1+(kx*(3/5)*invals),giBFA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR FREQUENCY (UPPER EDGE OF PANEL) | |||
kfreq$N_L tablei 1+(((1-kx)*(1/5))+(4/5)*invals),giBFA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR FREQUENCY (LOWER EDGE OF PANEL) | |||
kfreq$N ntrpol kfreq$N_L, kfreq$N_U, ky ;INTERPOLATE BETWEEN UPPER VALUE AND LOWER VALUE (DETERMINED BY Y-LOCATION ON PANEL) | |||
kfreq$N = kfreq$N * gkFrqMlt ;MULTIPLY FREQUENCY VALUE BY VALUE FROM 'Frequency Multiply' SLIDER | |||
kdbamp$N_U tablei 1+(kx*(3/5)*invals),giBDbA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR INTENSITY (UPPER EDGE OF PANEL) | |||
kdbamp$N_L tablei 1+(((1-kx)*(1/5))+(4/5)*invals),giBDbA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR INTENSITY (LOWER EDGE OF PANEL) | |||
kdbamp$N ntrpol kdbamp$N_L, kdbamp$N_U, ky ;INTERPOLATE BETWEEN UPPER VALUE AND LOWER VALUE (DETERMINED BY Y-LOCATION ON PANEL) | |||
kbw$N_U tablei 1+(kx*(3/5)*invals),giBBWA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR BANDWIDTH (UPPER EDGE OF PANEL) | |||
kbw$N_L tablei 1+(((1-kx)*(1/5))+(4/5)*invals),giBBWA+((i(gkvoice)-1)*15)+$N-1 ;READ DATA FOR BANDWIDTH (LOWER EDGE OF PANEL) | |||
kbw$N ntrpol kbw$N_L, kbw$N_U, ky ;INTERPOLATE BETWEEN UPPER VALUE AND LOWER VALUE (DETERMINED BY Y-LOCATION ON PANEL) | |||
kbw$N = kbw$N * gkBWMlt ;MULTIPLY BANDWIDTH VALUE BY VALUE FROM 'Bandwidth Multiply' SLIDER | |||
# ;END OF MACRO! | |||
;READING DATA FOR FORMANTS (MACROS IMPLEMENTED) | |||
$FORMANT_DATA(1) | |||
$FORMANT_DATA(2) | |||
$FORMANT_DATA(3) | |||
$FORMANT_DATA(4) | |||
$FORMANT_DATA(5) | |||
rireturn ;RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
if gkfilter==1 then | |||
aBPF1L reson asigL, kfreq1, kbw1, 1 ;FORMANT 1 | |||
aBPF1R reson asigR, kfreq1, kbw1, 1 ;FORMANT 1 | |||
; | |||
aBPF2L reson asigL, kfreq2, kbw2, 1 ;FORMANT 2 | |||
aBPF2R reson asigR, kfreq2, kbw2, 1 ;FORMANT 2 | |||
; | |||
aBPF3L reson asigL, kfreq3, kbw3, 1 ;FORMANT 3 | |||
aBPF3R reson asigR, kfreq3, kbw3, 1 ;FORMANT 3 | |||
; | |||
aBPF4L reson asigL, kfreq4, kbw4, 1 ;FORMANT 4 | |||
aBPF4R reson asigR, kfreq4, kbw4, 1 ;FORMANT 4 | |||
; | |||
aBPF5L reson asigL, kfreq5, kbw5, 1 ;FORMANT 5 | |||
aBPF5R reson asigR, kfreq5, kbw5, 1 ;FORMANT 5 | |||
elseif gkfilter==2 then | |||
aBPF1L reson asigL, kfreq1, kbw1, 2 ;FORMANT 1 | |||
aBPF1R reson asigR, kfreq1, kbw1, 2 ;FORMANT 1 | |||
; | |||
aBPF2L reson asigL, kfreq2, kbw2, 2 ;FORMANT 2 | |||
aBPF2R reson asigR, kfreq2, kbw2, 2 ;FORMANT 2 | |||
; | |||
aBPF3L reson asigL, kfreq3, kbw3, 2 ;FORMANT 3 | |||
aBPF3R reson asigR, kfreq3, kbw3, 2 ;FORMANT 3 | |||
; | |||
aBPF4L reson asigL, kfreq4, kbw4, 2 ;FORMANT 4 | |||
aBPF4R reson asigR, kfreq4, kbw4, 2 ;FORMANT 4 | |||
; | |||
aBPF5L reson asigL, kfreq5, kbw5, 2 ;FORMANT 5 | |||
aBPF5R reson asigR, kfreq5, kbw5, 2 ;FORMANT 5 | |||
else | |||
aBPF1L butbp asigL, kfreq1, kbw1 ;FORMANT 1 | |||
aBPF1R butbp asigR, kfreq1, kbw1 ;FORMANT 1 | |||
; | |||
aBPF2L butbp asigL, kfreq2, kbw2 ;FORMANT 2 | |||
aBPF2R butbp asigR, kfreq2, kbw2 ;FORMANT 2 | |||
; | |||
aBPF3L butbp asigL, kfreq3, kbw3 ;FORMANT 3 | |||
aBPF3R butbp asigR, kfreq3, kbw3 ;FORMANT 3 | |||
; | |||
aBPF4L butbp asigL, kfreq4, kbw4 ;FORMANT 4 | |||
aBPF4R butbp asigR, kfreq4, kbw4 ;FORMANT 4 | |||
; | |||
aBPF5L butbp asigL, kfreq5, kbw5 ;FORMANT 5 | |||
aBPF5R butbp asigR, kfreq5, kbw5 ;FORMANT 5 | |||
endif | |||
if gkbalance==1 then | |||
aBPF1L balance aBPF1L,asigL,0.1 | |||
aBPF1R balance aBPF1R,asigR,0.1 | |||
aBPF2L balance aBPF2L,asigL,0.1 | |||
aBPF2R balance aBPF2R,asigR,0.1 | |||
aBPF3L balance aBPF3L,asigL,0.1 | |||
aBPF3R balance aBPF3R,asigR,0.1 | |||
aBPF4L balance aBPF4L,asigL,0.1 | |||
aBPF4R balance aBPF4R,asigR,0.1 | |||
aBPF5L balance aBPF5L,asigL,0.1 | |||
aBPF5R balance aBPF5R,asigR,0.1 | |||
endif | |||
;FORMANTS ARE MIXED AND MULTIPLIED BOTH BY INTENSITY VALUES DERIVED FROM TABLES AND BY THE ON-SCREEN GAIN CONTROLS FOR EACH FORMANT | |||
aMixL sum aBPF1L*(ampdbfs(kdbamp1))*gkf1, aBPF2L*(ampdbfs(kdbamp2))*gkf2, aBPF3L*(ampdbfs(kdbamp3))*gkf3, aBPF4L*(ampdbfs(kdbamp4))*gkf4, aBPF5L*(ampdbfs(kdbamp5))*gkf5 | |||
aMixR sum aBPF1R*(ampdbfs(kdbamp1))*gkf1, aBPF2R*(ampdbfs(kdbamp2))*gkf2, aBPF3R*(ampdbfs(kdbamp3))*gkf3, aBPF4R*(ampdbfs(kdbamp4))*gkf4, aBPF5R*(ampdbfs(kdbamp5))*gkf5 | |||
aOutMixL ntrpol asigL, aMixL*gkgain, gkmix ;MIX BETWEEN DRY AND WET SIGNALS | |||
aOutMixR ntrpol asigR, aMixR*gkgain, gkmix ;MIX BETWEEN DRY AND WET SIGNALS | |||
outs aOutMixL, aOutMixR ;SEND AUDIO TO OUTPUTS | |||
endin | |||
instr 99 ; fix cabbage bug | |||
kon = 1 | |||
chnset kon,"f1" | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
i 2 0 [3600*24*7] | |||
i 99 0 0.01 ; fix for cabbage bug | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,74 @@ | |||
<Cabbage> | |||
form caption("HRTF 3D") size(365, 275) | |||
image pos(0, 0), size(365, 236), colour(50, 20, 0), shape("rounded"), outline("white"), line(4) | |||
xypad bounds(6, 6, 250, 224), channel("Az", "Elev"), text("X=Azimuth : Y=Elev."), rangex(-180, 180, 0), rangey(-40, 90, 0) | |||
checkbox bounds(265, 6, 80, 12), channel("TestSound"), FontColour("white"), value(1), text("Test Sound"), colour(yellow) | |||
combobox bounds(265, 20, 90,25), channel("type"), value(2), text("hrtfmove", "hrtfmove2") | |||
hslider bounds(265, 50, 90,55), channel("L_R_In"), range(0, 1.00, 0), caption("L/R In") | |||
combobox bounds(265,110, 90,60), channel("overlap"), value(3), text("1", "2", "4", "8", "16", "32", "64"), caption("Overlap") | |||
hslider bounds(265, 175, 90, 55), channel("radius"), range(1, 30, 9), caption("Radius") | |||
image bounds(5,245, 215, 20), colour(100,100,100,80), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .95, .7), text("Author: Iain McCurdy |2012|"), fontcolour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 1 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kAz chnget "Az" ;READ WIDGETS... | |||
kElev chnget "Elev" ; | |||
ktype chnget "type" ; | |||
kL_R_In chnget "L_R_In" ; | |||
koverlap chnget "overlap" ; | |||
kradius chnget "radius" ; | |||
kTestSound chnget "TestSound" | |||
if kTestSound=1 then ; generate a test sound... | |||
aL pinkish 0.3 ; generate some pink noise | |||
koct rspline 8,12,0.3,1 ; randomly moving pitch (oct format) | |||
aL reson aL,cpsoct(koct),cpsoct(koct)*0.2,1 ; reson filter it | |||
aR = aL ; right channel same as the left | |||
else | |||
aL,aR ins ;READ STEREO AUDIO INPUT | |||
endif | |||
asrc ntrpol aL,aR,kL_R_In | |||
kporttime linseg 0,0.001,0.02 ;PORTAMENTO TIME RISES UP QUICKLY FROM ZERO TO A HELD VALUE | |||
;kAz portk kAz,kporttime ;SMOOTH RT CHANGES OF AZIMUTH | |||
;kElev portk kElev,kporttime ;SMOOTH RT CHANGES OF ELEVATION | |||
kswitch changed koverlap,kradius ;IF 'OVERLAP' OR 'RADIUS' CHANGE, GENERATE A TRIGGER | |||
if kswitch==1 then ;IF A CHANGE TRIGGER HAS BEEN GENERATED... | |||
reinit update ;REINITIALISE FROM LABEL 'update' | |||
endif ;END OF CONDITIONAL BRANCH | |||
update: ;A LABEL. REINITIALISATION BEGINS FROM HERE | |||
ioverlap = 2 ^ (i(koverlap) - 1) ;DERIVE OVERLAP VALUE (1,2,4,8 etc.) FROM COMBOBOX INDEX VALUES (1,2,3,4 etc.) | |||
if ktype==1 then ;IF 'hrtfmove' SELECTED USING COMBOBOX... | |||
aleft, aright hrtfmove asrc, kAz, kElev, "hrtf-44100-left.dat","hrtf-44100-right.dat",ioverlap, i(kradius);, isr] ;APPLY hrtfmove2 OPCODE TO AUDIO SOURCE FROM INSTR 1 | |||
else ;IF 'hrtfmove2' SELECTED USING COMBOBOX... | |||
aleft, aright hrtfmove2 asrc, kAz, kElev, "hrtf-44100-left.dat","hrtf-44100-right.dat",ioverlap, i(kradius);, isr] ;APPLY hrtfmove2 OPCODE TO AUDIO SOURCE FROM INSTR 1 | |||
endif ;END OF CONDITIONAL BRANCH | |||
rireturn | |||
outs aleft, aright ;SEND AUDIO TO OUTPUTS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,73 @@ | |||
<Cabbage> | |||
form caption("Highpass Filter") size(435, 90), pluginID("HPFl") | |||
image pos(0, 0), size(435, 90), colour( 70,120, 90), shape("rounded"), outline("white"), line(4) | |||
label bounds(22, 22, 60, 11), text("INPUT"), fontcolour("black") | |||
combobox bounds(10, 33, 60, 20), channel("input"), value(1), text("Live","Tone","Noise") | |||
rslider bounds( 75, 11, 70, 70), channel("cf"), text("Freq."), colour( 0, 60, 30), trackercolour(200,255,200), fontcolour("white"), range(20, 20000, 20000, 0.333) | |||
rslider bounds(140, 11, 70, 70), channel("res"), text("Res."), colour( 0, 60, 30), trackercolour(200,255,200), fontcolour("white"), range(0,1.00,0) | |||
rslider bounds(205, 11, 70, 70), channel("mix"), text("Mix"), colour( 0, 60, 30), trackercolour(200,255,200), fontcolour("white"), range(0,1.00,1) | |||
button bounds(280, 10, 80, 20), text("12dB/oct","24dB/oct"), channel("steepness"), value(0) | |||
label bounds(290, 30, 80, 12), text("Steepness"), fontcolour("black") | |||
checkbox bounds(280, 50, 80, 15), channel("ResType"),colour(yellow), fontcolour("black"), value(0), text("Resonant") | |||
rslider bounds(360, 11, 70, 70), text("Level"), colour( 0, 60, 30), trackercolour(200,255,200), fontcolour("white"), channel("level"), range(0, 1.00, 1) | |||
image bounds(5, 95, 205, 20), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .95, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kcf chnget "cf" ; | |||
kres chnget "res" ; | |||
kmix chnget "mix" ; | |||
ksteepness chnget "steepness" ; | |||
kResType chnget "ResType" ; | |||
klevel chnget "level" ; | |||
kporttime linseg 0,0.001,0.02 | |||
kcf portk kcf,kporttime | |||
/* INPUT */ | |||
kinput chnget "input" | |||
if kinput=1 then | |||
aL,aR ins | |||
elseif kinput=2 then | |||
aL vco2 0.2, 100 | |||
aR = aL | |||
else | |||
aL pinkish 0.2 | |||
aR pinkish 0.2 | |||
endif | |||
if ksteepness==0&&kResType!=1 then | |||
aFiltL atone aL,kcf | |||
aFiltR atone aR,kcf | |||
elseif ksteepness==1&&kResType!=1 then | |||
aFiltL buthp aL,kcf | |||
aFiltR buthp aR,kcf | |||
elseif kResType==1 then | |||
aFiltL bqrez aL,kcf,1+(kres*40),1 | |||
aFiltR bqrez aR,kcf,1+(kres*40),1 | |||
endif | |||
aL ntrpol aL,aFiltL,kmix | |||
aR ntrpol aR,aFiltR,kmix | |||
outs aL*klevel,aR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,338 @@ | |||
LiveSndwarp.csd | |||
Iain McCurdy (2012) | |||
Description and Instructions | |||
---------------------------- | |||
This instrument implements live granulation of an audio input stream using the sndwarp opcode. | |||
Live audio from the first input channel (left input if stereo) is written into a function table from which sndwarp reads | |||
audio. (If 'stereo in/out' is chosen from 'In/Out Mode' then audio from the second/right channel is written into a second | |||
table.) The key is that manual pointer read mode is used with sndwarp (as opposed to time-stretch mode) and that the read | |||
pointer follows on behind the pointer which is used to write audio into the function table(s). Some care is needed to ensure | |||
that the read pointer does not 'overtake' the write pointer (which would result in dicontinuities in the audio it reads). | |||
This could be possible if pitch transposition upwards of grains is used as the grain pointer is then moving faster than the | |||
write pointer. This example prevents this from happening internally so the user does not need to worry. The user can also | |||
define a random offset for the grain read pointer using the 'Grain Delay' settings. Delay times are randomly chosen | |||
according to a 'betarand' distribution the 'beta' of which the user can set: if distribution shape is 1 the distribution is | |||
uniform, if it is 2 the distribution is linear and beyond 2 it is increasingly exponential. | |||
Note that 'Size' (grain size) and 'Size Rnd.' (random grain size) are i-rate variables so that changing them requires | |||
reinitialisation in the orchestra. For this reason discontinuity in the audio output can be heard when they are modified. | |||
Grain Size and Size Random (bandwith) are in sample frames. Divide by sample rate to derive a value in seconds. | |||
Pitch transposition can be set using either the 'Pitch' knob (ratio multiplier) or 'Semis' (transposition in semitones). | |||
Changes made to 'Semis' will be reflected in the setting of the 'Pitch' knob, but not vice versa. | |||
Pitch can also be controlled through MIDI input (in which case 'Pitch' and 'Semis' will be ignored). Using MIDI will | |||
polyphony will be possible. If you intend to use MIDI to start and stop sndwarp instances, turn 'On/Off [MIDI]' off. | |||
You can also adjust the MIDI note at which unison (no transposition) will occur using the 'Uni.Note' knob. | |||
Sound output from sndwarp can be fed back into the input to be mixed with the live audio in. The amount of feedback can be | |||
controlled using the 'Feedback' slider. Using high levels of feedback can result in overloading but this will also be | |||
dependent upon other factors such as random delay time, grain size (window size), density and transposition so user caution | |||
is advised. If the 'clip' button is activated the feedback signal will be clipped at the clip level set (a ratio of then | |||
maximum amplitude) providing at least some control over a runaway feedback loop. Note that 'Clip Lev.' defines the amplitude | |||
at which clipping begins, therefore lower settings will result in the signal being clipped sooner. The feedback signal can | |||
also be filtered by a lowpass filter. | |||
If 'balance' is activated the output of sndwarp is dynamically balanced with the input signal. This can be useful for | |||
compensating for increases in amplitude caused when 'Number of Overlaps' (grain density) is increased. There are 3 | |||
mono/stereo modes: 'mono in - mono out (x2)', 'mono in - stereo out' (stereo effect is created using sndwarp's built-in | |||
window/grain size randomisation, and 'stereo in - stereo out' mode. | |||
The buffer size used in the example is just under 23 seconds long (function table size 1048576 at sr=44100). This could be | |||
enlarged if required but bear in mind that sndwarp needs a power of two table size. | |||
Activating 'Freeze' will pause writing of live audio to the function table and allow the user to manually navigate through | |||
the buffered audio. The feedback loop will also be deactivated when 'freeze' is active. | |||
<Cabbage> | |||
form caption("Live Sndwarp") size(530, 465), pluginID("lwrp") | |||
groupbox bounds( 0, 0, 300,100), text("Master"), colour(30, 30, 40), fontcolour(255,125,125){ | |||
checkbox bounds( 10, 28, 110, 20), colour("yellow"), channel("OnOff"), value(1), text("On/Off [MIDI]"), trackercolour("red") | |||
label bounds( 22, 53, 80, 13), text("In/Out Mode") | |||
combobox bounds( 10, 69, 100, 20), channel("monostereo"), value(2), text("mono","stereo out","stereo in/out") | |||
rslider bounds(115, 30, 60, 60), text("In Gain"), channel("InGain"), range(0, 2.00, 1, 0.5), trackercolour("red") | |||
rslider bounds(175, 30, 60, 60), text("Out Gain"), channel("amp"), range(0, 2.00, 1, 0.5), trackercolour("red") | |||
rslider bounds(235, 30, 60, 60), text("Mix"), channel("mix"), range(0, 1.00, 1), trackercolour("red") | |||
} | |||
groupbox bounds(300, 0, 230,100), text("Feedback - CAUTION!"), colour(25, 25, 35), fontcolour(250,120,120){ | |||
rslider bounds(305, 30, 60, 60), text("Amount"), channel("feedback"), range(0, 1.00, 0), trackercolour("red") | |||
checkbox bounds(365, 35, 70, 20), colour("yellow"), channel("clip"), value(1), text("Clip"), trackercolour("red") | |||
checkbox bounds(365, 65, 70, 20), colour("yellow"), channel("LPF_On"), value(0), text("LPF"), trackercolour("red") | |||
rslider bounds(410, 30, 60, 60), text("Clip Lev."), channel("ClipLev"), range(0.01, 1, 0.5, 0.5), trackercolour("red") | |||
rslider bounds(465, 30, 60, 60), text("LPF"), channel("Cutoff"), range(20, 20000, 4000, 0.5), trackercolour("red") | |||
} | |||
groupbox bounds( 0,100, 530,100), text("Grains"), colour(35, 35, 45), fontcolour(255,130,130){ | |||
rslider bounds( 5,130, 60, 60), text("Size"), channel("wsize"), range(1, 88200, 7000, 0.25), trackercolour("red") | |||
rslider bounds( 65,130, 60, 60), text("Size Rnd."), channel("rnd"), range(0, 30000, 1000, 0.375), trackercolour("red") | |||
rslider bounds(125,130, 60, 60), text("Pitch"), channel("pch"), range(0.01, 8, 1, 0.5), trackercolour("red") | |||
rslider bounds(185,130, 60, 60), text("Semis"), channel("semis"), range(-48, 48, 0,1,1), trackercolour("red") | |||
rslider bounds(245,130, 60, 60), text("Density"), channel("olaps"), range(1, 100, 10, 1, 1), trackercolour("red") | |||
label bounds(305,125, 100, 13), text("Grain Envelope") | |||
combobox bounds(305,141, 100, 20), channel("wfn"), value(1), text("Half Sine","Perc. 1","Perc. 2","Gate","Rev. Perc. 1 ","Rev. Perc. 2") | |||
checkbox bounds(315,170, 100, 20), colour("yellow"), channel("balance"), value(0), text("Balance") | |||
rslider bounds(405,130, 60, 60), text("Delay"), channel("dly"), range(0, 5, 0.01, 0.5), trackercolour("red") | |||
rslider bounds(465,130, 60, 60), text("Distr."), channel("beta"), range(1, 16.0, 1, 0.5), trackercolour("red") | |||
} | |||
groupbox bounds( 0,200,530,135), text("Freeze"), colour(45, 45, 55), fontcolour(255,100,100){ | |||
label bounds(234,230, 80, 17), text("FREEZE"), fontcolour("LightBlue") | |||
label bounds(233,231, 80, 17), text("FREEZE"), fontcolour(105,105,255) | |||
checkbox bounds(225,249, 80, 30), colour(115,115,255), channel("freeze"), value(0) | |||
rslider bounds( 10,227, 60, 60), text("Port.Time"), channel("ManPtrPort"), range(0, 1.00, 0.5), trackercolour("red") | |||
hslider bounds( 10,280,510, 40), channel("ManPtr"), range(-1.00, 0, 0, 1, 0.001), trackercolour("red") | |||
label bounds(220,315,100, 13), text("Manual Pointer") | |||
} | |||
groupbox bounds( 0,335, 80,100), text("MIDI"), colour(30, 30, 40), fontcolour(255,100,100){ | |||
rslider bounds( 10,365, 60, 60), text("Uni.Note"), channel("UniNote"), range(0, 127, 72,1,1), trackercolour("red") | |||
keyboard bounds( 80,335,450,100) | |||
} | |||
image bounds( 5, 440, 215, 20), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .9, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
;-d -n | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
massign 0,2 | |||
gibuffer ftgen 0, 0, 1048576, 2, 0 ;Buffer table. Roughly 23 seconds duration. | |||
gibufferR ftgen 0, 0, 1048576, 2, 0 ;right channel | |||
;GRAIN ENVELOPE WINDOW FUNCTION TABLES: | |||
giwfn1 ftgen 0, 0, 131072, 9, .5, 1, 0 ; HALF SINE | |||
giwfn2 ftgen 0, 0, 131072, 7, 0, 3072, 1, 128000, 0 ; PERCUSSIVE - STRAIGHT SEGMENTS | |||
giwfn3 ftgen 0, 0, 131072, 5, .001, 3072, 1, 128000, 0.001 ; PERCUSSIVE - EXPONENTIAL SEGMENTS | |||
giwfn4 ftgen 0, 0, 131072, 7, 0, 1536, 1, 128000, 1, 1536, 0 ; GATE - WITH ANTI-CLICK RAMP UP AND RAMP DOWN SEGMENTS | |||
giwfn5 ftgen 0, 0, 131072, 7, 0, 128000,1, 3072, 0 ; REVERSE PERCUSSIVE - STRAIGHT SEGMENTS | |||
giwfn6 ftgen 0, 0, 131072, 5, .001, 128000,1, 3072, 0.001 ; REVERSE PERCUSSIVE - EXPONENTIAL SEGMENTS | |||
instr 1 | |||
gkOnOff chnget "OnOff" | |||
ktrigger trigger gkOnOff,0.5,0 | |||
schedkwhen ktrigger,0,0,2,0,-1 | |||
ginsamp = ftlen(gibuffer)-1 ;index of the final sample in the function table | |||
gkamp chnget "amp" | |||
gkInGain chnget "InGain" | |||
gkmix chnget "mix" | |||
gkbalance chnget "balance" | |||
gkmonostereo chnget "monostereo" | |||
gkfback chnget "feedback" | |||
gkclip chnget "clip" | |||
gkClipLev chnget "ClipLev" | |||
gkCutoff chnget "Cutoff" | |||
gkpch chnget "pch" | |||
gkLPF_On chnget "LPF_On" | |||
gkwsize chnget "wsize" | |||
gkrnd chnget "rnd" | |||
gkolap chnget "olaps" | |||
gkwfn chnget "wfn" | |||
gkdly chnget "dly" | |||
gkbeta chnget "beta" | |||
gkfreeze chnget "freeze" | |||
gkManPtrPort chnget "ManPtrPort" | |||
gkManPtr chnget "ManPtr" | |||
gkUniNote chnget "UniNote" | |||
ktrigger trigger gkfreeze,0.5,1 ;if 'freeze' switch is turned off... | |||
if ktrigger==1 then | |||
chnset 1-ktrigger,"ManPtr" ;reset Manual Pointer slider to its default (maximum) position | |||
endif | |||
ain inch 1 ;read audio input from the left input channel | |||
ain = ain*gkInGain ;scale input signal according to 'In Gain' control position | |||
outch 1,ain*(1-gkmix) ;send some dry signal to output according to dry/wet 'Mix' control position | |||
gaFBackSig,gaFBackSigR init 0 ;audio feedback signal (initialised for first performance iteration) | |||
/*dc offset filter feedback signal*/ | |||
aFBackSig dcblock2 gaFBackSig ;filter dc offset from left channel feedback signal | |||
if gkmonostereo==3 then ;if 'stereo in' mode is active... | |||
aFBackSigR dcblock2 gaFBackSigR ;filter dc offset from right channel feedback signal | |||
endif | |||
/*lowpass filter feedback signal*/ | |||
if gkLPF_On==1 then ;if lowpass filter button is on... | |||
aFBackSig tone aFBackSig,gkCutoff ;...filter left feedback channel | |||
if gkmonostereo==3 then ;if 'stereo in' mode is active... | |||
aFBackSigR tone aFBackSigR,gkCutoff ;lowpass filter the right channel | |||
endif | |||
endif | |||
/*clip feedback signal*/ | |||
if gkclip==1 then ;if clip switch is on... | |||
ktrig changed gkClipLev ;if clip level control is adjusted generate a trigger impulse (momentary '1') | |||
if ktrig==1 then ;if a trigger impulse has been received... | |||
reinit UPDATE_CLIP_L ;reinitialise clip opcode (clip level is i-rate only) | |||
endif | |||
UPDATE_CLIP_L: | |||
aFBackSig clip aFBackSig, 0, 0dbfs*i(gkClipLev) ;clip left feedback signal at maximum amplitude using bram de jong method | |||
if gkmonostereo==3 then ;and if stereo in/out mode is also chosen | |||
aFBackSigR clip aFBackSigR, 0, 0dbfs*i(gkClipLev) ;clip right channel feedback signal | |||
rireturn | |||
endif | |||
endif | |||
gaphsW phasor (sr*(1-gkfreeze))/ginsamp ;pointer 0 - 1 ;create a moving phase value that will be used to point to locations in a function table where input audio signal will be written | |||
/*write audio from left input to function table*/ | |||
if gkfreeze==0 then | |||
tablew ain+aFBackSig,gaphsW,gibuffer,1 ;write input audio to table | |||
endif | |||
/*if stereo in - stereo out mode*/ | |||
if gkmonostereo==3 then ;if stereo in/out mode has been chosen... | |||
aR inch 2 ;read right channel audio input | |||
aR = aR*gkInGain ;rescale its amplitude with 'Input Gain' slider | |||
if gkfreeze==0 then | |||
tablew aR+aFBackSigR,gaphsW,gibufferR,1 ;write right channel audio input audio to table | |||
endif | |||
outch 2,aR*(1-gkmix) ;if 'stereo in' mode is selected, send some right channel dry signal to output according to dry/wet 'Mix' control position | |||
else | |||
outch 2,ain*(1-gkmix) ;otherwise not 'stereo in' mode so just send some left channel dry signal to output | |||
endif | |||
clear gaFBackSig,gaFBackSigR ;clear feedback signals | |||
endin | |||
instr 2 | |||
iMIDIActiveValue = 1 ;IF MIDI ACTIVATED | |||
iMIDIflag = 0 ;IF FLTK ACTIVATED | |||
mididefault iMIDIActiveValue, iMIDIflag ;IF NOTE IS MIDI ACTIVATED REPLACE iMIDIflag WITH iMIDIActiveValue | |||
kMIDIflag init iMIDIflag | |||
if gkOnOff==0&&iMIDIflag==0 then | |||
turnoff | |||
endif | |||
if iMIDIflag==1 then | |||
icps cpsmidi | |||
kpch = icps/cpsmidinn(gkUniNote) | |||
else | |||
kpch = gkpch | |||
endif | |||
kporttime linseg 0,0.001,0.03 ;portamento time. Rises quickly from zero to a held value. | |||
kpch portk kpch,kporttime ;Apply portamento smoothing to changes made to the pitch multiplier | |||
apch interp kpch ;interpolate pitch multiplier variable to create an a-rate version. This will produce higher quality results when pitch is modulated. | |||
kManPtr portk gkManPtr,kporttime*10*gkfreeze*gkManPtrPort | |||
ktrig changed gkwsize,gkrnd,gkolap,gkwfn ;if any of the list of input args. change, generate a trigger impulse (momentary '1'). The input args are all i-rate in sndwarp so reinitialisation will be required for their changes to register. | |||
if ktrig==1 then ;if a trigger hass been generated... | |||
reinit UPDATE_SNDWARP ;... begin a reinitialisation pass from the given label | |||
endif | |||
UPDATE_SNDWARP: ;a label. Reinitialisation begins from here. | |||
imode = 1 ;sndwarp mode. (1=pointer mode, timestretch mode not so useful in a live audio in application) | |||
ibeg = 0 ;point in the function table from which to begin reading audio (0=beginning) | |||
iwsize = i(gkwsize) ;window (grain) size in samples | |||
irnd = i(gkrnd) ;window (grain) size randomisation bandwidth in samples | |||
iolap = i(gkolap) ;number of grain overlaps | |||
kRndDly betarand gkdly,1,gkbeta ;random grain delay time | |||
if gkmonostereo!=0 then | |||
kRndDlyR betarand gkdly,1,gkbeta ;random grain delay time | |||
endif | |||
iMaxDur = (iwsize+irnd)/sr ;maximum grain duration in seconds | |||
kTransComp limit iMaxDur*(kpch-1),0,ginsamp/sr | |||
kdelay = (kTransComp+kRndDly) / (ginsamp/sr) ;delay time required when reading grains from the function table | |||
if gkmonostereo!=0 then | |||
kdelayR = (kTransComp+kRndDlyR) / (ginsamp/sr) ;delay time required when reading grains from the function table | |||
endif | |||
if gkfreeze==1 then | |||
kdelay = kdelay + (sr/(ginsamp)*1.75*iwsize/sr) ;if freeze mode is active regress the read pointer a small amount | |||
if gkmonostereo!=0 then | |||
kdelayR = kdelayR + (sr/(ginsamp)*1.75*iwsize/sr) ;if freeze mode is active regress the read pointer a small amount | |||
endif | |||
endif | |||
aphsR wrap (gaphsW-kdelay+kManPtr)*(ginsamp/sr),0,(ginsamp-iwsize-irnd)/sr ;location from which to read grain. This is always directly related to the poistion of the write pointer. | |||
aphsR_R wrap (gaphsW-kdelayR+kManPtr)*(ginsamp/sr),0,(ginsamp-iwsize-irnd)/sr ;location from which to read grain. This is always directly related to the poistion of the write pointer. | |||
iwfn = giwfn1+i(gkwfn)-1 ;Grain amplitude windowing shape | |||
/*sndwarp*/ | |||
asig,ac sndwarp 1, aphsR, apch, gibuffer, ibeg, iwsize, irnd, iolap, iwfn, imode | |||
if gkbalance==1 then ;if 'balance switch is on... | |||
asig balance asig,ac ;... amplitude balance the signal | |||
endif | |||
if gkmonostereo==1 then ;if 'mono' mode seleced... | |||
gaFBackSig = gaFBackSig+(asig*gkfback) ;create feedback signal for next iteration. (This will be written into the function table along with the live audio in.) | |||
aR = asig | |||
elseif gkmonostereo==2 then ;or if 'stereo out' mode | |||
aR,acR sndwarp 1, aphsR_R, apch, gibuffer, ibeg, iwsize, irnd, iolap, iwfn, imode | |||
if gkbalance==1 then | |||
aR balance aR,acR | |||
endif | |||
gaFBackSig = gaFBackSig+((asig+aR)*gkfback) ;create feedback signal, a mixture of the left and right sndwarp output channels | |||
else ;otherwise 'stereo in/out' mode | |||
aR,acR sndwarp 1, aphsR_R, apch, gibufferR, ibeg, iwsize, irnd, iolap, iwfn, imode | |||
if gkbalance==1 then | |||
aR balance aR,acR | |||
endif | |||
gaFBackSig = gaFBackSig+(asig*gkfback) ;left channel feedback signal | |||
gaFBackSig = gaFBackSig+(aR*gkfback) ;right channel feedback signal | |||
endif | |||
rireturn ;return from reinitialisation | |||
aAntiClick linsegr 0,0.03,1,0.03,0 | |||
outs asig*gkamp*gkmix*aAntiClick, aR*gkamp*gkmix*aAntiClick ;send audio to outputs | |||
endin | |||
instr UpdateWidgets | |||
ksemis chnget "semis" ;read in 'semis' widget | |||
ktrig1 changed ksemis ;if 'semis' knob is moved... | |||
if ktrig1==1 then | |||
chnset semitone(ksemis), "pch" ;update 'Pitch' knob with the value of semis (converted to a ratio) | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
;i 2 0 [3600*24*7] | |||
i "UpdateWidgets" 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,71 @@ | |||
<Cabbage> | |||
form caption("Lowpass Filter") size(435, 90), pluginID("LPFl") | |||
image pos(0, 0), size(435, 90), colour( 70, 90,100), shape("rounded"), outline("white"), line(4) | |||
label bounds( 22, 22, 60, 11), text("INPUT"), fontcolour("white") | |||
combobox bounds( 10, 33, 60, 20), channel("input"), value(1), text("Live","Tone","Noise") | |||
rslider bounds( 75, 11, 70, 70), channel("cf"), text("Freq."), colour( 0, 40, 50), trackercolour(200,240,250), fontcolour("white"), range(20, 20000, 20000, 0.333) | |||
rslider bounds(140, 11, 70, 70), channel("res"), text("Res."), colour( 0, 40, 50), trackercolour(200,240,250), fontcolour("white"), range(0,1.00,0) | |||
rslider bounds(205, 11, 70, 70), channel("mix"), text("Mix"), colour( 0, 40, 50), trackercolour(200,240,250), fontcolour("white"), range(0,1.00,1) | |||
button bounds(280, 10, 80, 20), channel("steepness"), text("12dB/oct","24dB/oct"), value(0) | |||
label bounds(290, 30, 80, 12), text("Steepness"), FontColour("white") | |||
checkbox bounds(280, 50, 80, 15), channel("ResType"), FontColour("white"), value(0), text("Resonant"), colour(yellow) | |||
rslider bounds(360, 11, 70, 70), text("Level"), colour( 0, 40, 50), trackercolour(200,240,250), fontcolour("white"), channel("level"), range(0, 1.00, 1) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kcf chnget "cf" ; | |||
kres chnget "res" ; | |||
kmix chnget "mix" ; | |||
ksteepness chnget "steepness" ; | |||
kResType chnget "ResType" ; | |||
klevel chnget "level" ; | |||
kporttime linseg 0,0.001,0.02 | |||
kcf portk kcf,kporttime | |||
/* INPUT */ | |||
kinput chnget "input" | |||
if kinput=1 then | |||
aL,aR ins | |||
elseif kinput=2 then | |||
aL vco2 0.2, 100 | |||
aR = aL | |||
else | |||
aL pinkish 0.2 | |||
aR pinkish 0.2 | |||
endif | |||
if ksteepness==0&&kResType!=1 then | |||
aFiltL tone aL,kcf | |||
aFiltR tone aR,kcf | |||
elseif ksteepness==1&&kResType!=1 then | |||
aFiltL butlp aL,kcf | |||
aFiltR butlp aR,kcf | |||
elseif kResType==1 then | |||
aFiltL moogladder aL,kcf,kres | |||
aFiltR moogladder aR,kcf,kres | |||
endif | |||
aL ntrpol aL,aFiltL,kmix | |||
aR ntrpol aR,aFiltR,kmix | |||
outs aL*klevel,aR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,233 @@ | |||
; Modulating Delays - randomly modulating delays | |||
; GATE (for gating the incoming signal) | |||
; On Thrsh / Off Thrsh - thresholds at which the gate will open and close | |||
; Rise Time - time it takes for the gate to ramp open | |||
; Rel Time - time it takes for the gate to ramp closed | |||
; SETUP | |||
; Pan Width - extent of the random panning effect (0 = all layers centred) | |||
; Spread - spread of the delay times of the different layers (if only 1 layer is active this control isn't really useful) | |||
; if 'spread' is zero, all layers' delay time modulated between 'Min Time' and 'Max Time' | |||
; Layers - Number of layers of modualting delays | |||
; REVERB - there is a reverb effect within the each delay buffer | |||
; Amount - amount of reverb signal added to the output of the delay buffer - within the delay buffer -, this will therefore be mixed into the feedback signal and fed back into to reverb also | |||
; Time - reverb time | |||
; Damping - damping of high frequencies within the delay effect | |||
; ** CAUTION MUST BE TAKEN WHEN USING HIGH LEVELS OF DELAY FEEDBACK WITH A HIGH REVERB AMOUNT AS OVERLOADING CAN QUICKLY OCCUR ** | |||
; OUTPUT | |||
; Dry - level control for the dry (post gate) signal | |||
; Wet - level control for the wet (delayed) signal | |||
; SLIDERS | |||
; Min Time - Minimum delay time in the delay time random modulation | |||
; Max Time - Maximum delay time in the delay time random modulation | |||
; Min Rate - Minimum rate in the random modulation | |||
; Max Rate - Maximum rate in the random modulation | |||
; Min F.back - Minimum feedback value in the modulation of delay feedback values | |||
; Max F.back - Maximum feedback value in the modulation of delay feedback values | |||
; Min Tone - Minimum cutoff frequency in a randomly modulting low-pass filter within each delay buffer | |||
; Max Tone - Maximum cutoff frequency in a randomly modulting low-pass filter within each delay buffer | |||
<Cabbage> | |||
form size(960, 340), caption("Modulating Delays"), pluginID("mdel") | |||
label bounds(200, 5, 80, 11), text("G A T E"), fontcolour("white") | |||
checkbox bounds( 10, 35,100, 20), text("Gate On/Off") channel("GateActive"), FontColour("White"), colour("lime") value(1) | |||
rslider bounds(100, 20, 60, 60), channel("OnThreshold"), text("On Thrsh."), range(0, 1, 0.05, 0.5, 0.001), colour(30,30,30) trackercolour(100,100,100) | |||
rslider bounds(160, 20, 60, 60), channel("OffThreshold"), text("Off Thrsh."), range(0, 1, 0.01, 0.5, 0.001), colour(30,30,30) trackercolour(100,100,100) | |||
rslider bounds(220, 20, 60, 60), channel("RiseTime"), text("Rise Time"), range(0, 10, 1, 0.5, 0.001), colour(30,30,30) trackercolour(100,100,100) | |||
rslider bounds(280, 20, 60, 60), channel("RelTime"), text("Rel.Time"), range(0, 10, 0.01, 0.5, 0.001), colour(30,30,30) trackercolour(100,100,100) | |||
checkbox bounds(340, 35, 90, 15), text("Gating") channel("gating"), FontColour("White"), colour("red") value(0) shape(ellipse) | |||
label bounds(487, 5, 80, 11), text("S E T U P"), fontcolour("white") | |||
line bounds(405, 25, 3, 50), colour("Grey") | |||
rslider bounds(420, 20, 60, 60), channel("width"), text("Pan Width"),range(0, 0.5, 0.5), colour(100,100,100) trackercolour(100,100,100) | |||
rslider bounds(480, 20, 60, 60), channel("spread"), text("Spread"), range(0, 4, 1, 0.5, 0.001), colour(100,100,100) trackercolour(100,100,100) | |||
rslider bounds(540, 20, 60, 60), channel("layers"), text("Layers"), range(1, 22, 8,1,1), colour(100,100,100) trackercolour(100,100,100) | |||
line bounds(610, 25, 3, 50), colour("Grey") | |||
label bounds(680, 5, 80, 11), text("R E V E R B"), fontcolour("white") | |||
rslider bounds(620, 20, 60, 60), channel("RvbAmt"), text("Amount"), range(0, 0.2, 0.06,1,0.001), colour(100,100,100) trackercolour(100,100,100) | |||
rslider bounds(680, 20, 60, 60), channel("RvbTime"), text("Time"), range(0.01,10, 7), colour(100,100,100) trackercolour(100,100,100) | |||
rslider bounds(740, 20, 60, 60), channel("damping"), text("Damping"), range(0, 1, 0.5), colour(100,100,100) trackercolour(100,100,100) | |||
line bounds(810, 25, 3, 50), colour("Grey") | |||
label bounds(856, 5, 80, 11), text("O U T P U T"), fontcolour("white") | |||
rslider bounds(825, 20, 60, 60), channel("dry"), text("Dry"), range(0, 4, 0, 0.5, 0.001), colour(160,160,160) trackercolour(160,160,160) | |||
rslider bounds(885, 20, 60, 60), channel("wet"), text("Wet"), range(0, 4, 1, 0.5, 0.001), colour(160,160,160) trackercolour(160,160,160) | |||
line bounds( 0, 95,960, 3), colour("Grey") | |||
hslider bounds(10,110, 940, 30), channel("MinTime"), text(Delay Time Minimum), range(0.001, 10, 0.131, 0.5, 0.000001),colour("blue"), trackercolour(blue) | |||
hslider bounds(10,130, 940, 30), channel("MaxTime"), text(Delay Time Maximum), range(0.001, 10, 0.9, 0.5, 0.000001), colour("blue"), trackercolour(blue) | |||
hslider bounds(10,160, 940, 30), channel("MinRate"), text(Random Rate Minimum), range(0.001, 10, 0.1, 0.5, 0.00001), colour("red"), trackercolour(red) | |||
hslider bounds(10,180, 940, 30), channel("MaxRate"), text(Random Rate Maximum), range(0.001, 10, 0.2, 0.5, 0.00001), colour("red"), trackercolour(red) | |||
hslider bounds(10,210, 940, 30), channel("MinFB"), text(Delay Feedback Minimum), range(0, 0.999, 0.95,1,0.001), colour("yellow"), trackercolour(yellow) | |||
hslider bounds(10,230, 940, 30), channel("MaxFB"), text(Delay Feedback Maximum), range(0, 0.999, 0.975,1,0.001), colour("yellow"), trackercolour(yellow) | |||
hslider bounds(10,260, 940, 30), channel("MinTone"), text(Tone Cutoff Frequency Minimum), range(4, 14, 11), colour(purple), trackercolour(purple) | |||
hslider bounds(10,280, 940, 30), channel("MaxTone"), text(Tone Cutoff Frequency Maximum), range(4, 14, 14), colour(purple), trackercolour(purple) | |||
label bounds( 10,320, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 16 | |||
nchnls = 2 | |||
0dbfs=1 | |||
opcode DelayIteration,aa,aakkkkkkkkkkkKiii | |||
aL,aR,kMinTime,kMaxTime,kMinRate,kMaxRate,kMinFB,kMaxFB,kwidth,kMinTone,kMaxTone,kRvbAmt,kRvbTime,kdamping,ispread,icount,ilayers xin | |||
kdel rspline kMinTime,kMaxTime,kMinRate,kMaxRate | |||
kdel limit kdel,0.001,10 | |||
adel interp kdel | |||
kFB rspline kMinFB,kMaxFB,kMinRate,kMaxRate | |||
kFB limit kFB,0,1 | |||
iMaxDel = 10 | |||
iws = 4 | |||
aout1, aout2 init 0 | |||
ktone rspline kMinTone, kMaxTone,kMinRate,kMaxRate | |||
ktone = cpsoct(ktone) | |||
idelOS random 0,ispread | |||
abuf delayr iMaxDel+idelOS | |||
aout1 deltap3 adel+idelOS | |||
arvb nreverb aout1, kRvbTime, kdamping | |||
aout1 = aout1 + arvb*kRvbAmt | |||
aout1 dcblock2 aout1 | |||
aout1 tone aout1,ktone | |||
delayw aL + aout1*kFB | |||
abuf delayr iMaxDel+idelOS | |||
aout2 deltap3 adel+idelOS | |||
arvb nreverb aout2, kRvbTime, kdamping | |||
aout2 = aout2 + arvb*kRvbAmt | |||
aout2 dcblock2 aout2 | |||
aout2 tone aout2,ktone | |||
delayw aR + aout2*kFB | |||
kpan rspline 0.5-kwidth,0.5+kwidth,kMinRate,kMaxRate | |||
kpan limit kpan,0,1 | |||
apan interp kpan | |||
aout1 = aout1*(1-apan) | |||
aout2 = aout2*(apan) | |||
amix1,amix2 init 0 | |||
amix1 = 0 | |||
amix2 = 0 | |||
if icount<ilayers then | |||
amix1,amix2 DelayIteration aL,aR,kMinTime,kMaxTime,kMinRate,kMaxRate,kMinFB,kMaxFB,kwidth,kMinTone,kMaxTone,kRvbAmt,kRvbTime,kdamping,ispread,icount+1,ilayers | |||
endif | |||
xout aout1+amix1, aout2+amix2 | |||
endop | |||
opcode SwitchPort, k, kki | |||
kin,kupport,idnport xin | |||
kold init 0 | |||
kporttime = (kin<kold?idnport:kupport) | |||
kout portk kin, kporttime | |||
kold = kout | |||
xout kout | |||
endop | |||
instr 1 | |||
kporttime linseg 0,0.001,1 | |||
aL,aR ins | |||
;aL,aR diskin2 "Synthpad.wav",1,0,1 | |||
;aL diskin2 "loop.wav",1,0,1 | |||
;aR = aL | |||
kMinTime chnget "MinTime" | |||
kMaxTime chnget "MaxTime" | |||
kMinTime portk kMinTime,kMinTime | |||
kMaxTime portk kMaxTime,kMaxTime | |||
kspread chnget "spread" | |||
kMinRate chnget "MinRate" | |||
kMaxRate chnget "MaxRate" | |||
kMinFB chnget "MinFB" | |||
kMaxFB chnget "MaxFB" | |||
kwidth chnget "width" | |||
kMinTone chnget "MinTone" | |||
kMaxTone chnget "MaxTone" | |||
kres chnget "res" | |||
klayers chnget "layers" | |||
klayers init 1 | |||
kdry chnget "dry" | |||
kwet chnget "wet" | |||
kGateActive chnget "GateActive" | |||
kOnThreshold chnget "OnThreshold" | |||
kOffThreshold chnget "OffThreshold" | |||
kRiseTime chnget "RiseTime" | |||
kRelTime chnget "RelTime" | |||
kRvbAmt chnget "RvbAmt" | |||
kRvbTime chnget "RvbTime" | |||
kdamping chnget "damping" | |||
/* GATE */ | |||
if kGateActive=1 then | |||
krms rms (aL+aR)*0.5 | |||
kthreshold init i(kOnThreshold) | |||
kon = 1 | |||
koff = 0 | |||
if krms>kthreshold then | |||
kgate = 1 | |||
kthreshold = kOnThreshold | |||
chnset koff,"gating" | |||
else | |||
kgate = 0 | |||
kthreshold = kOffThreshold | |||
chnset kon,"gating" | |||
endif | |||
kgate SwitchPort kgate,kRiseTime,0.1 | |||
kgate expcurve kgate,8 | |||
agate interp kgate | |||
aL = aL * agate | |||
aR = aR * agate | |||
endif | |||
ktrig trigger kGateActive,0.5,1 | |||
if ktrig=1 then | |||
chnset koff,"gating" | |||
endif | |||
/* REINITIALISING */ | |||
ktrig changed klayers,kspread | |||
if ktrig=1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
/* CALL THE UDO */ | |||
aout1,aout2 DelayIteration aL,aR,kMinTime,kMaxTime,kMinRate,kMaxRate,kMinFB,kMaxFB,kwidth,kMinTone,kMaxTone,kRvbAmt,kRvbTime,kdamping,i(kspread),1,i(klayers) | |||
rireturn | |||
outs (aout1 * kwet) + (aL * kdry), (aout2 * kwet) + (aR * kdry) | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 360000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,76 @@ | |||
Reverb effect that employs screverb and freeverb opcodes. | |||
Pitch Mod. is only used by reverbsc. | |||
<Cabbage> | |||
form caption("Multi Reverb") size(415, 90), pluginID("Rvrb") | |||
image bounds( 7, 22, 73, 45), colour( 39, 31, 20), shape("rounded"), outline(white), line(1) | |||
image bounds(0, 0, 415, 90), colour( 39, 31, 20), shape("rounded"), outline("white"), line(4) | |||
label bounds( 29, 26, 60, 12), text("Type"), fontColour(white) | |||
button bounds( 11, 40, 66, 20), text("screverb","freeverb"), channel("type"), value(0), fontcolour("lime") | |||
rslider bounds( 80, 11, 70, 70), text("Size"), fontcolour(white), channel("fblvl"), range(0, 1.00, 0.8), colour( 79, 81, 70), trackercolour(240,210,170) | |||
rslider bounds(145, 11, 70, 70), text("Damping"), fontcolour(white), channel("fco"), range(0, 1.00, 0.6), colour( 79, 81, 70), trackercolour(240,210,170) | |||
rslider bounds(210, 11, 70, 70), text("Pitch Mod."), fontcolour(white), channel("pitchm"), range(0, 20.0, 1), colour( 79, 81, 70), trackercolour(240,210,170) | |||
rslider bounds(275, 11, 70, 70), text("Mix"), fontcolour(white), channel("mix"), range(0, 1.00, 1), colour( 79, 81, 70), trackercolour(240,210,170) | |||
rslider bounds(340, 11, 70, 70), text("Level"), fontcolour(white), channel("amp"), range(0, 1.00, 1), colour( 79, 81, 70), trackercolour(240,210,170) | |||
} | |||
image bounds(5, 95, 205, 20), colour(75, 85, 90, 100), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .95, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
ktype chnget "type" ;READ WIDGETS... | |||
kfblvl chnget "fblvl" ; | |||
kfco chnget "fco" ; | |||
kpitchm chnget "pitchm" ; | |||
kmix chnget "mix" ; | |||
kamp chnget "amp" ; | |||
ainL,ainR ins | |||
denorm ainL, ainR ;DENORMALIZE BOTH CHANNELS OF AUDIO SIGNAL | |||
if ktype==0 then | |||
kfco expcurve kfco, 4 ;CREATE A MAPPING CURVE TO GIVE A NON LINEAR RESPONSE | |||
kfco scale kfco,20000,20 ;RESCALE 0 - 1 TO 20 TO 20000 | |||
kSwitch changed kpitchm ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF kSwitch=1 THEN | |||
reinit UPDATE ;BEGIN A REINITIALIZATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL BRANCHING | |||
UPDATE: ;A LABEL | |||
arvbL, arvbR reverbsc ainL, ainR, kfblvl, kfco, sr, i(kpitchm) | |||
rireturn ;RETURN TO PERFORMANCE TIME PASSES | |||
else | |||
arvbL, arvbR freeverb ainL, ainR, kfblvl, 1-kfco | |||
endif | |||
amixL ntrpol ainL, arvbL, kmix ;CREATE A DRY/WET MIX BETWEEN THE DRY AND THE REVERBERATED SIGNAL | |||
amixR ntrpol ainR, arvbR, kmix ;CREATE A DRY/WET MIX BETWEEN THE DRY AND THE REVERBERATED SIGNAL | |||
outs amixL * kamp, amixR * kamp | |||
endin | |||
instr 3 ;workaround for failure of these widgets from intiialising properly when used as a plugin | |||
;chnset 12000,"fco" | |||
chnset 1,"pitchm" | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
i 3 0 0 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,87 @@ | |||
; phaser1.csd | |||
; Iain McCurdy 2012 | |||
<Cabbage> | |||
form caption("phaser1") size(350, 90), pluginID("phs1") | |||
image pos(0, 0), size(350, 90), colour(80,20,20), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Frequency"), channel("freq"), range(20.0, 5000, 160, 0.25), colour(80,20,20), fontcolour("white"), trackercolour(180,120,120) | |||
rslider bounds(75, 11, 70, 70), text("Feedback"), channel("feedback"), range(-0.99, 0.99, 0.9), colour(80,20,20), fontcolour("white"), trackercolour(180,120,120) | |||
rslider bounds(140, 11, 70, 70), text("N.Ords."), channel("ord"), range(1, 256, 32, 0.5,1), colour(80,20,20), fontcolour("white"), trackercolour(180,120,120) | |||
rslider bounds(205, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), colour(80,20,20), fontcolour("white"), trackercolour(180,120,120) | |||
rslider bounds(270, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(80,20,20), fontcolour("white"), trackercolour(180,120,120) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
gkfreq chnget "freq" ;READ WIDGETS... | |||
gkfeedback chnget "feedback" ; | |||
gkord chnget "ord" ; | |||
gkmix chnget "mix" ; | |||
gklevel chnget "level" ; | |||
;asigL, asigR diskin2 "Seashore.wav",1,0,1 ; | |||
asigL, asigR ins | |||
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME | |||
kfreq portk gkfreq, kporttime ;PORTAMENTO IS APPLIED TO 'SMOOTH' SLIDER MOVEMENT | |||
kSwitch changed gkord ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL BRANCH | |||
UPDATE: ;BEGIN A REINITIALISATION PASS FROM HERE | |||
aphaserl phaser1 asigL, kfreq, gkord, gkfeedback ;PHASER1 IS APPLIED TO THE LEFT CHANNEL | |||
aphaserr phaser1 asigR, kfreq, gkord, gkfeedback ;PHASER1 IS APPLIED TO THE RIGHT CHANNEL | |||
rireturn ;RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
amixL ntrpol asigL,aphaserl,gkmix | |||
amixR ntrpol asigR,aphaserr,gkmix | |||
outs amixL*gklevel, amixR*gklevel ;PHASER OUTPUT ARE SENT TO THE SPEAKERS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,95 @@ | |||
<Cabbage> | |||
form caption("phaser2") size(565, 90), pluginID("phs2") | |||
image pos(0, 0), size(565, 90), colour(0,0,25), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Frequency"), channel("freq"), range(20.0, 5000, 160, 0.25), colour(100,100,200), trackercolour(silver) | |||
rslider bounds(75, 11, 70, 70), text("Q"), channel("q"), range(0.0001,4,3), colour(100,100,200), trackercolour(silver) | |||
rslider bounds(140, 11, 70, 70), text("N.Ords."), channel("ord"), range(1, 256, 8, 0.5,1), colour(100,100,200), trackercolour(silver) | |||
label bounds(220, 20, 60,12), text("Sep. Mode") | |||
rslider bounds(290, 11, 70, 70), text("Separation"), channel("sep"), range(-3, 3.00, 0.9), colour(100,100,200), trackercolour(silver) | |||
rslider bounds(355, 11, 70, 70), text("Feedback"), channel("feedback"), range(-0.99, 0.99, 0.9), colour(100,100,200), trackercolour(silver) | |||
rslider bounds(420, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), colour(100,100,200), trackercolour(silver) | |||
rslider bounds(485, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(100,100,200), trackercolour(silver) | |||
combobox bounds(210, 34, 80,25), channel("mode"), size(100,50), value(1), text("Equal", "Power") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
gkfreq chnget "freq" ;READ WIDGETS... | |||
gkq chnget "q" ; | |||
gkmode chnget "mode" ; | |||
gkmode init 1 | |||
gkmode init i(gkmode)-1 | |||
gksep chnget "sep" ; | |||
gkfeedback chnget "feedback" ; | |||
gkord chnget "ord" ; | |||
gkmix chnget "mix" ; | |||
gklevel chnget "level" ; | |||
;asigL, asigR diskin2 "Seashore.wav",1,0,1 ;USE SOUND FILE FOR TESTING | |||
asigL, asigR ins | |||
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME | |||
kfreq portk gkfreq, kporttime ;PORTAMENTO IS APPLIED TO 'SMOOTH' SLIDER MOVEMENT | |||
kq portk gkq, kporttime ;PORTAMENTO IS APPLIED TO 'SMOOTH' SLIDER MOVEMENT | |||
ksep portk gksep, kporttime ;PORTAMENTO IS APPLIED TO 'SMOOTH' SLIDER MOVEMENT | |||
kSwitch changed gkord,gkmode ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL BRANCH | |||
UPDATE: ;BEGIN A REINITIALISATION PASS FROM HERE | |||
aphaserl phaser2 asigL, kfreq, kq, gkord, gkmode, ksep, gkfeedback ; PHASER2 IS APPLIED TO THE LEFT CHANNEL | |||
aphaserr phaser2 asigR, kfreq, kq, gkord, gkmode, ksep, gkfeedback ; PHASER1 IS APPLIED TO THE RIGHT CHANNEL | |||
rireturn ;RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
amixL ntrpol asigL,aphaserl,gkmix | |||
amixR ntrpol asigR,aphaserr,gkmix | |||
outs amixL*gklevel, amixR*gklevel ;PHASER OUTPUTS ARE SENT OUT | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,154 @@ | |||
; Reverse.csd | |||
; Iain McCurdy [2012] | |||
; | |||
; Buffers audio for reversed (and forward) playback. | |||
; | |||
; INSTRUCTIONS | |||
; ------------ | |||
; Time L -- length of the left channel delay buffer | |||
; Time R -- length of the right channel delay buffer | |||
; Spread -- stereo spread of the two channel. 1 = hard left and right | |||
; Mix -- dry/wet mix | |||
; Level -- output level | |||
; Reverse -- (switch) activate reversed buffer | |||
; Forward -- (switch) activate forward buffer | |||
; Link L&R -- (switch) pair the left and right Time controls (functions differently if 'Time Mod' is activated) | |||
; Time Mod -- (switch) if this switch is on the delay times for both channels will modulate randomly between 'Time L' and 'Time R'. If 'Link L&R' is active this modulation is done in tandem for both channels. | |||
; Pan Mod -- (switch) if this switch is on the panning modulates randomly | |||
<Cabbage> | |||
form caption("Reverse") size(455, 95), pluginID("rvrs") | |||
image bounds(0, 0, 455, 95), colour("darkslategrey"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 10, 75, 75), text("Time L"), channel("timeL"), range(0.010, 4, 1, 0.5,0.001),colour(darkslategrey) fontcolour(255,255,200), trackercolour(lightblue) | |||
rslider bounds( 80, 10, 75, 75), text("Time R"), channel("timeR"), range(0.010, 4, 1, 0.5,0.001),colour(darkslategrey) fontcolour(255,255,200), trackercolour(lightblue) | |||
rslider bounds(150, 10, 75, 75), text("Spread"), channel("spread"), range(0, 1.00, 1), colour(darkslategrey) fontcolour(255,255,200), trackercolour(lightblue) | |||
rslider bounds(220, 10, 75, 75), text("Mix"), channel("mix"), range(0, 1.00, 1), colour(darkslategrey) fontcolour(255,255,200), trackercolour(lightblue) | |||
rslider bounds(290, 10, 75, 75), text("Level"), channel("level"), range(0, 1.00, 1, 0.5), colour(darkslategrey) fontcolour(255,255,200), trackercolour(lightblue) | |||
checkbox bounds(370, 12, 100, 12), text("Reverse"), channel("reverse"), value(1), colour(255,255, 50) fontcolour(255,255,200) | |||
checkbox bounds(370, 27, 100, 12), text("Forward"), channel("forward"), value(0), colour(255,255, 50) fontcolour(255,255,200) | |||
checkbox bounds(370, 42, 100, 12), text("Link L&R"), channel("link"), value(0), colour(255,255, 50) fontcolour(255,255,200) | |||
checkbox bounds(370, 57, 100, 12), text("Time Mod."), channel("TMod"), value(0), colour(255,255, 50) fontcolour(255,255,200) | |||
checkbox bounds(370, 72, 100, 12), text("Pan Mod."), channel("PMod"), value(0), colour(255,255, 50) fontcolour(255,255,200) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
opcode Reverse, a, aKkkk ;nb. CAPITAL K CREATE A K-RATE VARIABLE THAT HAS A USEFUL VALUE ALSO AT I-TIME | |||
ain,ktime,kreverse,kforward,klink xin ;READ IN INPUT ARGUMENTS | |||
;four windowing envelopes. An appropriate one will be chosen based on the reversed chunk duration | |||
ienv1 ftgenonce 0, 0, 131072, 7, 0, 1024, 1, 131072-(1024*2), 1, 1024, 0 ;for longest chunk times | |||
ienv2 ftgenonce 0, 0, 131072, 7, 0, 4096, 1, 131072-(4096*2), 1, 4096, 0 | |||
ienv3 ftgenonce 0, 0, 131072, 7, 0,16384, 1, 131072-(16384*2), 1, 16384, 0 | |||
ienv4 ftgenonce 0, 0, 131072, 7, 0,32768, 1, 131072-(32768*2), 1, 32768, 0 ;for shortest chunk times | |||
atime interp ktime ;INTERPOLATE TO CREATE A-RATE VERSION OF K-TIME | |||
iratio = octave(1) | |||
ktrig trigger klink,0.5,0 ;if 'Link L&R' is turned on restart delay time phasors to ensure sync between the two channels | |||
if ktrig=1 then | |||
reinit RESTART_PHASOR | |||
endif | |||
RESTART_PHASOR: | |||
aptr phasor (2/ktime) ;CREATE A MOVING PHASOR THAT WITH BE USED TO TAP THE DELAY BUFFER | |||
rireturn | |||
if ktime<0.2 then ;IF CHUNK TIME IS LESS THAN 0.2... (VERY SHORT) | |||
aenv table3 aptr,ienv4,1 ;CREATE AMPLITUDE ENVELOPE | |||
elseif ktime<0.4 then | |||
aenv table3 aptr,ienv3,1 | |||
elseif ktime<2 then | |||
aenv table3 aptr,ienv2,1 | |||
else ;other longest bracket of delay times | |||
aenv table3 aptr,ienv1,1 | |||
endif | |||
aptr = aptr*atime ;SCALE PHASOR ACCORDING TO THE LENGTH OF THE DELAY TIME CHOSEN BY THE USER | |||
abuffer delayr 4 ;+ 0.01 ;CREATE A DELAY BUFFER | |||
abwd deltap3 aptr ;READ AUDIO FROM A TAP WITHIN THE DELAY BUFFER | |||
afwd deltap3 atime ;FORWARD DELAY | |||
delayw ain ;WRITE AUDIO INTO DELAY BUFFER | |||
;rireturn ;RETURN FROM REINITIALISATION PASS | |||
xout (abwd*aenv*kreverse)+(afwd*kforward) ;SEND AUDIO BACK TO CALLER INSTRUMENT. APPLY AMPLITUDE ENVELOPE TO PREVENT CLICKS. | |||
endop | |||
instr 1 | |||
ktimeL chnget "timeL" | |||
ktimeR chnget "timeR" | |||
kspread chnget "spread" | |||
kmix chnget "mix" | |||
klevel chnget "level" | |||
kreverse chnget "reverse" | |||
kforward chnget "forward" | |||
kTMod chnget "TMod" | |||
kPMod chnget "PMod" | |||
/* LINK */ | |||
klink chnget "link" ; if 'Link L&R' is selected | |||
if klink=1&&kTMod=0 then | |||
ktrigL changed ktimeL,klink | |||
ktrigR changed ktimeR | |||
if ktrigL=1 then | |||
chnset ktimeL,"timeR" | |||
elseif ktrigR=1 then | |||
chnset ktimeR,"timeL" | |||
endif | |||
endif | |||
a1,a2 ins | |||
if kTMod=1 then ; if time modulation is selected.... | |||
if klink=0 then ; and if 'link L&R' is off... | |||
ktime1 rspline ktimeL,ktimeR,0.2,1 ; generate delay time value: random spline between ktimeL and ktimeR | |||
ktime2 rspline ktimeL,ktimeR,0.2,1 | |||
ktimeL limit ktime1,0.01,4 ; assign to delay time variable and limit to prevent out of range values (possible with rspline) | |||
ktimeR limit ktime2,0.01,4 | |||
else | |||
ktime rspline ktimeL,ktimeR,0.2,1 | |||
ktimeL limit ktime,0.01,4 | |||
ktimeR = ktimeL ; right channel delay the same as left | |||
endif | |||
endif | |||
arev1 Reverse a1,ktimeL,kreverse,kforward,klink ; call UDO | |||
arev2 Reverse a2,ktimeR,kreverse,kforward,klink | |||
if kPMod=1 then ; if panning modulation is on... | |||
kpan rspline 0,1,0.2,1 ; pan position generated as a random spline | |||
ap1 = (arev1*kpan) + (arev2*(1-kpan)) ; create new left channel | |||
ap2 = (arev1*(1-kpan)) + (arev2*kpan) ; create new right channel | |||
arev1 = ap1 ; reassign left channel to new left channel | |||
arev2 = ap2 ; reassign right channel to new right channel | |||
endif | |||
a1 ntrpol a1,arev1,kmix ; dry/wet mix | |||
a2 ntrpol a2,arev2,kmix | |||
a1 = a1 * klevel ; apply level control | |||
a2 = a2 * klevel | |||
kspread scale kspread,1,0.5 ; rescale from range 0 - 1 to 0.5 - 1 | |||
aL sum a1*kspread,a2*(1-kspread) ; create stereo mix according to Spread control | |||
aR sum a2*kspread,a1*(1-kspread) ; create stereo mix according to Spread control | |||
outs aL,aR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,481 @@ | |||
StutterFilter.csd | |||
Written by Iain McCurdy |2013| | |||
<Cabbage> | |||
form caption("Stutter Filter") size(800, 510), pluginID("stfl") | |||
image bounds(290, 475,225, 30), colour(100,100,100), shape("rounded"), outline("white"), line(4) | |||
snapshot bounds(305,480,200, 20), preset("StutterFilter"), master(1), items("Preset 1", "Preset 2", "Preset 3", "Preset 4", "Preset 5", "Preset 6", "Preset 7", "Preset 8", "Preset 9", "Preset 10") | |||
label bounds( 8, 496, 200, 12), text("Iain McCurdy [2013]"), FontColour("grey") | |||
; METRONOME | |||
groupbox bounds( 0, 0, 80, 60), text("INPUT"), plant("input"), FontColour(silver),colour(50,50,50){ | |||
checkbox bounds( 5, 30, 80, 13), text("Test Tone") channel("TestTone"), FontColour("White"), colour(255,100,100) value(1) | |||
} | |||
; METRONOME | |||
groupbox bounds( 0, 60, 80,410), text("TEMPO"), plant("metronome"), FontColour(silver),colour(50,50,50){ | |||
checkbox bounds( 10, 23, 80, 13), text("Start") channel("MetroStart"), FontColour("White"), colour(lightblue) value(1) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("BPM"), channel("tempo"), range(1, 500, 60) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("Jitter"), channel("ratejit"), range(0, 4.00, 1.4) | |||
} | |||
; AMPLITUDE ENVELOPE | |||
groupbox bounds( 80, 0, 80,470), text("AMP ENV"), plant("amplitudeenvelope"), FontColour(silver),colour(60,60,60){ | |||
rslider bounds( 5, 25, 70, 70), colour(200,200,250,220), text("Jitter"), channel("ampjit"), range(0, 1.00, 0) | |||
rslider bounds( 5,105, 70, 70), colour(200,200,250,220), text("Max.Dur."), channel("maxdur"), range(0.01, 5.00, 0.1, 0.5, 0.01) | |||
rslider bounds( 5,185, 70, 70), colour(200,200,250,220), text("Smoothing"), channel("smoothing"), range(0.005, 0.01, 0.005, 1, 0.0001) | |||
combobox bounds( 5,265, 70, 20), channel("shape"), value(1), text("Square", "Inv.Sq.","Smooth","Lin.","Exp.") | |||
rslider bounds( 5,295, 70, 70), colour(200,200,250,220), text("Layer Spread"), channel("LayerSpread"), range(0, 1.00, 0) | |||
} | |||
; FILTER ENVELOPE | |||
groupbox bounds(160, 0, 80, 470), text("FILT ENV"), plant("filterenvelope"), FontColour(silver),colour(30,30,30){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("EnvFlt"), FontColour("White"), colour("lime") value(0) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("Start"), channel("EnvStart"), range(0, 1.00, 1) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("End"), channel("EnvEnd"), range(0, 1.00,0) | |||
} | |||
; FILTER | |||
groupbox bounds(240, 0, 80, 470), text("FILTER"), plant("filter"), FontColour(silver),colour(40,40,40){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("FiltOnOff"), FontColour("White"), colour(lightblue) value(1) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("Filt.Freq."), channel("cfoct"), range(4.00, 14, 8) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("Filt.Jitter"), channel("cfjit"), range(0, 7.00, 2.83) | |||
rslider bounds( 5,200, 70, 70), colour(200,200,250,220), text("Q"), channel("bw"), range(0.01, 5, 0.5, 0.5,0.001) | |||
rslider bounds( 5,280, 70, 70), colour(200,200,250,220), text("Q jit"), channel("bwjit"), range(0, 4.00, 0) | |||
rslider bounds( 5,360, 70, 70), colour(200,200,250,220), text("Filt.Spline"), channel("fltspline"), range(0, 2.00, 0) | |||
combobox bounds( 5,440, 70, 20), channel("FiltType"), value(1), text("resonz", "reson","Butlp","Moog") | |||
} | |||
; PITCH SHIFTER | |||
groupbox bounds(320, 0, 80, 470), text("PITCH"), plant("pitchshifter"), FontColour(silver),colour(70,70,70){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("PitchOnOff"), FontColour("White"), colour("lightblue") value(0) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("Min"), channel("pitchmin"), range(-96.00, 96, -6) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("Max"), channel("pitchmax"), range(-96.00, 96, 12) | |||
checkbox bounds( 5,200, 70, 15), text("Quantize") channel("pchquant"), FontColour("White"), colour("lime") value(0) | |||
rslider bounds( 5,220, 70, 70), colour(200,200,250,220), text("Granularity"), channel("dlt"), range(0.001, 5, 0.2, 0.375, 0.0001) | |||
} | |||
; WAVESET | |||
groupbox bounds(400, 0, 80, 470), text("WAVESET"), plant("waveset"), FontColour(silver),colour(45,45,45){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("WsetOnOff"), FontColour("White"), colour("lightblue") value(0) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("Chance"), channel("wsetchance"), range(0, 1.00, 0.5) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("Min"), channel("wsetmin"), range(1, 200, 1, 1,1) | |||
rslider bounds( 5,200, 70, 70), colour(200,200,250,220), text("Max"), channel("wsetmax"), range(1, 200,10, 1,1) | |||
} | |||
; FREQUENCY SHIFTER | |||
groupbox bounds(480, 0, 82, 470), text("F.SHIFT"), plant("frequencyshifter"), FontColour(silver),colour(55,55,55){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("FshiftOnOff"), FontColour("White"), colour("lightblue") value(0) | |||
rslider bounds( 5, 40, 70, 70), colour(200,200,250,220), text("Chance"), channel("fshiftchance"), range(0, 1.00, 0.5) | |||
rslider bounds( 5,120, 70, 70), colour(200,200,250,220), text("Shift"), channel("fshift"), range(-4000, 4000, 0) | |||
rslider bounds( 5,200, 70, 70), colour(200,200,250,220), text("Jitter"), channel("fshiftjit"), range( 0, 4000, 2000) | |||
} | |||
; WAVEGUIDE | |||
groupbox bounds(560, 0,160, 470), text("WAVEGUIDE"), plant("waveguide"), FontColour(silver),colour(35,35,35){ | |||
checkbox bounds( 10, 23, 70, 13), text("On/Off") channel("WguideOnOff"), FontColour("White"), colour("lightblue") value(0) | |||
checkbox bounds( 10, 80, 70, 15), text("Quantize") channel("wgquant"), FontColour("White"), colour("lime") value(0) | |||
rslider bounds( 80, 25, 70, 70), colour(200,200,250,220), text("Chance"), channel("wgchance"), range(0, 1.00, 0.5) | |||
rslider bounds( 5,105, 70, 70), colour(200,200,250,220), text("Freq.Min"), channel("wgfreqmin"), range(0.00,127, 60) | |||
rslider bounds( 80,105, 70, 70), colour(200,200,250,220), text("Freq.Max"), channel("wgfreqmax"), range(0.00,127, 100) | |||
rslider bounds( 5,185, 70, 70), colour(200,200,250,220), text("F.back.Min"), channel("wgFBmin"), range(0, 0.999, 0.9, 2, 0.0001) | |||
rslider bounds( 80,185, 70, 70), colour(200,200,250,220), text("F.back.Max"), channel("wgFBmax"), range(0, 0.999, 0.95, 2, 0.0001) | |||
rslider bounds( 5,265, 70, 70), colour(200,200,250,220), text("Damp.Min"), channel("wgCFmin"), range(4, 14, 8) | |||
rslider bounds( 80,265, 70, 70), colour(200,200,250,220), text("Damp.Max"), channel("wgCFmax"), range(4, 14, 13) | |||
} | |||
; PANNING | |||
groupbox bounds(720, 0, 80, 185), text("PANNING"), plant("panning"), FontColour(silver),colour(65,65,65){ | |||
rslider bounds( 5, 25, 70, 70), colour(200,200,250,220), text("L-R"), channel("pan"), range(0.00, 1, 0.5) | |||
rslider bounds( 5,105, 70, 70), colour(200,200,250,220), text("Spread"), channel("panjit"), range(0.00, 0.5, 0.25) | |||
} | |||
; OUTPUT | |||
groupbox bounds(720,185, 80, 285), text("OUTPUT"), plant("output"), FontColour(silver),colour(50,50,50){ | |||
rslider bounds( 5, 25, 70, 70), colour(200,200,250,220), text("Gain"), channel("gain"), range(0, 50.00, 1, 0.5, 0.001) | |||
rslider bounds( 5,105, 70, 70), colour(200,200,250,220), text("Layers"), channel("layers"), range(1, 20, 1, 1, 1) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
seed 0 | |||
;Author: Iain McCurdy (2012) | |||
gisq ftgen 0,0,32768,7, 0,1,0, 1,1, 32768-3,1, 1,0 | |||
gisine ftgen 0,0,32768,10,1 | |||
gihanning ftgen 0,0,32768,20,2 | |||
opcode FreqShifter,a,aki | |||
ain,kfshift,ifn xin ;READ IN INPUT ARGUMENTS | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
xout aFS ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
opcode PitchShifterDelaySt,aa,aakkki | |||
ainL,ainR,ktrans,kdlt,kFB,imaxdlt xin | |||
adlt interp kdlt ;INTERPOLATE DELAY TIME CONTROL TO CREATE A-RATE VERSION | |||
ihalfsine ftgen 0, 0, 1025, 9, 0.5, 1, 0 ;HALF SINE WINDOW FUNCTION USED FOR AMPLITUDE ENVELOPING | |||
koctfract = ktrans/12 ;TRANSPOSITION AS FRACTION OF AN OCTAVE | |||
kratio = octave(koctfract) ;RATIO TO PRODUCE PITCH SHIFT | |||
krate = (kratio-1)/kdlt ;SUBTRACT 1/1 SPEED | |||
aphase1 phasor -krate ;MOVING PHASE 1-0 | |||
aphase2 phasor -krate, .5 ;MOVING PHASE 1-0 - PHASE OFFSET BY 180 DEGREES (.5 RADIANS) | |||
agate1 tablei aphase1, ihalfsine, 1, 0, 1 ;WINDOW FUNC =HALF SINE | |||
agate2 tablei aphase2, ihalfsine, 1, 0, 1 ;WINDOW FUNC =HALF SINE | |||
aoutL,aoutR init 0 ;INITIALISE OUTPUT SIGNAL (NEEDED IN ORDER TO CREATE FEEDBACK SIGNAL) | |||
iws = 4 ;WINDOW SIZE FOR INTERPOLATION - INCREASE THIS FOR IMPROVED QUALITY AT SOME CPU COST | |||
aout1L, aout1R vdelayxs ainL+(aoutL*kFB), ainR+(aoutR*kFB), aphase1*adlt, imaxdlt, iws | |||
aout2L, aout2R vdelayxs ainL+(aoutL*kFB), ainR+(aoutR*kFB), aphase2*adlt, imaxdlt, iws | |||
aoutL = ((aout1L * agate1)+(aout2L * agate2))*0.5 | |||
aoutR = ((aout1R * agate1)+(aout2R * agate2))*0.5 | |||
xout aoutL, aoutR ;SUM AND RESCALE PITCH SHIFTER OUTPUTS (LEFT CHANNEL) | |||
endop | |||
opcode StutterFilter,aa,aakkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkii | |||
ain1,ain2,kMetroStart,ktempo,kratejit1,kampjit1,kmaxdur,ksmoothing,kEnvFlt,kshape,kLayerSpread,kEnvStart,kEnvEnd,kFiltOnOff,kcfoct1,kcfjit1,kbw1,kbwjit1,kfltspline1,kFiltType,kpan1,\ | |||
kpanjit1,kPitchOnOff,kpitchmin,kpitchmax,kpchquant,kdlt,kWsetOnOff,kwsetchance,kwsetmin1,kwsetmax1,kFshiftOnOff,kfshiftchance,kfshift1,kfshiftjit1,\ | |||
kWguideOnOff,kwgchance,kwgfreqmin1,kwgfreqmax1,kwgquant,kwgFBmin1,kwgFBmax1,kwgCFmin1,kwgCFmax1,icount,ilayers xin | |||
a1 = ain1 | |||
a2 = ain2 | |||
krate = ktempo/15 ; krate (assuming 4 beats per bar) | |||
/* PORTAMENTO */ | |||
kporttime linseg 0,0.001,0.01 | |||
kbw portk kbw1,kporttime | |||
/* TRIGGER RANDOM VALUES */ | |||
kmetro init 1 | |||
kratejit trandom kmetro, -kratejit1, kratejit1 | |||
kampjit trandom kmetro, 0, kampjit1 | |||
ktrans trandom kmetro, kpitchmin, kpitchmax | |||
kwsetrep trandom kmetro, kwsetmin1+0.999999, kwsetmax1+0.999999 | |||
kwsetrep = int(kwsetrep) | |||
kfshiftjit trandom kmetro, -octcps(kfshiftjit1), octcps(kfshiftjit1) | |||
ksign = (kfshiftjit<0?-1:1) | |||
kfshiftjit = cpsoct(abs(kfshiftjit))*ksign | |||
kwgfreq trandom kmetro, kwgfreqmin1, kwgfreqmax1 | |||
kwgFB trandom kmetro, kwgFBmin1, kwgFBmax1 | |||
kwgCF trandom kmetro, kwgCFmin1, kwgCFmax1 | |||
/* FILTER */ | |||
if kFiltOnOff=0 kgoto SKIP_FILTER | |||
kcfoct portk kcfoct1,kporttime | |||
if kfltspline1==0 then ; if filt.spline switch is at zero... | |||
kcfjit trandom kmetro, 0, kcfjit1 ; ... | |||
kbwjit trandom kmetro, 0, kbwjit1 | |||
kcfoct limit kcfoct+kcfjit,4,14 | |||
kcf = cpsoct(kcfoct) | |||
kbw = kcf*(kbw*octave(kbwjit)) | |||
else ; otherwise (filt.spline is greater than zero)... | |||
kfltspline limit kfltspline1,0.1,10 ; ... | |||
kcfoct randomi kcfoct-kcfjit,kcfoct+kcfjit,kfltspline ; | |||
kcf limit cpsoct(kcfoct),50,sr/3 | |||
kbwjit rspline 0,kbwjit,kfltspline*0.5,kfltspline | |||
kbw = kcf*(kbw*octave(kbwjit)) | |||
endif | |||
if kFiltType=1 then | |||
a1 resonr a1,kcf,kbw,1 | |||
a2 resonr a2,kcf,kbw,1 | |||
elseif kFiltType=2 then | |||
a1 reson a1,kcf,kbw,1 | |||
a2 reson a2,kcf,kbw,1 | |||
elseif kFiltType=3 then | |||
a1 clfilt a1,kcf,0,2 | |||
a2 clfilt a2,kcf,0,2 | |||
elseif kFiltType=4 then | |||
kbw chnget "bw" | |||
kbw limit (kbw-0.01)/(5-0.01),0,0.99 | |||
a1 moogladder a1,kcf,kbw | |||
a2 moogladder a2,kcf,kbw | |||
endif | |||
SKIP_FILTER: | |||
/* METRONOME */ | |||
krate limit krate * octave(kratejit),0,50 | |||
kmetro metro krate*kMetroStart | |||
/* PITCH SHIFTER */ | |||
if kPitchOnOff=0 kgoto SKIP_PITCH | |||
kFB = 0 | |||
imaxdlt = 5 | |||
if kpchquant=1 then | |||
ktrans = int(ktrans) | |||
endif | |||
a1,a2 PitchShifterDelaySt a1,a2,ktrans,kdlt,kFB,imaxdlt | |||
SKIP_PITCH: | |||
/* FREQUENCY SHIFTER */ | |||
if kFshiftOnOff=0 kgoto SKIP_FSHIFT | |||
kdice trandom kmetro,0,1 | |||
if kdice<kfshiftchance then | |||
kfshift = kfshift1+kfshiftjit | |||
if kshape=2 then | |||
kfshift portk kfshift,kporttime | |||
endif | |||
a1 FreqShifter a1,kfshift,gisine | |||
a2 FreqShifter a2,kfshift,gisine | |||
endif | |||
SKIP_FSHIFT: | |||
/* WAVESET */ | |||
if kWsetOnOff=0 kgoto SKIP_WAVESET | |||
if kmetro=1 then | |||
reinit RESET_WAVESET | |||
endif | |||
RESET_WAVESET: | |||
awset1 waveset a1, kwsetrep, 3600 | |||
awset2 waveset a2, kwsetrep, 3600 | |||
rireturn | |||
kdice trandom kmetro,0,1 | |||
kamp init 0 | |||
if kwsetrep>1&&kdice<kwsetchance then | |||
a1 = awset1*0.7 | |||
a2 = awset2*0.7 | |||
endif | |||
SKIP_WAVESET: | |||
/* AMPLITUDE ENVELOPE */ | |||
if kmetro=1 then | |||
reinit RESTART_ENV | |||
endif | |||
RESTART_ENV: | |||
idur limit 1/i(krate),0,i(kmaxdur) | |||
iEnvAmp = (1-i(kampjit))^2 | |||
if i(kshape)=1 then ; square | |||
kamp linseg 0,i(ksmoothing),iEnvAmp, (idur*0.5)-(i(ksmoothing)*2), iEnvAmp, i(ksmoothing), 0 | |||
elseif i(kshape)=2 then ; inverse square | |||
kamp linseg 1,i(ksmoothing),1-iEnvAmp, (idur*0.5)-(2*i(ksmoothing)), 1-iEnvAmp, i(ksmoothing), 1 | |||
elseif i(kshape)=3 then ; hanning window | |||
kamp oscil1i 0, iEnvAmp, idur, gihanning | |||
elseif i(kshape)=4 then ; linear decay | |||
kamp linseg 0,i(ksmoothing),iEnvAmp, (idur*0.5)-i(ksmoothing), 0 | |||
elseif i(kshape)=5 then ; exponential decay | |||
kamp transeg 0,i(ksmoothing),2,iEnvAmp, (idur*0.5)-i(ksmoothing),-2,0 | |||
endif | |||
kamp portk kamp,kporttime *0.01 | |||
aamp interp kamp ; INTERPOLATE K-RATE LFO AND CREATE A-RATE VARIABLE | |||
/* FILTER ENVELOPE */ | |||
if kEnvFlt=1 then | |||
kenv = ((kamp*kEnvStart)*(kEnvStart-kEnvEnd))+kEnvEnd | |||
a1 clfilt a1,cpsoct(4+(kenv*10)),0,2 | |||
a2 clfilt a2,cpsoct(4+(kenv*10)),0,2 | |||
endif | |||
rireturn | |||
/* PANNING */ | |||
kpanjit trandom kmetro, -kpanjit1, kpanjit1 | |||
kpan limit kpan1+kpanjit,0,1 | |||
a1 = a1*aamp*kpan | |||
a2 = a2*aamp*(1-kpan) | |||
/* WGUIDE */ | |||
if kWguideOnOff=0 kgoto SKIP_WAVEGUIDE | |||
kchanceval trandom kmetro, 0, 1 | |||
if kchanceval<kwgchance then | |||
if kwgquant=1 then | |||
kwgfreq = int(kwgfreq) | |||
endif | |||
kwgfreq portk cpsmidinn(kwgfreq),kporttime*0.01 | |||
awgfreq interp kwgfreq | |||
a1 wguide1 a1, awgfreq,cpsoct(kwgCF),kwgFB | |||
a2 wguide1 a2, awgfreq,cpsoct(kwgCF),kwgFB | |||
a1 dcblock2 a1 | |||
a2 dcblock2 a2 | |||
endif | |||
SKIP_WAVEGUIDE: | |||
kDelTim = ((icount-1) * ((1/krate)/ilayers))*(kLayerSpread*2) | |||
;kDelTim portk kDelTim, kporttime*8 | |||
if kDelTim>0 then | |||
aDelTim interp kDelTim | |||
a1, a2 vdelayxs a1, a2, aDelTim, 10, 4 | |||
endif | |||
amix1 = 0 | |||
amix2 = 0 | |||
if icount<ilayers then | |||
amix1,amix2 StutterFilter ain1,ain2,kMetroStart,ktempo,kratejit1,kampjit1,kmaxdur,ksmoothing,kEnvFlt,kshape,kLayerSpread,kEnvStart,kEnvEnd,kFiltOnOff,kcfoct1,kcfjit1,kbw1,kbwjit1,kfltspline1,kFiltType,kpan1,\ | |||
kpanjit1,kPitchOnOff,kpitchmin,kpitchmax,kpchquant,kdlt,kWsetOnOff,kwsetchance,kwsetmin1,kwsetmax1,kFshiftOnOff,kfshiftchance,kfshift1,kfshiftjit1,\ | |||
kWguideOnOff,kwgchance,kwgfreqmin1,kwgfreqmax1,kwgquant,kwgFBmin1,kwgFBmax1,kwgCFmin1,kwgCFmax1,icount+1,ilayers | |||
endif | |||
xout a1+amix1,a2+amix2 | |||
endop | |||
instr 1 | |||
klayers chnget "layers" ; | |||
kTestTone chnget "TestTone" | |||
/* METRONOME */ | |||
kMetroStart chnget "MetroStart" ; read in widgets | |||
ktempo chnget "tempo" ; | |||
kratejit chnget "ratejit" ; | |||
/* AMPLITUDE ENVELOPE */ | |||
kampjit chnget "ampjit" ; | |||
kmaxdur chnget "maxdur" ; | |||
ksmoothing chnget "smoothing" ; | |||
kEnvFlt chnget "EnvFlt" ; | |||
kshape chnget "shape" ; | |||
kshape init 1 ; ensure not zero at i-time | |||
kLayerSpread chnget "LayerSpread" ; | |||
/* FILTER ENVELOPE */ | |||
kEnvStart chnget "EnvStart" ; | |||
kEnvEnd chnget "EnvEnd" ; | |||
/* FILTER */ | |||
kFiltOnOff chnget "FiltOnOff" ; | |||
kcfoct chnget "cfoct" ; | |||
kcfjit chnget "cfjit" ; | |||
kbw chnget "bw" ; | |||
kbwjit chnget "bwjit" ; | |||
kfltspline chnget "fltspline" ; | |||
kFiltType chnget "FiltType" ; | |||
kFiltType init 1 ; ensure not zero at i-time | |||
/* PANNING */ | |||
kpan chnget "pan" | |||
kpanjit chnget "panjit" | |||
/* PITCH SHIFTER */ | |||
kPitchOnOff chnget "PitchOnOff" | |||
kpitchmin chnget "pitchmin" | |||
kpitchmax chnget "pitchmax" | |||
kpchquant chnget "pchquant" | |||
kdlt chnget "dlt" | |||
/* WAVESET */ | |||
kWsetOnOff chnget "WsetOnOff" | |||
kwsetchance chnget "wsetchance" | |||
kwsetmin chnget "wsetmin" | |||
kwsetmax chnget "wsetmax" | |||
/* FREQUENCY SHIFTER */ | |||
kFshiftOnOff chnget "FshiftOnOff" | |||
kfshiftchance chnget "fshiftchance" | |||
kfshift chnget "fshift" | |||
kfshiftjit chnget "fshiftjit" | |||
/* WAVEGUIDE */ | |||
kWguideOnOff chnget "WguideOnOff" | |||
kwgchance chnget "wgchance" | |||
kwgfreqmin chnget "wgfreqmin" | |||
kwgfreqmax chnget "wgfreqmax" | |||
kwgquant chnget "wgquant" | |||
kwgFBmin chnget "wgFBmin" | |||
kwgFBmax chnget "wgFBmax" | |||
kwgCFmin chnget "wgCFmin" | |||
kwgCFmax chnget "wgCFmax" | |||
/* OUTPUT */ | |||
kgain chnget "gain" | |||
/* SOUND INPUT */ | |||
if kTestTone=1 then | |||
a1 vco2 1,100 | |||
a2 = a1 | |||
else | |||
a1,a2 ins | |||
a1,a2 diskin2 "Songpan.wav",1,0,1 | |||
endif | |||
ktrig changed klayers | |||
if ktrig==1 then | |||
reinit RESTART_LAYERS | |||
endif | |||
RESTART_LAYERS: | |||
iGainScale = i(klayers)^0.3 | |||
print iGainScale | |||
a1,a2 StutterFilter a1,a2,kMetroStart,ktempo,kratejit,kampjit,kmaxdur,ksmoothing,kEnvFlt,kshape,kLayerSpread,kEnvStart,kEnvEnd,kFiltOnOff,kcfoct,kcfjit,kbw,kbwjit,kfltspline,kFiltType,kpan,\ | |||
kpanjit,kPitchOnOff,kpitchmin,kpitchmax,kpchquant,kdlt,kWsetOnOff,kwsetchance,kwsetmin,kwsetmax,kFshiftOnOff,kfshiftchance,kfshift,kfshiftjit,\ | |||
kWguideOnOff,kwgchance,kwgfreqmin,kwgfreqmax,kwgquant,kwgFBmin,kwgFBmax,kwgCFmin,kwgCFmax,1,i(klayers) | |||
rireturn | |||
outs (a1*kgain)/iGainScale, (a2*kgain)/iGainScale ; scale amplitude according to the number of layers present | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ; scan for changes to number of layers control | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,108 @@ | |||
Units for the delay are assumed to be demi-semiquavers. | |||
Knob for Rhy.Mult. will be replaced with a combobox once comboboxes work in plugins within hosts. | |||
Width control only applicable when ping-pong delay selected. | |||
If 'external' is selected as clock source tempo is taken from the host's BPM. | |||
<Cabbage> | |||
form caption("Tempo Delay") size(565, 90), pluginID("TDel") | |||
image pos(0, 0), size(565, 90), colour("LightBlue"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Tempo"), fontcolour("black"), channel("tempo"), range(40, 500, 90, 1, 1), colour(100,100,255),trackercolour(100,100,150) | |||
rslider bounds(75, 11, 70, 70), text("Rhy.Mult."), fontcolour("black"), channel("RhyMlt"), range(1, 16, 4, 1, 1), colour(100,100,255),trackercolour(100,100,150) | |||
rslider bounds(140, 11, 70, 70), text("Damping"), fontcolour("black"), channel("damp"), range(20,20000, 20000,0.5), colour(100,100,255),trackercolour(100,100,150) | |||
rslider bounds(205, 11, 70, 70), text("Feedback"), fontcolour("black"), channel("fback"), range(0, 1.00, 0.8), colour(100,100,255),trackercolour(100,100,150) | |||
rslider bounds(270, 11, 70, 70), text("Width"), fontcolour("black"), channel("width"), range(0, 1.00, 1), colour(100,100,255),trackercolour(100,100,150) | |||
button bounds(340, 10, 80, 20), text("Internal","External"), channel("ClockSource"), value(0), fontcolour("lime") | |||
label bounds(345, 30, 80, 12), text("Clock Source"), FontColour("black") | |||
button bounds(340, 50, 80, 20), text("Simple","Ping-pong"), channel("DelType"), value(1), fontcolour("lime") | |||
label bounds(348, 70, 80, 12), text("Delay Type"), FontColour("black") | |||
rslider bounds(420, 11, 70, 70), text("Mix"), fontcolour("black"), channel("mix"), range(0, 1.00, 0.5), colour(100,100,255),trackercolour(100,100,150) | |||
rslider bounds(485, 11, 70, 70), text("Level"), fontcolour("black"), channel("level"), range(0, 1.00, 1), colour(100,100,255),trackercolour(100,100,150) | |||
} | |||
hostbpm channel("bpm") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kfback chnget "fback" ;read in widgets | |||
kdamp chnget "damp" ; | |||
kmix chnget "mix" ; | |||
klevel chnget "level" ; | |||
kbpm chnget "bpm" ; | |||
kRhyMlt chnget "RhyMlt" ; | |||
kClockSource chnget "ClockSource" ; | |||
kDelType chnget "DelType" ; | |||
kwidth chnget "width" ; | |||
if kClockSource==0 then ;if internal clock source has been chosen... | |||
ktempo chnget "tempo" ;tempo taken from GUI knob control | |||
else | |||
ktempo chnget "bpm" ;tempo taken from host BPM | |||
ktempo limit ktempo,40,500 ;limit range of possible tempo values. i.e. a tempo of zero would result in a delay time of infinity. | |||
endif | |||
ktime = (60*kRhyMlt)/(ktempo*8) ;derive delay time. 8 in the denominator indicates that kRhyMult will be in demisemiquaver divisions | |||
atime interp ktime ;interpolate k-rate delay time to create an a-rate version which will give smoother results when tempo is modulated | |||
ainL,ainR ins ;read stereo inputs | |||
if kDelType==0 then ;if 'simple' delay type is chosen... | |||
abuf delayr 5 | |||
atapL deltap3 atime | |||
atapL tone atapL,kdamp | |||
delayw ainL+(atapL*kfback) | |||
abuf delayr 5 | |||
atapR deltap3 atime | |||
atapR tone atapR,kdamp | |||
delayw ainR+(atapR*kfback) | |||
else ;otherwise 'ping-pong' delay type must have been chosen | |||
;offset delay (no feedback) | |||
abuf delayr 5 | |||
afirst deltap3 atime | |||
afirst tone afirst,kdamp | |||
delayw ainL | |||
;left channel delay (note that 'atime' is doubled) | |||
abuf delayr 10 ; | |||
atapL deltap3 atime*2 | |||
atapL tone atapL,kdamp | |||
delayw afirst+(atapL*kfback) | |||
;right channel delay (note that 'atime' is doubled) | |||
abuf delayr 10 | |||
atapR deltap3 atime*2 | |||
atapR tone atapR,kdamp | |||
delayw ainR+(atapR*kfback) | |||
;create width control. note that if width is zero the result is the same as 'simple' mode | |||
atapL = afirst+atapL+(atapR*(1-kwidth)) | |||
atapR = atapR+(atapL*(1-kwidth)) | |||
endif | |||
amixL ntrpol ainL, atapL, kmix ;CREATE A DRY/WET MIX BETWEEN THE DRY AND THE EFFECT SIGNAL | |||
amixR ntrpol ainR, atapR, kmix ;CREATE A DRY/WET MIX BETWEEN THE DRY AND THE EFFECT SIGNAL | |||
outs amixL * klevel, amixR * klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,83 @@ | |||
<Cabbage> | |||
form caption("clfilt - Multi-Mode Filter") size(600, 90), pluginID("clfl") | |||
image bounds(0, 0, 600, 90), colour( 40,40,100), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 11, 70, 70), text("Freq."), colour( 40,40,100), fontcolour("white"), channel("cf"), range(20, 20000, 2000, 0.333), trackercolour("white") | |||
rslider bounds( 75, 11, 70, 70), text("N.Poles"), colour( 40,40,100), fontcolour("white"), channel("npol"), range(2,80,24,1,2), trackercolour("white") | |||
rslider bounds(140, 11, 70, 70), text("Ripple"), colour( 40,40,100), fontcolour("white"), channel("pbr"), range(0.1,50,14), trackercolour("white") | |||
rslider bounds(205, 11, 70, 70), text("Attenuation"), colour( 40,40,100), fontcolour("white"), channel("sba"), range(-120,-1,-60), trackercolour("white") | |||
combobox channel("type"), bounds(275, 12, 120, 20), value(1), text("Lowpass","Highpass") | |||
label bounds(320, 32,110, 12), text("Type"), fontcolour("white") | |||
combobox channel("kind"), bounds(275, 46, 120, 20), value(2), text("Butterworth","Chebychev type I","Chebychev type II") | |||
label bounds(313, 66,120, 12), text("Method"), fontcolour("white") | |||
rslider bounds(400, 11, 70, 70), text("Mix"), colour( 40,40,100), fontcolour("white"), channel("mix"), range(0,1.00,1), trackercolour("white") | |||
rslider bounds(465, 11, 70, 70), text("Level"), colour( 40,40,100), fontcolour("white"), channel("level"), range(0,1.00,0.3), trackercolour("white") | |||
checkbox channel("test"), pos(540, 35), text("TEST"), colour("yellow"), fontcolour("white"), size(100, 15), value(0) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2013) | |||
instr 1 ; widgets input | |||
gkcf chnget "cf" ; | |||
gknpol chnget "npol" ; | |||
gknpol init 2 | |||
gkpbr chnget "pbr" | |||
gksba chnget "sba" | |||
gktype chnget "type" | |||
gktype = gktype - 1 | |||
gktype init 0 | |||
gkkind chnget "kind" | |||
gkkind = gkkind - 1 | |||
gkkind init 0 | |||
gkmix chnget "mix" ; | |||
gklevel chnget "level" ; | |||
gktest chnget "test" | |||
endin | |||
instr 2 ; clfilt - multimode filter | |||
kporttime linseg 0,0.001,0.02 | |||
kcf portk gkcf,kporttime | |||
kmix portk gkmix,kporttime | |||
klevel portk gklevel,kporttime | |||
if gktest=0 then | |||
aL,aR ins | |||
else | |||
aL pinkish 0.5 | |||
aR = aL | |||
endif | |||
ktrig changed gktype, gknpol, gkkind, gkpbr, gksba | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
aFiltL clfilt aL, kcf, i(gktype), i(gknpol), i(gkkind), i(gkpbr), i(gksba) | |||
aFiltR clfilt aR, kcf, i(gktype), i(gknpol), i(gkkind), i(gkpbr), i(gksba) | |||
rireturn | |||
aL ntrpol aL,aFiltL,kmix | |||
aR ntrpol aR,aFiltR,kmix | |||
outs aL*klevel,aR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
i 2 0.01 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,96 @@ | |||
<Cabbage> | |||
form caption("clip") size(315, 90), pluginID("clip") | |||
image bounds(0, 0, 315, 90), colour( 0, 10, 20), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 11, 70, 70), text("Limit"), channel("limit"), range(0.001, 1, 1, 0.5,0.001) , colour(0,10,20), fontcolour(silver), trackercolour(lightblue) | |||
rslider bounds( 75, 11, 70, 70), text("Argument"), channel("arg"), range(0, 1.00, 0.5) , colour(0,10,20), fontcolour(silver), trackercolour(lightblue) | |||
combobox bounds(150, 15, 80,20), channel("method"), size(80,50), value(1), text("B.D.J.", "Sine", "Tanh") | |||
checkbox bounds(150, 45, 100, 20), channel("clip_light"), text("clip") fontcolour("white"), shape("rounded"), colour("red") | |||
rslider bounds(235, 11, 70, 70), text("Level"), channel("level"), range(0, 10.00, 0.7) , colour(0,10,20), fontcolour(silver), trackercolour(lightblue) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
gklimit chnget "limit" ;READ WIDGETS... | |||
gkmethod chnget "method" ; | |||
gkmethod init 1 | |||
gkmethod init i(gkmethod)-1 | |||
gkarg chnget "arg" | |||
gklevel chnget "level" ; | |||
;asigL, asigR diskin2 "Seashore.wav",1,0,1 ;OPTIONALLY USE A BUILT-IN WAVEFORM FOR TESTING | |||
asigL, asigR ins | |||
kSwitch changed gklimit, gkmethod, gkarg ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF A VARIABLE CHANGE INDICATOR IS RECEIVED... | |||
reinit START ;...BEGIN A REINITIALISATION PASS FROM LABEL 'START' | |||
endif ;END OF CONDITIONAL BRANCHING | |||
START: ;LABEL | |||
/* clip meter */ | |||
krmsL rms asigL | |||
krmsR rms asigR | |||
kon = 1 | |||
koff = 0 | |||
if(krmsL>gklimit||krmsR>gklimit) then | |||
chnset kon,"clip_light" | |||
else | |||
chnset koff,"clip_light" | |||
endif | |||
/*------------*/ | |||
aL clip asigL, i(gkmethod), i(gklimit), i(gkarg) | |||
aR clip asigR, i(gkmethod), i(gklimit), i(gkarg) | |||
rireturn ;RETURN TO PERFORMANCE PASSES FROM INITIALISATION PASS | |||
; outs aL*gklevel*(1/(gklimit^0.5)), aR*gklevel*(1/(gklimit^0.5)) ;pdclip OUTPUTS ARE SENT TO THE SPEAKERS | |||
outs aL*gklevel, aR*gklevel ;pdclip OUTPUTS ARE SENT TO THE SPEAKERS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,98 @@ | |||
<Cabbage> | |||
form caption("pdclip") size(315, 90), pluginID("pdcl") | |||
label bounds( 0, -8,315, 90), colour(20,100,100,200), fontcolour(70,150,150,200), text("pdclip"), shape("rounded"), outline("white"), line(4) | |||
image bounds( 0, 0,315, 90), colour(10,100,200,200), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 11, 70, 70), text("Width"), channel("width"), range(0, 1.00, 0),fontcolour("white"), colour(20, 70,120), trackercolour(255,255,25) | |||
rslider bounds( 75, 11, 70, 70), text("Centre"), channel("center"), range(-1.00, 1.00, 0),fontcolour("white"), colour(20, 70,120), trackercolour(255,255,25) | |||
combobox bounds(150, 20, 80, 20), channel("bipolar"), size(80,50), value(2), text("Unipolar", "Bipolar") | |||
checkbox bounds(150, 48,130, 12), channel("TestTone"), FontColour("white"), value(0), text("Sine Tone"), colour(yellow) | |||
rslider bounds(235, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7),fontcolour("white"), colour(20, 70,120), trackercolour(255,255,25) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
gisine ftgen 0,0,4096,10,1 | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 ; portamento time ramps up from zero | |||
gkwidth chnget "width" ;READ WIDGETS... | |||
gkwidth portk gkwidth,kporttime | |||
gkcenter chnget "center" ; | |||
gkcenter portk gkcenter,kporttime | |||
gkbipolar chnget "bipolar" ; | |||
gkbipolar init 1 | |||
gkbipolar = gkbipolar-1 | |||
gklevel chnget "level" ; | |||
gklevel portk gklevel,kporttime | |||
gkTestTone chnget "TestTone" | |||
if gkTestTone==1 then ; if test tone selected... | |||
koct rspline 4,8,0.2,0.5 | |||
asigL poscil 1,cpsoct(koct),gisine ; ...generate a tone | |||
asigR = asigL ; right channel equal to left channel | |||
else ; otherwise... | |||
asigL, asigR ins ; read live inputs | |||
endif | |||
ifullscale = 0dbfs ;DEFINE FULLSCALE AMPLITUDE VALUE | |||
kSwitch changed gkbipolar ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF A VARIABLE CHANGE INDICATOR IS RECEIVED... | |||
reinit START ;...BEGIN A REINITIALISATION PASS FROM LABEL 'START' | |||
endif ;END OF CONDITIONAL BRANCHING | |||
START: ;LABEL | |||
;CLIP THE AUDIO SIGNAL USING pdclip | |||
aL pdclip asigL, gkwidth, gkcenter, i(gkbipolar) ; [, ifullscale]] | |||
aR pdclip asigR, gkwidth, gkcenter, i(gkbipolar) ; [, ifullscale]] | |||
rireturn ;RETURN TO PERFORMANCE PASSES FROM INITIALISATION PASS | |||
alevel interp gklevel | |||
outs aL * alevel, aR * alevel ;pdclip OUTPUT ARE SENT TO THE SPEAKERS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,94 @@ | |||
<Cabbage> | |||
form caption("pvshift Frequency Shifter") size(510, 90), pluginID("shft") | |||
image bounds( 15, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds( 85, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(155, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(225, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(295, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(365, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(435, 9, 60, 60), colour(30,30,30,100), shape("ellipse"), line(0) | |||
image bounds(-60,-10,630,110), colour(150,255,100,200), outline("silver"), line(6), shape("ellipse") | |||
rslider bounds( 10, 10, 70, 70), text("Coarse"), channel("coarse"), range(-4000, 4000, 0, 1), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds( 80, 10, 70, 70), text("Multiplier"), channel("fine"), range(-1, 1, 1, 1, 0.0001), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds(150, 10, 70, 70), text("Lowest"), channel("lowest"), range( 20, 20000, 20, 0.5), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds(220, 10, 70, 70), text("Feedback"), channel("FB"), range(0, 1.00, 0), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds(290, 10, 70, 70), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds(360, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
rslider bounds(430, 10, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5, 0.5), fontcolour("black"), colour("orange"), trackercolour("yellow") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Iain McCurdy | |||
;http://iainmccurdy.org/csound.html | |||
;Frequency shifting effect using pvshift opcode. | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvshift_module,a,akkkkkiiii | |||
ain,kshift,klowest,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_shift pvshift f_mix, kshift, klowest ;SHIFT FREQUENCIES | |||
f_FB pvsgain f_shift, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_shift ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
ainL,ainR ins | |||
;ainL,ainR diskin2 "SynthPad.wav",1,0,1 | |||
kcoarse chnget "coarse" ; coarse freq. shift | |||
kfine chnget "fine" ; fine freq. control (multipler) | |||
kporttime linseg 0,0.001,0.2 | |||
kshift lineto kcoarse*kfine, kporttime ; ultimate freq. shift is sum of coarse and fine controls | |||
klowest chnget "lowest" ; lowest shifted frequency | |||
kFB chnget "FB" ; feedback amount | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
aoutL pvshift_module ainL,kshift,klowest,kFB,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype ; call UDO for each channel | |||
aoutR pvshift_module ainR,kshift,klowest,kFB,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,94 @@ | |||
<Cabbage> | |||
form caption("pvsAdsyn") size(580, 90), pluginID("adsy") | |||
image pos(0, 0), size(580, 90), colour(200,100,50,150), shape("rounded"), outline("white"), line(5) | |||
rslider bounds(10, 11, 70, 70), text("Freq.Mod."), channel("fmod"), range(0.25, 4, 1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(80, 11, 70, 70), text("Num.Osc.s"), channel("noscs"), range(1, 1024, 256,1,1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(150, 11, 70, 70), text("Bin Offset"), channel("binoffset"), range(0, 256, 1,1,1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(220, 11, 70, 70), text("Bin Incr."), channel("binincr"), range(1, 32, 1,1,1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(290, 11, 70, 70), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(360, 11, 70, 70), text("Feedback"), channel("feedback"), range(0, 0.99, 0), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(430, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
rslider bounds(500, 11, 70, 70), text("Level"), channel("lev"), range(0, 5.00, 0.5, 0.5), fontcolour("white"), colour(200,100,50,250), trackercolour(tan) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvsadsyn_module,a,akkkkkkiiii | |||
ain,kfmod,knoscs,kbinoffset,kbinincr,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
aresyn init 0 | |||
f_anal pvsanal ain+(aresyn*kfeedback), iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
knossc init 256 | |||
ktrig changed knoscs,kbinoffset,kbinincr | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
inoscs init i(knoscs) | |||
ibinoffset init i(kbinoffset) | |||
ibinincr init i(kbinincr) | |||
inoscs limit inoscs, 1, (((iFFTsize*0.5)+1)-ibinoffset)/ibinincr | |||
aresyn pvsadsyn f_anal, inoscs, kfmod , i(kbinoffset), i(kbinincr) ;RESYNTHESIZE FROM THE fsig USING pvsadsyn | |||
rireturn | |||
amix ntrpol ain, aresyn, kmix ;CREATE DRY/WET MIX | |||
xout amix | |||
endop | |||
instr 1 | |||
; audio input | |||
ainL,ainR ins | |||
;ainL,ainR diskin "SynthPad.wav",1,0,1 ;USE FOR TESTING | |||
kmix chnget "mix" | |||
kfmod chnget "fmod" | |||
knoscs chnget "noscs" | |||
kbinoffset chnget "binoffset" | |||
kbinincr chnget "binincr" | |||
klev chnget "lev" | |||
kfeedback chnget "feedback" | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
aoutL pvsadsyn_module ainL,kfmod,knoscs,kbinoffset,kbinincr,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsadsyn_module ainR,kfmod,knoscs,kbinoffset,kbinincr,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR*klev,aoutR*klev | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,93 @@ | |||
; pvsBandp | |||
; seems to crash a bit on Windows... | |||
<Cabbage> | |||
form caption("pvs Bandpass Filter"), size(390, 310) colour(255,165,79,150), pluginID("bndp") | |||
vslider bounds( 10, 0, 60,200), text("Low Cut"), channel("lowcut"), range(20, 20000, 500,0.5), colour("black"), FontColour("black"), trackercolour("yellow") | |||
vslider bounds( 70, 0, 60,200), text("Low Full"), channel("lowfull"), range(20, 20000, 550,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(130, 0, 60,200), text("High Full"), channel("highfull"), range(20, 20000,1900,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(190, 0, 60,200), text("High Cut"), channel("highcut"), range(20, 20000, 2000,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(250, 0, 60,200), text("Curve"), channel("type"), range(-5.00, 5.00, 0), colour("black"), trackercolour("yellow") | |||
rslider bounds(310, 30, 70, 70), text("FFT Size"), channel("att_table"), range(1,10, 5, 1,1), colour("black"), trackercolour("yellow") | |||
rslider bounds(310,110, 70, 70), text("Feedback"), channel("feedback"), range(0,0.99, 0), colour("black"), trackercolour("yellow") | |||
line bounds( 0, 210, 390,100), colour("Grey") | |||
hslider bounds( 5,205, 380, 60), text("Mix"), channel("mix"), fontcolour("black"), range(0, 1.00, 1), colour("black"), trackercolour("yellow") | |||
hslider bounds( 5,250, 380, 60), text("Level"), channel("lev"), fontcolour("black"), range(0, 10.00, 0.5, 0.5), colour("black"), trackercolour("yellow") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2013) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 128, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 256, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 2048,1024, 2048, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes9 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
giFFTattributes10 ftgen 0, 0, 4, -2,16384,4096,16384, 1 | |||
opcode pvsbandp_module,a,akkkkkkkkiiii | |||
ain,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_bandp pvsbandp f_mix, klowcut, klowfull, khighfull, khighcut, ktype | |||
f_FB pvsgain f_bandp, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_bandp ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
ain delay ain,iwinsize/sr | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
klowcut chnget "lowcut" | |||
klowfull chnget "lowfull" | |||
khighfull chnget "highfull" | |||
khighcut chnget "highcut" | |||
ktype chnget "type" | |||
kfeedback chnget "feedback" | |||
ainL,ainR ins | |||
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
aoutL pvsbandp_module ainL,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsbandp_module ainR,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutL, aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,95 @@ | |||
; pvsBandr | |||
; seems to crash a bit on Windows... | |||
<Cabbage> | |||
form caption("pvs Bandreject Filter"), size(390, 310) colour( 55,165,79,150), pluginID("bndp") | |||
vslider bounds( 10, 0, 60,200), text("Low Cut"), channel("lowcut"), range(20, 20000, 100,0.5), colour("black"), FontColour("black"), trackercolour("yellow") | |||
vslider bounds( 70, 0, 60,200), text("Low Full"), channel("lowfull"), range(20, 20000, 150,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(130, 0, 60,200), text("High Full"), channel("highfull"), range(20, 20000,2800,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(190, 0, 60,200), text("High Cut"), channel("highcut"), range(20, 20000, 2900,0.5), colour("black"), trackercolour("yellow") | |||
vslider bounds(250, 0, 60,200), text("Curve"), channel("type"), range(-5.00, 5.00, 0), colour("black"), trackercolour("yellow") | |||
rslider bounds(310, 30, 70, 70), text("FFT Size"), channel("att_table"),range(1,10, 5, 1,1), colour("black"), trackercolour("yellow") | |||
rslider bounds(310,110, 70, 70), text("Feedback"), channel("feedback"), range(0,0.99, 0), colour("black"), trackercolour("yellow") | |||
line bounds( 0, 210, 390,100), colour("Grey") | |||
hslider bounds( 5,205, 380, 60), text("Mix"), channel("mix"), fontcolour("black"), range(0, 1.00, 1), colour("black"), trackercolour("yellow") | |||
hslider bounds( 5,250, 380, 60), text("Level"), channel("lev"), fontcolour("black"), range(0, 10.00, 0.5, 0.5), colour("black"), trackercolour("yellow") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2013) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 128, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 256, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 2048,1024, 2048, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes9 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
giFFTattributes10 ftgen 0, 0, 4, -2,16384,4096,16384, 1 | |||
opcode pvsbandr_module,a,akkkkkkkkiiii | |||
ain,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_bandr pvsbandr f_mix, klowcut, klowfull, khighfull, khighcut, ktype | |||
f_FB pvsgain f_bandr, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_bandr ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
ain delay ain,iwinsize/sr | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
klowcut chnget "lowcut" | |||
klowfull chnget "lowfull" | |||
khighfull chnget "highfull" | |||
khighcut chnget "highcut" | |||
ktype chnget "type" | |||
kfeedback chnget "feedback" | |||
ainL,ainR ins | |||
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
aoutL pvsbandr_module ainL,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsbandr_module ainR,klowcut,klowfull,khighfull,khighcut,ktype,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutL, aoutR | |||
;klev chnget "lev" | |||
; outs ainL*klev,ainR*klev | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,171 @@ | |||
<Cabbage> | |||
form caption("FFT Effects") size(450, 640), pluginID("pvfx") | |||
; PVSFREEZE | |||
groupbox bounds(0, 0, 450, 100), colour( 0,200,100,100) text("Freeze"), fontcolour("white"), plant("pvsfreeze"){ | |||
checkbox bounds(35, 30, 30, 30), channel("freeze_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 30, 68, 60, 12), text("On/Off"), FontColour("white") | |||
checkbox bounds(100, 30, 180, 25), channel("freezb"), text("Freeze Both"), fontcolour("white"), shape("rounded"), colour("red") | |||
checkbox bounds(215, 30, 180, 25), channel("freeza"), text("Freeze Amplitudes"), fontcolour("white"), shape("rounded"), colour("yellow") | |||
checkbox bounds(215, 65, 180, 25), channel("freezf"), text("Freeze Frequencies"), fontcolour("white"), shape("rounded"), colour("orange") | |||
rslider bounds(370, 25, 70, 70), text("Mix"), channel("freeze_mix"), fontcolour("white"), range(0, 1.00, 1), colour( 0,200,100,150) | |||
} | |||
; PVSCALE | |||
groupbox bounds(0,100, 225, 100), colour(250,250, 0,200) text("Freq. Scale"), fontcolour("white"), plant("pvscale"){ | |||
checkbox bounds(25, 30, 30, 30), channel("pvscale_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 20, 68, 60, 12), text("On/Off"), FontColour("white") | |||
rslider bounds( 70, 25, 70, 70), text("Ratio"), channel("pvscale_scal"), fontcolour("white"), range(0.25, 4.00, 1, 0.5, 0.01), colour(250,250, 0,150) | |||
rslider bounds(140, 25, 70, 70), text("Mix"), channel("pvscale_mix"), fontcolour("white"), range(0, 1.00, 1), colour(250,250, 0,150) | |||
} | |||
; PVSHIFT | |||
groupbox bounds(225,100, 225, 100), colour( 0,250,250,200) text("Freq. Shift"), fontcolour("white"), plant("pvshift"){ | |||
checkbox bounds(25, 30, 30, 30), channel("pvshift_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 20, 68, 60, 12), text("On/Off"), FontColour("white") | |||
rslider bounds( 70, 25, 70, 70), text("Freq."), channel("pvshift_freq"), fontcolour("white"), range(-4000, 4000, 0), colour( 0,250,250,150) | |||
rslider bounds(140, 25, 70, 70), text("Mix"), channel("pvshift_mix"), fontcolour("white"), range(0, 1.00, 1), colour( 0,250,250,150) | |||
} | |||
; PVSBLUR | |||
groupbox bounds(0,200, 225, 100), colour( 50,250, 0,200) text("Blur"), fontcolour("white"), plant("pvsblur"){ | |||
checkbox bounds(25, 30, 30, 30), channel("pvsblur_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 20, 68, 60, 12), text("On/Off"), FontColour("white") | |||
rslider bounds( 70, 25, 70, 70), text("Ratio"), channel("pvsblur_scal"), fontcolour("white"), range(0.25, 4.00, 1, 0.5, 0.01), colour( 50,250, 0,150) | |||
rslider bounds(140, 25, 70, 70), text("Mix"), channel("pvsblur_mix"), fontcolour("white"), range(0, 1.00, 1), colour( 50,250, 0,150) | |||
} | |||
; PVSMOOTH | |||
groupbox bounds(225,200, 225, 100), colour(100,250,100,200) text("Smooth"), fontcolour("white"), plant("pvsmooth"){ | |||
checkbox bounds(25, 30, 30, 30), channel("pvsmooth_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 20, 68, 60, 12), text("On/Off"), FontColour("white") | |||
rslider bounds( 70, 25, 70, 70), text("Freq."), channel("pvsmooth_freq"), fontcolour("white"), range(-4000, 4000, 0), colour(100,250,100,160) | |||
rslider bounds(140, 25, 70, 70), text("Mix"), channel("pvsmooth_mix"), fontcolour("white"), range(0, 1.00, 1), colour(100,250,100,150) | |||
} | |||
; PVSWARP | |||
; PVSBANDP / PVSBANDR | |||
; PVSADSYN | |||
groupbox bounds(0, 300, 450, 100), colour(150, 40, 40,250) text("Additive Resynthesizer"), fontcolour("white"), plant("pvsadsyn"){ | |||
checkbox bounds(35, 30, 30, 30), channel("pvsadsyn_onoff"), fontcolour("black"), colour("red"), shape("rounded") | |||
label bounds( 30, 68, 60, 12), text("On/Off"), FontColour("white") | |||
rslider bounds( 90, 25, 70, 70), text("Freq.Mod."), channel("pvsadsyn_fmod"), range(0.25, 4, 1), fontcolour("white"), colour(110, 0, 0,200) | |||
rslider bounds(160, 25, 70, 70), text("Num.Osc.s"), channel("pvsadsyn_noscs"), range(1, 1024, 256,1,1), fontcolour("white"), colour(110, 0, 0,200) | |||
rslider bounds(230, 25, 70, 70), text("Bin Offset"), channel("pvsadsyn_binoffset"), range(0, 256, 1,1,1), fontcolour("white"), colour(110, 0, 0,200) | |||
rslider bounds(300, 25, 70, 70), text("Bin Incr."), channel("pvsadsyn_binincr"), range(1, 32, 1,1,1), fontcolour("white"), colour(110, 0, 0,200) | |||
rslider bounds(370, 25, 70, 70), text("Mix"), channel("pvsadsyn_mix"), range(0, 1, 1), fontcolour("white"), colour(110, 0, 0,200) | |||
} | |||
; OUTPUT | |||
groupbox bounds(0, 400, 450, 100), colour( 0,250,250,100) text("Output"), fontcolour("white"), plant("output"){ | |||
rslider bounds( 10, 25, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0), fontcolour("white"), colour( 0,250,250,150) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2013) | |||
;http://iainmccurdy.org/csound.html | |||
instr 1 | |||
/* AUDIO INPUT */ | |||
aL,aR ins | |||
;aL,aR diskin2 "SynthPad.wav",1,0,1 | |||
/* FFT PARAMETERS */ | |||
iFFTsize = 1024 | |||
ioverlap = 256 | |||
iwinsize = 1024 | |||
iwintype = 1 | |||
/* ANALYSE AUDIO SIGNAL */ | |||
f_sigL pvsanal aL, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_sigR pvsanal aR, iFFTsize, ioverlap, iwinsize, iwintype | |||
/* PVSFREEZE */ | |||
kfreeze_onoff chnget "freeze_onoff" | |||
kfreeze_mix chnget "freeze_mix" | |||
kfreeza chnget "freeza" | |||
kfreezf chnget "freezf" | |||
kfreezb chnget "freezb" | |||
if(kfreeze_onoff==1) then | |||
; triggering of 'Freeze All' mode | |||
kon = 1 | |||
koff = 0 | |||
ktrigon trigger kfreezb,0.5,0 | |||
ktrigoff trigger kfreezb,0.5,1 | |||
if(ktrigon==1) then | |||
chnset kon,"freeza" | |||
chnset kon,"freezf" | |||
elseif(ktrigoff==1) then | |||
chnset koff,"freeza" | |||
chnset koff,"freezf" | |||
endif | |||
f_freezeL pvsfreeze f_sigL, kfreeza, kfreezf | |||
f_freezeR pvsfreeze f_sigR, kfreeza, kfreezf | |||
f_drymixL pvsgain f_sigL, 1-kfreeze_mix ;WET/DRY MIX | |||
f_drymixR pvsgain f_sigR, 1-kfreeze_mix ; | |||
f_wetmixL pvsgain f_freezeL, kfreeze_mix ; | |||
f_wetmixR pvsgain f_freezeR, kfreeze_mix ; | |||
f_sigL pvsmix f_drymixL, f_wetmixL ; | |||
f_sigR pvsmix f_drymixR, f_wetmixR ; | |||
endif | |||
/* PVSADSYN */ | |||
kpvsadsyn_onoff chnget "pvsadsyn_onoff" ;READ IN WIDGETS | |||
if(kpvsadsyn_onoff==1) then | |||
kpvsadsyn_mix chnget "pvsadsyn_mix" ;READ IN WIDGETS | |||
kpvsadsyn_fmod chnget "pvsadsyn_fmod" | |||
kpvsadsyn_noscs chnget "pvsadsyn_noscs" | |||
kpvsadsyn_binoffset chnget "pvsadsyn_binoffset" | |||
kpvsadsyn_binincr chnget "pvsadsyn_binincr" | |||
kpvsadsyn_lev chnget "pvsadsyn_lev" | |||
knossc init 256 | |||
ktrig changed kpvsadsyn_noscs,kpvsadsyn_binoffset,kpvsadsyn_binincr ;GENERATE TRIGGER FOR I-RATE PARAMETERS | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
inoscs init i(kpvsadsyn_noscs) | |||
ibinoffset init i(kpvsadsyn_binoffset) | |||
ibinincr init i(kpvsadsyn_binincr) | |||
inoscs limit inoscs, 1, (((iFFTsize*0.5)+1)-ibinoffset)/ibinincr ;LIMIT NUMBER OF OSCILLATORS USED TO PREVENT CRASHES | |||
aresynL pvsadsyn f_sigL, inoscs, kpvsadsyn_fmod , ibinoffset, ibinincr ;RESYNTHESIZE FROM THE fsig USING pvsadsyn | |||
aresynR pvsadsyn f_sigR, inoscs, kpvsadsyn_fmod , ibinoffset, ibinincr | |||
rireturn | |||
aresynL ntrpol aL, aresynL, kpvsadsyn_mix ;CREATE DRY/WET MIX | |||
aresynR ntrpol aR, aresynR, kpvsadsyn_mix | |||
else | |||
/* PVSYNTH */ | |||
aresynL pvsynth f_sigL ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
aresynR pvsynth f_sigR ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
endif | |||
/* AUDIO OUTPUT */ | |||
klevel chnget "level" ;READ IN WIDGETS | |||
outs aresynL*klevel, aresynR*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,131 @@ | |||
; pvsFreeze.csd | |||
; Freeze either amplitude stream or frequency stream (or both) of a streaming FFT analysis | |||
; Changing FFT size can modify the sound quality of the frozen sound | |||
; 'Auto' can be used to automatically trigger a new freeze frame (both amplitude and frequency) if the amplitude of the sound crosses a threshold | |||
; 'Delay' specifies the time delay at which the sound will actually be frozen after the threshold triggering. This can be employed to capture the sustain portion of a sound (and not the attack). | |||
; 'Threshold' specifies the threshold level at which triggering will occur. In a noisy environment, raise 'Threshold' | |||
<Cabbage> | |||
form caption("pvsfreeze"), size(670, 80) colour( 0,140,40,170), pluginID("frez") | |||
image bounds( 0, 0,270, 80), colour( 0,200,100,100), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds( 15, 10, 180, 25), channel("freezb"), text("Freeze Both"), fontcolour("white"), shape("rounded"), colour("red") | |||
checkbox bounds(120, 10, 180, 25), channel("freeza"), text("Freeze Amplitudes"), fontcolour("white"), shape("rounded"), colour("yellow") | |||
checkbox bounds(120, 45, 180, 25), channel("freezf"), text("Freeze Frequencies"), fontcolour("white"), shape("rounded"), colour("orange") | |||
image bounds(270, 0,200, 80), colour( 0,200,100,100), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(280, 10, 60, 60), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), fontcolour("white"), colour( 0,100, 50,255), trackercolour("white") | |||
rslider bounds(340, 10, 60, 60), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white"), colour( 0,100, 50,255), trackercolour("white") | |||
rslider bounds(400, 10, 60, 60), text("Level"), channel("lev"), range(0, 1.00, 0.5, 0.5), fontcolour("white"), colour( 0,100, 50,255), trackercolour("white") | |||
image bounds(470, 0,200, 80), colour( 0,200,100,100), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds(480, 10, 180, 25), channel("auto"), text("Auto"), fontcolour("white"), shape("rounded"), colour("red") | |||
rslider bounds(540, 10, 60, 60), text("Delay"), channel("delay"), fontcolour("white"), range(0.0001, 0.5, 0.1, 1,0.001), colour( 0,100, 50,255), trackercolour("white") | |||
rslider bounds(600, 10, 60, 60), text("Threshold"), channel("thresh"), fontcolour("white"), range(0.001, 0.5, 0.1,1,0.001), colour( 0,100, 50,255), trackercolour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2013) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvsfreeze_module,a,akkkkiiii | |||
ain,kfreeza,kfreezf,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_freeze pvsfreeze f_anal, kfreeza, kfreezf | |||
aout pvsynth f_freeze ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
kmix chnget "mix" ; read in widgets | |||
klev chnget "lev" | |||
kfreeza chnget "freeza" | |||
kfreezf chnget "freeza" | |||
kfreezb chnget "freezb" | |||
; triggering of 'Freeze All' mode | |||
kon = 1 | |||
koff = 0 | |||
ktrigon trigger kfreezb,0.5,0 | |||
ktrigoff trigger kfreezb,0.5,1 | |||
if(ktrigon==1) then | |||
chnset kon,"freeza" | |||
chnset kon,"freezf" | |||
elseif(ktrigoff==1) then | |||
chnset koff,"freeza" | |||
chnset koff,"freezf" | |||
endif | |||
; audio input | |||
ainL,ainR ins | |||
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING | |||
; auto freeze triggering | |||
kauto chnget "auto" ; read in widgets | |||
kthresh chnget "thresh" | |||
kdelay chnget "delay" | |||
if kauto==1 then ; if 'Auto' is on | |||
krms rms ainL+ainR ; scan RMS of audio signal | |||
ktrig trigger krms,kthresh,0 ; if signal crosses threshold upwards | |||
ktrigdel vdel_k ktrig,kdelay,0.5 ; delayed version of the trigger | |||
if ktrig==1 then ; if initial threshold crossing occurs... | |||
chnset koff,"freeza" ; turn freezing off | |||
chnset koff,"freezf" | |||
endif | |||
if ktrigdel==1 then ; if delayed trigger is received... | |||
chnset kon,"freeza" ; turn freezing on | |||
chnset kon,"freezf" | |||
endif | |||
endif | |||
kofftrig trigger kauto,0.5,1 ; when 'Auto' is turned off generate a trigger | |||
if kofftrig==1 then ; if 'Auto' is turned off... | |||
chnset koff,"freeza" ; turn freezing off | |||
chnset koff,"freezf" | |||
endif | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
aoutL pvsfreeze_module ainL,kfreeza,kfreezf,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsfreeze_module ainR,kfreeza,kfreezf,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,90 @@ | |||
<Cabbage> | |||
form caption("pvsWarp") size(440, 90), pluginID("warp") | |||
image pos(0, 0), size(440, 90), colour( 50, 50,75,220), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 11, 70, 70), text("Scale"), channel("scal"), range(0.1, 4, 1, 0.5, 0.001), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
rslider bounds( 80, 11, 70, 70), text("Shift"), channel("shift"), range(-5000, 5000, 0), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
rslider bounds(150, 11, 70, 70), text("Feedback"), channel("FB"), range(0, 0.99, 0), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
rslider bounds(220, 10, 70, 70), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
rslider bounds(290, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
rslider bounds(360, 11, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5), colour("LightSlateGrey"), fontcolour("white"), trackercolour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvswarp_module,a,akkkkiiii | |||
ain,kscal,kshift,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
aout init 0 | |||
;f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain+(aout*kfeedback), iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
;f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_warp pvswarp f_anal, kscal, kshift ;WARP SPECTRAL ENVELOPE VALUES OF AN F-SIGNAL USING BOTH SCALING AND SHIFTING | |||
;f_FB pvsgain f_warp, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_warp ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
if(kfeedback>0) then | |||
aout clip aout,0,0dbfs | |||
endif | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix | |||
endop | |||
instr 1 | |||
ainL,ainR ins | |||
;ainL,ainR diskin "SynthPad.wav",1,0,1 ;USE FOR TESTING | |||
kscal chnget "scal" | |||
kshift chnget "shift" | |||
kfeedback chnget "FB" | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
ainL = ainL*klev | |||
ainR = ainR*klev | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
aoutL pvswarp_module ainL,kscal,kshift,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvswarp_module ainR,kscal,kshift,kfeedback,kmix,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,134 @@ | |||
resony.csd | |||
Resony is an implementation of a stack of second-order bandpass filters whose centre frequencies are arithmetically related. | |||
The 'bandwidth' and 'scaling mode' parameters are as they are in the reson opcode. | |||
'inum' (number of filters) defines the number of filters in the stack. | |||
'ksep' (separation) normally defines the separation between the lowest and highest filter in the stack in octaves. How this relates to what the actual centre frequencies of filters will be differs depending upon which separation mode has been selected. This is explained below. Note that in this example the operation of 'ksep' has been modified slightly to allow the opcode to be better controlled from the GUI. These modifications are clarified below. Separation can be defined in octaves using the knob 'Sep.oct.' or in semitones using the 'Sep.semi.' knob. | |||
'kbf' (base frequency) defines the centre frequency of the first filter. In 'oct.total' separation mode the pitch interval between the base frequency and (base frequency + separation) is divided into equal intervals according to the number of filters that have been selected. Note that no filter is created at the frequency of (base frequency + separation). For example: if separation=1 and num.filters=2, filters will be created at the base frequency and a tritone above the base frequency (i.e. an interval of 1/2 and an octave). I suspect this is a mistake in the opcode implementation so in this example I rescale the separation interval before passing it to the resony opcode so that the interval between the lowest and highest filter in this mode will always be the interval defined in the GUI. A further option I have provided allows the defined interval to be the interval between adjacent filters rather than the interval from lowest to highest. If 'hertz' separation mode is selected behaviour is somewhat curious. I have made some modifications to the values passed to the opcode to make this mode more controllable. Without these modifications, if number of filters is '1' no filters would be created. The frequency relationship between filters in the stack always follows the harmonic series. Both 'Base Frequency' and 'Separation' normally shift this harmonic stack of filters up or down, for this reason I have disabled user control of 'Separation' in this example, instead a value equal to the 'Number of Filters' will always be used for 'Separation'. This ensures that a harmonic stack will always be created built upon 'Base Frequency' as the fundamental. Negative values for 'separation' are allowed whenever 'separation mode' is 'octaves' (if this is the case, the stack of frequencies will extend below the base frequency). Negative values for 'separation' when 'separation mode' is 'hertz' will cause filters to 'explode'. As 'Separation' is fixed at 'Number of Filters' in this example this explosion will not occur. | |||
<Cabbage> | |||
form caption("resony") size(810, 90), pluginID("rsny"), colour(255,100,0) | |||
image bounds( 0, 0,810, 90), colour("black"), shape("rounded"), outline(255,100,0), line(2) | |||
button bounds( 10, 20, 80, 50), text("Live","Noise"), channel("input"), value(0), fontcolour(yellow) | |||
rslider bounds( 90, 10, 70, 70), text("BF."), fontcolour("white"), channel("bf"), range(20, 20000, 909, 0.5), colour(255,100,0,255), trackercolour(255,250,100) | |||
rslider bounds(160, 10, 70, 70), text("BW."), fontcolour("white"), channel("bw"), range(0.01, 1000, 13, 0.5), colour(255,100,0,255), trackercolour(255,250,100) | |||
rslider bounds(230, 10, 70, 70), text("Num."), fontcolour("white"), channel("num"), range(1, 80, 10, 1,1), colour(255,100,0,255), trackercolour(255,250,100) | |||
rslider bounds(300, 10, 70, 70), text("Sep.oct."), fontcolour("white"), channel("sep"), range(-11, 11, 2), colour(255,100,0,255), trackercolour(255,250,100) | |||
rslider bounds(370, 10, 70, 70), text("Sep.semi."), fontcolour("white"), channel("sep2"), range(-48, 48, 24,1,1), colour(255,100,0,255), trackercolour(255,250,100) | |||
combobox bounds(450, 10,130, 70), caption("Scaling Mode"), channel("scl"), value(2), text("none", "peak response", "RMS") | |||
combobox bounds(590, 10,130, 70), caption("Separation Mode"), channel("sepmode"), value(1), text("octs.total", "hertz", "octs.adjacent") | |||
rslider bounds(730, 10, 70, 70), text("Level"), fontcolour("white"), channel("gain"), range(0.0001, 1, 30, 0.5), colour(255,100,0,255), trackercolour(255,250,100) | |||
} | |||
image bounds(5, 95, 205, 20), colour(100,100,100,80), plant("credit"), line(0){ | |||
label bounds(0.03, 0.1, .95, .7), text("Author: Iain McCurdy |2012|"), fontcolour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;A UDO IS CREATED WHICH ENCAPSULATES THE MODIFICATIONS TO THE resony OPCODE DISCUSSED IN THIS EXAMPLE | |||
opcode resony2,a,akkikii | |||
ain, kbf, kbw, inum, ksep , isepmode, iscl xin | |||
;IF 'Octaves (Total)' MODE SELECTED... | |||
if isepmode==0 then | |||
irescale divz inum,inum-1,1 ;PREVENT ERROR IS NUMBER OF FILTERS = ZERO | |||
ksep = ksep * irescale ;RESCALE SEPARATION | |||
;IF 'Hertz' MODE SELECTED... | |||
elseif isepmode==1 then | |||
inum = inum + 1 | |||
ksep = inum | |||
;IF 'Octaves (Adjacent)' MODE SELECTED... | |||
elseif isepmode==2 then | |||
irescale divz inum,inum-1,1 ;PREVENT ERROR IS NUMBER OF FILTERS = ZERO | |||
ksep = ksep * irescale ;RESCALE SEPARATION | |||
ksep = ksep * (inum-1) ;RESCALE SEPARATION INTERVAL ACCORDING TO THE NUMBER OF FILTERS CHOSEN | |||
isepmode = 0 | |||
endif | |||
aout resony ain, kbf, kbw, inum, ksep , isepmode, iscl, 0 | |||
xout aout | |||
endop | |||
instr 1 | |||
kporttime linseg 0,0.001,0.005,1,0.005 ;CREATE A VARIABLE FUNCTION THAT RAPIDLY RAMPS UP TO A SET VALUE | |||
gkbf chnget "bf" | |||
gkbw chnget "bw" | |||
gkgain chnget "gain" | |||
gknum chnget "num" | |||
gksep chnget "sep" | |||
gksep2 chnget "sep2" | |||
gksepmode chnget "sepmode" | |||
gksepmode = gksepmode - 1 | |||
gksepmode init 1 | |||
gkscl chnget "scl" | |||
gkscl = gkscl - 1 | |||
gkscl init 1 | |||
gkinput chnget "input" | |||
kbf portk gkbf, kporttime ;SMOOTH MOVEMENT OF SLIDER VARIABLE TO CREATE BASE FREQUENCY | |||
ksep portk gksep, kporttime ;SMOOTH MOVEMENT OF SLIDER VARIABLE | |||
if gkinput==0 then | |||
asigL,asigR ins | |||
else | |||
asigL pinkish 1 | |||
asigR pinkish 1 | |||
endif | |||
kSwitch changed gkscl, gknum, gksepmode ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit START ;BEGIN A REINITIALISATION PASS FROM LABEL 'START' | |||
endif | |||
START: | |||
isepmode init i(gksepmode) | |||
inum init i(gknum) | |||
iscl init i(gkscl) | |||
;CALL resony2 UDO | |||
aresL resony2 asigL, kbf, gkbw, inum, ksep , isepmode, iscl | |||
aresR resony2 asigR, kbf, gkbw, inum, ksep , isepmode, iscl | |||
rireturn ;RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
outs aresL * gkgain, aresR * gkgain ;SEND FILTER OUTPUT TO THE AUDIO OUTPUTS AND SCALE USING THE FLTK SLIDER VARIABLE gkgain | |||
endin | |||
instr UpdateWidgets | |||
ksep chnget "sep" | |||
ksep2 chnget "sep2" | |||
ktrig1 changed ksep | |||
ktrig2 changed ksep2 | |||
if ktrig1==1 then | |||
chnset ksep*12, "sep2" | |||
elseif ktrig2==1 then | |||
chnset ksep2/12, "sep" | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0.1 [3600*24*7] | |||
i "UpdateWidgets" 0 3600 ;UPDATE SEPARATION DISPLAY BOX | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,103 @@ | |||
waveset.csd | |||
reinit seems a bit disruptive in Cabbage 3.03? | |||
'freeze' is not technically a freeze but instead a very large number of repeats. | |||
Waveset opcode can be reinitialised by three different methods: | |||
Manually using the 'Reset' button, | |||
by a built-in metronome, the rate of which can be adjusted by the user | |||
or by the dynamics of the input sound (the threshold of this dynamic triggereing can be adjusted by the user) | |||
'Metro' resetting is disabled when 'Metro Rate' = 0 | |||
'Threshold' (retrigering by input signal dynamics) is disabled when 'Threshold' = 1 (maximum setting) | |||
(resetting the opcode will reset its internal buffer and cancel out any time displacement induced by wavelet repetitions) | |||
<Cabbage> | |||
form caption("waveset") size(510, 90), pluginID("wset") | |||
image pos(0, 0), size(510, 90), colour("Green"), shape("rounded"), outline("Grey"), line(4) | |||
rslider bounds(5, 10, 70, 70), text("Repeats"), channel("repeats"), range(1, 100, 1, 1, 1), colour("yellow"), fontcolour("white") | |||
rslider bounds(70, 10, 70, 70), text("Mult."), channel("mult"), range(1, 100, 1, 0.5, 1), colour("yellow"), fontcolour("white") | |||
checkbox bounds(140, 23, 100, 30), channel("freeze"), text("Freeze"), value(0), colour("red"), fontcolour("white"), shape("ellipse") | |||
line bounds(220, 2, 3, 86), colour("Grey") | |||
button bounds(235, 15, 45,45), channel("reset"), text("Reset","Reset"), fontcolour("yellow") | |||
rslider bounds(290, 10, 70, 70), text("Threshold"), channel("thresh"), range(0, 1.00, 1), colour("orange"), fontcolour("white") | |||
rslider bounds(355, 10, 70, 70), text("Metro Rate"), channel("rate"), range(0, 5.00, 0), colour("orange"), fontcolour("white") | |||
line bounds(430, 2, 3, 86), colour("Grey") | |||
rslider bounds(435, 10, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(255,150, 50), fontcolour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
krep chnget "repeats" ;READ WIDGETS... | |||
kmult chnget "mult" ; | |||
klevel chnget "level" ; | |||
kreset chnget "reset" ; | |||
kthresh chnget "thresh" ; | |||
krate chnget "rate" ; | |||
ktrigger changed kreset ; | |||
kmetro metro krate, 0.99 | |||
kfreeze chnget "freeze" | |||
;asigL, asigR diskin2 "Songpan.wav",1,0,1 ;USE SOUND FILE FOR TESTING | |||
asigL, asigR ins | |||
krms rms (asigL+asigR)*0.5 | |||
kDynTrig trigger krms,kthresh,0 | |||
if (ktrigger+kmetro+kDynTrig)>0 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
aL waveset asigL,(krep*kmult)+(kfreeze*1000000000),5*60*sr ;PASS THE AUDIO SIGNAL THROUGH waveset OPCODE. Input duration is defined in samples - in this example the expression given equats to a 5 minute buffer | |||
aR waveset asigR,(krep*kmult)+(kfreeze*1000000000),5*60*sr ;PASS THE AUDIO SIGNAL THROUGH waveset OPCODE. Input duration is defined in samples - in this example the expression given equats to a 5 minute buffer | |||
rireturn | |||
outs aL*klevel, aR*klevel ;WAVESET OUTPUT ARE SENT TO THE SPEAKERS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,173 @@ | |||
; wguide1.csd | |||
; written by Iain McCurdy 2013 | |||
; Encapsulation of the 'wguide1' opcode, used for filtering and synthesis. | |||
; frequency of the wave guide can be determined either in hertz of as a note number | |||
; Activating the 'Keyboard Input' switch will allow frequency control from the keyboard (internal or external) and polyphony. | |||
; In this mode, 'Frequency' and 'Note Num.' controls will be disabled. | |||
; Source input sound can be either 'live audio input', or synthetic gravel, dust or air. | |||
<Cabbage> | |||
form caption("wguide1") size(415,210), pluginID("WGu1") | |||
image bounds(0, 0, 415,125), colour(125, 95, 55), shape("sharp"), outline(225,195,155), line(2) | |||
label bounds(227, 4,180, 22), text("W A V E G U I D E"), fontcolour(silver) | |||
image bounds(228, 8,175, 1), colour(200,170,130), shape("sharp"), outline(silver), line(1) | |||
image bounds(231, 22,172, 1), colour(200,170,130), shape("sharp"), outline(silver), line(1) | |||
checkbox bounds( 20, 10,120, 17), text("Keyboard Input"), channel("input") fontcolour("white") colour(yellow) value(0) | |||
label bounds(153, 5, 40, 11), text("Source"), fontcolour("white") | |||
combobox bounds(140, 16, 62, 16), channel("source"), value(1), text("Live","Gravel","Dust","Air") | |||
rslider bounds( 10, 41, 70, 70), text("Frequency"), channel("freq"), trackercolour(225,195,155), range(8.2, 12542, 160, 0.25), colour( 85, 55,15), fontcolour(white) | |||
rslider bounds( 75, 41, 70, 70), text("Note Num."), channel("notnum"), trackercolour(225,195,155), range(0, 127, 51, 1,1), colour( 85, 55,15), fontcolour(white) | |||
rslider bounds(140, 41, 70, 70), text("Cutoff"), channel("cutoff"), trackercolour(225,195,155), range(20,20000,8000,0.25), colour( 85, 55,15), fontcolour(white) | |||
rslider bounds(205, 41, 70, 70), text("Feedback"), channel("feedback"), trackercolour(225,195,155), range(-0.99999, 0.99999, 0.8), colour( 85, 55,15), fontcolour(white) | |||
rslider bounds(270, 41, 70, 70), text("Mix"), channel("mix"), trackercolour(225,195,155), range(0, 1.00, 1), colour( 85, 55,15), fontcolour(white) | |||
rslider bounds(335, 41, 70, 70), text("Level"), channel("level"), trackercolour(225,195,155), range(0, 1.00, 0.7), colour( 85, 55,15), fontcolour(white) | |||
keyboard bounds( 0,125, 415, 85) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
;-d -n | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
massign 0,2 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
gkinput chnget "input" | |||
event_i "i",2,0,-1 | |||
ktrig trigger gkinput,0.5,2 | |||
if ktrig=1 then | |||
if gkinput=0 then | |||
event "i",2,0,-1 | |||
else | |||
turnoff2 2,0,0 | |||
endif | |||
endif | |||
/* SOURCE SOUND */ | |||
ksource chnget "source" | |||
if ksource=1 then | |||
gasigL, gasigR ins | |||
elseif ksource=2 then | |||
gasigL gausstrig 0.5, 100, 8, 0 | |||
gasigR gausstrig 0.5, 100, 8, 0 | |||
elseif ksource=3 then | |||
kdens random 475,525 | |||
gasigL dust2 0.5, kdens | |||
kdens random 525,475 | |||
gasigR dust2 0.5, kdens | |||
elseif ksource=4 then | |||
gasigL pinkish 0.2 | |||
gasigR pinkish 0.2 | |||
endif | |||
kactive active 2 | |||
printk2 kactive | |||
endin | |||
instr 2 | |||
gkfreq chnget "freq" ;READ WIDGETS... | |||
gknotnum chnget "notnum" ; | |||
ktrig1 changed gkfreq | |||
ktrig2 changed gknotnum | |||
/* MIDI AND GUI INTEROPERABILITY */ | |||
iMIDIflag = 0 ;IF MIDI ACTIVATED = 1, NON-MIDI = 0 | |||
mididefault 1, iMIDIflag ;IF NOTE IS MIDI ACTIVATED REPLACE iMIDIflag WITH '1' | |||
if iMIDIflag==1 then ;IF THIS IS A MIDI ACTIVATED NOTE... | |||
inum notnum | |||
p1 = p1 + (rnd(1000)*0.0001) | |||
if gkinput=0 then | |||
turnoff | |||
endif | |||
icps cpsmidi ;READ MIDI PITCH VALUES - THIS VALUE CAN BE MAPPED TO GRAIN DENSITY AND/OR PITCH DEPENDING ON THE SETTING OF THE MIDI MAPPING SWITCHES | |||
gkfreq = icps | |||
else ;OTHERWISE WHEN NON-MIDI | |||
if ktrig1=1 then ;DUAL FREQUENCY AND NOTE NUMBER CONTROLS | |||
koct = octcps(gkfreq) | |||
chnset (koct-3)*12,"notnum" | |||
elseif ktrig2=1 then | |||
chnset cpsmidinn(gknotnum),"freq" | |||
endif | |||
endif ;END OF THIS CONDITIONAL BRANCH | |||
gkcutoff chnget "cutoff" ; | |||
gkfeedback chnget "feedback" ; | |||
gkmix chnget "mix" ; | |||
gklevel chnget "level" ; | |||
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME | |||
gkfreq portk gkfreq,kporttime | |||
afreq interp gkfreq | |||
aenv linsegr 0,0.05,1,0.05,0 | |||
aresL wguide1 gasigL*aenv, afreq, gkcutoff, gkfeedback | |||
aresR wguide1 gasigR*aenv, afreq, gkcutoff, gkfeedback | |||
aresL dcblock aresL | |||
aresR dcblock aresR | |||
gkmix portk gkmix,kporttime | |||
amixL ntrpol gasigL*aenv, aresL, gkmix | |||
amixR ntrpol gasigR*aenv, aresR, gkmix | |||
gklevel portk gklevel,kporttime | |||
kenv linsegr 1,15,0 | |||
amixL = amixL * gklevel * kenv | |||
amixR = amixR * gklevel * kenv | |||
ktime timeinsts | |||
krms rms amixL,3 | |||
if krms<0.00001&&ktime>0.2&&iMIDIflag==1 then | |||
turnoff2 p1,4,0 | |||
endif | |||
outs amixL, amixR ;WGUIDE1 OUTPUTS ARE SENT OUT | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,90 @@ | |||
<Cabbage> | |||
form caption("wguide2") size(545, 90) | |||
image pos(0, 0), size(545, 90), colour(25,0,25), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Freq. 1"), channel("freq1"), range(20, 8000, 160, 0.25), colour(150,110,110), trackercolour(white) | |||
rslider bounds(75, 11, 70, 70), text("Freq. 2"), channel("freq2"), range(20, 8000, 160, 0.25), colour(150,110,110), trackercolour(white) | |||
rslider bounds(140, 11, 70, 70), text("Cutoff 1"), channel("cutoff1"), range(20,20000,8000,0.25), colour(150,110,110), trackercolour(white) | |||
rslider bounds(205, 11, 70, 70), text("Cutoff 1"), channel("cutoff2"), range(20,20000,8000,0.25), colour(150,110,110), trackercolour(white) | |||
rslider bounds(270, 11, 70, 70), text("F.back 1"), channel("feedback1"), range(-0.999, 0.999, 0.2), colour(150,110,110), trackercolour(white) | |||
rslider bounds(335, 11, 70, 70), text("F.back 2"), channel("feedback2"), range(-0.999, 0.999, 0.2), colour(150,110,110), trackercolour(white) | |||
rslider bounds(400, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.7), colour(150,110,110), trackercolour(white) | |||
rslider bounds(465, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(150,110,110), trackercolour(white) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 | |||
gkfreq1 chnget "freq1" ;READ WIDGETS... | |||
gkfreq1 portk gkfreq1,kporttime | |||
afreq1 interp gkfreq1 | |||
gkfreq2 chnget "freq2" ;READ WIDGETS... | |||
gkfreq2 portk gkfreq2,kporttime | |||
afreq2 interp gkfreq2 | |||
gkcutoff1 chnget "cutoff1" ; | |||
gkcutoff2 chnget "cutoff2" ; | |||
gkfeedback1 chnget "feedback1" ; | |||
gkfeedback2 chnget "feedback2" ; | |||
gkmix chnget "mix" ; | |||
gklevel chnget "level" ; | |||
;asigL, asigR diskin2 "Seashore.wav",1,0,1 ;USE SOUND FILE FOR TESTING | |||
asigL, asigR ins | |||
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME | |||
aresL wguide2 asigL, afreq1, afreq2, gkcutoff1, gkcutoff2, gkfeedback1, gkfeedback2 | |||
aresR wguide2 asigR, afreq1, afreq2, gkcutoff1, gkcutoff2, gkfeedback1, gkfeedback2 | |||
aresL dcblock2 aresL ;BLOCK DC OFFSET | |||
aresR dcblock2 aresR ;BLOCK DC OFFSET | |||
amixL ntrpol asigL,aresL,gkmix | |||
amixR ntrpol asigR,aresR,gkmix | |||
outs amixL*gklevel, amixR*gklevel ;WGUIDE1 OUTPUTS ARE SENT OUT | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,177 @@ | |||
Physical model of a plucked string with a pickup point. Model is created from first principles in order to implement some improvements over the existing Csound opcodes for plucked strings. | |||
A bandpass filter is employed within the delay buffer used to implement the pluck which facilitates filtering to specific harmonics. Conventional damping effects are still possible when cutoff frequency ratio = 1. | |||
<Cabbage> | |||
form caption("Bass Guitar"), size(550, 250), pluginID("basg") | |||
image bounds( 0, 0,550,220), colour("DarkGreen"), shape("rounded"), outline("white"), line(4) | |||
groupbox bounds(5, 5, 540,120), colour( 150,255,150,10){ | |||
rslider bounds( 10, 25,60,60), text("Sustain"), colour("Olive"), FontColour("LightGreen"), channel("feedback"), range(0.9,1, 0.999, 2, 0.001) | |||
rslider bounds( 70, 25,60,60), text("Filt. Ratio"), colour("Olive"), FontColour("LightGreen"), channel("FiltRatio"), range(0.5, 32, 1, 0.5) | |||
rslider bounds(130, 25,60,60), text("B.width"), colour("Olive"), FontColour("LightGreen"), channel("bw"), range(1, 32, 16) | |||
rslider bounds(190, 25,60,60), text("Att"), colour("Olive"), FontColour("LightGreen"), channel("att"), range(0, 3, 1,0.5) | |||
checkbox bounds(260, 35, 30, 30), text("Legato") channel("legato"),FontColour("LightGreen"), colour("yellow") value(1) | |||
label bounds(255, 72, 40, 12), text("Legato"), FontColour("LightGreen") | |||
rslider bounds(300, 25,60,60), text("Leg.Speed"), colour("Olive"), FontColour("LightGreen"), channel("LegSpeed"), range(0.01,1,0.05,0.5) | |||
rslider bounds(360, 25,60,60), text("Vib.Depth"), colour("Olive"), FontColour("LightGreen"), channel("VibDep"), range(0, 1, 0.25, 0.75, 0.001) | |||
rslider bounds(420, 25,60,60), text("Vib.Rate"), colour("Olive"), FontColour("LightGreen"), channel("VibRte"), range(0.5, 20, 3, 0.5) | |||
rslider bounds(480, 25,60,60), text("Level"), colour("Olive"), FontColour("LightGreen"), channel("level"), range(0, 1, 0.7) | |||
hslider bounds(15,85,525,40), text("Pickup Position"), colour("Olive"), FontColour("LightGreen"), channel("PickupPos"), range(0.01, 0.99, 0.1) | |||
} | |||
keyboard bounds(10, 130, 530,80) | |||
image bounds(5, 225, 420, 20), colour(75, 85, 90, 50), plant("credit"){ | |||
label bounds(0.03, 0.1, .6, .7), text("Author: Iain McCurdy |2012|"), colour("white"), FontColour("LightGreen") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 0,2 | |||
gkNoteTrig init 0 | |||
giwave ftgen 0,0,4097,11,20,1,0.5 ;waveform used by excitation (pluck) signal | |||
gisine ftgen 0,0,4097,10,1 ;sine wave (used by lfos) | |||
gkactive init 0 ; Will contain number of active instances of instr 3 when legato mode is chosen. NB. notes in release stage will not be regarded as active. | |||
;UDOs | |||
;UDO for plucked electric string - using a UDO facilitates the use of ksmps=1 to improve sound quality | |||
opcode PluckedElectricString,a,aakkkak | |||
asig,acps,kcutoff,kbw,kfeedback,aPickupPos,kporttime xin | |||
setksmps 1 | |||
;smooth krate variables according to the local ksmps and kr | |||
kcutoff portk kcutoff,kporttime | |||
kbw portk kbw,kporttime | |||
acutoff interp kcutoff | |||
kcutoff downsamp acutoff | |||
abw interp kbw | |||
kbw downsamp abw | |||
kbw limit kcutoff*kbw,0.001,10000 ;limit bandwidth values to prevent explosion | |||
aDelTim limit 1/acps,0,1 ;derive required delay time from cycles per second value (reciprocal) and limit range | |||
afb init 0 ;audio feedback signal used by delay buffer | |||
atap1 vdelay asig+afb,aDelTim*aPickupPos*1000,1000 ;tap 1. Nut | |||
atap2 vdelay -atap1,aDelTim*(1-aPickupPos)*1000,1000 ;tap 2, Tailpiece | |||
atap2 butbp atap2,kcutoff,kbw ;bandpass filter (nb. within delay buffer) | |||
afb = atap2*-kfeedback ;create feedback signal to add to input for next iteration | |||
xout atap1+atap2 ;return audio to caller instrument. NB. audio at pickup is a mixture (with positive and negative interference) of wave reflected from the bridge and the nut (the two points of fixture of the string) | |||
endop | |||
;UDO for lowpass filter attack enveloping - using a UDO permits setting ksmps=1 in order to improve sound quality | |||
opcode butlpsr,a,aii | |||
setksmps 1 | |||
asig,icps,idur xin | |||
kcfenv expseg icps,idur,15000,1,15000 | |||
asig butlp asig,kcfenv | |||
xout asig | |||
endop | |||
instr 1 ;read in widgets - this instrument runs constantly during performance | |||
gkfeedback chnget "feedback" | |||
gkFiltRatio chnget "FiltRatio" | |||
gkbw chnget "bw" | |||
gkatt chnget "att" | |||
gklegato chnget "legato" | |||
gkLegSpeed chnget "LegSpeed" | |||
gkVibDep chnget "VibDep" | |||
gkVibRte chnget "VibRte" | |||
gklevel chnget "level" | |||
gkPickupPos chnget "PickupPos" | |||
endin | |||
instr 2 ;triggered via MIDI | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
icps cpsmidi ;read in midi note pitch in cycles per second | |||
givel veloc 0,1 ;read in midi note velocity | |||
gkcps = icps ;update a global krate variable for note pitch | |||
if i(gklegato)==0 then ;if we are *not* in legato mode... | |||
inum notnum ; read midi note number (0 - 127) | |||
event_i "i",p1+1+(inum*0.001),0,-1,icps ; call sound producing instr | |||
krel release ; release flag (1 when note is released, 0 otherwise) | |||
if krel==1 then ; when note is released... | |||
turnoff2 p1+1+(inum*0.001),4,1 ; turn off the called instrument | |||
endif ; end of conditional | |||
else ;otherwise... (i.e. legato mode) | |||
iactive = i(gkactive) ;number of active notes of instr 3 (note in release are disregarded) | |||
if iactive==0 then ;...if no notes are active | |||
event_i "i",p1+1,0,-1 ;...start a new held note | |||
endif | |||
endif | |||
endin | |||
instr 3 | |||
kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kporttime = kporttime*gkLegSpeed ;scale portamento time function with value from GUI knob widget | |||
if i(gklegato)==1 then ;if we are in legato mode... | |||
krel release ;sense when note has been released | |||
gkactive = 1-krel ;if note is in release, gkactive=0, otherwise =1 | |||
kcps portk gkcps,kporttime ;apply portamento smooth to changes in note pitch (this will only have an effect in 'legato' mode) | |||
acps interp kcps ;create a a-rate version of pitch (cycles per second) | |||
kactive active p1-1 ;...check number of active midi notes (previous instrument) | |||
if kactive==0 then ;if no midi notes are active... | |||
turnoff ;... turn this instrument off | |||
endif | |||
else ;otherwise... (polyphonic / non-legato mode) | |||
acps = p4 ;pitch equal to the original note pitch | |||
endif | |||
aptr line 0,1/i(gkcps),1 ;pointer that will be used to read excitation signal waveform function table | |||
asig tablei aptr,giwave,1,0,0 ;create excitation (pluck) signal | |||
asig butlp asig,cpsoct(4+(givel*8)) ;lowpass filter excitation signal according to midi note velocity of this note | |||
asig buthp asig,i(gkcps) ;highpass filter excitation signal (this could possibly be made adjustable using a GUI widget) | |||
kcutoff limit gkcps*gkFiltRatio,20,20000 ;cutoff of frequency of the bandpass filter will be relative to the pitch of the note. Limit it to prevent out of range values that would cause filter expolosion. | |||
;In legato mode modulations are reinitialised | |||
if gkNoteTrig==1&&gklegato==1 then | |||
reinit RESTART_ENVELOPE | |||
endif | |||
RESTART_ENVELOPE: | |||
krise linseg 0,0.3,0,1.5,1 ;build-up envelope - modulations do not begin immediately | |||
rireturn | |||
arise interp krise ;interpolation prevents discontinuities (clicks) when oscili lfos are reinitialised | |||
avib oscili 0.8*arise*gkVibDep,gkVibRte,gisine ;vibrato | |||
acps = acps*semitone(avib) | |||
atrm oscili 0.8*arise*gkVibDep,gkVibRte,gisine,0 ;tremolo | |||
gkPickupPos portk gkPickupPos,kporttime ;smooth changes made to pickup position slider | |||
aPickupPos interp gkPickupPos ;interpolate k-rate pickup position variable to create an a-rate version | |||
ares PluckedElectricString asig, acps, kcutoff, gkbw, gkfeedback, aPickupPos,kporttime ;call UDO - using a UDO facilitates the use of a different ksmps value (ksmps=1 and kr=sr) to optimise sound quality | |||
aenv linsegr 0.7,0.05,0 ;amplitude envelope | |||
if i(gkatt)>0 then ;if attack time is anything greater than zero call the lowpass filter envelope | |||
ares butlpsr ares,i(gkcps),i(gkatt) ;a UDO is used again to allow the use of ksmps=1 | |||
endif | |||
ares = ares*aenv*(1+atrm)*gklevel ;scale amplitude of audio signal with envelope, tremolo and level knob widget | |||
outs ares,ares | |||
gkNoteTrig = 0 ;reset new-note trigger (in case it was '1') | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ;instrument that reads in widget data | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,198 @@ | |||
<Cabbage> | |||
form caption("Fm Bell synthesizer"), size(760, 330), pluginID("bel1") | |||
xypad bounds(0, 0, 250, 210), channel("chanx", "chany"), text("Modulation"), rangex(1,30,6.72), rangey(0,1,0.43) | |||
groupbox bounds(260, 0, 240, 100), text("ADSR"), plant("adsr"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(260, 105, 240, 100), text("Tune"), plant("tune"){ | |||
rslider bounds(.0, .3, .6, .6), text("Semi"), colour("OrangeRed "), channel("semi"), range(-24,12,0) | |||
rslider bounds(.25, .3, .6, .6), text("Detune"), colour("OrangeRed "), channel("detune"), range(-1,1,0) | |||
rslider bounds(.5, .3, .6, .6), text("Cutoff"), colour("OrangeRed "), channel("cutoff"), range(200,12000,3000) | |||
rslider bounds(.75, .3, .6, .6), text("Spread"), colour("OrangeRed "), channel("spread"), range(0,1,.5) | |||
} | |||
groupbox bounds(510,0, 240, 100), text("LFO/Stereo chorus"), plant("mod"){ | |||
rslider bounds(.0, .3, .6, .6)), text("Lfo amp"), colour("OrangeRed "), channel("lfoamp"), range(0,5, 0) | |||
rslider bounds(.25, .3, .6, .6), text("Lfo rate"), colour("OrangeRed "), channel("lforate"), range(0,10, 0) | |||
rslider bounds(.5, .3, .6, .6), text("depth"), colour("OrangeRed "), channel("chdepth"), range(0,10,0) | |||
rslider bounds(.75, .3, .6, .6), text("rate"), colour("OrangeRed "), channel("chrate"), range(0,10,0) | |||
} | |||
groupbox bounds(510,105, 240, 100), text("Reverb"), plant("rev"){ | |||
rslider bounds(0, .3, .6, .6), text("level"), colour("dodgerblue"), channel("level"), range(0,1,0) | |||
rslider bounds(0.25, .3, .6, .6), text("size"), colour("dodgerblue"), channel("size"), range(.1,.99,.5) | |||
checkbox bounds(.55, .40, .60, .30),channel("onoff"), text("On/Off"), value(0) | |||
} | |||
keyboard bounds(0, 220, 750, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;turnon 10 ;chorus | |||
;turnon 12 ;reverb | |||
ga1 init 0 | |||
ga2 init 0 | |||
garev1 init 0 | |||
garev2 init 0 | |||
;******************************************* | |||
opcode StChorus,aa,aakkkk | |||
asigr,asigl,kdepth,kdepthl,krate,kratel xin ;legge i parametri in entrata | |||
;ar,al StChorus asigr,asigl,kdepth,kdepthl,krate,kratel | |||
k1ch randi kdepth/2,krate,1 | |||
ar1 vdelay3 asigr,kdepth/2+k1ch,10 | |||
k2ch randi kdepth/2,krate*0.9,.2 | |||
ar2 vdelay3 asigr,kdepth/2+k2ch,10 | |||
k3ch randi kdepth/2,krate*1.1,.2 | |||
ar3 vdelay3 asigr,kdepth/2+k3ch,10 | |||
k4ch randi kdepth/2,krate*1.3,.1 | |||
ar4 vdelay3 asigr,kdepth/2+k4ch,10 | |||
k1chl randi kdepthl/2,kratel,1 | |||
ar1l vdelay3 asigl,kdepthl/2+k1chl,10 | |||
k2chl randi kdepthl/2,kratel*0.9,.2 | |||
ar2l vdelay3 asigl,kdepthl/2+k2chl,10 | |||
k3chl randi kdepthl/2,kratel*1.1,.2 | |||
ar3l vdelay3 asigl,kdepthl/2+k3chl,10 | |||
k4chl randi kdepthl/2,kratel*1.3,.1 | |||
ar4l vdelay3 asigl,kdepthl/2+k4chl,10 | |||
aL = (ar1+ar2+ar3+ar4)/2 | |||
aR = (ar1l+ar2l+ar3l+ar4l)/2 | |||
xout aL,aR ; write output | |||
endop | |||
;*********************************************** | |||
instr 1 | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
kdet chnget "detune" | |||
ksemi chnget "semi" | |||
kcut chnget "cutoff" | |||
kspread chnget "spread" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
kindex chnget "fmamp" | |||
kfmrate chnget "fmrate" | |||
kcutoff chnget "cutoff" | |||
kreso chnget "resonance" | |||
kc1 chnget "chanx" | |||
kc2 chnget "chany" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(ksemi)+kdet) | |||
ifn1 = 1 | |||
ifn2 = 1 | |||
ifn3 = 1 | |||
ifn4 = 1 | |||
ivfn = 1 | |||
asig1 fmbell iamp, kfreq1,kc1+1,kc2,klfoamp,klforate,ifn1,ifn2,ifn3,ifn4,ivfn | |||
asig2 fmbell iamp, kfreq2,kc1+1,kc2,klfoamp,klforate,ifn1,ifn2,ifn3,ifn4,ivfn | |||
afl1 clfilt asig1,kcutoff,0,4 | |||
afl2 clfilt asig2,kcutoff,0,4 | |||
;master | |||
al = ((afl1 * kspread) + (afl2 * (1 - kspread))) *.2 | |||
ar = ((afl1 * (1-kspread)) + (afl2 * kspread)) *.2 | |||
aoutL clip al,0,0dbfs | |||
aoutR clip ar,0,0dbfs | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs (aoutL*kadsr),(aoutR*kadsr) | |||
vincr ga1,(aoutL*kadsr) | |||
vincr ga2,(aoutR*kadsr) | |||
vincr garev1,(aoutL*kadsr) | |||
vincr garev2,(aoutR*kadsr) | |||
endin | |||
;stereo chorus | |||
instr 10 | |||
k1 chnget "chdepth" | |||
k2 chnget "chrate" | |||
kfxdepth portk k1,.01 | |||
kfxrate portk k2,.01 | |||
acho1,acho2 StChorus ga1,ga2,kfxdepth,kfxdepth*.8,kfxrate,kfxrate*.8 | |||
outs acho1,acho2 | |||
clear ga1,ga2 | |||
endin | |||
instr 12 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc garev1,garev2,ksize,16000,sr,0 | |||
adc1 dcblock2 al | |||
adc2 dcblock2 ar | |||
kpan1 randomi 0,1,4 | |||
kpan2 randomi 0,1,8 | |||
aout1,aout2 pan2 adc1,kpan1 | |||
aout3,aout4 pan2 adc2,1-kpan2 | |||
asum1 = (aout1+aout2)*klevel | |||
asum2 = (aout3+aout4)*klevel | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1,asum2 | |||
clear garev1,garev2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
; sine wave. | |||
f 1 0 32768 10 1 | |||
i1 0 36000 | |||
i10 0 36000 | |||
i12 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,269 @@ | |||
;BreakBeatCutter.csd | |||
;Iain McCurdy, 2013. | |||
; Break Beat Cut Up using the bbcut opcode with additional processing | |||
;==BBCUT========================================================================================================================== | |||
'Sub-division' determines the note duration used as the base unit in cut-ups. | |||
For example a value of 8 represents quavers (eighth notes), 16 represents semiquavers (sixteenth notes) and so on. | |||
'Bar Length' represents the number of beats per bar. For example, a value of 4 represents a 4/4 bar and so on. | |||
'Phrase' defines the number of bars that will elapse before the cutting up pattern restarts from the beginning. | |||
'Stutter' is a separate cut-up process which occasionally will take a very short fragment of the input audio and repeat | |||
it many times. | |||
'Stutter Speed' defines the duration of each stutter in relation to 'Sub-division'. | |||
If subdivision is 8 (quavers / eighth notes) and 'Stutter Speed' is 2 then each stutter will be a semiquaver / sixteenth note. | |||
'Stutter Chance' defines the frequency of stutter moments. | |||
The range for this parameter is 0 to 1. Zero means stuttering will be very unlikely, 1 means it will be very likely. | |||
'Repeats' defines the number of repeats that will be employed in normal cut-up events. | |||
When processing non-rhythmical, unmetered material it may be be more interesting to employ non-whole numbers for parameters such as 'Sub-division', 'Phrase' and 'Stutter Speed'. | |||
;======================================================================================================================== | |||
;==FILTER================================================================================================================ | |||
Additionally in this example a randomly moving band-pass filter has been implemented. | |||
'Filter Mix' crossfades between the unfiltered bbcut signal and the filtered bbcut signal. | |||
'Cutoff Freq.' consists of two small sliders which determine the range from which random cutoff values are derived. | |||
'Interpolate<=>S&H' fades continuously between an interpolated random function and a sample and hold type random function. | |||
'Filter Div.' controls the frequency subdivision with which new random cutoff frequency values are generated - a value of '1' means that new values are generated once every bar. | |||
;======================================================================================================================== | |||
;==WGUIDE================================================================================================================ | |||
A waveguide effect can randomly and rhythmically cut into the audio stream | |||
'Chance' defines the probability of this happening. 0=never 1=always | |||
The range of frequencies the effect will choose from is defined by the user as note values. | |||
Frequencies are quatised to adhere to equal temperament. | |||
;======================================================================================================================== | |||
;==SQUARE MOD. (Square wave ring modulation)============================================================================= | |||
This effect can similarly randomly and rhythmically cut into the audio stream using the 'chance' control | |||
The range of frequencies the modulator waveform can move between is defined as 'oct' values. | |||
;======================================================================================================================== | |||
;==F.SHIFT (Frequency Shifter)=========================================================================================== | |||
Similar to the above except using a frequency shifter effect. | |||
;======================================================================================================================== | |||
<Cabbage> | |||
form size(440,485), caption("Break Beat Cutter"), pluginID("bbct") | |||
groupbox bounds( 0, 0,440,145), text("CUTTER"), plant("cutter"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Sub-div."), channel("subdiv"), range(1, 512, 8, 1, 1) | |||
rslider bounds( 80, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Bar Length"), channel("barlen"), range(1, 16, 2, 1, 1) | |||
rslider bounds(150, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Phrase"), channel("phrase"), range(1, 512, 8, 1, 1) | |||
rslider bounds(220, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Repeats"), channel("repeats"), range(1, 32, 2, 1, 1) | |||
rslider bounds(290, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Stut. Speed"), channel("stutspd"), range(1, 32, 4, 1, 1) | |||
rslider bounds(360, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Stut. Chance"), channel("stutchnc"), range(0, 1.00, 0.5) | |||
hslider bounds( 5, 95,425, 40), colour("Tan"), tracker("Tan"), fontcolour("silver"), textBox(1) channel("BPM"), range(10, 500, 110,1,1) | |||
label bounds(198,127, 25, 11), text("BPM"), FontColour("silver") | |||
} | |||
groupbox bounds( 0,145,440,100), text("FILTER"), plant("filter"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), text("Mix"), channel("FltMix"), range(0, 1.00, 0.6) | |||
rslider bounds( 80, 25, 70, 70), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), text("Division"), channel("fltdiv"), range(1, 16, 1,1,1) | |||
rslider bounds(150, 25, 70, 70), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), text("Bandwidth"), channel("bw"), range(0.1, 10, 1, 0.5, 0.001) | |||
hslider bounds(220, 25,140, 35), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), channel("cfmin"), range(50, 10000, 50 ,0.5,0.1) | |||
hslider bounds(220, 50,140, 35), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), channel("cfmax"), range(50, 10000, 10000,0.5,0.1) | |||
label bounds(254, 77, 80, 12), text("Cutoff Freq."), FontColour("white") | |||
rslider bounds(360, 25, 70, 70), colour(200,100,50,255), tracker(200,100,50,255), fontcolour("silver"), text("Int./S&H"), channel("i_h"), range(0, 1, 0) | |||
} | |||
groupbox bounds( 0,245,220,100), text("WAVE GUIDE"), plant("waveguide"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour(150,150,50,255), tracker(150,150,50,255), fontcolour("silver"), text("Chance"), channel("WguideChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(150,150,50,255), tracker(150,150,50,255), fontcolour("silver"), channel("wguidemin"), range(22, 100, 50,1,1) | |||
hslider bounds( 80, 50,140, 35), colour(150,150,50,255), tracker(150,150,50,255), fontcolour("silver"), channel("wguidemax"), range(22, 100, 70,1,1) | |||
label bounds(108, 77, 85, 12), text("Pitch Range"), FontColour("white") | |||
} | |||
groupbox bounds(220,245,220,100), text("SQUARE MOD."), plant("sqmod"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour(200,150,200,255), tracker(200,150,200,255), fontcolour("silver"), text("Chance"), channel("SqModChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(200,150,200,255), tracker(200,150,200,255), fontcolour("silver"), channel("sqmodmin"), range(1, 14.0, 6) | |||
hslider bounds( 80, 50,140, 35), colour(200,150,200,255), tracker(200,150,200,255), fontcolour("silver"), channel("sqmodmax"), range(1, 14.0, 12) | |||
label bounds(108, 77, 85, 12), text("Freq.Range"), FontColour("white") | |||
} | |||
groupbox bounds(0,345,220,100), text("FREQUENCY SHIFT"), plant("fshift"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour(250,110,250,255), tracker(250,110,250,255), fontcolour("silver"), text("Chance"), channel("FshiftChnc"), range(0, 1.00, 0.2) | |||
hslider bounds( 80, 25,140, 35), colour(250,110,250,255), tracker(250,110,250,255), fontcolour("silver"), channel("fshiftmin"), range(-4000, 4000,-1000) | |||
hslider bounds( 80, 50,140, 35), colour(250,110,250,255), tracker(250,110,250,255), fontcolour("silver"), channel("fshiftmax"), range(-4000, 4000, 1000) | |||
label bounds(108, 77, 85, 12), text("Freq.Range"), FontColour("white") | |||
} | |||
groupbox bounds(220,345,220,100), text("OUTPUT"), plant("output"), FontColour(silver),colour(40,40,40){ | |||
rslider bounds( 10, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Gain"), channel("gain"), range(0, 1, 0.75) | |||
rslider bounds( 80, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Dry/Wet"), channel("DryWet"), range(0, 1, 0.6) | |||
rslider bounds(150, 25, 70, 70), colour("Tan"), tracker("Tan"), fontcolour("silver"), text("Layers"), channel("layers"), range(1, 20, 1,1,1) | |||
} | |||
label bounds( 5,470, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs=1 | |||
seed 0 | |||
gisine ftgen 0,0,131072,10,1 | |||
opcode BBCutIteration,aa,aaiiiiiiiii | |||
aL,aR,iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc, icount, ilayers xin | |||
abbcutL bbcutm aL, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc | |||
abbcutR bbcutm aR, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc | |||
amixL = 0 | |||
amixR = 0 | |||
if icount<ilayers then | |||
amixL,amixR BBCutIteration aL,aR, iBPS, isubdiv, ibarlen, iphrase, irepeats, istutspd, istutchnc, icount+1, ilayers | |||
endif | |||
xout abbcutL+amixL,abbcutR+amixL | |||
endop | |||
opcode FreqShifter,a,aki | |||
ain,kfshift,ifn xin ;READ IN INPUT ARGUMENTS | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
xout aFS ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 ; read widgets | |||
gksubdiv chnget "subdiv" | |||
gkbarlen chnget "barlen" | |||
gkphrase chnget "phrase" | |||
gkrepeats chnget "repeats" | |||
gkstutspd chnget "stutspd" | |||
gkstutchnc chnget "stutchnc" | |||
gkBPM chnget "BPM" | |||
gkfltdiv chnget "fltdiv" | |||
gkDryWet chnget "DryWet" | |||
gkFltMix chnget "FltMix" | |||
gkbw chnget "bw" | |||
gkcfmin chnget "cfmin" | |||
gkcfmax chnget "cfmax" | |||
gki_h chnget "i_h" | |||
gklayers chnget "layers" | |||
gkgain chnget "gain" | |||
konoff chnget "onoff" | |||
endin | |||
instr 2 | |||
aL,aR ins | |||
;aL diskin "loop.wav",1,0,1 | |||
;aR = aL | |||
kSwitch changed gkBPM, gkrepeats, gkphrase, gkstutspd, gkstutchnc, gkbarlen, gksubdiv, gkfltdiv, gklayers ;GENERATE A MOMENTARY '1' PULSE IN OUTPUT 'kSwitch' IF ANY OF THE SCANNED INPUT VARIABLES CHANGE. (OUTPUT 'kSwitch' IS NORMALLY ZERO) | |||
if kSwitch=1 then ;IF I-RATE VARIABLE CHANGE TRIGGER IS '1'... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif | |||
UPDATE: | |||
kmetro metro i(gkBPM)/60 | |||
;OUTPUT OPCODE INPUT | BPM | SUBDIVISION | BAR_LENGTH | PHRASE_LENGTH | NUM.OF_REPEATS | STUTTER_SPEED | STUTTER_CHANCE | |||
abbcutL,abbcutR BBCutIteration aL,aR, i(gkBPM)/60, i(gksubdiv), i(gkbarlen), i(gkphrase), i(gkrepeats), i(gkstutspd), i(gkstutchnc), 1, i(gklayers) | |||
;FILTER================================================================================================================================================================= | |||
kfreq = (gkfltdiv) ;FREQUENCY WITH WHICH NEW FILTER CUTOFF VALUES ARE GENERATED ;LEFT CHANNE | |||
rireturn ;RETURN FROM REINITIALISATION PASS TO PERFORMANCE TIME PASSES | |||
kcf1h randomh gkcfmin, gkcfmax, kfreq ;SAMPLE AND HOLD RANDOM FREQUENCY VALUES ;LEFT CHANNEL | |||
kcf1i lineto kcf1h, 1/kfreq ;INTERPOLATE VALUES ;LEFT CHANNEL | |||
kcf1 ntrpol kcf1i, kcf1h, gki_h ;CROSSFADE BETWEEN INTERPOLATING AND SAMPLE AND HOLD TYPE RANDOM VALUES ;LEFT CHANNEL | |||
abbFltL resonz abbcutL, kcf1, kcf1*gkbw, 2 ;BAND-PASS FILTER ;LEFT CHANNEL | |||
abbMixL ntrpol abbcutL, abbFltL, gkFltMix ;CROSSFADE BETWEEN UNFILTERED AND FILTER AUDIO SIGNAL ;LEFT CHANNEL | |||
kcf2h randomh gkcfmin, gkcfmax, kfreq ;SAMPLE AND HOLD RANDOM FREQUENCY VALUES ;RIGHT CHANNEL | |||
kcf2i lineto kcf2h, 1/kfreq ;INTERPOLATE VALUES ;RIGHT CHANNEL | |||
kcf2 ntrpol kcf2i, kcf2h, gki_h ;CROSSFADE BETWEEN INTERPOLATING AND SAMPLE AND HOLD TYPE RANDOM VALUES ;RIGHT CHANNEL | |||
abbFltR resonz abbcutR, kcf2, kcf2*gkbw, 2 ;BAND-PASS FILTER ;RIGHT CHANNEL | |||
abbMixR ntrpol abbcutR, abbFltR, gkFltMix ;CROSSFADE BETWEEN UNFILTERED AND FILTER AUDIO SIGNAL ;RIGHT CHANNEL | |||
;======================================================================================================================================================================= | |||
;WGUIDE1================================================================================================================================================================ | |||
kchance chnget "WguideChnc" | |||
kdice trandom kmetro,0,1 | |||
if kdice<kchance then | |||
kwguidemin chnget "wguidemin" | |||
kwguidemax chnget "wguidemax" | |||
knum randomh kwguidemin,kwguidemax,gkBPM/60 | |||
afrq interp cpsmidinn(int(knum)) | |||
kfb randomi 0.8,0.99,gkBPM/(60*4) | |||
kcf randomi 800,4000,gkBPM/60 | |||
abbMixL wguide1 abbMixL*0.7,afrq,kcf,kfb | |||
abbMixR wguide1 abbMixR*0.7,afrq,kcf,kfb | |||
endif | |||
;======================================================================================================================================================================= | |||
;SQUARE MOD============================================================================================================================================================== | |||
kchance chnget "SqModChnc" | |||
ksqmodmin chnget "sqmodmin" | |||
ksqmodmax chnget "sqmodmax" | |||
kDiceRoll trandom kmetro,0,1 | |||
if kDiceRoll<kchance then | |||
kratei randomi ksqmodmin,ksqmodmax,gkBPM/60 | |||
krateh randomh ksqmodmin,ksqmodmax,gkBPM/60 | |||
kcross randomi 0,1,gkBPM | |||
kcross = kcross>0.5?1:0 | |||
krate ntrpol kratei,krateh,kcross | |||
amod lfo 1,cpsoct(krate),2 | |||
abbMixL = abbMixL*amod | |||
abbMixR = abbMixR*amod | |||
endif | |||
;======================================================================================================================================================================= | |||
;FSHIFT================================================================================================================================================================= | |||
kchance chnget "FshiftChnc" | |||
kdice trandom kmetro,0,1 | |||
if kdice<kchance then | |||
kfshiftmin chnget "fshiftmin" | |||
kfshiftmax chnget "fshiftmax" | |||
; kfsfrq randomh kfshiftmin,kfshiftmax,gkBPM/60 | |||
kfsfrqi randomi kfshiftmin,kfshiftmax,gkBPM/60 | |||
kfsfrqh randomh kfshiftmin,kfshiftmax,gkBPM/60 | |||
kcross randomi 0,1,gkBPM/2 | |||
kcross = kcross>0.5?1:0 | |||
kfsfrq ntrpol kfsfrqi,kfsfrqh,kcross | |||
abbMixL FreqShifter abbMixL,kfsfrq,gisine | |||
abbMixR FreqShifter abbMixR,kfsfrq,gisine | |||
endif | |||
;======================================================================================================================================================================= | |||
amixL sum aL*(1-gkDryWet), abbMixL*gkDryWet ;SUM AND MIX DRY SIGNAL AND BBCUT SIGNAL (LEFT CHANNEL) | |||
amixR sum aR*(1-gkDryWet), abbMixR*gkDryWet ;SUM AND MIX DRY SIGNAL AND BBCUT SIGNAL (RIGHT CHANNEL) | |||
outs amixL*gkgain, amixR*gkgain ;SEND AUDIO TO OUTPUTS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i1 0 36000 | |||
i2 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,95 @@ | |||
<Cabbage> | |||
form caption("Buzz synthesizer") size(562, 340), colour("black"),pluginID("buz1") | |||
rslider bounds(15, 10, 100, 100) channel("detune"), range(-1,1,0), caption("Detune"), colour("SteelBlue "), midictrl(1, 1) | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-24,12,-24), caption("Coarse"), colour("SteelBlue ") | |||
rslider bounds(225, 10, 100, 100) channel("cutoff"), range(60,2000,400), caption("Cutoff"), colour("SteelBlue ") | |||
rslider bounds(330, 10, 100, 100) channel("harm"), range(1,20,1), caption("Harmonic"), colour("SteelBlue ") | |||
rslider bounds(435, 10, 100, 100) channel("spread"), range(0, 1, .5), caption("Stereo image"), colour("SteelBlue ") | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(270, 120, 130, 100), text("LFO"), plant("lfo"){ | |||
rslider bounds(.04, .3, .6, .6), text("Lfo Amp"), colour("SteelBlue "), channel("lfoamp"), range(0,100, 0) | |||
rslider bounds(.5, .3, .6, .6), text("Lfo Rate"), colour("SteelBlue "), channel("lforate"), range(0,20, 0) | |||
} | |||
groupbox bounds(410, 120, 130, 100), text("LFO filter"), plant("lfofilter"){ | |||
rslider bounds(.04, .3, .6, .6), text("Lfo Amp"), colour("SteelBlue "), channel("lfoamp2"), range(0,1000, 0) | |||
rslider bounds(.5, .3, .6, .6), text("Lfo Rate"), colour("SteelBlue "), channel("lforate2"), range(0,10, 0) | |||
} | |||
keyboard pos(10,240), size(540,60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 -m0d | |||
</CsOptions> | |||
<CsInstruments> | |||
; Initialize the global variables. | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
instr 1 | |||
;channel | |||
kdetune chnget "detune" | |||
ksemi chnget "semi" | |||
kcut chnget "cutoff" | |||
kharm chnget "harm" | |||
kspread chnget "spread" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
klfoamp2 chnget "lfoamp2" ;lfo x filter | |||
klforate2 chnget "lforate2" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi)) | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(ksemi)+kdetune) | |||
;lfo | |||
klfo poscil klfoamp,klforate,1 | |||
asig1 buzz iamp,(kfreq1+klfo),int(kharm),1 | |||
asig2 buzz iamp,(kfreq2+klfo),int(kharm),1 | |||
;filter | |||
klfofilter lfo klfoamp2,klforate2,3 | |||
aout1 fofilter asig1,kcut+klfofilter,0.007,0.04 | |||
aout2 fofilter asig2,kcut+klfofilter,0.007,0.04 | |||
aout1x balance aout1,asig1 | |||
aout2x balance aout2,asig2 | |||
;master | |||
aL clip aout1x,0,0dbfs | |||
aR clip aout2x,0,0dbfs | |||
aoutL = ((aL * kspread) + (aR * (1 - kspread))) *.5 | |||
aoutR = ((aL * (1-kspread)) + (aR * kspread)) *.5 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs aoutL*kadsr,aoutR*kadsr | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
f2 0 1024 10 1 | |||
i1 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,374 @@ | |||
Choir.csd | |||
Note velocity is interpretted as attack time (along with a slight interpretation as amplitude) | |||
If N.Voices (number of voices) is set to '1' chorussing effect is bypassed, instead a fundemental modulation mechanism is enabled | |||
Vibrato/tremolo depth also controllable using midi controller 1 (mod. wheel), midi channel 1 | |||
Vowel is controllable using midi controller 2, midi channel 1 | |||
N.Voices value is not strictly speaking accurate: 1 = 1 voice | |||
2 = 2 voices | |||
3 = 4 voices | |||
4 = 6 voices | |||
5 = 8 voices, this is on account of how the mechanism implements a stereo effect | |||
<Cabbage> | |||
form caption("Choir") size(770, 335), pluginID("choi") | |||
; main container | |||
image bounds( 0, 0,770, 360), colour(255,100, 0, 40), shape("rounded"), outline("white"), line(3) | |||
; horizontal stripes | |||
image bounds( 0, 40,770, 75), colour(100,100, 0, 60), shape("sharp") | |||
image bounds( 0,130,770, 35), colour( 0, 0,255, 60), shape("sharp") | |||
; vertical stripes | |||
image bounds(310, 0, 30, 360), colour( 5,255, 0, 60), shape("sharp") | |||
image bounds(370, 0, 80, 360), colour(255, 0,200, 60), shape("sharp") | |||
image bounds(490, 0, 60, 360), colour( 0,255,200, 60), shape("sharp") | |||
image bounds(560, 0, 40, 360), colour(100, 55,200, 60), shape("sharp") | |||
image bounds(620, 0, 20, 360), colour(255, 55, 0, 60), shape("sharp") | |||
image bounds(660, 0, 90, 360), colour( 5,255,100, 60), shape("sharp") | |||
xypad bounds(10, 10, 250, 210), channel("vowel", "oct"), text("X = Vowel 'AEIOU' : Y = Octave Division"), rangex(0, 1, 0), rangey(0, 4, 0) | |||
combobox bounds(265, 10, 110, 25), channel("voice"), value(5), text("Bass", "Tenor", "Countertenor", "Alto", "Soprano") | |||
button bounds(265, 40, 110, 25), text("polyphonic","monophonic"), channel("monopoly"), value(1), fontcolour("lime") | |||
rslider bounds(385, 10, 60, 60), text("Leg.Time"), channel("LegTim"), range(0.005, 0.3, 0.025, 0.5, 0.005),colour("green"), trackercolour("white") | |||
rslider bounds(445, 10, 60, 60), text("Vowel"), channel("vowel"), range(0, 1.00, 0), colour("green"), trackercolour("white"),midCtrl(1, 2) | |||
rslider bounds(505, 10, 60, 60), text("Level"), channel("lev"), range(0, 1.00, 0.6), colour("green"), trackercolour("white") | |||
rslider bounds(265, 80, 60, 60), text("Vib.Dep."), channel("vibdep"), range(0, 2.00, 0.35), colour("tomato"), trackercolour("white"),midCtrl(1, 1) | |||
rslider bounds(325, 80, 60, 60), text("Trem.Dep."), channel("trmdep"), range(0, 1.00, 0.2), colour("tomato"), trackercolour("white"),midCtrl(1, 1) | |||
rslider bounds(385, 80, 60, 60), text("Mod.Rate"), channel("modrte"), range(0.10,20, 5, 0.5), colour("tomato"), trackercolour("white") | |||
rslider bounds(445, 80, 60, 60), text("Mod.Delay"), channel("moddel"), range(0, 2.00, 0.3, 0.5),colour("tomato"), trackercolour("white") | |||
rslider bounds(505, 80, 60, 60), text("Mod.Rise"), channel("modris"), range(0, 4.00, 2, 0.5), colour("tomato"), trackercolour("white") | |||
rslider bounds(265,150, 60, 60), text("N.Voices"), channel("nvoices"), range(1, 50, 6, 1, 1), colour("yellow"), trackercolour("white") | |||
rslider bounds(325,150, 60, 60), text("Dtn.Dep."), channel("DtnDep"), range(0, 4.00, 1,0.5),colour("yellow"), trackercolour("white") | |||
rslider bounds(385,150, 60, 60), text("Dtn.Rate"), channel("DtnRte"), range(0.01,40, 0.2,0.25),colour("yellow"), trackercolour("white") | |||
rslider bounds(445,150, 60, 60), text("Rvb.Mix"), channel("RvbMix"), range(0, 1.00, 0.15), colour("steelblue"),trackercolour("white") | |||
rslider bounds(505,150, 60, 60), text("Rvb.Size"), channel("RvbSize"), range(0.5, 1.00, 0.82,2),colour("steelblue"),trackercolour("white") | |||
checkbox bounds(570, 10,190, 20), text("Filter On/Off") channel("FiltOnOff"), colour("lime") value(0) | |||
xypad bounds(570, 35, 190, 185), channel("cf", "bw"), text("x:c.off/y:b.width"), rangex(5, 13, 8), rangey(0.1, 5, 0.3) | |||
keyboard pos(10, 225), size(760, 80) | |||
image bounds(10, 309, 250, 22), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.15, .99, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
massign 0,2 | |||
seed 0 | |||
;Author: Iain McCurdy (2012) | |||
gisine ftgen 0, 0, 4096, 10, 1 ;SINE WAVE | |||
giexp ftgen 0, 0, 1024, 19, 0.5, 0.5, 270, 0.5 ;EXPONENTIAL CURVE USED TO DEFINE THE ENVELOPE SHAPE OF FOF PULSES | |||
gasendL,gasendR init 0 | |||
;FUNCTION TABLES STORING DATA FOR VARIOUS VOICE FORMANTS | |||
;THE FIRST VALUE OF EACH TABLE DEFINES THE NUMBER OF DATA ELEMENTS IN THE TABLE | |||
;THIS IS NEEDED BECAUSE TABLES SIZES MUST BE POWERS OF 2 TO FACILITATE INTERPOLATED TABLE READING (tablei) | |||
;BASS | |||
giBF1 ftgen 0, 0, 8, -2, 4, 600, 400, 250, 350 ;FREQ | |||
giBF2 ftgen 0, 0, 8, -2, 4, 1040, 1620, 1750, 600 ;FREQ | |||
giBF3 ftgen 0, 0, 8, -2, 4, 2250, 2400, 2600, 2400 ;FREQ | |||
giBF4 ftgen 0, 0, 8, -2, 4, 2450, 2800, 3050, 2675 ;FREQ | |||
giBF5 ftgen 0, 0, 8, -2, 4, 2750, 3100, 3340, 2950 ;FREQ | |||
giBDb1 ftgen 0, 0, 8, -2, 4, 0, 0, 0, 0 ;dB | |||
giBDb2 ftgen 0, 0, 8, -2, 4, -7, -12, -30, -20 ;dB | |||
giBDb3 ftgen 0, 0, 8, -2, 4, -9, -9, -16, -32 ;dB | |||
giBDb4 ftgen 0, 0, 8, -2, 4, -9, -12, -22, -28 ;dB | |||
giBDb5 ftgen 0, 0, 8, -2, 4, -20, -18, -28, -36 ;dB | |||
giBBW1 ftgen 0, 0, 8, -2, 4, 60, 40, 60, 40 ;BAND WIDTH | |||
giBBW2 ftgen 0, 0, 8, -2, 4, 70, 80, 90, 80 ;BAND WIDTH | |||
giBBW3 ftgen 0, 0, 8, -2, 4, 110, 100, 100, 100 ;BAND WIDTH | |||
giBBW4 ftgen 0, 0, 8, -2, 4, 120, 120, 120, 120 ;BAND WIDTH | |||
giBBW5 ftgen 0, 0, 8, -2, 4, 130, 120, 120, 120 ;BAND WIDTH | |||
;TENOR | |||
giTF1 ftgen 0, 0, 8, -2, 5, 650, 400, 290, 400, 350 ;FREQ | |||
giTF2 ftgen 0, 0, 8, -2, 5, 1080, 1700, 1870, 800, 600 ;FREQ | |||
giTF3 ftgen 0, 0, 8, -2, 5, 2650, 2600, 2800, 2600, 2700 ;FREQ | |||
giTF4 ftgen 0, 0, 8, -2, 5, 2900, 3200, 3250, 2800, 2900 ;FREQ | |||
giTF5 ftgen 0, 0, 8, -2, 5, 3250, 3580, 3540, 3000, 3300 ;FREQ | |||
giTDb1 ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giTDb2 ftgen 0, 0, 8, -2, 5, -6, -14, -15, -10, -20 ;dB | |||
giTDb3 ftgen 0, 0, 8, -2, 5, -7, -12, -18, -12, -17 ;dB | |||
giTDb4 ftgen 0, 0, 8, -2, 5, -8, -14, -20, -12, -14 ;dB | |||
giTDb5 ftgen 0, 0, 8, -2, 5, -22, -20, -30, -26, -26 ;dB | |||
giTBW1 ftgen 0, 0, 8, -2, 5, 80, 70, 40, 40, 40 ;BAND WIDTH | |||
giTBW2 ftgen 0, 0, 8, -2, 5, 90, 80, 90, 80, 60 ;BAND WIDTH | |||
giTBW3 ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 100 ;BAND WIDTH | |||
giTBW4 ftgen 0, 0, 8, -2, 5, 130, 120, 120, 120, 120 ;BAND WIDTH | |||
giTBW5 ftgen 0, 0, 8, -2, 5, 140, 120, 120, 120, 120 ;BAND WIDTH | |||
;COUNTER TENOR | |||
giCTF1 ftgen 0, 0, 8, -2, 5, 660, 440, 270, 430, 370 ;FREQ | |||
giCTF2 ftgen 0, 0, 8, -2, 5, 1120, 1800, 1850, 820, 630 ;FREQ | |||
giCTF3 ftgen 0, 0, 8, -2, 5, 2750, 2700, 2900, 2700, 2750 ;FREQ | |||
giCTF4 ftgen 0, 0, 8, -2, 5, 3000, 3000, 3350, 3000, 3000 ;FREQ | |||
giCTF5 ftgen 0, 0, 8, -2, 5, 3350, 3300, 3590, 3300, 3400 ;FREQ | |||
giTBDb1 ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giTBDb2 ftgen 0, 0, 8, -2, 5, -6, -14, -24, -10, -20 ;dB | |||
giTBDb3 ftgen 0, 0, 8, -2, 5, -23, -18, -24, -26, -23 ;dB | |||
giTBDb4 ftgen 0, 0, 8, -2, 5, -24, -20, -36, -22, -30 ;dB | |||
giTBDb5 ftgen 0, 0, 8, -2, 5, -38, -20, -36, -34, -30 ;dB | |||
giTBW1 ftgen 0, 0, 8, -2, 5, 80, 70, 40, 40, 40 ;BAND WIDTH | |||
giTBW2 ftgen 0, 0, 8, -2, 5, 90, 80, 90, 80, 60 ;BAND WIDTH | |||
giTBW3 ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 100 ;BAND WIDTH | |||
giTBW4 ftgen 0, 0, 8, -2, 5, 130, 120, 120, 120, 120 ;BAND WIDTH | |||
giTBW5 ftgen 0, 0, 8, -2, 5, 140, 120, 120, 120, 120 ;BAND WIDTH | |||
;ALTO | |||
giAF1 ftgen 0, 0, 8, -2, 5, 800, 400, 350, 450, 325 ;FREQ | |||
giAF2 ftgen 0, 0, 8, -2, 5, 1150, 1600, 1700, 800, 700 ;FREQ | |||
giAF3 ftgen 0, 0, 8, -2, 5, 2800, 2700, 2700, 2830, 2530 ;FREQ | |||
giAF4 ftgen 0, 0, 8, -2, 5, 3500, 3300, 3700, 3500, 2500 ;FREQ | |||
giAF5 ftgen 0, 0, 8, -2, 5, 4950, 4950, 4950, 4950, 4950 ;FREQ | |||
giADb1 ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giADb2 ftgen 0, 0, 8, -2, 5, -4, -24, -20, -9, -12 ;dB | |||
giADb3 ftgen 0, 0, 8, -2, 5, -20, -30, -30, -16, -30 ;dB | |||
giADb4 ftgen 0, 0, 8, -2, 5, -36, -35, -36, -28, -40 ;dB | |||
giADb5 ftgen 0, 0, 8, -2, 5, -60, -60, -60, -55, -64 ;dB | |||
giABW1 ftgen 0, 0, 8, -2, 5, 50, 60, 50, 70, 50 ;BAND WIDTH | |||
giABW2 ftgen 0, 0, 8, -2, 5, 60, 80, 100, 80, 60 ;BAND WIDTH | |||
giABW3 ftgen 0, 0, 8, -2, 5, 170, 120, 120, 100, 170 ;BAND WIDTH | |||
giABW4 ftgen 0, 0, 8, -2, 5, 180, 150, 150, 130, 180 ;BAND WIDTH | |||
giABW5 ftgen 0, 0, 8, -2, 5, 200, 200, 200, 135, 200 ;BAND WIDTH | |||
;SOPRANO | |||
giSF1 ftgen 0, 0, 8, -2, 5, 800, 350, 270, 450, 325 ;FREQ | |||
giSF2 ftgen 0, 0, 8, -2, 5, 1150, 2000, 2140, 800, 700 ;FREQ | |||
giSF3 ftgen 0, 0, 8, -2, 5, 2900, 2800, 2950, 2830, 2700 ;FREQ | |||
giSF4 ftgen 0, 0, 8, -2, 5, 3900, 3600, 3900, 3800, 3800 ;FREQ | |||
giSF5 ftgen 0, 0, 8, -2, 5, 4950, 4950, 4950, 4950, 4950 ;FREQ | |||
giSDb1 ftgen 0, 0, 8, -2, 5, 0, 0, 0, 0, 0 ;dB | |||
giSDb2 ftgen 0, 0, 8, -2, 5, -6, -20, -12, -11, -16 ;dB | |||
giSDb3 ftgen 0, 0, 8, -2, 5, -32, -15, -26, -22, -35 ;dB | |||
giSDb4 ftgen 0, 0, 8, -2, 5, -20, -40, -26, -22, -40 ;dB | |||
giSDb5 ftgen 0, 0, 8, -2, 5, -50, -56, -44, -50, -60 ;dB | |||
giSBW1 ftgen 0, 0, 8, -2, 5, 80, 60, 60, 70, 50 ;BAND WIDTH | |||
giSBW2 ftgen 0, 0, 8, -2, 5, 90, 90, 90, 80, 60 ;BAND WIDTH | |||
giSBW3 ftgen 0, 0, 8, -2, 5, 120, 100, 100, 100, 170 ;BAND WIDTH | |||
giSBW4 ftgen 0, 0, 8, -2, 5, 130, 150, 120, 130, 180 ;BAND WIDTH | |||
giSBW5 ftgen 0, 0, 8, -2, 5, 140, 200, 120, 135, 200 ;BAND WIDTH | |||
gkactive init 0 ; Will contain number of active instances of instr 3 when legato mode is chosen. NB. notes in release stage will not be regarded as active. | |||
opcode fofx5, a, kkki | |||
kfund,kvowel,koct,ivoice xin | |||
ivoice limit ivoice,0,4 ;protect against out of range values for ivoice | |||
;create a macro for each formant to reduce code repetition | |||
#define FORMANT(N) | |||
# | |||
invals table 0, giBF1+(ivoice*15)+$N-1 ;number of data elements in each table | |||
invals = invals-1 ; | |||
k$Nform tablei 1+(kvowel*invals), giBF1+(ivoice*15)+$N-1 ;read formant frequency from table | |||
kRandForm$N randomi -0.025,0.025,8,1 | |||
k$Nform = k$Nform*octave(kRandForm$N) | |||
k$Ndb tablei 1+(kvowel*invals), giBDb1+(ivoice*15)+$N-1 ;read decibel value from table | |||
k$Namp = ampdb(k$Ndb) ;convert to an amplitude value | |||
k$Nband tablei 1+(kvowel*invals), giBBW1+(ivoice*15)+$N-1 ;read bandwidth from table | |||
# | |||
;EXECUTE MACRO MULTIPLE TIMES | |||
$FORMANT(1) | |||
$FORMANT(2) | |||
$FORMANT(3) | |||
$FORMANT(4) | |||
$FORMANT(5) | |||
;====================================================================================================================================================================== | |||
iris = 0.003 ;grain pulse rise time | |||
idur = 0.02 ;grain pulse duration | |||
idec = 0.007 ;grain pulse decay | |||
iolaps = 14850 ;maximum number of overlaps (overestimate) | |||
ifna = gisine ;function table for audio contained within fof grains | |||
ifnb = giexp ;function table that defines the attack and decay shapes of each fof grain | |||
itotdur = 3600 ;total maximum duration of a note (overestimate) | |||
;FOF=================================================================================================================================================================== | |||
iRandRange = .1 | |||
#define RandFact | |||
# | |||
kRndFact rspline -iRandRange,iRandRange,1,10 | |||
kRndFact = semitone(kRndFact) | |||
# | |||
$RandFact | |||
a1 fof k1amp, kfund*kRndFact, k1form, koct, k1band, iris, idur, idec, iolaps, ifna, ifnb, itotdur | |||
a2 fof k2amp, kfund*kRndFact, k2form, koct, k2band, iris, idur, idec, iolaps, ifna, ifnb, itotdur | |||
a3 fof k3amp, kfund*kRndFact, k3form, koct, k3band, iris, idur, idec, iolaps, ifna, ifnb, itotdur | |||
a4 fof k4amp, kfund*kRndFact, k4form, koct, k4band, iris, idur, idec, iolaps, ifna, ifnb, itotdur | |||
a5 fof k5amp, kfund*kRndFact, k5form, koct, k5band, iris, idur, idec, iolaps, ifna, ifnb, itotdur | |||
;====================================================================================================================================================================== | |||
;OUT=================================================================================================================================================================== | |||
asig = (a1+a2+a3+a4+a5)/5 ;mix the five fof streams and reduce amplitude five-fold | |||
xout asig ;send audio back to caller instrument | |||
endop | |||
opcode ChoVoice,a,kkiii | |||
kDtnDep,kDtnRte,ifn,icount,invoices xin ;read in input args. | |||
ktime randomi 0.01,0.1*kDtnDep,kDtnRte,1 ;create delay time value (linearly interpolating random function will implement pitch/time modulations) | |||
kptime linseg 0,0.001,1 ;portamento time (ramps up quickly from zero to a held value) | |||
ktime portk ktime,kptime ;apply portamento smoothing to delay time changes (prevents angular pitch changes) | |||
atime interp ktime ;create an interpolated a-rate version of delay time function (this will prevent qualtisation artifacts) | |||
atap deltapi atime+0.0015 ;tap the delay buffer (nb. buffer opened and closed in caller instrument, UDO exists within the buffer) | |||
iDel random ksmps/sr,0.2 ;random fixed delay time. By also apply a fixed delay time we prevent excessive amplitude at ote onsets when many chorus voices (N.Voices) are used | |||
atap delay atap,iDel ;apply fixed delay | |||
amix init 0 ;initialise amix variable (needed incase N.Voices is 1 in which case recirsion would not be used) | |||
if icount<invoices then ;if stack of chorus voices is not yet completed... | |||
amix ChoVoice kDtnDep,kDtnRte,ifn,icount+1,invoices ;.. call the UDO again. Increment count number. | |||
endif | |||
xout atap+amix ;send chorus voice created in this interation (and all subsequent voices) back to caller instrument | |||
endop | |||
instr 1 ;instrument that continuously scans widgets | |||
gkmonopoly chnget "monopoly" ;read widgets... | |||
gkDtnDep chnget "DtnDep" | |||
gkDtnRte chnget "DtnRte" | |||
gkvibdep chnget "vibdep" | |||
gkmodrte chnget "modrte" | |||
gktrmdep chnget "trmdep" | |||
gklevel chnget "lev" | |||
gkvowel chnget "vowel" | |||
gkoct chnget "oct" | |||
gkLegTim chnget "LegTim" | |||
gkRvbMix chnget "RvbMix" | |||
gkRvbSize chnget "RvbSize" | |||
kporttime linseg 0,0.001,0.1 ;portamento time (ramps up quickly from zero to a held value) | |||
gkvowel portk gkvowel,kporttime ;apply portamento smoothing | |||
gkoct portk gkoct,kporttime | |||
gkFiltOnOff chnget "FiltOnOff" | |||
gkcf chnget "cf" | |||
gkbw chnget "bw" | |||
gkcf portk cpsoct(gkcf),kporttime ;apply portamento smoothing | |||
gkbw portk gkbw*gkcf,kporttime ;apply portamento smoothing | |||
endin | |||
instr 2 ;triggered via MIDI | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
icps cpsmidi ;read in midi note pitch in cycles per second | |||
givel veloc 0,1 ;read in midi note velocity | |||
gkcps = icps ;update a global krate variable for note pitch | |||
if i(gkmonopoly)==0 then ;if we are *not* in legato mode... | |||
inum notnum ; read midi note number (0 - 127) | |||
event_i "i",p1+1+(inum*0.001),0,-1,icps ; call soud producing instr | |||
krel release ; release flag (1 when note is released, 0 otherwise) | |||
if krel==1 then ; when note is released... | |||
turnoff2 p1+1+(inum*0.001),4,1 ; turn off the called instrument | |||
endif ; end of conditional | |||
else ;otherwise... (i.e. legato mode) | |||
iactive = i(gkactive) ;number of active notes of instr 3 (note in release are disregarded) | |||
if iactive==0 then ;...if no notes are active | |||
event_i "i",p1+1,0,-1 ;...start a new held note | |||
endif | |||
endif | |||
endin | |||
instr 3 | |||
ivoice chnget "voice" ;read widgets... | |||
imoddel chnget "moddel" ; | |||
imodris chnget "modris" ; | |||
invoices chnget "nvoices" ; | |||
kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kporttime = kporttime*gkLegTim ;scale portamento time function with value from GUI knob widget | |||
if i(gkmonopoly)==1 then ;if we are in legato mode... | |||
krel release ;sense when note has been released | |||
gkactive = 1-krel ;if note is in release, gkactive=0, otherwise =1 | |||
kcps portk gkcps,kporttime ;apply portamento smooth to changes in note pitch (this will only have an effect in 'legato' mode) | |||
kactive active p1-1 ;...check number of active midi notes (previous instrument) | |||
if kactive==0 then ;if no midi notes are active... | |||
turnoff ;... turn this instrument off | |||
endif | |||
else ;otherwise... (polyphonic / non-legato mode) | |||
kcps = p4 ;pitch equal to the original note pitch | |||
endif | |||
if gkNoteTrig==1&&gkmonopoly==1 then ;if a new note is beginning and if we are in monophonic mode... | |||
reinit RESTART_ENVELOPE ;reinitialise the modulations build up | |||
endif | |||
RESTART_ENVELOPE: | |||
;VIBRATO (PITCH MODULATION) | |||
kmodenv linseg 0,0.001+imoddel,0,0.001+imodris,1 ;modulation depth envelope - modulation can be delayed by the first envelope segement and the rise time is defined by the duration of the second segment | |||
kDepVar randomi 0.5,1,4 ;random variance of the depth of modulation | |||
kmodenv portk kmodenv*kDepVar,kporttime ;smooth changes in modulation envelope to prevent discontinuities whnever the envelope is restarted | |||
rireturn | |||
kRteVar randi 0.1,4 ;random variation of the rate of modulation | |||
kvib lfo gkvibdep*kmodenv,gkmodrte*octave(kRteVar),0 ;vibrato function | |||
;TREMOLO (AMPLITUDE MODULATION) | |||
ktrem lfo kmodenv*(gktrmdep/2),gkmodrte*octave(kRteVar),0 ;TREMOLO LFO FUNCTION | |||
ktrem = (ktrem+0.5) + (gktrmdep * 0.5) ;OFFSET AND RESCALE TREMOLO FUNCTION ACCORDING TO TREMOLO DEPTH WIDGET SETTING | |||
iRelTim = 0.05 | |||
kCpsAtt expsegr 0.6,rnd(0.004)+0.001,1,iRelTim,1-rnd(0.05) ;a little jump in pitch at the beginning of a note will give the note a realistic attack sound. This will be most apparent when note velocity is high. And a little gliss at the end of notes. | |||
kcpsRnd gaussi 1,0.01,10 ;create a function that will be used to apply naturalistic pitch instability | |||
kcps = kcps*(1+kcpsRnd) ;apply pitch instability | |||
asig fofx5 kcps*semitone(kvib)*kCpsAtt, gkvowel, gkoct, ivoice-1 ;CALL fofx5 UDO | |||
if gkFiltOnOff==1 then | |||
asig reson asig,gkcf,gkbw,1 ;parametric EQ | |||
endif | |||
aatt linseg 0,(0.3*(1-givel)*(invoices^0.8))+0.01,1 ;AMPLITUDE ENVELOPE - ATTACK TIME IS INFLUENCED BY KEY VELOCITY | |||
asig = asig*aatt*ktrem*(0.3+givel*0.7)*gklevel ;APPLY AMPLITUDE CONTROLS: ENVELOPE, TREMOLO, KEY VELOCITY AND LEVEL | |||
/*CHORUS*/ | |||
if invoices>1 then | |||
abuf delayr 2 ;--left channel-- | |||
amixL ChoVoice gkDtnDep,gkDtnRte,gisine,1,invoices ;call UDO | |||
delayw asig | |||
abuf delayr 2 ;--right channel-- | |||
amixR ChoVoice gkDtnDep,gkDtnRte,gisine,1,invoices ;call UDO | |||
delayw asig | |||
asigL = amixL/(invoices^0.5) ;scale mix of chorus voices according to the number of voices... | |||
asigR = amixR/(invoices^0.5) ;...and the right channel | |||
else ;otherwise... (N.Voices = 1) | |||
asigL = asig ;send mono signal to both channels | |||
asigR = asig | |||
endif | |||
arel linsegr 1,iRelTim,0 ;release envelope | |||
asigL = asigL*arel ;apply release envelope | |||
asigR = asigR*arel | |||
kwet limit 2*gkRvbMix,0,1 ;wet (reverb) level control (reaches maximum a knob halfway point and hold that value for the remainder of its travel) | |||
gasendL = gasendL+asigL*kwet ;send some audio to the reverb instrument | |||
gasendR = gasendR+asigR*kwet | |||
kdry limit 2*(1-gkRvbMix),0,1 ;dry level (stays at maximum for the first half of the knob's travel then ramps down to zero for the remainder of its travel) | |||
outs asigL*kdry,asigR*kdry ;SEND AUDIO TO OUTPUT | |||
gkNoteTrig = 0 ;reset new-note trigger (in case it was '1') | |||
endin | |||
instr Effects | |||
if gkRvbMix>0 then | |||
aL,aR reverbsc gasendL,gasendR,gkRvbSize,12000 ;create stereo reverb signal | |||
outs aL,aR ;send reverb signal to speakers | |||
clear gasendL,gasendR ;clear reverb send variables | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f 0 [3600*24*7] | |||
i 1 0 [3600*24*7] ;read widgets | |||
i "Effects" 0 [3600*24*7] ;reverb | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,528 @@ | |||
<Cabbage> | |||
form caption("John Chowning collection") size(562, 340), colour("black"),pluginID("cho1") | |||
rslider bounds(15, 10, 100, 100) channel("spread"), range(0,1,.5), caption("Spread"), colour("GreenYellow "), midictrl(1, 1) | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-24,12,-12), caption("Coarse"), colour("GreenYellow ") | |||
rslider bounds(225, 10, 100, 100) channel("detune"), range(-2,2,0), caption("Detune"), colour("GreenYellow ") | |||
rslider bounds(330, 10, 100, 100) channel("vibamp"), range(0,20,0), caption("Vib Amp"), colour("GreenYellow ") | |||
rslider bounds(435, 10, 100, 100) channel("vibrate"), range(0,20,0), caption("Vib rate"), colour("GreenYellow ") | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
combobox bounds(280,120, 160, 20), channel("select"), value(1), text("clar","glass", "loop","perc","piano","rebell","soprano","string","trumpet","vibr") | |||
rslider bounds(280,150, 60, 60), text("Rev level"), colour("GreenYellow "), channel("level"), range(0,1,.8) | |||
rslider bounds(350, 150, 60, 60), text("Rev size"), colour("GreenYellow "), channel("size"), range(.1,.99,.7) | |||
checkbox bounds(420, 160, 160, 30),channel("onoff"), text("Reverb On/Off"), value(0) | |||
keyboard pos(10, 240), size(540, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
ga1 init 0 | |||
ga2 init 0 | |||
;Chowning opcodes | |||
;******************************************** | |||
opcode CHOWNClar,a,kk | |||
gitemp1 ftgen 0,0, 8192, -12, 8 | |||
gitemp2 ftgen 0,0, 8192, 9, 1, 1, 0 | |||
gitemp3 ftgen 0,0, 8192, 9, 1, 1, 90 | |||
kamp,knote xin | |||
;setksmps 10 | |||
;inote cpsmidib | |||
;iveloc ampmidi 1 | |||
kgate linenr kamp,0,1,.01 | |||
kenv linseg 0,0.1,1,2-0.3,1,0.2,0 | |||
kramp linseg 0,2/2,4,2/2,0 | |||
k1 = kramp * (.8 - 1/.8)/2 | |||
k2a = kramp * (.8 + 1/.8)/2 | |||
k2b = 200 * k2a | |||
k3a table k1*2,gitemp1,0,0,0 | |||
k3b = k3a * (-1/2) | |||
a1 poscil k2b,knote*2,gitemp3 | |||
a2 poscil k1,knote*2,gitemp3 | |||
a3 = kenv* exp(a2+k3b) | |||
asig poscil a3,knote+a1,gitemp2 | |||
xout asig*kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNglass,a,kki | |||
kamp,knote,ifunc xin | |||
kgate linenr kamp, 0, .2, .01 | |||
imfreq = 1.4 * 200 | |||
immax = 10 * imfreq | |||
kmenv linseg 1, 5/6, 0, 5 - (5/6), 0 | |||
koenv expseg 0.8, 5/6, 1, 5 - (5/6) , .01 | |||
amod poscil kmenv * immax, 1.414*knote, ifunc | |||
aout poscil koenv * 1, knote + amod, ifunc | |||
xout aout*kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNLoop,a,kki | |||
gitemp1 ftgen 0, 0, 513, 5, .7, 16, .8,48, 1 , 64, .8, 128,.2, 256, .001 | |||
gitemp2 ftgen 0, 0, 513, 7, 0 , 12, 1, 52, 0, 460, 0 | |||
kamp,kfreq,ifunc xin | |||
kgate linenr kamp, 0, .2, .01 | |||
i1 = 1/.2 | |||
idev1 = 0 * 110 | |||
idev2 = (25-0) * 110 | |||
ampcar poscil 1, i1, gitemp1 | |||
ampmod poscil idev2, i1,gitemp2 | |||
amod poscil ampmod+idev1, kfreq*1,ifunc | |||
asig poscil ampcar, kfreq+amod,ifunc | |||
xout asig*kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNPerc,a,kki | |||
kamp,kcps,ifunc xin | |||
keg expseg .001, .01, 1, .1, .8, 999, .001 | |||
keg linenr keg * kamp, .01, .333, .05 | |||
kmeg expseg .001, .01,12000/1000, .25, .2, 999, .001 | |||
a1 foscili keg, kcps, 1, 1.4, kmeg, 1 | |||
xout a1 | |||
endop | |||
;************************************************** | |||
opcode CHOWNPiano,a,kki | |||
kamp,kcps,ifunc xin | |||
;gitemp100 ftgen 0,0 ,128 ,7, 0, 128 , 1 | |||
kndx expon 1, .3, .01 | |||
a1 foscili kamp, kcps, 1, 12, kndx, ifunc | |||
a2 foscili kamp, kcps + .1, 1, 12, kndx, ifunc | |||
a3 foscili kamp, kcps - .1, 1, 12, kndx, ifunc | |||
aosc = a1 + a2 + a3 | |||
kenv mxadsr .01, .1, .8, .1 | |||
aosc = aosc * .5 | |||
aout = aosc*kenv | |||
xout aout | |||
endop | |||
;************************************************** | |||
opcode CHOWNrebell,a,kki | |||
gifc2 ftgen 0,0.0 ,512 ,7 ,1 ,512 ,1 | |||
gifc3 ftgen 0,0.0, 512, 7 ,.5 ,512, .5 | |||
gifc4 ftgen 0,0.0 ,513 ,7 ,1 ,512, 0, 1, 0 | |||
gifc5 ftgen 0,0.0, 513 ,7 ,0 ,512, 1, 1, 1 | |||
gifc6 ftgen 0,0.0 ,513, 7, 1, 256, 0, 256, 1 ,1, 1 | |||
kamp,knote,ifunc xin | |||
kgate linenr kamp,0,1.5,.01 | |||
kpitch1 = knote | |||
kpitch2 = kpitch1 * 1.001 | |||
kpitch3 = kpitch1 * 0.998 | |||
imodbase = (19 <= 5 ? 19 : 5) | |||
imodmax = (19 <= 5 ? 5 : 19) | |||
indxbase = (1 <= 2 ? 1 : 2) | |||
indxmax = (1 <= 2 ? 2 : 1) | |||
kmodchg oscil1i 0.00,imodmax - imodbase,p3,gifc4 | |||
kmod = imodbase + kmodchg | |||
kndxchg oscil1i 0.00,indxmax - indxbase,5,gifc5 | |||
kndx = indxbase + kndxchg | |||
afm1 foscili 1*.45,kpitch1,1,kmod,kndx,ifunc | |||
afm2 foscili 1*.35,kpitch2,1,kmod,kndx,ifunc | |||
afm3 foscili 1*.32,kpitch3,1,kmod,kndx,ifunc | |||
afmttl = afm1+afm2+afm3 | |||
aosc1 poscil 1 *.45,kpitch1,ifunc | |||
aosc2 poscil 1 *.35,kpitch2,ifunc | |||
aosc3 poscil 1 *.32,kpitch3,ifunc | |||
aoscttl = aosc1+aosc2+aosc3 | |||
afm = afmttl - aoscttl; | |||
icfbase = (3000 <= 12000 ? 3000 : 12000) | |||
icfmax = (3000 <= 12000 ? 12000 : 3000) | |||
kcfchg oscil1i 0.00,(icfmax - icfbase),5,gifc6 | |||
kcf = icfbase + kcfchg | |||
ibwbase = (100 <= 400 ? 100 : 400) | |||
ibwmax = (100 <= 400 ? 400 : 100) | |||
kbwchg oscil1i 0.00,ibwmax - ibwbase,5,gifc6 | |||
kbw = ibwbase + kbwchg | |||
aflt1 reson afm,kcf,kbw,1 | |||
aflt2 reson afm,kcf*.9, kbw*1.11,1 | |||
abal balance aflt1+aflt2,afm | |||
asig envlpx abal,.2, gifc5, gifc5*.39, gifc5, 1 | |||
xout asig*kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNSoprano,a,kki | |||
kveloc,knote,ifunc xin | |||
kgate linenr kveloc,0,2,.01 | |||
k7 = knote | |||
k2 = 7000 | |||
k2 = (k2/k7)+.5 | |||
k2 = int(k2) | |||
k3 = .04 | |||
k4 = .25 | |||
k5 = 5*.4 | |||
k6 = 5 | |||
k8 = k5/k4 | |||
k9 = exp(1.5*log(7000/32767)) | |||
k10 = .00311*log(k7) | |||
k11 = sqrt(7000/32767) | |||
k12 = (1-k3)*k11 | |||
k13 = k4*k7 | |||
k14 = k9*k3 | |||
a1 linen k12,.1,3,.08 | |||
a2 poscil k13,k7,ifunc | |||
a8 = k7+a2 | |||
a4 linenr k10,.6,3,.1 | |||
a4 poscil a4,k6,ifunc | |||
a5 randi k10,16 | |||
a6 linseg -.03,.07,.03,.03,0,3-.1,0 | |||
a6 = a4+a5+a6+1. | |||
a1 poscil a1,(a8+a2)*a6,ifunc | |||
a7 = (a2*k8)+k2 | |||
a3 linseg 0,.07,.1,.03,1.,3-.18,1,.02,.1,.06,0 | |||
a3 = a3*(k9*k3) | |||
a3 poscil a3,a7*a6,ifunc | |||
aout = (a1+a3)*kgate | |||
xout aout | |||
endop | |||
;************************************************** | |||
opcode CHOWNString,a,kki | |||
kamp,knote,ifunc xin | |||
;setksmps 10 | |||
iveloc ampmidi 1 | |||
kgate linenr 1, 0, .2, .01 | |||
ifc = cpspch(5.00) | |||
ifm1 = ifc | |||
ifm2 = ifc*3 | |||
ifm3 = ifc*4 | |||
indx1 = 7.5/log(ifc) ;RANGE FROM CA 2 TO 1 | |||
indx2 = 15/sqrt(ifc) ;RANGE FROM CA 2.6 TO .5 | |||
indx3 = 1.25/sqrt(ifc) ;RANGE FROM CA .2 TO .038 | |||
kvib init 0 | |||
timout 0,.75,transient | |||
kvbctl linen 1,.5,2-.75,.1 | |||
krnd randi .0075,15 ;RANDOM DEVIATION IN VIB WIDTH | |||
kvib poscil kvbctl*.03+krnd,5.5*kvbctl,ifunc | |||
transient: | |||
timout .2,2,continue | |||
ktrans linseg 1,.2,0,1,0 ;TRANSIENT ENVELOPE | |||
anoise randi ktrans,.2*ifc ;NOISE... | |||
attack poscil anoise,knote,ifunc | |||
continue: | |||
amod1 poscil ifm1*(indx1+ktrans),knote,ifunc | |||
amod2 poscil ifm2*(indx2+ktrans),knote*3,ifunc | |||
amod3 poscil ifm3*(indx3+ktrans),knote*4,ifunc | |||
asig poscil kamp,(amod1+amod2+amod3)*(1+kvib),ifunc | |||
asig linen asig+attack,.2,2,.2 | |||
xout asig *kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNTrumpet,a,kki | |||
gitemp2 ftgen 0,0,129,9,.35,1,0 | |||
gitemp3 ftgen 0,0,129,9,.4,1,0 | |||
gitemp4 ftgen 0,0,129,9,.25,1,0 | |||
gitemp5 ftgen 0,0,129,9,.3875,1.4142,0 | |||
kamp,knote,ifunc xin | |||
;setksmps 10 | |||
kgate linenr kamp/2, 0, .2, .01 | |||
irandev = .007 | |||
ifreqrand = 125 | |||
ivibatt = .6 | |||
ivibdec = .2 | |||
ivibwth = .007 | |||
ivibrate = 7 | |||
iportdev = .03 | |||
iportatt = .06 | |||
iportdec = .01 | |||
iampfac = .833 | |||
iafrmfac = 1-iampfac | |||
imax = 2.66 | |||
iratio = 1.8/imax | |||
ifundatt = .03 | |||
ifunddec = .15 | |||
ifrmatt = .03 | |||
ifrmdec = .3 | |||
imodatt = .03 | |||
imoddec = .01 | |||
kphs linen ivibwth, ivibatt, 1, ivibdec | |||
kvfac table kphs, gitemp4, ifunc | |||
kvibgate = kvfac*ivibwth | |||
kport envlpx iportdev, iportatt, 1, iportdec, gitemp5, 1, .01 | |||
krand randi irandev, ifreqrand, -1 | |||
kosc poscil kvibgate, ivibrate, ifunc | |||
kvib = (krand+1)*(kosc+1)*(kport+1) | |||
kgatemod envlpx imax*knote, imodatt, 1, imoddec, gitemp3, 1.2, .01, .2 | |||
kgatefd envlpx iampfac, ifundatt, 1, ifunddec, gitemp2, 1, .01 | |||
kgatefrm envlpx iafrmfac, ifrmatt, 1, ifrmdec, gitemp2, 1, .01 | |||
amod poscil kgatemod, knote*kvib, ifunc | |||
afund poscil kgatefd, knote*kvib+amod, ifunc | |||
afrm poscil kgatefrm, (int(1500/knote+.5)*knote)*kvib+amod*iratio, ifunc | |||
xout (afund+afrm)*kgate | |||
endop | |||
;************************************************** | |||
opcode CHOWNVibr,a,kki | |||
kamp,kifc,ifunc xin | |||
gitemp100 ftgen 0,0 ,128 ,7, 0, 128 , 1 | |||
kifm1 = kifc | |||
kifm2 = kifc*3 | |||
kifm3 = kifc*4 | |||
kindx1 = 7.5/log(kifc) ;RANGE FROM CA 2 TO 1 | |||
kindx2 = 15/sqrt(kifc) ;RANGE FROM CA 2.6 TO .5 | |||
kindx3 = 1.25/sqrt(kifc) ;RANGE FROM CA .2 TO .038 | |||
kvib init 0 | |||
timout 0,0.75,transient ;DELAYS VIBRATO FOR P8 SECONDS | |||
kvbctl linen 1,.5,10,.1 ;VIBRATO CONTROL ENVELOPE | |||
krnd randi .0075,15 ;RANDOM DEVIATION IN VIB WIDTH | |||
kvib poscil kvbctl*.03+krnd,5.5*kvbctl,ifunc ;VIBRATO GENERATOR | |||
transient: | |||
timout .2,10,continue ;EXECUTE FOR .2 SECS ONLY | |||
ktrans linseg 1,.2,0,1,0 ;TRANSIENT ENVELOPE | |||
anoise randi ktrans,.2*kifc ;NOISE... | |||
attack poscil anoise,2000,ifunc ;...CENTERED AROUND 2KHZ | |||
continue: | |||
amod1 poscil kifm1*(kindx1+ktrans),kifm1,ifunc | |||
amod2 poscil kifm2*(kindx2+ktrans),kifm2,ifunc | |||
amod3 poscil kifm3*(kindx3+ktrans),kifm3,ifunc | |||
asig poscil kamp,(kifc+amod1+amod2+amod3)*(1+kvib),ifunc | |||
asig linen asig+attack,.26,10,.2 | |||
imax ampmidi 1, gitemp100 | |||
kgate linenr imax, 0, 1, .01 | |||
aout = asig * kgate | |||
xout aout | |||
endop | |||
;************************************************** | |||
instr 1 | |||
;kselect init 1 | |||
;channel | |||
;kmodfreq chnget "mod" | |||
ksemi1 chnget "semi" | |||
kdetune chnget "detune" | |||
kspread chnget "spread" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "vibamp" | |||
klforate chnget "vibrate" | |||
kselect chnget "select" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
;lfo | |||
klfo lfo klfoamp,klforate,2 | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi1)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+kdetune+int(ksemi1)) | |||
;CHOWNClar,CHOWNglass,CHOWNLoop,CHOWNPerc,CHOWNPiano,CHOWNrebell,CHOWNSoprano,CHOWNString,CHOWNTrumpet,CHOWNVibr | |||
if kselect = 1 then | |||
acho1 CHOWNClar iamp,kfreq1+klfo,1 | |||
acho2 CHOWNClar iamp,kfreq2+klfo,1 | |||
elseif kselect = 2 then | |||
acho1 CHOWNglass iamp,kfreq1+klfo,1 | |||
acho2 CHOWNglass iamp,kfreq2+klfo,1 | |||
elseif kselect = 3 then | |||
acho1 CHOWNLoop iamp,kfreq1+klfo,1 | |||
acho2 CHOWNLoop iamp,kfreq2+klfo,1 | |||
elseif kselect = 4 then | |||
acho1 CHOWNPerc iamp,kfreq1+klfo,1 | |||
acho2 CHOWNPerc iamp,kfreq2+klfo,1 | |||
elseif kselect = 5 then | |||
acho1 CHOWNPiano iamp,kfreq1+klfo,1 | |||
acho2 CHOWNPiano iamp,kfreq2+klfo,1 | |||
elseif kselect = 6 then | |||
acho1 CHOWNrebell iamp,kfreq1+klfo,1 | |||
acho2 CHOWNrebell iamp,kfreq2+klfo,1 | |||
elseif kselect = 7 then | |||
acho1 CHOWNSoprano iamp,kfreq1,1 | |||
acho2 CHOWNSoprano iamp,kfreq2,1 | |||
elseif kselect = 8 then | |||
acho1 CHOWNString iamp,kfreq1+klfo,1 | |||
acho2 CHOWNString iamp,kfreq2+klfo,1 | |||
elseif kselect = 9 then | |||
acho1 CHOWNTrumpet iamp,kfreq1+klfo,1 | |||
acho2 CHOWNTrumpet iamp,kfreq2+klfo,1 | |||
elseif kselect = 10 then | |||
acho1 CHOWNVibr iamp,kfreq1,1 | |||
acho2 CHOWNVibr iamp,kfreq2,1 | |||
endif | |||
ktrig changed kselect | |||
if ktrig = 1 then | |||
reinit play | |||
endif | |||
play: | |||
;master | |||
aL clip acho1,0,0dbfs | |||
aR clip acho2,0,0dbfs | |||
aoutL = ((aL * kspread) + (aR * (1 - kspread))) *.5 | |||
aoutR = ((aL * (1-kspread)) + (aR * kspread)) *.5 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs (aoutL)*kadsr,(aoutR)*kadsr | |||
vincr ga1,aoutL*kadsr | |||
vincr ga2,aoutR*kadsr | |||
endin | |||
instr 10 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc ga1,ga2,ksize,16000,sr,0 | |||
asum1 dcblock2 al | |||
asum2 dcblock2 ar | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1*klevel,asum2*klevel | |||
clear ga1,ga2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
;f0 3600 | |||
i1 0 36000 | |||
i10 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,60 @@ | |||
GaussianDust.csd | |||
Iain McCurdy [2013] | |||
<Cabbage> | |||
form caption("Gaussian Dust"), size(325, 350), pluginID("gaus") | |||
image bounds(0, 0, 325, 350), colour("DarkSlateGrey"), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds( 15, 10, 80, 15), text("On/Off"), channel("onoff"), value(1), fontcolour("white") | |||
combobox bounds( 10, 40, 70, 20), channel("mode"), value(2), text("Held", "Reinit") | |||
rslider bounds(90, 10, 60, 60), text("Amplitude"), channel("amp"), range(0, 1, 0.5, 0.5, 0.001), fontcolour("white") | |||
rslider bounds(150, 10, 60, 60), text("Freq."), channel("freq"), range(0.1, 10000, 10, 0.25, 0.01), fontcolour("white") | |||
rslider bounds(205, 10, 60, 60), text("Deviation"), channel("dev"), range(0, 10, 1), fontcolour("white") | |||
rslider bounds(260, 10, 60, 60), text("Spread"), channel("spread"), range(0, 1, 1), fontcolour("white") | |||
xypad bounds( 40, 78, 245, 260), text("Freq./Deviation"), channel("freq", "dev"), rangex(0.1, 10000, 10), rangey(0, 10.00, 0) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
instr 1 | |||
konoff chnget "onoff" ;read in on/off switch widget value | |||
if konoff==0 goto SKIP ;if on/off switch is off jump to skip label | |||
kamp chnget "amp" | |||
kfreq chnget "freq" | |||
kdev chnget "dev" | |||
kporttime linseg 0,0.01,0.1 | |||
kdev portk kdev,kporttime | |||
kmode chnget "mode" | |||
kmode = kmode - 1 | |||
kspread chnget "spread" | |||
ktrig changed kmode ;IF gkmode COUNTER IS CHANGED GENERATE A MOMENTARY '1' IMPULSE | |||
if ktrig==1 then ;THEREFORE IF gkmode HAS BEEN CHANGED... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS AT LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL BRANCH | |||
UPDATE: ;LABEL 'UPDATE'. REINITIALISATION BEGINS FROM HERE. | |||
asig gausstrig kamp, kfreq, kdev, i(kmode) ;GENERATE GAUSSIAM TRIGGERS | |||
kpan random 0.5-(kspread*0.5), 0.5+(kspread*0.5) | |||
asigL,asigR pan2 asig,kpan | |||
rireturn ;RETURN FROM REINITIALISATION PASS | |||
outs asigL,asigR ;SEND AUDIO SIGNAL TO OUTPUT | |||
SKIP: ;A label. Skip to here is on/off switch is off | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ;instrument plays for a week | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,124 @@ | |||
<Cabbage> | |||
form caption("Granular synthesizer") size(428, 220), colour("black"), pluginID("gra1") | |||
rslider bounds(0, 0, 80, 80) channel("random"), range(1, 2000, 200), caption("Random freq"), colour("white"), midictrl(1, 1) | |||
rslider bounds(85, 0, 80, 80) channel("size"), range(0.005,.2, .02), caption("Grain size"), colour("white"), midictrl(1, 2) | |||
rslider bounds(170, 0, 80, 80) channel("density"), range(1, 10, 1), caption("Density"), colour("white"), midictrl(1, 3) | |||
rslider bounds(255, 0, 80, 80) channel("reverb"), range(0, 1, 0), caption("Reverb"), colour("white"), midictrl(1, 4) | |||
rslider bounds(340, 0, 80, 80) channel("freq"), range(0,30, 0), caption("Flanger"), colour("white"), midictrl(1, 5) | |||
combobox bounds(50, 90, 160, 20), channel("func1"), value(14), colour("darkgrey"), text("wt1","wt2","wt3","wt4","wt5","wt6","wt7","wt8","wt9","wt10","wt11","wt12","wt13","wt14") | |||
combobox bounds(220, 90, 160, 20), channel("func2"), value(5), colour("darkgrey"), text("wt1","wt2","wt3","wt4","wt5","wt6","wt7","wt8","wt9","wt10","wt11","wt12","wt13","wt14") | |||
keyboard pos(0, 130), size(420, 50) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 --midi-key-cps=5 --midi-velocity-amp=4 | |||
;-n -d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
;Author: Giorgio Zucco (2012) | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
gasig1 init 0 | |||
gasig2 init 0 | |||
giadd ftgen 14,0,8193,9,1,1,0,1.02,.28,0,.98,.14,0,4,.22,0,7,.39,0 ;bell | |||
gihanning ftgen 200,0,8192,-20,2 ;Hanning | |||
gibarlett ftgen 300,0,8192,-20,3 ;Bartlett (Triangle) | |||
instr 1 | |||
gkfn1 chnget "func1";grain waveform | |||
gkfn2 chnget "func2";grain waveform | |||
;grain | |||
kcps = p5*.5 ;grain freq | |||
kfmd chnget "random";variazione random in Hz. | |||
kgdur chnget "size" ;durata dei grani in secondi | |||
iovrlp chnget "density" ;numero di grani sovrapposti | |||
kfreq chnget "freq" | |||
iwfn1 = 200 ;inviluppo a1 | |||
iwfn2 = 300 ;inviluppo a2 | |||
;adsr | |||
iatt = 0.2 | |||
idec = 1 | |||
isus = 1 | |||
irel = .5 | |||
a1 grain2 kcps,kfmd,kgdur,iovrlp,gkfn1,iwfn1 | |||
a2 grain2 kcps*2,kfmd,kgdur,iovrlp,gkfn2,iwfn2 | |||
adel1 randh .009,kfreq | |||
adel2 randh .009,kfreq | |||
klfo poscil .01,.1,4 ;Lfo | |||
afl1 flanger a1,adel1+klfo,.9 | |||
afl2 flanger a2,adel2+klfo,.9 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
;aleft clip (a1+afl1)*.1,2,.8 | |||
;aright clip (a2+afl2)*.1,2,.8 | |||
;al1 = (a1+afl1) | |||
;ar1 = (a2+afl2) | |||
;aleft clip al1*.1,2,.8 | |||
;aright clip ar1*.1,2,.8 | |||
; Or using function syntax | |||
aleft = clip ((a1+afl1)*.1,2,.8) | |||
aright = clip ((a2+afl2)*.1,2,.8) | |||
outs (aleft)*kadsr,(aright)*kadsr | |||
vincr gasig1,(aleft)*kadsr | |||
vincr gasig2,(aright)*kadsr | |||
endin | |||
instr 3 | |||
klevel chnget "reverb" | |||
al,ar reverbsc gasig1*.5,gasig2*.5,.85,16000,sr,0 | |||
kpan1 randomi 0,1,4 | |||
kpan2 randomi 0,1,8 | |||
aout1,aout2 pan2 al,kpan1 | |||
aout3,aout4 pan2 ar,1-kpan2 | |||
outs (aout1+aout2)*klevel,(aout3+aout4)*klevel | |||
clear gasig1,gasig2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 1024 10 1 | |||
f2 0 4096 10 1 0 .111 0 .04 0 .02 0 .012 ;Triangular1 | |||
f3 0 4096 10 1 0 .111 0 .04 0 .02 0 .012 0 .009 0 .007;Triangular 2 | |||
f5 0 4096 10 1 0 0.3 0 0.2 0 0.14 0 0.1 0 0.09 0 0.07 0 0.06 0 0.05 ;square | |||
f4 0 4096 10 1 0 .333333 0 .2 0 .142857 0 .111111 0 .090909 0 .076923 ; Square | |||
f6 0 4096 10 1 1 1 1 .7 .5 .3 .1 ;pulse | |||
f7 0 4096 10 1 0 0 1;sine+4 | |||
f8 0 4096 10 1 0 0 0 1;sine+5 | |||
f9 0 4096 10 1 0 0 0 0 1;sine+6 | |||
f10 0 4096 10 1 0 0 0 0 0 1;sine+7 | |||
f11 0 4096 10 1 0 0 0 0 0 0 1;sine+8 | |||
f12 0 4096 10 1 0 0 0 0 0 0 0 1;sine+9 | |||
f13 0 4096 10 1 0 0 0 0 0 0 0 0 1;sine+10 | |||
f0 36000 | |||
i3 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,488 @@ | |||
GuitarChords | |||
------------ | |||
Mute buttons dictate the behaviour of a string when it is open and un-fretted, they have no effect on fretted notes. | |||
<Cabbage> | |||
form size(620, 260), caption("Guitar Chords"), pluginID("guit") | |||
label bounds( 56, 0, 80, 9), text("Mute"), FontColour("white") | |||
combobox bounds( 3, 10, 50, 15), channel("TuneHighE"), value(64), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59, 10, 15, 15), channel("HighE0"), colour("255, 20, 20") | |||
checkbox bounds(101, 10, 15, 15), channel("HighE1"), colour("250,250, 0") | |||
checkbox bounds(153, 10, 15, 15), channel("HighE2"), colour("250,250, 0") | |||
checkbox bounds(202, 10, 15, 15), channel("HighE3"), colour("250,250, 0") | |||
checkbox bounds(249, 10, 15, 15), channel("HighE4"), colour("250,250, 0") | |||
checkbox bounds(295, 10, 15, 15), channel("HighE5"), colour("250,250, 0") | |||
checkbox bounds(339, 10, 15, 15), channel("HighE6"), colour("250,250, 0") | |||
checkbox bounds(381, 10, 15, 15), channel("HighE7"), colour("250,250, 0") | |||
checkbox bounds(420, 10, 15, 15), channel("HighE8"), colour("250,250, 0") | |||
checkbox bounds(460, 10, 15, 15), channel("HighE9"), colour("250,250, 0") | |||
checkbox bounds(495, 10, 15, 15), channel("HighE10"), colour("250,250, 0") | |||
checkbox bounds(529, 10, 15, 15), channel("HighE11"), colour("250,250, 0") | |||
checkbox bounds(561, 10, 15, 15), channel("HighE12"), colour("250,250, 0") | |||
checkbox bounds(591, 10, 15, 15), channel("HighE13"), colour("250,250, 0") | |||
combobox bounds( 3, 30, 50, 15), channel("TuneB"), value(69), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59, 30, 15, 15), channel("B0"), colour("255, 20, 20") | |||
checkbox bounds(101, 30, 15, 15), channel("B1"), colour("250,250, 0"), value(1) | |||
checkbox bounds(153, 30, 15, 15), channel("B2"), colour("250,250, 0") | |||
checkbox bounds(202, 30, 15, 15), channel("B3"), colour("250,250, 0") | |||
checkbox bounds(249, 30, 15, 15), channel("B4"), colour("250,250, 0") | |||
checkbox bounds(295, 30, 15, 15), channel("B5"), colour("250,250, 0") | |||
checkbox bounds(339, 30, 15, 15), channel("B6"), colour("250,250, 0") | |||
checkbox bounds(381, 30, 15, 15), channel("B7"), colour("250,250, 0") | |||
checkbox bounds(420, 30, 15, 15), channel("B8"), colour("250,250, 0") | |||
checkbox bounds(460, 30, 15, 15), channel("B9"), colour("250,250, 0") | |||
checkbox bounds(495, 30, 15, 15), channel("B10"), colour("250,250, 0") | |||
checkbox bounds(529, 30, 15, 15), channel("B11"), colour("250,250, 0") | |||
checkbox bounds(561, 30, 15, 15), channel("B12"), colour("250,250, 0") | |||
checkbox bounds(591, 30, 15, 15), channel("B13"), colour("250,250, 0") | |||
combobox bounds( 3, 50, 50, 15), channel("TuneG"), value(73), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59, 50, 15, 15), channel("G0"), colour("255, 20, 20") | |||
checkbox bounds(101, 50, 15, 15), channel("G1"), colour("250,250, 0") | |||
checkbox bounds(153, 50, 15, 15), channel("G2"), colour("250,250, 0") | |||
checkbox bounds(202, 50, 15, 15), channel("G3"), colour("250,250, 0") | |||
checkbox bounds(249, 50, 15, 15), channel("G4"), colour("250,250, 0") | |||
checkbox bounds(295, 50, 15, 15), channel("G5"), colour("250,250, 0") | |||
checkbox bounds(339, 50, 15, 15), channel("G6"), colour("250,250, 0") | |||
checkbox bounds(381, 50, 15, 15), channel("G7"), colour("250,250, 0") | |||
checkbox bounds(420, 50, 15, 15), channel("G8"), colour("250,250, 0") | |||
checkbox bounds(460, 50, 15, 15), channel("G9"), colour("250,250, 0") | |||
checkbox bounds(495, 50, 15, 15), channel("G10"), colour("250,250, 0") | |||
checkbox bounds(529, 50, 15, 15), channel("G11"), colour("250,250, 0") | |||
checkbox bounds(561, 50, 15, 15), channel("G12"), colour("250,250, 0") | |||
checkbox bounds(591, 50, 15, 15), channel("G13"), colour("250,250, 0") | |||
combobox bounds( 3, 70, 50, 15), channel("TuneD"), value(78), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59, 70, 15, 15), channel("D0"), colour("255, 20, 20") | |||
checkbox bounds(101, 70, 15, 15), channel("D1"), colour("250,250, 0") | |||
checkbox bounds(153, 70, 15, 15), channel("D2"), colour("250,250, 0"), value(1) | |||
checkbox bounds(202, 70, 15, 15), channel("D3"), colour("250,250, 0") | |||
checkbox bounds(249, 70, 15, 15), channel("D4"), colour("250,250, 0") | |||
checkbox bounds(295, 70, 15, 15), channel("D5"), colour("250,250, 0") | |||
checkbox bounds(339, 70, 15, 15), channel("D6"), colour("250,250, 0") | |||
checkbox bounds(381, 70, 15, 15), channel("D7"), colour("250,250, 0") | |||
checkbox bounds(420, 70, 15, 15), channel("D8"), colour("250,250, 0") | |||
checkbox bounds(460, 70, 15, 15), channel("D9"), colour("250,250, 0") | |||
checkbox bounds(495, 70, 15, 15), channel("D10"), colour("250,250, 0") | |||
checkbox bounds(529, 70, 15, 15), channel("D11"), colour("250,250, 0") | |||
checkbox bounds(561, 70, 15, 15), channel("D12"), colour("250,250, 0") | |||
checkbox bounds(591, 70, 15, 15), channel("D13"), colour("250,250, 0") | |||
combobox bounds( 3, 90, 50, 15), channel("TuneA"), value(83), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59, 90, 15, 15), channel("A0"), colour("255, 20, 20") | |||
checkbox bounds(101, 90, 15, 15), channel("A1"), colour("250,250, 0") | |||
checkbox bounds(153, 90, 15, 15), channel("A2"), colour("250,250, 0") | |||
checkbox bounds(202, 90, 15, 15), channel("A3"), colour("250,250, 0"), value(1) | |||
checkbox bounds(249, 90, 15, 15), channel("A4"), colour("250,250, 0") | |||
checkbox bounds(295, 90, 15, 15), channel("A5"), colour("250,250, 0") | |||
checkbox bounds(339, 90, 15, 15), channel("A6"), colour("250,250, 0") | |||
checkbox bounds(381, 90, 15, 15), channel("A7"), colour("250,250, 0") | |||
checkbox bounds(420, 90, 15, 15), channel("A8"), colour("250,250, 0") | |||
checkbox bounds(460, 90, 15, 15), channel("A9"), colour("250,250, 0") | |||
checkbox bounds(495, 90, 15, 15), channel("A10"), colour("250,250, 0") | |||
checkbox bounds(529, 90, 15, 15), channel("A11"), colour("250,250, 0") | |||
checkbox bounds(561, 90, 15, 15), channel("A12"), colour("250,250, 0") | |||
checkbox bounds(591, 90, 15, 15), channel("A13"), colour("250,250, 0") | |||
combobox bounds( 3,110, 50, 15), channel("TuneLowE"), value(88), text("G9","F#9","F9","E9","D#9","D9","C#9","C9","B8","A#8","A8","G#8","G8","F#8","F8","E8","D#8","D8","C#8","C8","B7","A#7","A7","G#7","G7","F#7","F7","E7","D#7","D7","C#7","C7","B6","A#6","A6","G#6","G6","F#6","F6","E6","D#6","D6","C#6","C6","B5","A#5","A5","G#5","G5","F#5","F5","E5","D#5","D5","C#5","C5","B4","A#4","A4","G#4","G4","F#4","F4","E4","D#4","D4","C#4","C4","B3","A#3","A3","G#3","G3","F#3","F3","E3","D#3","D3","C#3","C3","B2","A#2","A2","G#2","G2","F#2","F2","E2","D#2","D2","C#2","C2","B1","A#1","A1","G#1","G1","F#1","F1","E1","D#1","D1","C#1","C1","B0","A#0","A0","G#0","G0","F#0","F0","E0","D#0","D0","C#0","C0","B-1","A#-1","A-1","G#-1","G-1","F#-1","F-1","E-1","D#-1","D-1","C#-1","C-1") | |||
checkbox bounds( 59,110, 15, 15), channel("LowE0"), colour("255, 20, 20"), value(1) | |||
checkbox bounds(101,110, 15, 15), channel("LowE1"), colour("250,250, 0");52 | |||
checkbox bounds(153,110, 15, 15), channel("LowE2"), colour("250,250, 0");49 | |||
checkbox bounds(202,110, 15, 15), channel("LowE3"), colour("250,250, 0");47 | |||
checkbox bounds(249,110, 15, 15), channel("LowE4"), colour("250,250, 0");46 | |||
checkbox bounds(295,110, 15, 15), channel("LowE5"), colour("250,250, 0");44 | |||
checkbox bounds(339,110, 15, 15), channel("LowE6"), colour("250,250, 0");42 | |||
checkbox bounds(381,110, 15, 15), channel("LowE7"), colour("250,250, 0");39 | |||
checkbox bounds(420,110, 15, 15), channel("LowE8"), colour("250,250, 0");40 | |||
checkbox bounds(460,110, 15, 15), channel("LowE9"), colour("250,250, 0");35 | |||
checkbox bounds(495,110, 15, 15), channel("LowE10"), colour("250,250, 0");34 | |||
checkbox bounds(529,110, 15, 15), channel("LowE11"), colour("250,250, 0");32 | |||
checkbox bounds(561,110, 15, 15), channel("LowE12"), colour("250,250, 0");30 | |||
checkbox bounds(591,110, 15, 15), channel("LowE13"), colour("250,250, 0"); | |||
; frets | |||
line bounds(134, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(185, 5, 2, 130), colour(50,50,50) ;3 ; | |||
line bounds(232, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(279, 5, 2, 130), colour(50,50,50) ;5 ; | |||
line bounds(324, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(367, 5, 2, 130), colour(50,50,50) ;7 ; | |||
line bounds(408, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(447, 5, 2, 130), colour(50,50,50) ;9 ; | |||
line bounds(484, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(519, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(552, 5, 2, 130), colour(50,50,50) ;12 ; | |||
line bounds(583, 5, 2, 130), colour(50,50,50) ; ; | |||
line bounds(612, 5, 2, 130), colour(50,50,50) ; | |||
image bounds(185, 5, 47,130), colour("tan"), line(0) ; 3rd fret | |||
image bounds(279, 5, 45,130), colour("tan"), line(0) ; 5th fret | |||
image bounds(367, 5, 42,130), colour("tan"), line(0) ; 7th fret | |||
image bounds(447, 5, 37,130), colour("tan"), line(0) ; 9th fret | |||
image bounds(552, 5, 31,130), colour("tan"), line(0) ; 12th fret | |||
image bounds( 80, 0,624,140), colour("white"), line(0) ; neck | |||
button bounds( 80,150,100, 30), text("strum"), channel("strum"), value(0), FontColour("yellow") | |||
combobox bounds( 80,185, 95, 17), channel("GuitarType"), value(0), text("6 String","12 String") | |||
checkbox bounds(185,150,100, 20), channel("ReverseStrum"), text("Reverse") colour("lime") | |||
hslider bounds(280,143,270, 40), text("Gap"), colour("tan"), FontColour(195,126, 0), channel("gap"), range(0,0.5,0.05,0.5,0.0001) | |||
hslider bounds(280,168,270, 40), text("Damp"), colour("tan"), FontColour(195,126, 0), channel("damp"), range(0.01,0.99,0.17) | |||
hslider bounds(280,193,270, 40), text("Pos."), colour("tan"), FontColour(195,126, 0), channel("pos"), range(0.0001, 0.5, 0.02, 0.5, 0.001) | |||
image bounds(5, 235, 470, 20), colour(75, 85, 90, 50), plant("credit"){ | |||
label bounds(0.03, 0.1, .6, .7), text("Author: Iain McCurdy |2013|"), colour("white"), FontColour(195,126, 0) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -+rtmidi=NULL -M0 --midi-key-cps=4 --midi-velocity-amp=5 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs=1 | |||
iDetuneRange = 0.025 | |||
gidetune ftgen 0, 0, 8, -21, 6, iDetuneRange ; table of detuning values for each string in a 12 string guitar configuration | |||
instr 1 | |||
; radio buttons mechanism | |||
koff = 0 ; checkbox value when off (needs to be k-rate) | |||
kSumHighE = 0 ; sum of high E string buttons | |||
kSumB = 0 ; sum of B string buttons | |||
kSumG = 0 ; sum of G string buttons | |||
kSumD = 0 ; sum of D string buttons | |||
kSumA = 0 ; sum of A string buttons | |||
kSumLowE = 0 ; sum of low E string buttons | |||
kTrigSumHighE = 0 ; sum of high E string on triggers | |||
kTrigSumB = 0 ; sum of B string change triggers | |||
kTrigSumG = 0 ; sum of G string change triggers | |||
kTrigSumD = 0 ; sum of D string change triggers | |||
kTrigSumA = 0 ; sum of A string change triggers | |||
kTrigSumLowE = 0 ; sum of low E string change triggers | |||
kChangeTrigHighE = 0 ; sum of high E string change triggers | |||
kChangeTrigB = 0 ; sum of B string change triggers | |||
kChangeTrigG = 0 ; sum of G string change triggers | |||
kChangeTrigD = 0 ; sum of D string change triggers | |||
kChangeTrigA = 0 ; sum of A string change triggers | |||
kChangeTrigLowE = 0 ; sum of low E string change triggers | |||
; macro for string set-up | |||
#define STRING_SETUP(LABEL) | |||
# | |||
k$LABEL0 chnget "$LABEL0" | |||
kTune$LABEL chnget "Tune$LABEL" | |||
# | |||
$STRING_SETUP(HighE) | |||
$STRING_SETUP(B) | |||
$STRING_SETUP(G) | |||
$STRING_SETUP(D) | |||
$STRING_SETUP(A) | |||
$STRING_SETUP(LowE) | |||
; macro for check box input | |||
#define INPUT(N'LABEL) | |||
# | |||
k$LABEL$N chnget "$LABEL$N" ; read in checkbox value | |||
kSum$LABEL = kSum$LABEL + k$LABEL$N ; accumulate to value for all checkboxes for this string | |||
ktrig$N trigger k$LABEL$N,0.5,0 ; generate a trigger if this checkbox is switched *on* | |||
kTrigSum$LABEL = kTrigSum$LABEL + ktrig$N ; accumulation of all 'on' triggers for this string | |||
kChangeTrig changed k$LABEL$N ; generate a different trigger if this checkbox is switched either on or off | |||
kChangeTrig$LABEL = kChangeTrig$LABEL+kChangeTrig ; accumlation of all 'change' triggers for this string | |||
# | |||
; macro for radio button switching mechanism | |||
#define SWITCH(N'LABEL) | |||
# | |||
if ktrig$N==1 then | |||
k$LABELVal = $N | |||
kgoto SKIP$LABEL$N | |||
endif | |||
chnset koff,"$LABEL$N" | |||
SKIP$LABEL$N: | |||
# | |||
$INPUT(1'HighE) | |||
$INPUT(2'HighE) | |||
$INPUT(3'HighE) | |||
$INPUT(4'HighE) | |||
$INPUT(5'HighE) | |||
$INPUT(6'HighE) | |||
$INPUT(7'HighE) | |||
$INPUT(8'HighE) | |||
$INPUT(9'HighE) | |||
$INPUT(10'HighE) | |||
$INPUT(11'HighE) | |||
$INPUT(12'HighE) | |||
$INPUT(13'HighE) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'HighE) | |||
$SWITCH(2'HighE) | |||
$SWITCH(3'HighE) | |||
$SWITCH(4'HighE) | |||
$SWITCH(5'HighE) | |||
$SWITCH(6'HighE) | |||
$SWITCH(7'HighE) | |||
$SWITCH(8'HighE) | |||
$SWITCH(9'HighE) | |||
$SWITCH(10'HighE) | |||
$SWITCH(11'HighE) | |||
$SWITCH(12'HighE) | |||
$SWITCH(13'HighE) | |||
endif | |||
$INPUT(1'B) | |||
$INPUT(2'B) | |||
$INPUT(3'B) | |||
$INPUT(4'B) | |||
$INPUT(5'B) | |||
$INPUT(6'B) | |||
$INPUT(7'B) | |||
$INPUT(8'B) | |||
$INPUT(9'B) | |||
$INPUT(10'B) | |||
$INPUT(11'B) | |||
$INPUT(12'B) | |||
$INPUT(13'B) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'B) | |||
$SWITCH(2'B) | |||
$SWITCH(3'B) | |||
$SWITCH(4'B) | |||
$SWITCH(5'B) | |||
$SWITCH(6'B) | |||
$SWITCH(7'B) | |||
$SWITCH(8'B) | |||
$SWITCH(9'B) | |||
$SWITCH(10'B) | |||
$SWITCH(11'B) | |||
$SWITCH(12'B) | |||
$SWITCH(13'B) | |||
endif | |||
$INPUT(1'G) | |||
$INPUT(2'G) | |||
$INPUT(3'G) | |||
$INPUT(4'G) | |||
$INPUT(5'G) | |||
$INPUT(6'G) | |||
$INPUT(7'G) | |||
$INPUT(8'G) | |||
$INPUT(9'G) | |||
$INPUT(10'G) | |||
$INPUT(11'G) | |||
$INPUT(12'G) | |||
$INPUT(13'G) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'G) | |||
$SWITCH(2'G) | |||
$SWITCH(3'G) | |||
$SWITCH(4'G) | |||
$SWITCH(5'G) | |||
$SWITCH(6'G) | |||
$SWITCH(7'G) | |||
$SWITCH(8'G) | |||
$SWITCH(9'G) | |||
$SWITCH(10'G) | |||
$SWITCH(11'G) | |||
$SWITCH(12'G) | |||
$SWITCH(13'G) | |||
endif | |||
$INPUT(1'D) | |||
$INPUT(2'D) | |||
$INPUT(3'D) | |||
$INPUT(4'D) | |||
$INPUT(5'D) | |||
$INPUT(6'D) | |||
$INPUT(7'D) | |||
$INPUT(8'D) | |||
$INPUT(9'D) | |||
$INPUT(10'D) | |||
$INPUT(11'D) | |||
$INPUT(12'D) | |||
$INPUT(13'D) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'D) | |||
$SWITCH(2'D) | |||
$SWITCH(3'D) | |||
$SWITCH(4'D) | |||
$SWITCH(5'D) | |||
$SWITCH(6'D) | |||
$SWITCH(7'D) | |||
$SWITCH(8'D) | |||
$SWITCH(9'D) | |||
$SWITCH(10'D) | |||
$SWITCH(11'D) | |||
$SWITCH(12'D) | |||
$SWITCH(13'D) | |||
endif | |||
$INPUT(1'A) | |||
$INPUT(2'A) | |||
$INPUT(3'A) | |||
$INPUT(4'A) | |||
$INPUT(5'A) | |||
$INPUT(6'A) | |||
$INPUT(7'A) | |||
$INPUT(8'A) | |||
$INPUT(9'A) | |||
$INPUT(10'A) | |||
$INPUT(11'A) | |||
$INPUT(12'A) | |||
$INPUT(13'A) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'A) | |||
$SWITCH(2'A) | |||
$SWITCH(3'A) | |||
$SWITCH(4'A) | |||
$SWITCH(5'A) | |||
$SWITCH(6'A) | |||
$SWITCH(7'A) | |||
$SWITCH(8'A) | |||
$SWITCH(9'A) | |||
$SWITCH(10'A) | |||
$SWITCH(11'A) | |||
$SWITCH(12'A) | |||
$SWITCH(13'A) | |||
endif | |||
$INPUT(1'LowE) | |||
$INPUT(2'LowE) | |||
$INPUT(3'LowE) | |||
$INPUT(4'LowE) | |||
$INPUT(5'LowE) | |||
$INPUT(6'LowE) | |||
$INPUT(7'LowE) | |||
$INPUT(8'LowE) | |||
$INPUT(9'LowE) | |||
$INPUT(10'LowE) | |||
$INPUT(11'LowE) | |||
$INPUT(12'LowE) | |||
$INPUT(13'LowE) | |||
if(kTrigSum$LABEL>0) then | |||
$SWITCH(1'LowE) | |||
$SWITCH(2'LowE) | |||
$SWITCH(3'LowE) | |||
$SWITCH(4'LowE) | |||
$SWITCH(5'LowE) | |||
$SWITCH(6'LowE) | |||
$SWITCH(7'LowE) | |||
$SWITCH(8'LowE) | |||
$SWITCH(9'LowE) | |||
$SWITCH(10'LowE) | |||
$SWITCH(11'LowE) | |||
$SWITCH(12'LowE) | |||
$SWITCH(13'LowE) | |||
endif | |||
; macro that checks for open strings | |||
#define OPEN_STRING(LABEL) | |||
# | |||
if(kSum$LABEL==0) then | |||
k$LABELVal = 0 | |||
endif | |||
# | |||
$OPEN_STRING(HighE) | |||
$OPEN_STRING(B) | |||
$OPEN_STRING(G) | |||
$OPEN_STRING(D) | |||
$OPEN_STRING(A) | |||
$OPEN_STRING(LowE) | |||
; macro for operations when a string is plucked | |||
#define PLAY_STRING(LABEL'StringNum) | |||
# | |||
k$LABELNum = k$LABELVal + (128 - kTune$LABEL) ; derive MIDI note number (note that combobox value has to be inverted | |||
k$LABELCps = cpsmidinn(k$LABELNum) ; convert to cps | |||
kTimeElapsed timeinsts ; elapsed time form the start of this note (this will be used to prevent premature triggering of the string) | |||
if(kChangeTrig$LABEL==1&&kTimeElapsed>0.1) then ; if a change note trigger for this string has been received and time buffer has elapsed... | |||
turnoff2 2.$StringNum,4,1 ; turnoff this string | |||
if(kSum$LABEL==0&&k$LABEL0==1) kgoto SKIP$LABEL ; if this is an open and muted string jump string playing code | |||
schedkwhen kChangeTrig$LABEL,0,0,2.$StringNum,0,20,k$LABELCps,$StringNum ; play string (instr 2) | |||
endif | |||
if(kSum$LABEL==0&&k$LABEL0==1) kgoto SKIP$LABEL ; if this is an open and muted string jump string playing code | |||
kRndStrt random 0,kgap*0.15 | |||
schedkwhen ktrig,0,0,2.$StringNum,kstart+kRndStrt,20,k$LABELCps,$StringNum ; play string (instr 2) | |||
kstart = kstart + kgap ; increment start time | |||
SKIP$LABEL: ; label | |||
# | |||
kstrum chnget "strum" ; 'strum' button | |||
ktrig changed kstrum ; if 'strum' button has been clicked... | |||
if ktrig==1 then ; ... | |||
turnoff2 2,0,1 ; turn off all playing strings (in preparation for the new chord) | |||
endif | |||
kgap chnget "gap" | |||
kreverse chnget "ReverseStrum" | |||
if kreverse==0 then | |||
kstart = 0 ; start time (for first string plucked | |||
else | |||
kstart = kgap*5 | |||
kgap = -kgap | |||
endif | |||
$PLAY_STRING(LowE'1) | |||
$PLAY_STRING(A'2) | |||
$PLAY_STRING(D'3) | |||
$PLAY_STRING(G'4) | |||
$PLAY_STRING(B'5) | |||
$PLAY_STRING(HighE'6) | |||
endin | |||
instr 2 ; string pluck | |||
kdamp chnget "damp" ; damping | |||
iplk chnget "pos" ; pluck position | |||
iamp random 0.1,0.2 | |||
iGuitarType chnget "GuitarType" | |||
if(iGuitarType==2) then ; if 12 string guitar... | |||
kmvt1 jspline 0.15,0.2,0.4 ; a bit of random pick-up movement animates the tone of the guitar | |||
kmvt2 jspline 0.15,0.2,0.4 | |||
idtn table p5,gidetune ; detuning value. used in 12 string guitar only. | |||
if p5<5 then ; strings 1 - 4 are in octaves in a 12-string guitar | |||
a1 wgpluck2 iplk, iamp/2, p4, 0.2+kmvt1, kdamp | |||
a2 wgpluck2 iplk, iamp/2, p4*(2+idtn), 0.2+kmvt2, kdamp | |||
else ; strings 5 & 6 are in unison in a 12-string guitar | |||
a1 wgpluck2 iplk, iamp/2, p4, 0.2 +kmvt1, kdamp | |||
a2 wgpluck2 iplk, iamp/2, p4*(1+idtn), 0.2+rnd(0.5)+kmvt2, kdamp | |||
endif | |||
a2 delay a2,0.01+rnd(0.01) ; slight delay to second string | |||
asig = a1+a2 | |||
else ; otherwise 6 string | |||
kmvt jspline 0.15,0.2,0.4 | |||
asig wgpluck2 iplk, iamp, p4, 0.2+kmvt, kdamp | |||
endif | |||
aenv linsegr 0, 0.0008, 1, p3-0.1008, 0, 0.05, 0 ; amplitude envelope. Attack removes excessive 'click'. Decays to nothing across note duration (p3). Short release stage prevents click if a note is interrupted. | |||
/* FILTERING TO IMPROVE THE SOUND */ | |||
af1 resonz asig,200,200 | |||
af2 resonz asig,550,550 | |||
af3 resonz asig,2100,2100 | |||
asig sum af1,af2*5,af3 | |||
asig = asig/200 | |||
/* ------------------------------ */ | |||
asig = asig*aenv | |||
outs asig, asig | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 3600 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,300 @@ | |||
<Cabbage> | |||
form caption("Inharmonic Synth"), size(445, 320), pluginID("InSy") | |||
image pos(0, 0), size(445, 290), colour("black"), shape("rounded"), outline("brown"), line(4) | |||
combobox caption("Instrument"), channel("Instr"), pos(275, 10), size(160, 90), value(4), text("Bass Guitar", "Dahina", "Banyan", "Xylophone", "Tibetan Bowl 180mm", "Spinel Sphere", "Pot Lid", "Red Cedar Wood Plate", "Tubular Bell", "Redwood Wood Plate", "Douglas Fir Wood Plate", "Uniform Wooden Bar", "Uniform Aluminium Bar", "Vibraphone 1", "Vibraphone 2", "Chalandi Plates", "Tibetan Bowl 152mm", "Tibetan Bowl 140mm", "Wine Glass", "Small Handbell", "Albert Clock Bell", "Wood Block") | |||
groupbox bounds(10, 10, 260, 90), text("Filter Envelope"){ | |||
rslider bounds( 10, 35,60,60), text("Amount"), colour("cornflowerblue"), channel("FAmt"), range(0, 1, 0.7) | |||
rslider bounds( 60, 35,60,60), text("Dec."), colour("cornflowerblue"), channel("FDec"), range(0, 1, 0.45) | |||
rslider bounds(110, 35,60,60), text("Sus."), colour("cornflowerblue"), channel("FSus"), range(0, 1, 0) | |||
rslider bounds(160, 35,60,60), text("Rel."), colour("cornflowerblue"), channel("FRel"), range(0, 1, 0.45) | |||
rslider bounds(210, 35,60,60), text("Shape"), channel("FShp"), colour("cornflowerblue"), range(-50, 50, -16) | |||
} | |||
groupbox bounds(10, 105, 210, 90), text("Amplitude Envelope"){ | |||
rslider bounds( 10,130,60,60), text("Att."), channel("AAtt"), colour("red"), range(0, 1, 0) | |||
rslider bounds( 60,130,60,60), text("Dec."), channel("ADec"), colour("red"),range(0, 1, 0.45) | |||
rslider bounds(110,130,60,60), text("Sus"), channel("ASus"), colour("red"),range(0, 1, 0) | |||
rslider bounds(160,130,60,60), text("Rel"), channel("ARel"), colour("red"),range(0, 1, 0.45) | |||
} | |||
groupbox bounds(225, 105, 210, 90), text("Chorus"){ | |||
checkbox channel("ChoOnOff"), pos(235,135), size(40, 43), value(1) | |||
label bounds(235,178, 40, 11), text("On/Off"), colour("black") | |||
rslider bounds(275,130,60,60), text("Mix"), channel("ChoMix"), range(0, 1, 0.5) | |||
rslider bounds(325,130,60,60), text("Depth"), channel("ChoDep"), range(0, 0.1, 0.01,0.5, 0.001) | |||
rslider bounds(375,130,60,60), text("Rate"), channel("ChoRte"), range(0, 20, 0.96, 0.5) | |||
} | |||
keyboard pos(10, 200), size(425, 80) | |||
image bounds(5, 295, 240, 22), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.15, .9, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 3,2 | |||
;Author: Iain McCurdy (2012) | |||
;FUNCTION TABLES STORING MODAL FREQUENCY RATIOS=================================================================================================================================== | |||
;plucked string | |||
girtos1 ftgen 0,0,-20, -2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 | |||
;dahina | |||
girtos2 ftgen 0,0,-6,-2, 1, 2.89, 4.95, 6.99, 8.01, 9.02 | |||
;banyan | |||
girtos3 ftgen 0,0,-6,-2, 1, 2.0, 3.01, 4.01, 4.69, 5.63 | |||
;xylophone | |||
girtos4 ftgen 0,0,-6,-2, 1, 3.932, 9.538, 16.688, 24.566, 31.147 | |||
;tibetan bowl (180mm) | |||
girtos5 ftgen 0,0,-7,-2, 1, 2.77828, 5.18099, 8.16289, 11.66063, 15.63801, 19.99 | |||
;spinel sphere with diameter of 3.6675mm | |||
girtos6 ftgen 0,0,-24,-2, 1, 1.026513174725, 1.4224916858532, 1.4478690202098, 1.4661959580455, 1.499452545408, 1.7891839345101, 1.8768994627782, 1.9645945254541, 1.9786543873113, 2.0334612432847, 2.1452852391916, 2.1561524686621, 2.2533435661294, 2.2905090816065, 2.3331798413917, 2.4567715528268, 2.4925556408289, 2.5661806088514, 2.6055768738808, 2.6692760296751, 2.7140956766436, 2.7543617293425, 2.7710411870043 | |||
;pot lid | |||
girtos7 ftgen 0,0,-6,-2, 1, 3.2, 6.23, 6.27, 9.92, 14.15 | |||
;red cedar wood plate | |||
girtos8 ftgen 0,0,-4,-2, 1, 1.47, 2.09, 2.56 | |||
;tubular bell | |||
girtos9 ftgen 0,0,-10,-2, 272/437, 538/437, 874/437, 1281/437, 1755/437, 2264/437, 2813/437, 3389/437, 4822/437, 5255/437 | |||
;redwood wood plate | |||
girtos10 ftgen 0,0,-4,-2, 1, 1.47, 2.11, 2.57 | |||
;douglas fir wood plate | |||
girtos11 ftgen 0,0,-4,-2, 1, 1.42, 2.11, 2.47 | |||
;uniform wooden bar | |||
girtos12 ftgen 0,0,-6,-2, 1, 2.572, 4.644, 6.984, 9.723, 12 | |||
;uniform aluminum bar | |||
girtos13 ftgen 0,0,-6,-2, 1, 2.756, 5.423, 8.988, 13.448, 18.680 | |||
;vibraphone 1 | |||
girtos14 ftgen 0,0,-6,-2, 1, 3.984, 10.668, 17.979, 23.679, 33.642 | |||
;vibraphone 2 | |||
girtos15 ftgen 0,0,-6,-2, 1, 3.997, 9.469, 15.566, 20.863, 29.440 | |||
;Chalandi plates | |||
girtos16 ftgen 0,0,-5,-2, 1, 1.72581, 5.80645, 7.41935, 13.91935 | |||
;tibetan bowl (152 mm) | |||
girtos17 ftgen 0,0,-7,-2, 1, 2.66242, 4.83757, 7.51592, 10.64012, 14.21019, 18.14027 | |||
;tibetan bowl (140 mm) | |||
girtos18 ftgen 0,0,-5,-2, 1, 2.76515, 5.12121, 7.80681, 10.78409 | |||
;wine glass | |||
girtos19 ftgen 0,0,-5,-2, 1, 2.32, 4.25, 6.63, 9.38 | |||
;small handbell | |||
girtos20 ftgen 0,0,-22,-2, 1, 1.0019054878049, 1.7936737804878, 1.8009908536585, 2.5201981707317, 2.5224085365854, 2.9907012195122, 2.9940548780488, 3.7855182926829, 3.8061737804878, 4.5689024390244, 4.5754573170732, 5.0296493902439, 5.0455030487805, 6.0759908536585, 5.9094512195122, 6.4124237804878, 6.4430640243902, 7.0826219512195, 7.0923780487805, 7.3188262195122, 7.5551829268293 | |||
;albert clock bell belfast | |||
girtos21 ftgen 0,0,-22,-2, 2.043260,1.482916,1.000000,3.328848,4.761811,1.477056,0.612007,2.661295,1.002793,4.023776,0.254139,2.043916,4.032463,2.659438,4.775560,5.500494,3.331014,0.809697,2.391301, 0.254098,1.901476,2.366563 ;,0.614968,2.046543,1.814887,3.130744,2.484426,0.558874,0.801697,0.070870,3.617036,2.782656 | |||
;wood block | |||
girtos22 ftgen 0,0,4,-2, 915/915,1540/915,1863/915,3112/915 | |||
;================================================================================================================================================================================= | |||
;================================================================================================================================================================================= | |||
;GEN09 FUNCTION TABLE VERSIONS OF THE MODAL FREQUENCY TABLES | |||
;THESE AREN'T ACTUALLY NEEDED AS THE TABLES ARE CALCULATED IN INSTRUMENT 2 BUT IF INSTRUMENT 2 IS OMITTED THESE TABLES WILL BE NEEDED | |||
;NOTE THAT PARTIAL NUMBER HAVE BEEN MULTIPLIED BY giRtosScale AND THAT THE FREQUENCY OF ANY OSCILLATOR THAT USES THESE TABLES WILL HAVE TO BE DIVIDED BY THE SAME NUMBER | |||
giwave1 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2000,1.000,0, 3000,1.000,0, 4000,1.000,0, 5000,1.000,0, 6000,1.000,0, 7000,1.000,0, 8000,1.000,0, 9000,1.000,0, 10000,1.000,0, 11000,1.000,0, 12000,1.000,0, 13000,1.000,0, 14000,1.000,0, 15000,1.000,0, 16000,1.000,0, 17000,1.000,0, 18000,1.000,0, 19000,1.000,0, 20000,1.000,0 | |||
giwave2 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2890,1.000,0, 4950,1.000,0, 6990,1.000,0, 8010,1.000,0, 9020,1.000,0 | |||
giwave3 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2000,1.000,0, 3010,1.000,0, 4010,1.000,0, 4690,1.000,0, 5630,1.000,0 | |||
giwave4 ftgen 0, 0, 262144, 9, 1000,1.000,0, 3932,1.000,0, 9538,1.000,0, 16688,1.000,0, 24566,1.000,0, 31147,1.000,0 | |||
giwave5 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2778,0.500,0, 5180,0.250,0, 8162,0.125,0, 11660,0.062,0, 15638,0.031,0, 19990,0.016,0 | |||
giwave6 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1026,1.000,0, 1422,1.000,0, 1447,1.000,0, 1466,1.000,0, 1499,1.000,0, 1789,1.000,0, 1876,1.000,0, 1964,1.000,0, 1978,1.000,0, 2033,1.000,0, 2145,1.000,0, 2156,1.000,0, 2253,1.000,0, 2290,1.000,0, 2333,1.000,0, 2456,1.000,0, 2492,1.000,0, 2566,1.000,0, 2605,1.000,0, 2669,1.000,0, 2714,1.000,0 | |||
giwave7 ftgen 0, 0, 262144, 9, 1000,1.000,0, 3200,1.000,0, 6230,1.000,0, 6270,1.000,0, 9920,1.000,0, 14150,1.000,0 | |||
giwave8 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1470,1.000,0, 2090,1.000,0, 2560,1.000,0 | |||
giwave9 ftgen 0, 0, 262144, 9, 622,1.000,0, 1231,1.000,0, 2000,1.000,0, 2931,1.000,0, 4016,1.000,0, 5180,1.000,0, 6437,1.000,0, 7755,1.000,0, 11034,1.000,0, 12025,1.000,0 | |||
giwave10 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1470,1.000,0, 2110,1.000,0, 2570,1.000,0 | |||
giwave11 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1420,1.000,0, 2110,1.000,0, 2470,1.000,0 | |||
giwave12 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2572,1.000,0, 4644,1.000,0, 6984,1.000,0, 9723,1.000,0, 12000,1.000,0 | |||
giwave13 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2756,1.000,0, 5423,1.000,0, 8988,1.000,0, 13448,1.000,0, 18680,1.000,0 | |||
giwave14 ftgen 0, 0, 262144, 9, 1000,1.000,0, 3984,1.000,0, 10668,1.000,0, 17979,1.000,0, 23679,1.000,0, 33642,1.000,0 | |||
giwave15 ftgen 0, 0, 262144, 9, 1000,1.000,0, 3997,1.000,0, 9469,1.000,0, 15566,1.000,0, 20863,1.000,0, 29440,1.000,0 | |||
giwave16 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1725,1.000,0, 5806,1.000,0, 7419,1.000,0, 13919,1.000,0 | |||
giwave17 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2662,1.000,0, 4837,1.000,0, 7515,1.000,0, 10640,1.000,0, 14210,1.000,0, 18140,1.000,0 | |||
giwave18 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2765,1.000,0, 5121,1.000,0, 7806,1.000,0, 10784,1.000,0 | |||
giwave19 ftgen 0, 0, 262144, 9, 1000,1.000,0, 2320,1.000,0, 4250,1.000,0, 6630,1.000,0, 9380,1.000,0 | |||
giwave20 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1001,0.833,0, 1793,0.694,0, 1800,0.579,0, 2520,0.482,0, 2522,0.402,0, 2990,0.335,0, 2994,0.279,0, 3785,0.233,0, 3806,0.194,0, 4568,0.162,0, 4575,0.135,0, 5029,0.112,0, 5045,0.093,0, 6075,0.078,0, 5909,0.065,0, 6412,0.054,0, 6443,0.045,0, 7082,0.038,0, 7092,0.031,0, 7318,0.026,0, 7555,0.022,0 | |||
giwave21 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1001,0.833,0, 1793,0.694,0, 1800,0.579,0, 2520,0.482,0, 2522,0.402,0, 2990,0.335,0, 2994,0.279,0, 3785,0.233,0, 3806,0.194,0, 4568,0.162,0, 4575,0.135,0, 5029,0.112,0, 5045,0.093,0, 6075,0.078,0, 5909,0.065,0, 6412,0.054,0, 6443,0.045,0, 7082,0.038,0, 7092,0.031,0, 7318,0.026,0, 7555,0.022,0 | |||
giwave22 ftgen 0, 0, 262144, 9, 1000,1.000,0, 1001,0.833,0, 1793,0.694,0, 1800,0.579,0, 2520,0.482,0, 2522,0.402,0, 2990,0.335,0, 2994,0.279,0, 3785,0.233,0, 3806,0.194,0, 4568,0.162,0, 4575,0.135,0, 5029,0.112,0, 5045,0.093,0, 6075,0.078,0, 5909,0.065,0, 6412,0.054,0, 6443,0.045,0, 7082,0.038,0, 7092,0.031,0, 7318,0.026,0, 7555,0.022,0 | |||
;================================================================================================================================================================================= | |||
gisine ftgen 0,0,4096,10,1 ;A SINE WAVE | |||
giRtosScale = 100 ;SCALING FACTOR APPLIED TO RATIOS WRITTEN TO GEN09 FUNCTION TABLE | |||
;FREQUENCY OF AUDIO OSCILLATOR WILL BE DIVIDED BY THIS VALUE | |||
;TOO LOW A VALUE HERE WILL RESULT IN QUANTISATION OF PARTIAL FREQUENCIES | |||
;TOO HIGH A VALUE WILL RESULT IN HIGHER PARTIALS BEING POORLY REPRESENTED IN THE TABLE, LEADING TO ALIASING | |||
gilfoshape ftgen 0, 0, 4096, 19, 0.5, 1, 180, 1 ;U-SHAPE PARABOLA (USED BY THE CHORUS EFFECT) | |||
gidurscal ftgen 0, 0, 128, -16, 10, 128, -4, 0.1 ;A FUNCTION USED TO RESCALE ENVELOPE DURATIONS ACCORDING TO NOTE PLAYED | |||
givelscal ftgen 0, 0, 128, -16, 0, 128, -4, 1 ;A FUNCTION USED TO REMAP MIDI VELOCITY VALUES - THE CURVATURE OF THIS FUNCTION CAN BE CHANGED TO TAKE ACCOUNT OF THE VARYING VELOCITY RESPONSE OF DIFFERENT MIDI KEYBOARDS | |||
gasend init 0 | |||
instr CreateGEN09Tables ;DERIVE GEN09 FUNCTION TABLE WAVEFORMS FROM THE GEN02 FUNCTION TABLES OF MODAL FREQUENCY RATIOS | |||
;A MACRO IS DEFINED THAT READS A SINGLE MODAL FERQUENCY RATIO FROM A TABLE | |||
#define PARTIAL(PartNum) | |||
# | |||
if $PartNum<=inratios then ;IF COUNTER IS WITHIN THE LIMITS OF THE NUMBER OF DEFINED MODAL FREQUENCY RATIOS... | |||
irto$PartNum table $PartNum-1,girtos$WaveNum ;...READ A VALUE FROM THE TABLE | |||
irto$PartNum = round(irto$PartNum*giRtosScale) ;MULTIPLY RATIO BY giRtosScale THEN INTEGERISE BYT ROUND TO THE NEAREST WHOLE NUMBER | |||
iamp$PartNum = iamp/(iampscal^($PartNum-1)) ;DERIVE AMPLITUDE VALUE FOR THIS PARTIAL | |||
else ;IF COUNTER IS BEYOND THE LIMITS OF THE NUMBER OF DEFINED MODAL FREQUENCY RATIOS... | |||
irto$PartNum = 0 ;SET RATIO TO ZERO | |||
iamp$PartNum = 0 ;SET PARTIAL STRENGTH TO ZERO | |||
endif | |||
# | |||
;A MACRO IS DEFINED THAT CREATES A GEN09 TABLE FROM MODAL FREQUENCY DATA | |||
#define WAVEFORM(WaveNum'AmpScal) | |||
# | |||
inratios = ftlen(girtos$WaveNum) | |||
iampscal = $AmpScal ;AMPLITUDE SCALING | |||
iamp = 1 ;PARTIAL STRENGTH OF FIRST PARTIAL | |||
$PARTIAL(1) ;MACRO EXPANDED FOR EACH PARTIAL... | |||
$PARTIAL(2) | |||
$PARTIAL(3) | |||
$PARTIAL(4) | |||
$PARTIAL(5) | |||
$PARTIAL(6) | |||
$PARTIAL(7) | |||
$PARTIAL(8) | |||
$PARTIAL(9) | |||
$PARTIAL(10) | |||
$PARTIAL(11) | |||
$PARTIAL(12) | |||
$PARTIAL(13) | |||
$PARTIAL(14) | |||
$PARTIAL(15) | |||
$PARTIAL(16) | |||
$PARTIAL(17) | |||
$PARTIAL(18) | |||
$PARTIAL(19) | |||
$PARTIAL(20) | |||
$PARTIAL(21) | |||
$PARTIAL(22) | |||
;GENERATE A GEN09 FUNCTION TABLE (ALL PHASES ARE SET TO ZERO) | |||
giwave$WaveNum ftgen 0,0,131072,9, irto1,iamp1,0, irto2,iamp2,0, irto3,iamp3,0, irto4,iamp4,0, irto5,iamp5,0, irto6,iamp6,0, irto7,iamp7,0, irto8,iamp8,0, irto9,iamp9,0, irto10,iamp10,0, irto11,iamp11,0, irto12,iamp12,0, irto13,iamp13,0, irto14,iamp14,0, irto15,iamp15,0, irto16,iamp16,0, irto17,iamp17,0, irto18,iamp18,0, irto19,iamp19,0, irto20,iamp20,0, irto21,iamp21,0, irto22,iamp22,0 | |||
;UNCOMMENT THE FOLLOWING LINE IF YOU WISH TO WRITE GENERATED TABLES TO A TEXT FILE FOR LATER USE | |||
;fprints "GEN09InharmonicTables.txt", "giwave$WaveNum%tftgen%t0, 0, 131072s, 9, %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0,%t %d,%5.3f,0%n", irto1,iamp1, irto2,iamp2, irto3,iamp3, irto4,iamp4, irto5,iamp5, irto6,iamp6, irto7,iamp7, irto8,iamp8, irto9,iamp9, irto10,iamp10, irto11,iamp11, irto12,iamp12, irto13,iamp13, irto14,iamp14, irto15,iamp15, irto16,iamp16, irto17,iamp17, irto18,iamp18, irto19,iamp19, irto20,iamp20, irto21,iamp21, irto22,iamp22 | |||
# | |||
;EXPAND MACRO FOR EACH WAVEFORM TO BE CREATED | |||
;ARG1 = A COUNTER, SHOULD CORRESPOND TO NUMBER APPENDED TO 'girtos' FOR THE TABLE HANDLE OF THE REQUIRED MODAL FREQUENCIES TABLE | |||
;ARG2 = PARTIAL STRENGTHS SCALING: 1=FLAT >1=HIGHER PARTIALS ARE INCREASINGLY ATTENUATED | |||
$WAVEFORM(1' 1.5) | |||
$WAVEFORM(2' 2) | |||
$WAVEFORM(3' 1.5) | |||
$WAVEFORM(4' 2) | |||
$WAVEFORM(5' 2) | |||
$WAVEFORM(6' 1) | |||
$WAVEFORM(7' 1.2) | |||
$WAVEFORM(8' 1.5) | |||
$WAVEFORM(9' 1) | |||
$WAVEFORM(10' 1) | |||
$WAVEFORM(11' 1) | |||
$WAVEFORM(12' 1.5) | |||
$WAVEFORM(13' 1) | |||
$WAVEFORM(14' 2) | |||
$WAVEFORM(15' 2) | |||
$WAVEFORM(16' 1.5) | |||
$WAVEFORM(17' 2) | |||
$WAVEFORM(18' 2) | |||
$WAVEFORM(19' 1) | |||
$WAVEFORM(20' 1.2) | |||
$WAVEFORM(21' 1.1) | |||
$WAVEFORM(22' 1.1) | |||
endin | |||
instr 2 ;SOUND GENERATING INSTRUMENT | |||
iInstr chnget "Instr" | |||
iAAtt chnget "AAtt" | |||
iADec chnget "ADec" | |||
iASus chnget "ASus" | |||
iARel chnget "ARel" | |||
iFAmt chnget "FAmt" | |||
iFDec chnget "FDec" | |||
iFSus chnget "FSus" | |||
iFRel chnget "FRel" | |||
iFShp chnget "FShp" | |||
iAAtt = (iAAtt^3)*(15-0.001)+0.001 | |||
iADec = (iADec^3)*(15-0.001)+0.001 | |||
iARel = (iARel^3)*(15-0.001)+0.001 | |||
iFDec = (iFDec^3)*(15-0.001)+0.001 | |||
iFRel = (iFRel^3)*(15-0.001)+0.001 | |||
icps cpsmidi ;READ CPS VALUE IN FROM MIDI KEYBOARD | |||
inum notnum ;READ MIDI NOTE NUMBER | |||
ivel veloc 0,1 ;READ MIDI VELOCITY | |||
ivel table ivel,givelscal,1 ;REMAP MIDI VELOCITY - SEE TABLE givelscal ABOVE | |||
iscale table inum,gidurscal ;DURATIONAL RESCALING ACCORDING TO NOTE PLAYED - HIGHER NOTE WILL DECAY QUICKER IN REFLECTION OF REAL-WORLD CHARACTERISTICS | |||
aenv expsegr 0.001,iAAtt,1,iADec*iscale,iASus+0.0001,iARel*iscale,0.0001 ;AMPLITUDE ENVELOPE WITH MIDI SENSING RELEASE SEGEMENT | |||
asig poscil 0.1*aenv*ivel,icps/giRtosScale,giwave1+iInstr-1 ;AUDIO OSCILLATOR poscil3 USED FOR IMPROVED FIDELITY OVER OTHER OSCILLATORS. FREQUENCY IS SCALED DOWN ACCORIND TO THE VALUE OF giRtosScale DEFINED IN THE HEADER | |||
;UNFORTUNATELY transegr DOESN'T SEEM TO WORK SO IN THE MEANTIME THIS RATHER PROTRACTED ALTERNATIVE WILL ACT AS A SUBSTITUTE | |||
iFlev1 limit cpsoct((iFAmt*10*ivel)+4),icps,sr/2 ;DERIVE STARTING FILTER VALUE IN CPS FROM FLTK KNOB (RANGE 0 TO 1). LIMIT IT BETWEEN FUNDEMENTAL FREQ. AND NYQUIST. | |||
iFsus = icps+cpsoct((iFSus*10)+4) ;DERIVE FILTER SUSTAIN VALUE IN CPS FROM FLTK KNOB VALUE (RANGE 0 - 1) | |||
iFend = icps ;FINAL FILTER ENVELOPE VALUE IS ALWAYS FUNDEMENTAL FREQUENCY | |||
krel release ;SENSE WHEN A NOTE HAS BEEN RELEASED. 1=NOTE_RELEAESD 0=NOTE_BEING_HELD | |||
if krel==0 then ;IF NOTE IS BEGIN HELD... | |||
kcf transeg iFlev1,iFDec*iscale,iFShp,iFsus ;CREATE ADS (ATTACK-DECAY-SUSTAIN) PART OF ENVELOPE | |||
else ;OTHERWISE (WE ARE IN THE RELEASE STAGE) | |||
ktrig changed krel ;INSTIGATE A SHORT REINITIALISATION TO DERIVE AN I-TIME VALUE OF THE CURRENT AMPLITUDE VALUE FOR THE STARTING POINT OF THE RELEASE ENVELOPE | |||
if ktrig==1 then ; | |||
reinit StartRel | |||
endif | |||
StartRel: | |||
kcf transeg i(kcf),iFRel*iscale,iFShp,iFend ;RELEASE STAGE OF THE ENVELOPE. 'i(kcf)' AS THE STARTING VALUE ENSURES THAT IT ALWAYS PICKS UP FROM WHERE THE 'ADS' PART OF THE ENVELOPE LEFT OFF. | |||
rireturn | |||
endif | |||
;asig butlp asig, kcf | |||
asig clfilt asig, kcf, 0, 2 ;LOW PASS FILTER THE SOUND (SUBTRACTIVE SYNTHESIS) | |||
gasend = gasend+asig | |||
endin | |||
instr 3 | |||
kChoOnOff chnget "ChoOnOff" | |||
gkChoMix chnget "ChoMix" | |||
gkChoRte chnget "ChoRte" | |||
gkChoDep chnget "ChoDep" | |||
if kChoOnOff==0 kgoto SKIP_CHORUS | |||
kporttime linseg 0,0.001,1 | |||
kporttime = kporttime/gkChoRte | |||
kdlt1 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt1 portk kdlt1,kporttime | |||
adlt1 interp kdlt1 | |||
acho1 vdelay gasend,adlt1*1000,1*1000 | |||
kdlt2 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt2 portk kdlt2,kporttime | |||
adlt2 interp kdlt2 | |||
acho2 vdelay gasend,adlt2*1000,1*1000 | |||
kpan1 randomi 0,1,gkChoRte,1 | |||
kpan2 randomi 0,1,gkChoRte,1 | |||
a1L,a1R pan2 acho1,kpan1 | |||
a2L,a2R pan2 acho2,kpan2 | |||
achoL = a1L+a2L | |||
achoR = a1R+a2R | |||
outs achoL*gkChoMix, achoR*gkChoMix | |||
SKIP_CHORUS: | |||
outs gasend, gasend ;SEND UN-CHORUSSED AUDIO TO THE OUTPUTS | |||
clear gasend | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i "CreateGEN09Tables" 0 0 | |||
i 3 0 [60*60*24*7] | |||
f 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,91 @@ | |||
<Cabbage> | |||
form size(350, 125), caption("Metalizer"), colour("black"),pluginID("meta") | |||
image bounds(5, 5, 340, 90), colour("black"), outline("white") | |||
rslider bounds(15, 15, 70, 70), channel("depth"), text("Depth"), colour("lightgrey") range(0.2, 4, 0.2) | |||
rslider bounds(95, 15, 70, 70), channel("time"), text("Time"), colour("lightgrey") range(0.0001,8,.1) | |||
rslider bounds(170, 15, 70, 70), channel("mix"), text("Dry/Wet"), colour("lightgrey") range(0, 1, 0) | |||
checkbox pos(260, 15) text("On/Off"), channel("on_off") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
;Author: Giorgio Zucco (2012) | |||
;(adapted from Metallic reverb from CsoundBook) | |||
opcode Metalizer,aa,aakk | |||
asig1,asig2,kdepth,krvt xin | |||
klp1 = 1/8*kdepth | |||
klp2 = 1/13*kdepth | |||
klp3 = 1/546*kdepth | |||
klp4 = 1/739*kdepth | |||
klp5 = 1/1360 *kdepth | |||
klp6 = 1/2654*kdepth | |||
aecho1 vcomb asig1, krvt, klp1, 1 | |||
aecho2 vcomb asig2, krvt, klp2, 1 | |||
aecho1 = asig1+aecho1 | |||
aecho2 = asig2+aecho2 | |||
aecho3 vcomb aecho1, krvt, klp3, 1 | |||
aecho4 vcomb aecho1, krvt, klp4, 1 | |||
aecho5 vcomb aecho2, krvt, klp5, 1 | |||
aecho6 vcomb aecho2, krvt, klp6, 1 | |||
aout1 = (aecho1+aecho3+aecho5)*.1 | |||
aout2 = (aecho2+aecho4+aecho6)*.1 | |||
xout aout1 ,aout2 | |||
endop | |||
instr 1 | |||
kdepth chnget "depth" | |||
ktime chnget "time" | |||
kOnOff chnget "on_off" | |||
kmix chnget "mix" | |||
a1,a2 ins | |||
if kOnOff = 1 then | |||
aout1,aout2 Metalizer a1,a2,kdepth,ktime | |||
elseif kOnOff = 0 then | |||
aout1 = 0 | |||
aout2 = 0 | |||
endif | |||
amix1 ntrpol aout1,a1,1-kmix | |||
amix2 ntrpol aout2,a2,1-kmix | |||
kpan1 jspline 1,1,5 | |||
kpan2 jspline 1,1,4 | |||
aleft,aright pan2 amix1,kpan1 | |||
aleft2,aright2 pan2 amix2,kpan2 | |||
outs (aleft+aleft2)*.5,(aright+aright2)*.5 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i1 0 360000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,140 @@ | |||
Metronome.csd | |||
For the best timing accuracy, set ksmps = 1 | |||
Iain McCurdy, 2013 | |||
; level 1 - amplitude level for the main 'beat' (1st beat of the bar) | |||
; level 2 - amplitude level for other beats of the bar (subdivisions) | |||
; Subdiv. - subdivision of the bar. i.e. 4 for 4/4, 3 for 3/4 etc. | |||
; tone 1 - tone of the main beat (1st beat of the bar) | |||
; tone 2 - tone level for other beats of the bar (subdivisions) | |||
; duration - duration of each 'click' | |||
; width - stereo width of each click | |||
; to achieve a simple 1 click metronome, set level 2 to zero and subdiv to 1. | |||
A simple Cabbage metronome | |||
<Cabbage> | |||
form caption("Metronome"), size(770,140), pluginID("mtro") | |||
image bounds( 0, 0,770,140), colour(160, 70,20,100), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds( 15, 20,130, 40), text("Start/Stop") channel("OnOff"), FontColour("White"), colour(250,250,100) value(0) | |||
rslider bounds(120, 13, 65, 65), text("Level 1"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("level1"), range(0, 1.00, 0.4, 0.5, 0.001) | |||
rslider bounds(180, 13, 65, 65), text("Level 2"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("level2"), range(0, 1.00, 0.1, 0.5, 0.001) | |||
rslider bounds(240, 13, 65, 65), text("Subdiv."), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("subdiv"), range(1, 16, 3, 1, 1) | |||
rslider bounds(300, 13, 65, 65), text("Tone 1"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("tone1"), range(0, 4.00, 2.5) | |||
rslider bounds(360, 13, 65, 65), text("Tone 2"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("tone2"), range(0, 4.00, 1.56) | |||
rslider bounds(420, 13, 65, 65), text("Duration"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("dur"), range(0.003, 0.1, 0.012, 0.5, 0.00001) | |||
rslider bounds(480, 13, 65, 65), text("Width"), colour(160, 70,20,100), trackercolour(250,250,200), FontColour("White"), channel("width"), range(0, 2.00, 0) | |||
checkbox bounds(550, 18, 45, 45) channel("indicator"), FontColour("White"), colour(255, 50, 50) value(0), shape("ellipse") | |||
checkbox bounds(600, 18, 45, 45) channel("indicator2"), FontColour("White"), colour(100,255,100) value(0), shape("ellipse") | |||
hslider bounds( 10, 75,750, 40), colour(160, 70,20,100), trackercolour(160, 70, 20,100), FontColour("White"), channel("tempo"), range(10,1000, 90, 1, 1) textBox(1) | |||
label bounds(345, 110, 80, 12), text("Tempo [BPM]"), fontcolour("white") | |||
groupbox bounds(655, 25,1030, 520), colour(160, 70,20,100), line(0), popup(1), plant("Large LEDs"){ | |||
checkbox bounds( 10, 10,500,500) channel("indicator"), FontColour("White"), colour(255, 50, 50) value(0), shape("ellipse") | |||
checkbox bounds(520, 10,500,500) channel("indicator2"), FontColour("White"), colour(100,255,100) value(0), shape("ellipse") | |||
} | |||
label bounds( 10,120, 200, 12), text("Author: Iain McCurdy |2013|"), FontColour("silvers") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 16 ; for maximum timing accuracy set ksmps = 1 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
gistrt ftgen 0,0,8,-2, 200, 200, 2500, 5000, 5000 | |||
giend ftgen 0,0,8,-2, 20, 1000, 20, 20, 1000 | |||
gisine ftgen 0,0,4096,10,1 ; sine wave (used by the audio oscillator) | |||
gasend init 0 ; global variable used to send audio to the 'stereo' instrument | |||
gibar ftgen 0,0,64,-2,1 ; bar structure basically a '1' followed by 63 zeroes, '1' indicating the first neat of a bar and zero indicating any other beat | |||
instr 1 | |||
kOnOff chnget "OnOff" | |||
kdur chnget "dur" | |||
ksubdiv chnget "subdiv" | |||
ktone1 chnget "tone1" | |||
ktone2 chnget "tone2" | |||
klevel1 chnget "level1" | |||
klevel2 chnget "level2" | |||
kstrt tablei ktone1,gistrt | |||
kend tablei ktone1,giend | |||
kstrt2 tablei ktone2,gistrt | |||
kend2 tablei ktone2,giend | |||
; restart metronome if subdiv changes to ensure timing accuracy | |||
ktrig changed ksubdiv,kOnOff | |||
if ktrig==1 then | |||
reinit RESTART | |||
endif | |||
RESTART: | |||
kbeat init 0 ; initialise beat position (0 = first beat of the bar) | |||
if kOnOff==1 then | |||
gktempo chnget "tempo" | |||
kmetro metro gktempo/60 ; bar metronome | |||
if kmetro=1 then ; if a beat is occuring... | |||
ktype table kbeat,gibar ;1=bar 0=beat ; read if this is a first beat of a bar or not (1=first beat, 0=any other) | |||
if ktype=1 then ; if first beat of a bar... | |||
event "i",2,0,kdur,kstrt,kend,klevel1,1 ; ... call metronome click as if 1st beat (p7 = 1 = flash indicator) | |||
else ; otherwise (must be aby other beat of a bar)... | |||
event "i",2,0,kdur,kstrt2,kend2,klevel2,0 ; ...call metronome click as if any other beat of a bar (p7 = 0 = don't flash indicator) | |||
endif | |||
kbeat wrap kbeat+1, 0, ksubdiv ; increment beat position but wrap around to zero if final beat of a bar has already been reacxhed | |||
endif | |||
endif | |||
endin | |||
instr 2 ; produce metronome sound (this instrument will be called repeatedly) | |||
iwidth chnget "width" | |||
acps transeg p4,p3,-7,p5 ; pitch of oscillator (a quickly decaying exponential curve) start='tone 1', end='tone 2' | |||
aenv transeg 1,p3,-7,0 ; amplitude of oscillator (a quickly decaying exponential curve) | |||
asig oscili p6,acps,gisine ; audio oscillator | |||
amod oscili 3,200,gisine ; modulation signal | |||
asig = asig*amod ; ring modulate original audio signal | |||
asig butbp asig*10,100,100 ; bandpass filter the sound to attenuate lows and highs | |||
asig = asig*aenv ; apply envelope | |||
outs asig,asig ; send audio to outputs | |||
gasend = gasend+asig*iwidth ; send a bit of the audio to the stereo-ifying instrument | |||
event_i "i",5-p7,0,0.08 ; flash indicator (call instrument 4 for 0.1 duration) | |||
endin | |||
instr 3 ; 'stereo'ify the sound | |||
aL delay gasend, rnd(0.01) ; slightly delay audio by a random amount to create left channel audio | |||
aR delay gasend, rnd(0.01) ; slightly delay audio by a random amount to create right channel audio | |||
aL butlp aL,cpsoct(rnd(10)) ; filter left channel (random cutoff frequency) | |||
aR butlp aR,cpsoct(rnd(10)) ; filter right channel (random cutoff frequency) | |||
outs aL,aR ; send audio to outputs | |||
gasend = 0 ; clear global send variable | |||
endin | |||
instr 4 ; flash red indicator | |||
gkrelease release ; krelease=0 while note is active, =1 when note ends (final k-cycle) | |||
chnset 1-gkrelease,"indicator" ; turn indicator on or off | |||
endin | |||
instr 5 ; flash green indicator | |||
gkrelease release ; krelease=0 while note is active, =1 when note ends (final k-cycle) | |||
chnset 1-gkrelease,"indicator2" ; turn indicator on or off | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
i 3 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,198 @@ | |||
<Cabbage> | |||
form caption("Percussive flute synthesizer"), size(760, 320), pluginID("per1") | |||
xypad bounds(0, 0, 250, 210), channel("chanx", "chany"), text("Modulation"), rangex(1,50,6.72), rangey(0,1,0.43) | |||
groupbox bounds(260, 0, 240, 100), text("ADSR"), plant("adsr"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(260, 105, 240, 100), text("Tune"), plant("tune"){ | |||
rslider bounds(.0, .3, .6, .6), text("Semi"), colour("white "), channel("semi"), range(-24,12,0) | |||
rslider bounds(.25, .3, .6, .6), text("Detune"), colour("white "), channel("detune"), range(-1,1,0) | |||
rslider bounds(.5, .3, .6, .6), text("Cutoff"), colour("white "), channel("cutoff"), range(200,12000,3000) | |||
rslider bounds(.75, .3, .6, .6), text("Spread"), colour("white "), channel("spread"), range(0,1,.5) | |||
} | |||
groupbox bounds(510,0, 240, 100), text("LFO/Stereo chorus"), plant("mod"){ | |||
rslider bounds(.0, .3, .6, .6), text("Lfo amp"), colour("white "), channel("lfoamp"), range(0,5, 0) | |||
rslider bounds(.25, .3, .6, .6), text("Lfo rate"), colour("white "), channel("lforate"), range(0,10, 0) | |||
rslider bounds(.5, .3, .6, .6), text("depth"), colour("white "), channel("chdepth"), range(0,10,0) | |||
rslider bounds(.75, .3, .6, .6), text("rate"), colour("white "), channel("chrate"), range(0,10,0) | |||
} | |||
groupbox bounds(510,105, 240, 100), text("Reverb"), plant("rev"){ | |||
rslider bounds(0, .3, .6, .6), text("level"), colour("dodgerblue"), channel("level"), range(0,1,0) | |||
rslider bounds(0.25, .3, .6, .6), text("size"), colour("dodgerblue"), channel("size"), range(.1,.99,.5) | |||
checkbox bounds(.55, .40, .60, .30),channel("onoff"), text("On/Off"), value(0) | |||
} | |||
keyboard bounds(0, 220, 750, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -m0d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;turnon 10 ;chorus | |||
;turnon 12 ;reverb | |||
ga1 init 0 | |||
ga2 init 0 | |||
garev1 init 0 | |||
garev2 init 0 | |||
;******************************************* | |||
opcode StChorus,aa,aakkkk | |||
asigr,asigl,kdepth,kdepthl,krate,kratel xin ;legge i parametri in entrata | |||
;ar,al StChorus asigr,asigl,kdepth,kdepthl,krate,kratel | |||
k1ch randi kdepth/2,krate,1 | |||
ar1 vdelay3 asigr,kdepth/2+k1ch,10 | |||
k2ch randi kdepth/2,krate*0.9,.2 | |||
ar2 vdelay3 asigr,kdepth/2+k2ch,10 | |||
k3ch randi kdepth/2,krate*1.1,.2 | |||
ar3 vdelay3 asigr,kdepth/2+k3ch,10 | |||
k4ch randi kdepth/2,krate*1.3,.1 | |||
ar4 vdelay3 asigr,kdepth/2+k4ch,10 | |||
k1chl randi kdepthl/2,kratel,1 | |||
ar1l vdelay3 asigl,kdepthl/2+k1chl,10 | |||
k2chl randi kdepthl/2,kratel*0.9,.2 | |||
ar2l vdelay3 asigl,kdepthl/2+k2chl,10 | |||
k3chl randi kdepthl/2,kratel*1.1,.2 | |||
ar3l vdelay3 asigl,kdepthl/2+k3chl,10 | |||
k4chl randi kdepthl/2,kratel*1.3,.1 | |||
ar4l vdelay3 asigl,kdepthl/2+k4chl,10 | |||
aL = (ar1+ar2+ar3+ar4)/2 | |||
aR = (ar1l+ar2l+ar3l+ar4l)/2 | |||
xout aL,aR ; write output | |||
endop | |||
;*********************************************** | |||
instr 1 | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
kdet chnget "detune" | |||
ksemi chnget "semi" | |||
kcut chnget "cutoff" | |||
kspread chnget "spread" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
kindex chnget "fmamp" | |||
kfmrate chnget "fmrate" | |||
kcutoff chnget "cutoff" | |||
kreso chnget "resonance" | |||
kc1 chnget "chanx" | |||
kc2 chnget "chany" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(ksemi)+kdet) | |||
ifn1 = 1 | |||
ifn2 = 1 | |||
ifn3 = 1 | |||
ifn4 = 1 | |||
ivfn = 1 | |||
asig1 fmpercfl iamp, kfreq1,kc1,kc2,klfoamp,klforate,ifn1,ifn2,ifn3,ifn4,ivfn | |||
asig2 fmpercfl iamp, kfreq2,kc1,kc2,klfoamp,klforate,ifn1,ifn2,ifn3,ifn4,ivfn | |||
afl1 clfilt asig1,kcutoff,0,4 | |||
afl2 clfilt asig2,kcutoff,0,4 | |||
;master | |||
al = ((afl1 * kspread) + (afl2 * (1 - kspread))) *.2 | |||
ar = ((afl1 * (1-kspread)) + (afl2 * kspread)) *.2 | |||
aoutL clip al,0,0dbfs | |||
aoutR clip ar,0,0dbfs | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs (aoutL*kadsr),(aoutR*kadsr) | |||
vincr ga1,(aoutL*kadsr) | |||
vincr ga2,(aoutR*kadsr) | |||
vincr garev1,(aoutL*kadsr) | |||
vincr garev2,(aoutR*kadsr) | |||
endin | |||
;stereo chorus | |||
instr 10 | |||
k1 chnget "chdepth" | |||
k2 chnget "chrate" | |||
kfxdepth portk k1,.01 | |||
kfxrate portk k2,.01 | |||
acho1,acho2 StChorus ga1,ga2,kfxdepth,kfxdepth*.8,kfxrate,kfxrate*.8 | |||
outs acho1,acho2 | |||
clear ga1,ga2 | |||
endin | |||
instr 12 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc garev1,garev2,ksize,16000,sr,0 | |||
adc1 dcblock2 al | |||
adc2 dcblock2 ar | |||
kpan1 randomi 0,1,4 | |||
kpan2 randomi 0,1,8 | |||
aout1,aout2 pan2 adc1,kpan1 | |||
aout3,aout4 pan2 adc2,1-kpan2 | |||
asum1 = (aout1+aout2)*klevel | |||
asum2 = (aout3+aout4)*klevel | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1,asum2 | |||
clear garev1,garev2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
; sine wave. | |||
f 1 0 32768 10 1 | |||
i1 0 36000 | |||
i10 0 36000 | |||
i12 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,59 @@ | |||
<Cabbage> | |||
form caption("Pink Noise"), size(230, 80), pluginID("pnse") | |||
image bounds( 0, 0,230, 80), colour("pink"), shape("rounded"), outline("red"), line(4) | |||
checkbox bounds( 20, 10, 80, 15), text("On/Off"), channel("onoff"), value(1), fontcolour("black"), colour("yellow") | |||
combobox bounds( 20, 40, 70, 20), channel("method"), value(1), text("Gardner", "Kellet", "Kellet 2") | |||
rslider bounds(100, 10, 60, 60), text("Amplitude"), channel("amp"), range(0, 1, 0.5, 0.5, 0.001), fontcolour("black"), trackercolour("red") | |||
rslider bounds(160, 10, 60, 60), text("N.Bands"), channel("numbands"), range(4, 32, 20, 1, 1), fontcolour("black") , trackercolour("red") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 0,0 | |||
instr 1 | |||
konoff chnget "onoff" ;read in on/off switch widget value | |||
if konoff==0 goto SKIP ;if on/off switch is off jump to skip label | |||
kmethod chnget "method" | |||
kmethod = kmethod - 1 | |||
knumbands chnget "numbands" | |||
kamp chnget "amp" | |||
ktrig changed kmethod, knumbands ;GENERATE BANG (A MOMENTARY '1') IF ANY OF THE INPUT VARIABLES CHANGE | |||
if ktrig==1 then ;IF AN I-RATE VARIABLE HAS CHANGED | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL BRANCH | |||
UPDATE: ;LABEL CALLED 'UPDATE' | |||
if kmethod=0 then ;IF GARDNER METHOD HAS BEEN CHOSEN... | |||
asigL pinkish kamp, i(kmethod), i(knumbands) ;GENERATE PINK NOISE | |||
asigR pinkish kamp, i(kmethod), i(knumbands) ;GENERATE PINK NOISE | |||
else ;OTHERWISE (I.E. 2ND OR 3RD METHOD HAS BEEN CHOSEN) | |||
anoise unirand 2 ;WHITE NOISE BETWEEN ZERO AND 2 | |||
anoise = (anoise-1) ;OFFSET TO RANGE BETWEEN -1 AND 1 | |||
asigL pinkish anoise, i(kmethod) ;GENERATE PINK NOISE | |||
asigR pinkish anoise, i(kmethod) ;GENERATE PINK NOISE | |||
asigL = asigL * kamp ;RESCALE AMPLITUDE WITH gkpinkamp | |||
asigR = asigR * kamp ;RESCALE AMPLITUDE WITH gkpinkamp | |||
endif ;END OF CONDITIONAL | |||
rireturn ;RETURN FROM REINITIALISATION PASS | |||
outs asigL,asigR ;SEND AUDIO SIGNAL TO OUTPUT | |||
SKIP: ;A label. Skip to here is on/off switch is off | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ;instrument that reads in widget data | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,203 @@ | |||
; Rhythmicon.csd | |||
; Written by Iain McCurdy, 2013. | |||
; Recreation of Henry Cowell and Leon Theremin's Rhythmicon instrument (http://en.wikipedia.org/wiki/Rhythmicon) | |||
; CONTROLS | |||
; -------- | |||
; BASE -- note number of the fundemental (lowest note) | |||
; RATE -- base rate (same as rate for fundemental) | |||
; LEVEL -- output level | |||
; DESCRIPTION | |||
; ----------- | |||
; Each note above the fundemental (C3) divides the base rate increasingly according to the arithmetic progression: 2,3,4,5... | |||
; Therefore if C3 plays crotchets (quarter notes), C#3 plays quavers (eighth notes), D3 triplets and so on. | |||
; The pitches of each note (in cycles per second) follow a simlar progression. | |||
; If C3 plays a 200Hz tone, C#3 plays 400Hz, D 600Hz and so on. | |||
; The 17th note (E4) does not play a note but instead engages a syncopation effect. | |||
; I have been unable to find a clear technical specification of how this was implemented but have nonetheless made my 'best guess'. | |||
<Cabbage> | |||
form caption("...") size(159, 180), pluginID("basl") | |||
label bounds( 5, 3, 22, 22), text("R"), fontcolour(red) | |||
label bounds( 20, 5, 22, 22), text("H"), fontcolour(yellow) | |||
label bounds( 35, 2, 22, 22), text("Y"), fontcolour(orchid) | |||
label bounds( 50, 4, 22, 22), text("T"), fontcolour(LightGreen) | |||
label bounds( 65, 2, 22, 22), text("H"), fontcolour(OrangeRed) | |||
label bounds( 80, 6, 22, 22), text("M"), fontcolour(orange) | |||
label bounds( 99, 1, 22, 22), text("I"), fontcolour(SkyBlue) | |||
label bounds(110, 4, 22, 22), text("C"), fontcolour(Tomato) | |||
label bounds(125, 1, 22, 22), text("O"), fontcolour(LightGreen) | |||
label bounds(140, 3, 22, 22), text("N"), fontcolour(violet) | |||
label bounds( 81, 24, 100, 8), text("Iain McCurdy [2013]"), FontColour("white") | |||
rslider bounds( 3, 45, 55, 55), channel("base"), textBox(1), range(0, 127,36, 1,1),fontcolour(138, 54, 15),colour(orange), trackercolour(orange) | |||
label bounds( 19, 34, 30, 10), text("BASE"), fontcolour(white) | |||
rslider bounds( 52, 45, 55, 55), channel("rate"), textBox(1), range(0.1, 5.00, 0.5, 0.5, 0.01),fontcolour(138, 54, 15),colour(orange), trackercolour(orange) | |||
label bounds( 68, 34, 30, 10), text("RATE"), fontcolour(white) | |||
rslider bounds(102, 45, 55, 54), channel("level"), textBox(1), range(0, 1.00, 0.5, 0.5, 0.01),fontcolour(138, 54, 15),colour(orange), trackercolour(orange) | |||
label bounds(115, 34, 30, 10), text("LEVEL"), fontcolour(white) | |||
checkbox bounds( 0, 101, 9, 10), channel("k1") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 9, 101, 10, 10), channel("k2") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 19, 101, 9, 10), channel("k3") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 28, 101, 10, 10), channel("k4") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 38, 101, 10, 10), channel("k5") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 48, 101, 8, 10), channel("k6") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 56, 101, 10, 10), channel("k7") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 66, 101, 8, 10), channel("k8") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 74, 101, 10, 10), channel("k9") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 84, 101, 9, 10), channel("k10") value(0) shape(square) colour(yellow) | |||
checkbox bounds( 93, 101, 10, 10), channel("k11") value(0) shape(square) colour(yellow) | |||
checkbox bounds(103, 101, 9, 10), channel("k12") value(0) shape(square) colour(yellow) | |||
checkbox bounds(112, 101, 9, 10), channel("k13") value(0) shape(square) colour(yellow) | |||
checkbox bounds(121, 101, 10, 10), channel("k14") value(0) shape(square) colour(yellow) | |||
checkbox bounds(131, 101, 9, 10), channel("k15") value(0) shape(square) colour(yellow) | |||
checkbox bounds(140, 101, 10, 10), channel("k16") value(0) shape(square) colour(yellow) | |||
checkbox bounds(150, 101, 10, 10), channel("k17") value(0) shape(square) colour(red) | |||
keyboard bounds(-13, 110, 450, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
massign 0,1 | |||
; Author: Iain McCurdy (2013) | |||
giAmpScl ftgen 0,0,-20000,-16, 1,100,0,1, 20000-100,-100,0.2 | |||
opcode SwitchPort, k, kkk | |||
kin,kUpPort,kDnPort xin | |||
kold init 0 | |||
kporttime = (kin<kold?kDnPort:kUpPort) | |||
kout portk kin, kporttime | |||
kold = kout | |||
xout kout | |||
endop | |||
instr 1 ; Listen for midi note changes. Turn lights on or off. Start the rhymicon of at least 1 note is held. | |||
inum notnum ; read in midi note number | |||
#define LightToggle(N) # ; define a macro to reduce code repetition | |||
if inum=(59+$N) then ; if note number played on the keyboard corresponds to 'this' toggle light... (note that first note will be C3 (59 + 1) | |||
ik$N chnget "k$N" ; read current value for 'this' toggle light (at i-time) | |||
chnset 1-ik$N,"k$N" ; write the inverse to it (i.e. toggle it) | |||
endif# | |||
$LightToggle(1) ; expand macro for all 16 layers | |||
$LightToggle(2) | |||
$LightToggle(3) | |||
$LightToggle(4) | |||
$LightToggle(5) | |||
$LightToggle(6) | |||
$LightToggle(7) | |||
$LightToggle(8) | |||
$LightToggle(9) | |||
$LightToggle(10) | |||
$LightToggle(11) | |||
$LightToggle(12) | |||
$LightToggle(13) | |||
$LightToggle(14) | |||
$LightToggle(15) | |||
$LightToggle(16) | |||
$LightToggle(17) | |||
kk1 chnget "k1" | |||
kk2 chnget "k2" | |||
kk3 chnget "k3" | |||
kk4 chnget "k4" | |||
kk5 chnget "k5" | |||
kk6 chnget "k6" | |||
kk7 chnget "k7" | |||
kk8 chnget "k8" | |||
kk9 chnget "k9" | |||
kk10 chnget "k10" | |||
kk11 chnget "k11" | |||
kk12 chnget "k12" | |||
kk13 chnget "k13" | |||
kk14 chnget "k14" | |||
kk15 chnget "k15" | |||
kk16 chnget "k16" | |||
ksum = kk1 + kk2 + kk3 + kk4 + kk5 + kk6 + kk7 + kk8 + kk9 + kk10 + kk11 + kk12 + kk13 + kk14 + kk15 + kk16 | |||
if ksum>0 then | |||
schedkwhen 1,0,1,2,0,-1 | |||
else | |||
turnoff2 2,0,1 | |||
endif | |||
endin | |||
instr 2 | |||
kporttime linseg 0,0.001,0.05 | |||
kbase chnget "base" ; base pitch as a note number | |||
krate chnget "rate" ; rate of pulsation of fundemental | |||
krate portk krate, kporttime | |||
klevel chnget "level" ; output amplitude level | |||
ksync chnget "k17" ; syncopation mode | |||
kBaseFrq = cpsmidinn(kbase) | |||
kBaseFrq portk kBaseFrq,kporttime | |||
iamp = 0.6 | |||
amix = 0 | |||
#define LAYER(N)# ; use a macro to reduce code repetition | |||
kk$N chnget "k$N" | |||
kk$N SwitchPort kk$N,kporttime*0.01,kporttime*0.5 | |||
ktrig metro krate * $N | |||
kn = $N ; layer number as a variable | |||
if ksync=1&&kn>1 then ; if syncopation is on and this isn't the first layer (syncopation irrelevant for first layer) | |||
ktrig vdelayk ktrig, (1/(krate*$N))/$N , 1/0.1 ; add a syncopation delay for the metronome trigger for this layer | |||
endif | |||
kenv loopseg $N/60, ktrig, 0, 0,0.025, 1,0.84/krate, 0,60, 0 ; retriggering envelope | |||
aenv interp kenv*kk$N ; interpolate to a-rate (for better smoothness) | |||
kcps = kBaseFrq*$N ; pitch for this layer (in cycles per second) | |||
kscl table kcps,giAmpScl ; amp scaling value (to quieten higher sounds) | |||
kamp = iamp*kscl ; apply on/off switch for this layer to its amplitude | |||
asig vco2 kamp,kcps,2,0.1 ; generate a tone (pulse wave) | |||
kcf limit cpsoct(octcps(kcps*3)*kenv),1,10000 ; filter envelope | |||
asig clfilt asig,kcf,0,2 ; butterworth lowpass filter the sound | |||
asig = asig*aenv ; apply amplitude envelope | |||
amix = amix + asig# ; add to 'mix' signal with the other layers | |||
$LAYER(1) ; expand macro multiple times. Once for each layer | |||
$LAYER(2) | |||
$LAYER(3) | |||
$LAYER(4) | |||
$LAYER(5) | |||
$LAYER(6) | |||
$LAYER(7) | |||
$LAYER(8) | |||
$LAYER(9) | |||
$LAYER(10) | |||
$LAYER(11) | |||
$LAYER(12) | |||
$LAYER(13) | |||
$LAYER(14) | |||
$LAYER(15) | |||
$LAYER(16) | |||
xtratim 0.5 | |||
outs amix*klevel, amix*klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] ;read widgets | |||
;i 2 0 [3600*24*7] ;read widgets | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,379 @@ | |||
<Cabbage> | |||
form caption("Jean Claude Risset collection") size(552, 330), colour("black"),pluginID("jea1") | |||
rslider bounds(15, 10, 100, 100) channel("spread"), range(0,1,.5), caption("Spread"), colour("tomato"), midictrl(1, 1) | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-24,12,-12), caption("Coarse"), colour("tomato") | |||
rslider bounds(225, 10, 100, 100) channel("detune"), range(-2,2,0), caption("Detune"), colour("tomato") | |||
rslider bounds(330, 10, 100, 100) channel("vibamp"), range(0,20,0), caption("Vib Amp"), colour("tomato") | |||
rslider bounds(435, 10, 100, 100) channel("vibrate"), range(0,20,0), caption("Vib rate"), colour("tomato") | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
;RissClar RissDrum RissFlute RissHarmon RissNoise RissOctave RissRing | |||
combobox bounds(280,120, 160, 20), channel("select"), value(1), text("clar","snare", "flute","harmon","noise","octave","ring") | |||
rslider bounds(280,150, 60, 60), text("Rev level"), colour("tomato"), channel("level"), range(0,1,.8) | |||
rslider bounds(350, 150, 60, 60), text("Rev size"), colour("tomato"), channel("size"), range(.1,.99,.7) | |||
checkbox bounds(420,150, 160, 30),channel("onoff"), text("Reverb On/Off"), value(0) | |||
keyboard pos(1, 240), size(550, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 -m0d | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 16 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
ga1 init 0 | |||
ga2 init 0 | |||
;Risset opcodes | |||
;************************************************** | |||
opcode RissClar,a,kk | |||
gisine1 ftgen 0 ,0 ,512, 7, -1, 200, -.5, 112, .5 ,200, 1 | |||
gisine3 ftgen 0 , 0, 512, 9, 1, 1, 0 | |||
kveloc,knote xin | |||
kgate linenr kveloc,0,.2,.01 | |||
a1 linen 255,.085,.75,100 | |||
a1 poscil a1,knote,gisine3 | |||
a1 table a1+256,gisine1 | |||
xout a1*kgate | |||
endop | |||
;************************************************** | |||
opcode RissDrum,a,kk | |||
gitemp1 ftgen 0 , 0 ,512, 9 ,1, 1, 0 | |||
gitemp2 ftgen 0 , 0, 512, 5 ,4096 ,512, 1 | |||
gitemp3 ftgen 0 , 0, 512, 9 ,10 ,1 ,0, 16, 1.5, 0 ,22, 2 ,0, 23 ,1.5, 0 | |||
gitemp4 ftgen 0 , 0, 512, 9, 1, 1, 0 | |||
gitemp5 ftgen 0 , 0, 512, 5, 256, 512, 1 | |||
kveloc,knote xin | |||
kgate linenr kveloc/2, 0, .2, .01 | |||
i1 = 6000*.3 | |||
i2 = 500*.1 | |||
i3 = 1 | |||
i4 = 6000*.8 | |||
i5 = 500 | |||
a1 randi 6000,4000 | |||
a1 poscil a1,i3,gitemp2 | |||
a1 poscil a1,3000,gitemp1 | |||
a2 poscil i1,i3,gitemp2 | |||
a2 poscil a2,knote*.01,gitemp3 | |||
a3 poscil i4,i3,gitemp5 | |||
a3 poscil a3,knote,gitemp4 | |||
aout = (a1+a2+a3)*.0001 | |||
xout aout*kgate | |||
endop | |||
;************************************************** | |||
opcode RissGliss,a,ik | |||
gitemp1 ftgen 0 ,0, 8192, 10, 1 | |||
iamp,kfreq xin | |||
irise = .5 | |||
kenv1 expseg .01, irise, iamp*1200,1000-irise,1 | |||
k1 randi kfreq*.05, 1, .2/(1000) | |||
k2 randi kfreq*.25, .1, .3/(1000) | |||
a1 poscil kenv1, kfreq+k1+k2, gitemp1 | |||
kenv11 expseg .01, irise, iamp*.83*1200,1000-irise,1 | |||
k11 randi kfreq*.05*1.154, 1, .2/(1000) | |||
k12 randi kfreq*.25*1.154, .1, .3/(1000) | |||
a11 poscil kenv11, kfreq*1.154+k11+k12, gitemp1 | |||
kenv21 expseg .01, irise, iamp*.33*1200,1000-irise,1 | |||
k21 randi kfreq*.051*.417, 1, .2/(1000) | |||
k22 randi kfreq*.25*1.417, .1, .3/(1000) | |||
a21 poscil kenv21, kfreq*1.417+k21+k22, gitemp1 | |||
kenv31 expseg .01, irise, iamp*.67*1200,1000-irise,1 | |||
k31 randi kfreq*.05*1.604, 1, .2/(1000) | |||
k32 randi kfreq*.25*1.604, .1, .3/(1000) | |||
a31 poscil kenv31, kfreq*1.604+k31+k32, gitemp1 | |||
kenv41 expseg .01, irise, iamp*1200,1000-irise,1 | |||
k41 randi kfreq*.05*2.521, 1, .2/(1000) | |||
k42 randi kfreq*.25*2.521, .1, .3/(1000) | |||
a41 poscil kenv41, kfreq*2.521+k41+k42, gitemp1 | |||
kenv51 expseg .01, irise, iamp*.33*1200,1000-irise,1 | |||
k51 randi kfreq*.05*2.792, 1, .2/(1000) | |||
k52 randi kfreq*.25*2.792, .1, .3/(1000) | |||
a51 poscil kenv51, kfreq*2.792+k51+k52, gitemp1 | |||
kenv61 expseg .01, irise, iamp*.33*1200,1000-irise,1 | |||
k61 randi kfreq*.05*3.383, 1, .2/(1000) | |||
k62 randi kfreq*.25*3.383, .1, .3/(1000) | |||
a61 poscil kenv61, kfreq*3.383+k61+k62,gitemp1 | |||
a1=(a1+a11+a21+a31+a41+a51+a61)*.01 | |||
;kenv71 expseg .01, irise, 1, 100*.5, 1, 100*.5-irise, 1 | |||
;kdeclick linsegr 0,.1,1,.3,.5,0.001,.01 | |||
kdeclick linsegr 0.01, 0.01, 1, 0.33*1, 0 | |||
xout ((a1)*kdeclick)*.02 ; write output | |||
endop | |||
;************************************************** | |||
opcode RissFlute,a,kk | |||
gitemp1 ftgen 0 ,0, 512, 9 ,1 ,.26,0 | |||
gitemp2 ftgen 0 , 0, 512, 10, 1, .4, .2, .1, .1, .05 | |||
kamp,kfreq xin | |||
k1 randi kamp*.01,5 | |||
k1 = k1 + kamp | |||
k2 poscil k1,1/.24,gitemp1 | |||
k2 = k2 + .74 | |||
a1 poscil k2,kfreq,gitemp2 | |||
kdeclick linsegr 0.1, 0.01, 1, 0.33*1, 0 | |||
xout a1*kdeclick | |||
endop | |||
;************************************************** | |||
opcode RissHarmon,a,kk | |||
gisine ftgen 0 , 0, 1024, 10, 1 ,0, 0 ,0 , .7, .7, .7, .7 ,.7, .7 | |||
kveloc,knote xin | |||
kgate linenr kveloc,1,2,.01 | |||
i1 = .03 | |||
i2 = 2*.03 | |||
i3 = 3*.03 | |||
i4 = 4*.03 | |||
ampenv linenr 9,.01,1,.01 | |||
a1 poscil ampenv,knote,gisine | |||
a2 poscil ampenv,knote+i1,gisine | |||
a3 poscil ampenv,knote+i2,gisine | |||
a4 poscil ampenv,knote+i3,gisine | |||
a5 poscil ampenv,knote+i4,gisine | |||
a6 poscil ampenv,knote-i1,gisine | |||
a7 poscil ampenv,knote-i2,gisine | |||
a8 poscil ampenv,knote-i3,gisine | |||
a9 poscil ampenv,knote-i4,gisine | |||
aout = ((a1+a2+a3+a4+a5+a6+a7+a8+a9)*kgate)*.05 | |||
xout aout | |||
endop | |||
;************************************************** | |||
opcode RissNoise,a,ik | |||
gitemp1 ftgen 0 ,0, 8192, 10, 1 | |||
gitemp2 ftgen 0 ,0, 8192, 7, -1, 8192, 1 | |||
gitemp3 ftgen 0 ,0, 8192, 7, 1, 4096, 1, 0, -1, 4096, -1 | |||
gitemp4 ftgen 0 ,0, 8192, 21, 1 | |||
iveloc,knote xin | |||
kenv linsegr 0,.01,iveloc, 1, iveloc,2,iveloc*.2,.25, 0 | |||
aosc poscil kenv, 440, gitemp4 | |||
kenv expon 2, 1, .01 | |||
aosc2 butterbp aosc, knote, knote * kenv | |||
aosc2 butterbp aosc2, knote, knote * kenv | |||
aosc balance aosc2, aosc | |||
aosc = aosc * .7 | |||
xout aosc | |||
endop | |||
;************************************************** | |||
opcode RissOctave,a,kk | |||
gitemp2 ftgen 0 ,0, 128, 8, 0, .5, 0, 63.5, 1, 63.5, 0, .5 ,0 | |||
gisine ftgen 0 ,0, 4096,10,1 | |||
kamp,kfreq xin | |||
krate = .1 | |||
iphsoff = (65/5)*.01 | |||
ka1 = kamp | |||
iph1 = 0 | |||
kamp1 poscil ka1,krate,gitemp2,iph1 | |||
kfreq1 = kfreq | |||
asig1 poscil kamp1,kfreq1,gisine | |||
ka2 = kamp | |||
iph2 = iph1+iphsoff | |||
kamp2 poscil ka2,krate,gitemp2,iph2 | |||
kfreq2 = kfreq*2 | |||
asig2 poscil kamp2,kfreq2,gisine | |||
ka3 = kamp | |||
iph3 = iph2+iphsoff | |||
kamp3 poscil ka3,krate,gitemp2,iph3 | |||
kfreq3 = kfreq*3 | |||
asig3 poscil kamp3,kfreq3,gisine | |||
ka4 = kamp | |||
iph4 = iph3+iphsoff | |||
kamp4 poscil ka4,krate,gitemp2,iph4 | |||
kfreq4 = kfreq*4 | |||
asig4 poscil kamp4,kfreq4,gisine | |||
ka5 = kamp | |||
iph5 = iph4+iphsoff | |||
kamp5 poscil ka5,krate,gitemp2,iph5 | |||
kfreq5 = kfreq*5 | |||
asig5 poscil kamp5,kfreq5,gisine | |||
add = asig1+asig2+asig3+asig4+asig5 | |||
;kenv linseg 0,p3/2,1,p3/2,0 | |||
aout = add | |||
kdeclick linsegr 0.01, 0.01, 1, 0.33*1, 0 | |||
xout (aout*.5)*kdeclick | |||
endop | |||
;************************************************** | |||
opcode RissRing,a,kk | |||
gitemp2 ftgen 0 ,0, 512, 7, 0, 43, 1, 171, 1, 84, -1, 171, -1, 43, 0 | |||
gitemp3 ftgen 0 ,0, 512, 9, 1, 1, 0 | |||
kveloc,knote xin | |||
kgate linenr kveloc/2, 0, .2, .01 | |||
a1 expseg .2,2.3,1,1-.01,.001 | |||
a1 poscil a1,knote,gitemp3 | |||
a2 poscil 10000,1500,gitemp2 | |||
aout = (a1*a2)*.001 | |||
xout aout*kgate | |||
endop | |||
;************************************************** | |||
instr 1 | |||
;kselect init 1 | |||
;channel | |||
;kmodfreq chnget "mod" | |||
ksemi1 chnget "semi" | |||
kdetune chnget "detune" | |||
kspread chnget "spread" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "vibamp" | |||
klforate chnget "vibrate" | |||
kselect chnget "select" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
;lfo | |||
klfo lfo klfoamp,klforate,2 | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi1)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+kdetune+int(ksemi1)) | |||
if kselect = 1 then | |||
ariss1 RissClar iamp,kfreq1+klfo | |||
ariss2 RissClar iamp,kfreq2+klfo | |||
elseif kselect = 2 then | |||
ariss1 RissDrum iamp,kfreq1+klfo | |||
ariss2 RissDrum iamp,kfreq2+klfo | |||
elseif kselect = 3 then | |||
ariss1 RissFlute iamp,kfreq1+klfo | |||
ariss2 RissFlute iamp,kfreq2+klfo | |||
elseif kselect = 4 then | |||
ariss1 RissHarmon iamp,kfreq1+klfo | |||
ariss2 RissHarmon iamp,kfreq2+klfo | |||
elseif kselect = 5 then | |||
ariss1 RissNoise iamp,kfreq1+klfo | |||
ariss2 RissNoise iamp,kfreq2+klfo | |||
elseif kselect = 6 then | |||
ariss1 RissOctave iamp,kfreq1+klfo | |||
ariss2 RissOctave iamp,kfreq2+klfo | |||
elseif kselect = 7 then | |||
ariss1 RissRing iamp,kfreq1+klfo | |||
ariss2 RissRing iamp,kfreq2+klfo | |||
endif | |||
ktrig changed kselect | |||
if ktrig = 1 then | |||
reinit play | |||
endif | |||
play: | |||
;master | |||
aL clip ariss1,0,0dbfs | |||
aR clip ariss2,0,0dbfs | |||
aoutL = ((aL * kspread) + (aR * (1 - kspread))) *.5 | |||
aoutR = ((aL * (1-kspread)) + (aR * kspread)) *.5 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs (aoutL*kadsr),(aoutR*kadsr) | |||
vincr ga1,aoutL*kadsr | |||
vincr ga2,aoutR*kadsr | |||
endin | |||
instr 10 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc ga1,ga2,ksize,16000,sr,0 | |||
asum1 dcblock2 al | |||
asum2 dcblock2 ar | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1*klevel,asum2*klevel | |||
clear ga1,ga2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
;f0 3600 | |||
i1 0 36000 | |||
i10 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,339 @@ | |||
RubbedResonators.csd | |||
This example introduces a method of 'exciting' mode filters that creates an imitation of a resonant object being bowed or rubbed. The excitation signal consists of a stack of sine wave oscillators that match the number and frequencies of the mode filters being used. This arrangement can cause the mode filters to resonate with great intensity so the amplitudes of the sine wave oscillators should be kept low to prevent overloading. Additionally the frequency of each sine wave oscillator is individually modulated using a random 'jitter' function created using 'gaussi' (interpolating gaussian noise generator). This technique results is a shifting spectral response from the filters. Adjusting the rate and amplitude of this jitter function can imitate a variety of bowing and rubbing techniques. Increasing 'Jit.Dep.' while 'Jit.Rate' is kept low gives the impression of the resonator being rubbed with greater pressure. If both 'Jit.Dep.' and 'Jit.Rate' are high the impression is of the resonator begin brushed. | |||
If 'Q' is low then more of the character of the impulse sound (the sine wave oscillators) will be apparent (and therefore the jitter modulation will be more apparent). If 'Q' is higher then the character of the mode filters will dominate and modulation of the impulse sound frequencies will be less apparent. A key aspect of this instrument is that once the impulse sound is removed ('Impulse Amp.' is brought to minimum) the sound produced is solely the residual resonance of the mode filters, therefore any modulation within the sine wave oscillators becomes irrelevant. | |||
For brightness (damping) control to work properly modal ratios in their function table will need to be in ascending order. | |||
Chorus effect is disabled when 'Mix' is zero | |||
Number of partials in the chosen algorithm is printed to the GUI for the user's information. Algorithms with high numbers of partials will demand more CPU and lower polyphony will be possible. | |||
<Cabbage> | |||
form caption("Rubbed Resonators"), size(440, 320), pluginID("RubR") | |||
image pos(0, 0), size(440, 290), colour("Sienna"), shape("rounded"), outline("brown"), line(4) | |||
;IMPULSE | |||
groupbox bounds(10, 10, 260, 90), text("Impulse"), fontcolour("white"){ | |||
rslider bounds( 10, 35,60,60), text("Amp."), colour("Chocolate"), channel("ImpDB"), range(-70, 0, 0) | |||
rslider bounds( 60, 35,60,60), text("HPF"), colour("Chocolate"), channel("HPF"), range(20, 20000, 20, 0.5) | |||
rslider bounds(110, 35,60,60), text("LPF"), colour("Chocolate"), channel("LPF"), range(20, 20000, 20000, 0.5) | |||
rslider bounds(160, 35,60,60), text("Jit. Dep."), channel("JitDep"), colour("Chocolate"), range(0, 5, 0.4,0.5) | |||
rslider bounds(210, 35,60,60), text("Jit. Rate"), channel("JitRte"), colour("Chocolate"), range(0.01,100, 3,0.5) | |||
} | |||
;RESONATORS | |||
groupbox bounds(270, 10,160,180), text("Resonators"), fontcolour("white"){ | |||
label bounds(320, 40,120, 12), text("Instrument"), colour("white") | |||
combobox bounds(280, 55,140, 25), channel("sound"), value(4), text("Single", "Dahina", "Banyan", "Xylophone", "Tibetan Bowl 180mm", "Spinel Sphere", "Pot Lid", "Red Cedar Wood Plate", "Tubular Bell", "Redwood Wood Plate", "Douglas Fir Wood Plate", "Uniform Wooden Bar", "Uniform Aluminium Bar", "Vibraphone 1", "Vibraphone 2", "Chalandi Plates", "Tibetan Bowl 152mm", "Tibetan Bowl 140mm", "Wine Glass", "Small Handbell", "Albert Clock Bell", "Wood Block","Harmonic 10","Harmonic 20","Harmonic 30","Harmonic Odd 10","Harmonic Odd 20") | |||
rslider bounds(315, 85, 70, 30), text("N.Partials"), TextBox(1), channel("npartials"), range(1, 10000, 1, 1, 1) | |||
rslider bounds(270,125, 60, 60), text("Q"), colour("orange"), channel("Q"), range(50, 10000, 2000, 0.5) | |||
rslider bounds(320,125, 60, 60), text("Bright"), colour("orange"), channel("bright"), range(-4, 4, 0) | |||
rslider bounds(370,125, 60, 60), text("Gain"), colour("orange"), channel("gain"), range(0, 8, 1) | |||
} | |||
;POLYPHONY | |||
groupbox bounds( 10,100,100, 90), text("Polyphony"), fontcolour("white"){ | |||
button bounds( 20,125, 80, 20), text("poly","mono"), channel("monopoly"), value(0), fontcolour("lime") | |||
hslider bounds( 15,143, 90, 38), colour("chocolate"), channel("GlissTime"), range(0.005, 0.3, 0.1, 0.25, 0.001) | |||
label bounds( 32,174, 90, 12), text("Gliss Time") | |||
} | |||
;CHORUS | |||
groupbox bounds(110,100,160, 90), text("Chorus"), fontcolour("white"){ | |||
rslider bounds(110,125, 60, 60), text("Mix"), channel("ChoMix"), range(0, 1, 0.5), colour("yellow") | |||
rslider bounds(160,125, 60, 60), text("Depth"), channel("ChoDep"), range(0, 0.1, 0.01,0.5, 0.001), colour("yellow") | |||
rslider bounds(210,125, 60, 60), text("Rate"), channel("ChoRte"), range(0, 20, 0.96, 0.5), colour("yellow") | |||
} | |||
keyboard bounds(10, 195, 420, 85) | |||
image bounds(5, 295, 240, 22), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.15, .9, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 0,2 ;MIDI DATA DIRECTED TO INSTRUMENT 2 | |||
;Author: Iain McCurdy (2012) | |||
;FUNCTION TABLES STORING MODAL FREQUENCY RATIOS------------------------------------------------------------------------------------------------------------------------------------------------ | |||
;single | |||
girtos1 ftgen 0,0,2, -2, 1,1 | |||
;dahina | |||
girtos2 ftgen 0,0,-6,-2, 1, 2.89, 4.95, 6.99, 8.01, 9.02 | |||
;banyan | |||
girtos3 ftgen 0,0,-6,-2, 1, 2.0, 3.01, 4.01, 4.69, 5.63 | |||
;xylophone | |||
girtos4 ftgen 0,0,-6,-2, 1, 3.932, 9.538, 16.688, 24.566, 31.147 | |||
;tibetan bowl (180mm) | |||
girtos5 ftgen 0,0,-7,-2, 1, 2.77828, 5.18099, 8.16289, 11.66063, 15.63801, 19.99 | |||
;spinel sphere with diameter of 3.6675mm | |||
girtos6 ftgen 0,0,-24,-2, 1, 1.026513174725, 1.4224916858532, 1.4478690202098, 1.4661959580455, 1.499452545408, 1.7891839345101, 1.8768994627782, 1.9645945254541, 1.9786543873113, 2.0334612432847, 2.1452852391916, 2.1561524686621, 2.2533435661294, 2.2905090816065, 2.3331798413917, 2.4567715528268, 2.4925556408289, 2.5661806088514, 2.6055768738808, 2.6692760296751, 2.7140956766436, 2.7543617293425, 2.7710411870043 | |||
;pot lid | |||
girtos7 ftgen 0,0,-6,-2, 1, 3.2, 6.23, 6.27, 9.92, 14.15 | |||
;red cedar wood plate | |||
girtos8 ftgen 0,0,-4,-2, 1, 1.47, 2.09, 2.56 | |||
;tubular bell | |||
girtos9 ftgen 0,0,-10,-2, 272/437, 538/437, 874/437, 1281/437, 1755/437, 2264/437, 2813/437, 3389/437, 4822/437, 5255/437 | |||
;redwood wood plate | |||
girtos10 ftgen 0,0,-4,-2, 1, 1.47, 2.11, 2.57 | |||
;douglas fir wood plate | |||
girtos11 ftgen 0,0,-4,-2, 1, 1.42, 2.11, 2.47 | |||
;uniform wooden bar | |||
girtos12 ftgen 0,0,-6,-2, 1, 2.572, 4.644, 6.984, 9.723, 12 | |||
;uniform aluminum bar | |||
girtos13 ftgen 0,0,-6,-2, 1, 2.756, 5.423, 8.988, 13.448, 18.680 | |||
;vibraphone 1 | |||
girtos14 ftgen 0,0,-6,-2, 1, 3.984, 10.668, 17.979, 23.679, 33.642 | |||
;vibraphone 2 | |||
girtos15 ftgen 0,0,-6,-2, 1, 3.997, 9.469, 15.566, 20.863, 29.440 | |||
;Chalandi plates | |||
girtos16 ftgen 0,0,-5,-2, 1, 1.72581, 5.80645, 7.41935, 13.91935 | |||
;tibetan bowl (152 mm) | |||
girtos17 ftgen 0,0,-7,-2, 1, 2.66242, 4.83757, 7.51592, 10.64012, 14.21019, 18.14027 | |||
;tibetan bowl (140 mm) | |||
girtos18 ftgen 0,0,-5,-2, 1, 2.76515, 5.12121, 7.80681, 10.78409 | |||
;wine glass | |||
girtos19 ftgen 0,0,-5,-2, 1, 2.32, 4.25, 6.63, 9.38 | |||
;small handbell | |||
girtos20 ftgen 0,0,-22,-2, 1, 1.0019054878049, 1.7936737804878, 1.8009908536585, 2.5201981707317, 2.5224085365854, 2.9907012195122, 2.9940548780488, 3.7855182926829, 3.8061737804878, 4.5689024390244, 4.5754573170732, 5.0296493902439, 5.0455030487805, 6.0759908536585, 5.9094512195122, 6.4124237804878, 6.4430640243902, 7.0826219512195, 7.0923780487805, 7.3188262195122, 7.5551829268293 | |||
;albert clock bell belfast | |||
;girtos21 ftgen 0,0,-22,-2, 2.043260,1.482916,1.000000,3.328848,4.761811,1.477056,0.612007,2.661295,1.002793,4.023776,0.254139,2.043916,4.032463,2.659438,4.775560,5.500494,3.331014,0.809697,2.391301, 0.254098,1.901476,2.366563 ;,0.614968,2.046543,1.814887,3.130744,2.484426,0.558874,0.801697,0.070870,3.617036,2.782656 | |||
girtos21 ftgen 0,0,-22,-2, 0.254098,0.254139,0.612007,0.809697,1.000000,1.002793,1.477056,1.482916,1.901476,2.043260,2.043916,3.331014,2.366563,2.391301,2.659438,2.661295,3.328848,4.023776,4.032463,4.761811,4.775560,5.500494 | |||
;wood block | |||
girtos22 ftgen 0,0,4,-2, 915/915,1540/915,1863/915,3112/915 | |||
;harmonic 10 | |||
girtos23 ftgen 0,0,-10,-2, 1,2,3,4,5,6,7,8,9,10 | |||
;harmonic 20 | |||
girtos24 ftgen 0,0,-20,-2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 | |||
;harmonic 30 | |||
girtos25 ftgen 0,0,-30,-2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 | |||
;harmonic odd 10 | |||
girtos26 ftgen 0,0,-10,-2, 1,3,5,7,9,11,13,15,17,19 | |||
;harmonic odd 20 | |||
girtos27 ftgen 0,0,-20,-2, 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39 | |||
seed 0 ;random number generators seeded from the system clock | |||
gasend init 0 ;initialise the global audio send variable | |||
gisine ftgen 0,0,4096,10,1 ;a sine wave | |||
;table that stores indicators for each active note. 1=active 0=inactive index_location=note_number | |||
giNoteActive ftgen 0,0,128,2,0 | |||
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gkbright init 0 | |||
gasend init 0 | |||
;--UDOS-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
opcode SineVoice,a,kkkiiii | |||
kfreq,kjitdep,kjitrte,icount,invoices,irtos,isfn xin | |||
amix = 0 ;initialise audio mix variable (mixture of all sine wave oscillators) | |||
kjit gaussi kjitdep, 1, kjitrte ;jitter function (semitone deviation) | |||
irto table icount-1,irtos ;read the frequency ratio for this oscillator from the appropriate ratios table | |||
a1 oscili 1,semitone(kjit)*kfreq*irto,isfn ;create the oscillator | |||
if icount<invoices then ;if not all required oscillators have been created yet... | |||
amix SineVoice kfreq,kjitdep,kjitrte,icount+1,invoices,irtos,isfn ;call the udo again, with the incremented counter | |||
endif | |||
xout amix + a1 ;send mix of all oscillators back the the udo output | |||
endop | |||
opcode ModeVoice,a,akkkiii ;mode udo (k-rate base frequency) - used for non-midi mode | |||
ain,kfreq,kq,kdamp,icount,inmodes,irtos xin ;name input variables | |||
amix = 0 ;initialise audio mix variable (mixture of all mode filters) | |||
asig = 0 ;initialise audio for the mode filter in this iteration of the UDO. Only needed if only 1 mode is present. | |||
irto table icount-1,irtos ;read frequency ratio for current mode according to iteration counter | |||
kThisFreq = kfreq * irto ;derive modal frequency from product of ratio and base frequency | |||
if sr/kThisFreq>=$M_PI then | |||
asig mode ain, kThisFreq, kq ;create mode signal | |||
if kdamp>0 then | |||
kamp = ((inmodes-icount+1)^(-kdamp))*(kdamp+1) | |||
else | |||
kamp = icount^kdamp | |||
endif | |||
aamp interp kamp | |||
asig = asig*aamp | |||
if icount < inmodes then ;if all the modes in this current instrument have not yet been created... | |||
amix ModeVoice ain, kfreq,kq,kdamp,icount+1, inmodes,irtos ;...call modemodule udo again with incremented counter | |||
endif ;end of conditional branching | |||
endif | |||
xout amix+asig ;send all audio back to caller instrument | |||
endop ;end of udo | |||
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
instr 1 ;read in widgets (always on) | |||
gkQ chnget "Q" ;read in widgets | |||
kImpDB chnget "ImpDB" | |||
gkHPF chnget "HPF" | |||
gkLPF chnget "LPF" | |||
gkJitDep chnget "JitDep" | |||
gkJitRte chnget "JitRte" | |||
gkbright chnget "bright" | |||
gkgain chnget "gain" | |||
gkmonopoly chnget "monopoly" | |||
gkGlissTime chnget "GlissTime" | |||
gksound chnget "sound" | |||
gkChoMix chnget "ChoMix" | |||
gkChoRte chnget "ChoRte" | |||
gkChoDep chnget "ChoDep" | |||
gkImpAmp = ampdbfs(kImpDB) ;convert from dB value to amp value | |||
gkbright port gkbright,0.02 ;smooth changes using portamento | |||
gkgain port gkgain,0.02 ; | |||
ktrig changed gksound ;if sound combobox changes... | |||
if ktrig==1 then | |||
event "i",5,0,0.001 ;...call instrument 5 to update 'N.Partials' number box | |||
endif | |||
endin | |||
instr 2 ;MIDI TRIGGERED INSTRUMENT | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
ibase cpsmidi ;read in midi note number as a cps value | |||
gkbase = ibase | |||
ivel ampmidi 1 ;read in midi note velocity as a value within the range 0 to 1 | |||
gkvel init ivel | |||
inum notnum ;read in midi note number as an integer (used for create a table of active notes flags) | |||
krelease release ;note release flag (0 = note held, 1 = note released) | |||
tablew 1-krelease,inum,giNoteActive ;write note release flag to table at the location corresponding to note number | |||
iactive active p1+1 | |||
if iactive==0||i(gkmonopoly)==0 then ;if polyphonic mode or if this is the first in a series of notes in monophonic mode... | |||
event_i "i",p1+1,0,3600,ibase,inum ;call instrument 3 with the appropriate p-fields | |||
endif | |||
endin | |||
instr 3 ;impulse and modal resonators instrument | |||
ktrig changed gksound | |||
if ktrig==1 then | |||
reinit RESTART_INSTRUMENT | |||
endif | |||
RESTART_INSTRUMENT: | |||
isound init i(gksound) | |||
if gkmonopoly==1 then | |||
/*monophonic*/ | |||
kporttime linseg 0,0.001,1 | |||
kbase portk gkbase,kporttime*gkGlissTime | |||
kactive active p1-1 | |||
kactive limit kactive,0,1 | |||
else | |||
/*polyphponic*/ | |||
kbase init p4 ;base frequency read from p4 | |||
kactive table p5,giNoteActive ;check whether the midi key corresponding to this note is being held or has been released (1 = held, 0 = released). this value will be used to control whether the impulse scound should be active or not. | |||
endif | |||
inum = p5 ;note number | |||
icount = 1 ;counter to count iterations for recursive udos for sine oscillators and mode filters (starts at zero) | |||
irtos = girtos1 + isound - 1 ;derive actual function table number for ratios according to 'sound' chosen | |||
invoices = ftlen(irtos) ;derive the number of voices needed for the 'sound' chosen | |||
kactivePort port kactive,0.05 ;smooth note active on/off switching | |||
ktrig changed gkNoteTrig ;if a new note is started... | |||
if ktrig==1 then | |||
reinit RESTART_ENVELOPE ;...reinitialise from the given label | |||
endif | |||
RESTART_ENVELOPE: ;if a new note is trigger reinitialisation from here occurs to start a new impulse buid-up envelope based on new velocity value | |||
ivel init i(gkvel) | |||
kenv linseg 0,(1-ivel)+0.01,ivel ;create an amplitude envelope for the impulse sound. impulse sound will be velocity sensitive and the attack time of this envelope will be proportionate to the note velocity also. | |||
rireturn | |||
ktrig changed gksound ; to fix bug where sound would not update in mono mode | |||
if ktrig==1 then | |||
reinit RESTART_INSTRUMENT2 | |||
endif | |||
RESTART_INSTRUMENT2: | |||
aSineMix SineVoice kbase,gkJitDep,gkJitRte,icount,invoices,irtos,gisine ;call sine oscillator udo (it will be recursively recalled within the udo the appropriate number of times according to invoices) | |||
aSineMix = aSineMix*0.002*kactivePort*kenv*gkImpAmp ;scale the mixture of sines audio signal | |||
aSineMix buthp aSineMix,gkHPF | |||
aSineMix butlp aSineMix,gkLPF | |||
amodes ModeVoice aSineMix,kbase,gkQ,gkbright,icount,invoices,irtos ;call sine oscillator udo (it will be recursively recalled within the udo the appropriate number of times according to invoices) | |||
amodes = (amodes*gkgain*0.2)/invoices ;scale the amplitude of the sound according to the number of modes in the chosen algorithm | |||
krms rms amodes ;track the amplitude of the sound as an rms value | |||
ithreshold = 0.0001 | |||
if krms<ithreshold&&kactive=0 then ;if sound has died away and key is inactive... | |||
turnoff ;turn instrument off | |||
endif | |||
xtratim 0.1 ;this is needed to prevent initialisation crashes, I'm not sure why | |||
outs amodes,amodes ;send mode filters output mixture to output and rescale according to the number of modes used | |||
gasend = gasend+amodes*gkChoMix | |||
gkNoteTrig = 0 ;reset new-note trigger (in case it was '1') | |||
endin | |||
instr 4 ;Chorus effect | |||
if gkChoMix==0 goto SKIP_CHORUS | |||
kporttime linseg 0,0.001,1 | |||
kporttime = kporttime/gkChoRte | |||
kdlt1 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt1 portk kdlt1,kporttime | |||
adlt1 interp kdlt1 | |||
acho1 vdelay gasend,adlt1*1000,1*1000 | |||
kdlt2 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt2 portk kdlt2,kporttime | |||
adlt2 interp kdlt2 | |||
acho2 vdelay gasend,adlt2*1000,1*1000 | |||
kpan1 randomi 0,1,gkChoRte,1 | |||
kpan2 randomi 0,1,gkChoRte,1 | |||
a1L,a1R pan2 acho1,kpan1 | |||
a2L,a2R pan2 acho2,kpan2 | |||
achoL = a1L+a2L | |||
achoR = a1R+a2R | |||
outs achoL, achoR | |||
clear gasend | |||
SKIP_CHORUS: | |||
endin | |||
instr 5 ;update 'Number of Partials' number box | |||
invoices = ftlen(girtos1+i(gksound)-1) ;derive the number of voices needed for the 'sound' chosen | |||
knvoices init invoices ;create krate version of invoices | |||
chnset knvoices,"npartials" ;send value to number box | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
i 4 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,128 @@ | |||
<Cabbage> | |||
form caption("Scantable synthesizer") size(552, 340), colour("black"),pluginID("sca1") | |||
rslider bounds(15, 10, 100, 100) channel("init"), range(50,59,50), caption("Initial"), colour("white"), midictrl(1, 1) | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-24,12,-12), caption("Coarse"), colour("white") | |||
rslider bounds(225, 10, 100, 100) channel("detune"), range(-2,2,0), caption("detune"), colour("white") | |||
rslider bounds(330, 10, 100, 100) channel("cutoff"), range(60,22000,4500), caption("Lowpass"), colour("white") | |||
rslider bounds(435, 10, 100, 100) channel("spread"), range(0, 1, .5), caption("Stereo image"), colour("white") | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(270, 120, 130, 100), text("LFO"), plant("lfo"){ | |||
rslider bounds(.04, .3, .6, .6), text("Lfo Amp"), colour("white"), channel("lfoamp"), range(0,20, 0) | |||
rslider bounds(.5, .3, .6, .6), text("Lfo Rate"), colour("white"), channel("lforate"), range(.1,20, 0) | |||
} | |||
groupbox bounds(410, 120, 130, 100), text("LFO filter"), plant("lfofilter"){ | |||
rslider bounds(0.04, .3, .6, .6), text("Lfo Amp"), colour("white"), channel("lfoamp2"), range(0,2000, 0) | |||
rslider bounds(0.5, .3, .6, .6), text("Lfo Rate"), colour("white"), channel("lforate2"), range(0,20, 0) | |||
} | |||
keyboard pos(15, 240), size(520, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 -m0d | |||
</CsOptions> | |||
<CsInstruments> | |||
; Initialize the global variables. | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;scantable | |||
gitemp ftgen 2000, 0, 128, -7, 1, 128, 1 | |||
gitemp ftgen 3000, 0, 128, -7, 0, 64, 100, 64, 0 | |||
gitemp ftgen 4000, 0, 128, -7, 1, 128, 1 | |||
gitemp ftgen 5000, 0, 128, -7, 0, 128, 0 | |||
gitemp ftgen 29, 0, 4096, 10, 1 | |||
;************************************************ | |||
instr 1 | |||
;channel | |||
kcondfn init 50 | |||
ksemi1 chnget "semi" | |||
kdetune chnget "detune" | |||
kcut chnget "cutoff" | |||
kreso chnget "reso" | |||
kspread chnget "spread" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
klfoamp2 chnget "lfoamp2" ;lfo x filter | |||
klforate2 chnget "lforate2" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
;lfo | |||
klfo lfo klfoamp,klforate,2 | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi1))+klfo ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+kdetune+int(ksemi1))+klfo | |||
kcondfn chnget "init" | |||
ktrig changed kcondfn | |||
if ktrig = 1 then | |||
reinit play | |||
endif | |||
play: | |||
asig1 scantable iamp,kfreq1,i(kcondfn),2000,3000,4000,5000 | |||
asig2 scantable iamp,kfreq2,i(kcondfn),2000,3000,4000,5000 | |||
;filter | |||
klfofilter lfo klfoamp2,klforate2,3 | |||
afilt1 clfilt asig1,kcut+klfofilter,0,8 | |||
afilt2 clfilt asig2,kcut+klfofilter,0,8 | |||
;master | |||
aL clip afilt1,0,0dbfs | |||
aR clip afilt2,0,0dbfs | |||
aoutL = ((aL * kspread) + (aR * (1 - kspread))) *.5 | |||
aoutR = ((aL * (1-kspread)) + (aR * kspread)) *.5 | |||
kadsr madsr iatt,idec,isus,irel | |||
outs aoutL*kadsr,aoutR*kadsr | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
;Initial Condition/State | |||
f50 0 128 7 0 30 0 2 1 2 0 30 0 30 0 2 -1 2 0 30 0 | |||
f51 0 128 7 0 30 0 2 1 2 0 30 0 | |||
f52 0 128 10 1 0 1 0 1 | |||
f53 0 128 10 1 .9 .8 .7 .6 .5 .4 .3 .2 | |||
f54 0 128 10 1 0 2 1 0 0 1 0 2 1 | |||
f55 0 128 10 1 1 0 1 2 1 0 1 2 1 0 | |||
f56 0 128 7 0 128 0 | |||
f57 0 128 7 0 64 1 64 0 | |||
f58 0 128 10 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 | |||
f59 0 128 7 0 32 1 32 0 32 1 32 0 | |||
;f0 3600 | |||
i1 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,189 @@ | |||
StringFeedback.csd - an emulation of a feeding back vibrating string | |||
------------------ | |||
Amplifier | |||
--------- | |||
Feedback - signal that is fed back into the vibrating string model. If a particular note doesn't sound, boost this! | |||
Drive - overdrive level | |||
Sustain - sustain of the string vibrations. Inverse of damping. | |||
Bright - brightness of the signal (lowpass filtering). Uses keyboard tracking, value stated is a ratio of the fundemental of the note played. | |||
Cut - remove lower partials of the signal (highpass filtering). Uses keyboard tracking, value stated is a ratio of the fundemental of the note played. | |||
Movement | |||
--------- | |||
Movement is a rough imitation of the effect of moving the vibrating string with respect to the location of the speaker. This is simply a modulating very short delay. | |||
Speed - speed of modulation (created using a random spline) | |||
Pick-up | |||
------- | |||
Settings pertaining to the location of the pick-up along the length of the vibrating string | |||
Position - manual positioning of the pick-up. 0 or 1 = either end. 0.5 = half-way along the string's length. | |||
Auto - if this is active, manual positioning is ignored and the pick-up moves around randomly | |||
Speed - speed of random movement of the pick-up | |||
Reverb | |||
------ | |||
Distance - Distance of the listener from the speaker (basically a dry/wet signal crossfader) | |||
Room - Room size | |||
Output | |||
------ | |||
Release - ampllitude envelope release for the feedback signal | |||
Level - Level control (pre reverb so reverberation will always die away natuarally) | |||
<Cabbage> | |||
form caption("String Feedback"), size(775, 205), pluginID("fbck"), colour("0,0,0") | |||
groupbox bounds( 0, 0, 290, 90), text("Amplifier"), fontcolour(195,126, 0){ | |||
rslider bounds( 5, 25, 60, 60), text("Feedback"), colour(195,126, 0), FontColour(195,126, 0), channel("fback"), range(0, 8, 0.8,0.5) | |||
rslider bounds( 60, 25, 60, 60), text("Drive"), colour(195,126, 0), FontColour(195,126, 0), channel("drive"), range(0, 1, 0.25) | |||
rslider bounds(115, 25, 60, 60), text("Sustain"), colour(195,126, 0), FontColour(195,126, 0), channel("sustain"), range(0.0001, 1, 1, 0.5, 0.0001) | |||
rslider bounds(170, 25, 60, 60), text("Bright"), colour(195,126, 0), FontColour(195,126, 0), channel("LPF"), range(1, 32, 16) | |||
rslider bounds(225, 25, 60, 60), text("Cut"), colour(195,126, 0), FontColour(195,126, 0), channel("HPF"), range(0, 32, 1) | |||
} | |||
groupbox bounds(290, 0, 70, 90), text("Movement"), fontcolour(195,126, 0){ | |||
rslider bounds(295, 25, 60, 60), text("Speed"), colour(195,126, 0), FontColour(195,126, 0), channel("speed"), range(0.001,1, 0.1,0.5,0.0001) | |||
} | |||
groupbox bounds(360, 0,170, 90), text("Pick-up"), fontcolour(195,126, 0){ | |||
rslider bounds(365, 25, 60, 60), text("Position"),colour(195,126, 0), FontColour(195,126, 0), channel("PickPos"), range(0, 1, 0.1) | |||
checkbox bounds(425, 25, 70, 15), text("Auto") channel("auto"), FontColour(195,126, 0), colour("orange") | |||
rslider bounds(465, 25, 60, 60), text("Speed"),colour(195,126, 0), FontColour(195,126, 0), channel("PickPosSpeed"), range(0.001, 8, 1, 0.5,0.001) | |||
} | |||
groupbox bounds(530, 0,120, 90), text("Reverb"), fontcolour(195,126, 0){ | |||
rslider bounds(535, 25, 60, 60), text("Distance"),colour(195,126, 0), FontColour(195,126, 0), channel("distance"), range(0, 1, 0.1) | |||
rslider bounds(590, 25, 60, 60), text("Room"), colour(195,126, 0), FontColour(195,126, 0), channel("room"), range(0.5,0.99, 0.85) | |||
} | |||
groupbox bounds(650, 0,125, 90), text("Output"), fontcolour(195,126, 0){ | |||
rslider bounds(655, 25, 60, 60), text("Release"), colour(195,126, 0), FontColour(195,126, 0), channel("rel"), range(0.01, 8, 0.01, 0.5) | |||
rslider bounds(710, 25, 60, 60), text("Level"), colour(195,126, 0), FontColour(195,126, 0), channel("level"), range(0, 1, 0.5) | |||
} | |||
keyboard bounds(0, 95,775,80) | |||
image bounds(5, 180, 420, 20), colour(75, 85, 90, 50), plant("credit"){ | |||
label bounds(0.03, 0.1, .6, .7), text("Author: Iain McCurdy |2013|"), colour("white"), FontColour(195,126, 0) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 4 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
massign 0,1 ; assign all midi to channel 1 | |||
seed 0 ; random number generators seeded from system clock | |||
gasendL,gasendR,garvbL,garvbR init 0 ; initialise global variables to zero | |||
giscal ftgen 0,0,1024,-16,1,1024,4,8 ; amplitude scaling used in 'overdrive' mechanism | |||
gifbscl ftgen 0,0,128,-27, 0,1, 36,1, 86,3, 127,3 ; Feedback scaling function table. Higher notes need higher levels of feedback. | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 ; used to smooth GUI control movement | |||
iplk = 0.1 ; pluck position (largely irrelevant) | |||
iamp = 1 ; amplitude | |||
icps cpsmidi ; midi note played (in cycles-per-second) | |||
inum notnum ; midi note number | |||
ifbscl table inum, gifbscl ; Feedback scaling. Higher notes need higher levels of feedback. This scaling function is defined earlier in a function table. | |||
ksustain chnget "sustain" ; string sustain (inverse of damping). Higher values = more sustain | |||
krefl = 1-ksustain ; string damping (derived from sustain value). Higher values = more damping. Range 0 - 1 | |||
adel init 0 ; feedback signal from the modulating delay (initial value for the first pass) | |||
; pick-up position | |||
kauto chnget "auto" ; 'auto' checkbox button. | |||
if(kauto==0) then ; if 'auto' button is off pick-up position is set manually | |||
kpick chnget "PickPos" ; 'Position' GUI knob | |||
kpick portk kpick,kporttime ; smooth changes made to the value to prevent glitches | |||
else ; other 'Auto' pick-up position modulation mode is used | |||
kPickposSpeed chnget "PickPosSpeed" ; pick-up position modulation 'Speed' GUI knob | |||
kpick rspline 0.01,0.99,kPickposSpeed,kPickposSpeed*2 ; pick-up position created using a random spline method | |||
kpick limit kpick,0.01,0.99 ; contain possible values. (N.b. rspline will generate values beyond its given limits.) | |||
endif | |||
irel chnget "rel" ; feedback signal release time | |||
aInRel linsegr 1,irel,0 ; feedback signal release envelope | |||
adust dust 0.1,1 ; generate a sparse crackle signal. This is used to help keep the string vibrating. | |||
kfback chnget "fback" ; 'Feedback' value from GUI knob | |||
asig repluck iplk, iamp, icps, kpick, krefl,( (adel*kfback*ifbscl) + ( (garvbL+garvbR) * 0.1) + adust) * aInRel ; vibrating string model | |||
; overdrive | |||
kDrive chnget "drive" ; overdrive value from GUI knob | |||
ktrig changed kDrive ; if 'Drive' knob is moved generate a trigger. Reinitialisation will be needed to refresh the 'clip' opcode. | |||
if(ktrig==1) then ; if 'Drive' knob has been moved... | |||
reinit UPDATE ; reinitialise from 'UPDATE' label | |||
endif | |||
UPDATE: ; a label. Reinitialise from here. | |||
iClipLev = 1-(i(kDrive)*0.9) ; clip level remapped from 0 to 1 remapped to 1 to 0.1. | |||
asig clip asig,0,iClipLev ; clip the audio signal | |||
igain table i(kDrive),giscal,1 ; get amplitude compensation value according to the current 'Drive' setting | |||
asig = asig*igain ; compensate for gain loss | |||
rireturn | |||
; filtering | |||
kLPF chnget "LPF" ; Lowpass filter ('Bright') GUI knob. This is a ratio of the fundemental frequency so the final cutoff frequency will depend on the note played (keyboard tracking). | |||
kLPF portk kLPF,kporttime ; smooth changes | |||
kLPF limit icps*kLPF,20,sr/2 ; derive cycles-per-second filter cutoff value (and protect against out of range values which would cause the filter to 'blow up') | |||
asig butlp asig, kLPF ; lowpass filter the signal | |||
kHPF chnget "HPF" ; same as the above but with a highpass filter. (Highpass filter called 'Cut' in GUI.) | |||
kHPF portk kHPF,kporttime | |||
kHPF limit icps*kHPF,1,sr/2 | |||
asig buthp asig, kHPF | |||
; amplitude enveloping | |||
aAmpEnv expsegr 0.001,.1,1,15,0.001 ; amplitude envelope | |||
asig = asig*aAmpEnv ; apply amplitude envelope | |||
; delay (this controls how different harmonics are accentuated in the feedback process) | |||
kspeed chnget "speed" ; delay time modulation speed | |||
iDelMin = 0.0001 ; delay minimum... | |||
iDelMax = 0.01 ; ...and maximum. These could maybe be brought out as GUI controls | |||
kdeltim rspline iDelMin,iDelMax,kspeed,kspeed*2 ; random spline for delay time (k-rate) | |||
kdeltim limit kdeltim,iDelMin,iDelMax ; limit value (n.b. rspline will generate values beyond its given minimum and maximum) | |||
adeltim interp kdeltim ; interpolate to create a-rate verion for delay time (a-rate will give smoother results) | |||
adel vdelay3 asig, adeltim*1000, 1000 ; create modulating delay signal | |||
; stereo spatialisation - this gives the dry (unreverberated) signal some stereo width | |||
kdelL rspline 0.001, 0.01, 0.05, 0.1 ; left channel spatialising delay | |||
kdelR rspline 0.001, 0.01, 0.05, 0.1 ; right channel spatialising delay | |||
kdelL limit kdelL,0.001, 0.01 ; limit left channel delay times (n.b. rspline will generate values beyond its given minimum and maximum) | |||
kdelR limit kdelR,0.001, 0.01 ; limit right channel delay times (n.b. rspline will generate values beyond its given minimum and maximum) | |||
adelL interp kdelL ; create a-rate of left channel delay time version using interpolation | |||
adelR interp kdelR ; create a-rate of right channel delay time version using interpolation | |||
aL vdelay3 adel,adelL*1000,10 ; delay signal left channel | |||
aR vdelay3 adel,adelR*1000,10 ; delay signal right channel | |||
; create reverb send signals (stereo) | |||
klevel chnget "level" ; level control (pre reverb input therefore allows reverb to die away naturally) | |||
gasendL = gasendL+(aL*klevel) ; left channel reverb send signal accumulated with audio from this note | |||
gasendR = gasendR+(aR*klevel) ; right channel reverb send signal accumulated with audio from this note | |||
endin | |||
instr Reverb | |||
kroom chnget "room" ; room size | |||
garvbL, garvbR reverbsc gasendL, gasendR, kroom, 7000 ; apply reverb | |||
iDryLev = 0.1 ; dry signal level | |||
kRvbLev chnget "distance" ; reverb signal level | |||
outs (garvbL*kRvbLev*0.2)+(gasendL*iDryLev*(1-kRvbLev)), (garvbR*kRvbLev*0.2)+(gasendR*iDryLev*(1-kRvbLev)) | |||
clear gasendL,gasendR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i "Reverb" 0 3600 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,250 @@ | |||
<Cabbage> | |||
form caption("Vectorial Synth"), size(760, 320), pluginID("vec1") | |||
xypad bounds(5, 0, 250, 205), channel("chanx", "chany"), text("Vectorial mixing"), rangex(0, 1, .5), rangey(0, 1, .5) | |||
groupbox bounds(260, 0, 240, 100), text("ADSR"), plant("adsr"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(260, 105, 240, 100), text("Tune"), plant("tune"){ | |||
rslider bounds(.0, .3, .6, .6), text("Detune1"), colour("dodgerblue"), channel("det1"), range(-24,12,0) | |||
rslider bounds(.25, .3, .6, .6), text("Detune2"), colour("dodgerblue"), channel("det2"), range(-24,12,-5) | |||
rslider bounds(.5, .3, .6, .6), text("Detune3"), colour("dodgerblue"), channel("det3"), range(-24,12,0) | |||
rslider bounds(.75, .3, .6, .6), text("Detune4"), colour("dodgerblue"), channel("det4"), range(-24,12,-12) | |||
} | |||
groupbox bounds(505,0, 240, 100), text("LFO/Stereo chorus"), plant("mod"){ | |||
rslider bounds(.0, .3, .6, .6), text("Lfo amp"), colour("dodgerblue"), channel("lfoamp"), range(0,50, 0) | |||
rslider bounds(.25, .3, .6, .6), text("Lfo rate"), colour("dodgerblue"), channel("lforate"), range(0,20, 0) | |||
rslider bounds(.5, .3, .6, .6), text("depth"), colour("dodgerblue"), channel("chdepth"), range(0,10,0) | |||
rslider bounds(.75, .3, .6, .6), text("rate"), colour("dodgerblue"), channel("chrate"), range(0,10,0) | |||
} | |||
groupbox bounds(505,105, 240, 100), text("Reverb"), plant("rev"){ | |||
rslider bounds(0, .3, .6, .6), text("level"), colour("dodgerblue"), channel("level"), range(0,1,0) | |||
rslider bounds(0.25, .3, .6, .6), text("size"), colour("dodgerblue"), channel("size"), range(.1,.99,.5) | |||
;rslider bounds(115, 30, 60, 60), text("depth"), colour("dodgerblue"), channel("chdepth"), range(0,10,0) | |||
;rslider bounds(165, 30, 60, 60), text("rate"), colour("dodgerblue"), channel("chrate"), range(0,10,0) | |||
checkbox bounds(.55, .40, .60, .30),channel("onoff"), text("On/Off"), value(0), colour("blue") | |||
} | |||
keyboard bounds(5, 220, 750, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -m0d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;turnon don't work! | |||
;turnon 10 ;chorus | |||
;turnon 12 ;reverb | |||
ga1 init 0 | |||
ga2 init 0 | |||
garev1 init 0 | |||
garev2 init 0 | |||
gifn ftgen 1,0,16384,10,1 | |||
gifn ftgen 2,0,16384,10,1,0,1 | |||
gifn ftgen 3,0,16384,10,1,0,0,1 | |||
gifn ftgen 4,0,16384,10,1,0,0,0,1 | |||
gifn ftgen 5,0,16384,10,1,0,0,0,0,1 | |||
gifn ftgen 6,0,16384,10,1,0,1,0,0,0,1 | |||
gifn ftgen 7,0,16384,10,1,0,0,1,0,0,0,1 | |||
gifn ftgen 8,0,16384,10,1,0,0,0,1,0,0,0,1 | |||
gifn ftgen 9,0,16384,10,1,0,0,0,0,1,0,0,1,1 | |||
gifn ftgen 10,0,16384,10,1,0,0,0,0,0,1,1,0,0,1 | |||
gifn ftgen 11,0,16384,10,1,0,0,0,0,1,1,0,0,0,0,1 | |||
gifn ftgen 12,0,16384,10,1,0,0,0,1,1,0,0,0,0,0,0,1 | |||
gifn ftgen 13,0,16384,10,1,0,0,0,1,1,0,0,0,0,0,0,0,1 | |||
gifn ftgen 14,0,16384,10,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1 | |||
gifn ftgen 15,0,16384,10,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1 | |||
gifn ftgen 16,0,16384,10,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1 | |||
gibell ftgen 17,0,16384,9,1,1,0,1.02,.28,0,.98,.14,0,4,.22,0,7,.39,0 ;bell | |||
gichord ftgen 18,0,16384,9, 1,1,0,1.25,.08,0,1.49,.28,0,2,.52,0,2.52,.74,0 ;chord | |||
gitemp ftgen 19 , 0 , 16384, 10 , 1 , 1 , 0 , 5 , 0 , 3, 0 , 1 | |||
gitemp ftgen 20, 0, 16384, 10, 1, 1, 0, 0, 1 ,0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 | |||
gitemp ftgen 21, 0 ,16384 ,10, 1, 1, 0, 1, 0, 1, 0 ,1, 0, 1, 0, 1, 0, 1, 0, 1 | |||
gitemp ftgen 22 , 0 ,16384, 10 ,1 ,0, .2 ,.2 ,.03, .12, .22, .11 ,.022, .0101, .0167 | |||
;******************************************* | |||
opcode StChorus,aa,aakkkk | |||
asigr,asigl,kdepth,kdepthl,krate,kratel xin ;legge i parametri in entrata | |||
;ar,al StChorus asigr,asigl,kdepth,kdepthl,krate,kratel | |||
k1ch randi kdepth/2,krate,1 | |||
ar1 vdelay asigr,kdepth/2+k1ch,10 | |||
k2ch randi kdepth/2,krate*0.9,.2 | |||
ar2 vdelay asigr,kdepth/2+k2ch,10 | |||
k3ch randi kdepth/2,krate*1.1,.2 | |||
ar3 vdelay asigr,kdepth/2+k3ch,10 | |||
k4ch randi kdepth/2,krate*1.3,.1 | |||
ar4 vdelay asigr,kdepth/2+k4ch,10 | |||
k1chl randi kdepthl/2,kratel,1 | |||
ar1l vdelay asigl,kdepthl/2+k1chl,10 | |||
k2chl randi kdepthl/2,kratel*0.9,.2 | |||
ar2l vdelay asigl,kdepthl/2+k2chl,10 | |||
k3chl randi kdepthl/2,kratel*1.1,.2 | |||
ar3l vdelay asigl,kdepthl/2+k3chl,10 | |||
k4chl randi kdepthl/2,kratel*1.3,.1 | |||
ar4l vdelay asigl,kdepthl/2+k4chl,10 | |||
aL = (ar1+ar2+ar3+ar4)/2 | |||
aR = (ar1l+ar2l+ar3l+ar4l)/2 | |||
xout aL,aR ; write output | |||
endop | |||
;*********************************************** | |||
instr 1 | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
kdet1 chnget "det1" | |||
kdet2 chnget "det2" | |||
kdet3 chnget "det3" | |||
kdet4 chnget "det4" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
kindex chnget "fmamp" | |||
kfmrate chnget "fmrate" | |||
kcutoff chnget "cutoff" | |||
kreso chnget "resonance" | |||
kx chnget "chanx" | |||
ky chnget "chany" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(kdet1)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(kdet2)) | |||
kfreq3 = cpsmidinn(imidinn+kbend+int(kdet3)) | |||
kfreq4 = cpsmidinn(imidinn+kbend+int(kdet4)) | |||
;lfo | |||
klfo poscil klfoamp,klforate,1 | |||
kfreq1 = kfreq1+klfo | |||
kfreq2 = kfreq2+klfo | |||
kfreq3 = kfreq3+klfo | |||
kfreq4 = kfreq4+klfo | |||
ifunc1 = rnd(15) | |||
ifunc2 = rnd(15) | |||
ifunc3 = rnd(15) | |||
ifunc4 = rnd(15) | |||
;4 osc | |||
ain1 poscil iamp,kfreq1,ifunc1+1 | |||
ain2 poscil iamp,kfreq2,ifunc2+1 | |||
ain3 poscil iamp,kfreq3,ifunc3+1 | |||
ain4 poscil iamp,kfreq4,ifunc4+1 | |||
;vectorial mixing | |||
k1 = (1-kx)*(1-ky) | |||
k2 = kx*(1-ky) | |||
k3 = (1-kx)*ky | |||
k4 = kx*ky | |||
k1port portk k1,.01 | |||
k2port portk k2,.01 | |||
k3port portk k3,.01 | |||
k4port portk k4,.01 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
aout = (ain1*k1port + ain2*k2port + ain3*k3port + ain4*k4port)*.3 ;global out | |||
;abulp1 butterlp aout,kcutoff*kadsrfilt | |||
;aring poscil aout,kcutoff,1 | |||
;amaster balance afilt1,aout | |||
aclip clip aout,0,0dbfs | |||
kpan jspline 1,0,4 | |||
al,ar pan2 aclip,kpan | |||
outs (al*kadsr),(ar*kadsr) | |||
vincr ga1,(al*kadsr) | |||
vincr ga2,(ar*kadsr) | |||
vincr garev1,(al*kadsr) | |||
vincr garev2,(ar*kadsr) | |||
endin | |||
;stereo chorus | |||
instr 10 | |||
k1 chnget "chdepth" | |||
k2 chnget "chrate" | |||
kfxdepth portk k1,.01 | |||
kfxrate portk k2,.01 | |||
acho1,acho2 StChorus ga1,ga2,kfxdepth,kfxdepth*.8,kfxrate,kfxrate*.8 | |||
outs acho1,acho2 | |||
clear ga1,ga2 | |||
endin | |||
instr 12 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc garev1,garev2,ksize,16000,sr,0 | |||
adc1 dcblock2 al | |||
adc2 dcblock2 ar | |||
kpan1 randomi 0,1,4 | |||
kpan2 randomi 0,1,8 | |||
aout1,aout2 pan2 adc1,kpan1 | |||
aout3,aout4 pan2 adc2,1-kpan2 | |||
asum1 = (aout1+aout2)*klevel | |||
asum2 = (aout3+aout4)*klevel | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1,asum2 | |||
clear garev1,garev2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
;f0 36000 | |||
i1 0 36000 | |||
i10 0 36000 | |||
i12 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,708 @@ | |||
; WavetableSynth.csd | |||
; Implements wavetable synthesis a spectral morphing based on note played. | |||
; This can be used to maintain a convincing spectral appearance fo an instrument imitation across a range of note. | |||
; As this morphing is done continuously between notes and not just stepwise note to note, | |||
; - use of pitch bend will also cause spectral morphing resulting in more convincing glissandi than are normally implemented in commercial | |||
; - hardware. | |||
; As there are many tables of waveform data in this example, it may take a moment or two to load. | |||
; CONTROLS | |||
; -------- | |||
; | |||
; Tone -- tone control | |||
; Shift -- shifts the note to wavetable relationship resulting in tonal variations | |||
; Jitter -- humanizing of the tone through random amplitude, pitch and tonal | |||
; Noise -- amount of noise in the sound. Used to simulate breath noise. | |||
; EQ -- EQ of the noise quotient | |||
; Drop -- Amount of pitch drop upon note conclusion | |||
<Cabbage> | |||
form caption("Wavetable Synth") size(675, 320), pluginID("wtsy") | |||
image pos(0, 0), size(675, 290), colour("brown"), shape("rounded"), outline("maroon"), line(4) | |||
image bounds(160, 6,240, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;modulation | |||
image bounds(405, 6,140, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;polyphony | |||
image bounds(550, 6,110, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;pitch bend | |||
image bounds( 15,103,110, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;noise attack | |||
image bounds(130,103,155, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;quality | |||
image bounds(290,103,110, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;reverb | |||
image bounds(405,103,260, 88), colour("brown"), shape("rounded"), outline("white"), line(1) ;output | |||
combobox caption("Instrument"), channel("Instr"), bounds(10, 10, 140, 80) value(1), text("Clarinet", "Bass Clarinet", "C.bass Clarinet", "Oboe", "Bassoon", "C.bassoon", "Violin", "Cello", "Piccolo", "Flute", "Alto Flute", "Bass Flute", "Ahh", "Horn P", "Horn F", "B.Trb.Harmon Mute", "B.Trb.Cup Mute", "B.Trb.Open") | |||
label bounds(170, 80, 40, 12), text("Mod.") | |||
label bounds(245, 11,100, 15), text("Modulation") | |||
label bounds(440, 11,100, 15), text("Polyphony") | |||
label bounds(567, 11,100, 15), text("Pitch Bend") | |||
label bounds( 50,107,100, 15), text("Attack") | |||
label bounds(185,107,100, 15), text("Quality") | |||
label bounds(200,175,100, 11), text("EQ") | |||
label bounds(325,107,100, 15), text("Reverb") | |||
label bounds(510,107,100, 15), text("Output") | |||
;MODULATION | |||
vslider bounds(160,-10, 40, 90), channel("moddep"), range(0, 1, 0.4),midCtrl(1, 1) | |||
rslider bounds(190, 32, 60, 60), text("Vib."), channel("vibdep"), range(0, 1, 0.15) | |||
rslider bounds(240, 32, 60, 60), text("Trem."), channel("tremdep"), range(0, 1, 0.4) | |||
rslider bounds(290, 32, 60, 60), text("Tone"), channel("tonedep"), range(0, 4, 2) | |||
rslider bounds(340, 32, 60, 60), text("Rate"), channel("ModRte"), range(0, 16, 4.25, 0.5) | |||
;POLYPHONY | |||
button bounds(415, 40, 70, 25), text("poly","mono"), channel("monopoly"), value(1), fontcolour("lime") | |||
rslider bounds(485, 32, 60, 60), text("Leg.Time"), channel("LegTim"), range(0.001, 2, 0.002, 0.5, 0.001) | |||
;PITCH BEND | |||
rslider bounds(550, 32, 60, 60), text("<"), channel("BendDn"), range(0, 1, 1) | |||
rslider bounds(600, 32, 60, 60), text(">"), channel("BendUp"), range(0, 1, 0) | |||
;NOISE ATTACK | |||
rslider bounds( 15,127, 60, 60), text("Amp."), channel("NAttAmp"), range(0, 4.00, 0.5) | |||
rslider bounds( 65,127, 60, 60), text("Time"), channel("NAttTim"), range(0.001,0.5,0.05,0.5) | |||
;QUALITY | |||
rslider bounds(130,127, 60, 60), text("Noise"), channel("NoiseAmp"), range(0,5,0.01,0.5,0.0001) | |||
vslider bounds(183,110, 30, 70), text(""), channel("EQ_Lo"), range(500,10000,2000,0.5,0.01) | |||
vslider bounds(203,110, 30, 70), text(""), channel("EQ_Hi"), range(20,5000,200,0.5,0.01) | |||
rslider bounds(225,127, 60, 60), text("Drop"), channel("drop"), range(0,0.5,0.05,0.5,0.0001) | |||
;REVERB | |||
rslider bounds(290,127, 60, 60), text("Mix"), channel("RvbMix"), range(0, 1.00, 1) | |||
rslider bounds(340,127, 60, 60), text("Size"), channel("RvbSize"), range(0.3, 1.00, 0.4) | |||
;OUTPUT | |||
rslider bounds(405,127, 60, 60), text("Tone"), channel("bright"), range(0, 1.00, 1) | |||
rslider bounds(455,127, 60, 60), text("Shift"), channel("shift"), range(-36, 36.00, 0,1,0.001) | |||
rslider bounds(505,127, 60, 60), text("Jitter"), channel("jitter"), range(0, 1.00, 0.4) | |||
rslider bounds(555,127, 60, 60), text("Pan"), channel("pan"), range(0, 1.00, 0.5) | |||
rslider bounds(605,127, 60, 60), text("Level"), channel("level"), range(0, 2.00, 1) | |||
keyboard pos(10, 200), size(655, 80) | |||
image bounds(5, 295, 250, 20), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.2, .9, .6), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 16 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
seed 0 | |||
massign 0,2 | |||
gkactive init 0 ; Will contain number of active instances of instr 3 when legato mode is chosen. NB. notes in release stage will not be regarded as active. | |||
;Author: Iain McCurdy (2012) | |||
gisine ftgen 0,0,4096,10,1 ;A SINE WAVE. USED BY THE LFOs. | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
;FOUR GEN10 FUNCTION TABLES WHICH CORRESPOND TO THE SPECTRAL ENVELOPES OF FOUR DIFFERENT NOTES PLAYED ON THE CLARINET | |||
;THE FOUR NOTES CHOSEN COVER THE SOUNDING RANGE OF THE INSTRUMENT | |||
;NOTE THAT ALL FUNCTION TABLES USED BY ftmorph IN THE MORPHING PROCESS, INCLUDING THE ONE INTO WHICH THE MORPHED TABLE IS WRITTEN (SEE INSTR 1), SHOULD BE THE SAME SIZE | |||
;FOUR GEN10 FUNCTION TABLES WHICH CORRESPOND TO THE SPECTRAL ENVELOPES OF FOUR DIFFERENT NOTES PLAYED ON THE CLARINET | |||
;THE FOUR NOTES CHOSEN COVER THE SOUNDING RANGE OF THE INSTRUMENT | |||
;NOTE THAT ALL FUNCTION TABLES USED BY ftmorph IN THE MORPHING PROCESS, INCLUDING THE ONE INTO WHICH THE MORPHED TABLE IS WRITTEN (SEE INSTR 1), SHOULD BE THE SAME SIZE | |||
giclar50 ftgen 0,0,4096,10,0.273597,0.027434,0.737705,0.049480,0.448437,0.272536,0.131175,0.129945,0.283082,0.130714,0.026719,0.037582,0.018953,0.010729,0.067580,0.024573,0.016586,0.049988,0.033294,0.017090,0.008591,0.021128,0.007237,0.016060,0.016060 | |||
giclar62 ftgen 0,0,4096,10,0.753504,0.011446,0.501720,0.055791,0.241768,0.037889,0.027203,0.062793,0.102494,0.030506,0.042453,0.050202,0.031077,0.027208,0.020897,0.022205,0.012154,0.008160,0.004886,0.005076,0.003805,0.001322,0.001149,0.001450,0.001450 | |||
giclar74 ftgen 0,0,4096,10,0.519536,0.062430,0.745521,0.055790,0.103856,0.097554,0.090420,0.077181,0.017130,0.013446,0.005674,0.003296,0.003438,0.003395,0.002506,0.001169,0.002525,0.001237,0.002624,0.001440,0.000880,0.001061,0.002672,0.002090,0.002090 | |||
giclar86 ftgen 0,0,4096,10,0.823209,0.201690,0.171118,0.161374,0.041951,0.004950,0.010889,0.001107,0.001365,0.003340,0.002259,0.001175,0.000442,0.001544,0.001259,0.000549,0.000455,0.000352,0.000345,0.000396,0.000477,0.000848,0.001199,0.001081,0.001081 | |||
giwavemapClar ftgen 0,0,128,-27, 0,0, 50,0, 62,1, 74,2, 86,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfClar ftgen 0,0,4,-2,giclar50,giclar62,giclar74,giclar86 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giBClar35 ftgen 0,0,4096,10,0.384232,0.038085,0.578537,0.029558,0.143002,0.119033,0.397678,0.113380,0.577246,0.158831,0.577514,0.094994,0.440674,0.109136,0.500666,0.132354,0.360370,0.104810,0.231403,0.089565,0.207353,0.099773,0.209066,0.123801,0.158769,0.079383,0.036078,0.019583,0.010310,0.017060,0.029465,0.045821,0.031622,0.038326,0.052222,0.058647,0.083956,0.079748,0.081955,0.097274,0.069934,0.075100,0.049259,0.058121,0.068078,0.065276,0.070165,0.065898,0.072432,0.055423,0.052283,0.036547,0.034082,0.035287,0.044801,0.053917,0.050263,0.036979,0.034264,0.035892,0.035011,0.037199,0.041542,0.043201,0.039923,0.035164,0.035828,0.036193,0.037155,0.035493,0.034546,0.035091,0.029891,0.027394,0.026174,0.023757,0.021365,0.019468,0.016295,0.015301,0.015263,0.014310,0.013239,0.011972,0.011445,0.011727,0.012391,0.013892,0.015395,0.015147,0.015137,0.014816,0.013898,0.012682,0.011462,0.009883,0.008579,0.007797,0.007749 | |||
giBClar41 ftgen 0,0,4096,10,0.525063,0.002869,0.469239,0.024384,0.895713,0.021156,0.199553,0.014871,0.215693,0.036697,0.212856,0.060220,0.224360,0.026202,0.021469,0.019475,0.067282,0.034970,0.025525,0.028958,0.038550,0.041724,0.035988,0.016617,0.026564,0.031021,0.037801,0.030070,0.055636,0.040575,0.029792,0.031356,0.031871,0.058063,0.027829,0.023825,0.015824,0.011714,0.011110,0.015367,0.011850,0.008957,0.011489,0.007029,0.004640,0.004862,0.006536,0.006771,0.006683,0.005231,0.005323,0.006834,0.005342,0.005818,0.004902,0.005468,0.005431,0.006151,0.004672,0.003041,0.002322,0.002274,0.002661,0.003122,0.002931,0.002587,0.002527,0.002499,0.003095,0.003755,0.003651,0.003768,0.003972,0.003962,0.003999,0.003352,0.002866,0.002449,0.002120,0.001972,0.002040,0.002221,0.002063,0.002057,0.002415,0.002849,0.003276,0.003776,0.003994,0.003829,0.003419,0.003328,0.003575,0.003829,0.003703,0.003454,0.003149,0.002825,0.002697,0.002765 | |||
giBClar47 ftgen 0,0,4096,10,0.447815,0.011780,0.911495,0.027076,0.846723,0.050517,0.224579,0.039801,0.048967,0.024162,0.071418,0.087315,0.031778,0.048063,0.058394,0.078770,0.021135,0.041585,0.092206,0.058125,0.063991,0.033673,0.025813,0.045142,0.037450,0.016766,0.014278,0.016668,0.017869,0.025925,0.010244,0.010062,0.010634,0.008986,0.006992,0.005186,0.004618,0.003658,0.002913,0.003004,0.004250,0.003142,0.002387,0.002692,0.003592,0.004496,0.002831,0.001838,0.001680,0.002144,0.002567,0.003185,0.002727,0.002419,0.001998,0.001883,0.002286,0.002626,0.003202,0.003257,0.003056,0.003241,0.002838,0.002521,0.002294,0.002409,0.002746,0.002848,0.003387,0.004173,0.004189,0.004587,0.005402,0.004977,0.004132,0.003842,0.003974,0.003650,0.003605,0.003810,0.003745,0.003770,0.003520,0.003363,0.003391,0.003302,0.003124,0.003422,0.004022,0.004064,0.003584,0.002939,0.002329,0.001970,0.001947,0.002034,0.002069,0.002043,0.001854,0.001658 | |||
giBClar53 ftgen 0,0,4096,10,0.819856,0.006052,0.508263,0.007439,0.271031,0.012967,0.059374,0.017922,0.016997,0.004014,0.027132,0.014921,0.020230,0.012123,0.021066,0.004875,0.016894,0.004428,0.004157,0.007603,0.004211,0.011103,0.005054,0.007329,0.004043,0.002169,0.003183,0.001822,0.001158,0.001758,0.002350,0.001442,0.002218,0.002815,0.001503,0.001764,0.001171,0.001508,0.000934,0.000714,0.000902,0.000884,0.000943,0.000825,0.000579,0.000572,0.000654,0.000752,0.000902,0.000932,0.000868,0.000909,0.000903,0.001065,0.001472,0.001483,0.001803,0.001941,0.002100,0.002756,0.002543,0.001984,0.001589,0.001342,0.001414,0.001219,0.001004,0.000908,0.000887,0.001102,0.001342,0.001312,0.001089,0.000869,0.000733,0.000620,0.000574,0.000518,0.000451,0.000422,0.000446,0.000473,0.000423,0.000354,0.000335,0.000370,0.000410,0.000418,0.000435,0.000434,0.000417,0.000417,0.000388,0.000342,0.000316,0.000303,0.000306,0.000309,0.000292,0.000267 | |||
giBClar59 ftgen 0,0,4096,10,0.866645,0.024133,0.420624,0.171074,0.353043,0.050546,0.198619,0.047824,0.110458,0.081558,0.064116,0.041109,0.026267,0.036570,0.013031,0.023724,0.007023,0.010067,0.004550,0.011618,0.009601,0.005731,0.005607,0.005036,0.002347,0.002907,0.001472,0.001519,0.001304,0.002584,0.001383,0.001362,0.001591,0.002655,0.004442,0.004905,0.003148,0.004830,0.002947,0.002926,0.003063,0.002394,0.002276,0.002019,0.001689,0.002028,0.002368,0.003510,0.004637,0.004228,0.003257,0.002700,0.002231,0.001681,0.001293,0.001062,0.001121,0.000894,0.000797,0.000865,0.000752,0.000724,0.000719,0.000787,0.000896,0.000801,0.000686,0.000551,0.000468,0.000466,0.000515,0.000460,0.000382,0.000358,0.000366,0.000400,0.000405,0.000355,0.000333,0.000349,0.000352,0.000346,0.000335,0.000317,0.000303,0.000297,0.000289,0.000276,0.000290,0.000292,0.000287,0.000307,0.000318,0.000332,0.000353,0.000374,0.000388,0.000398,0.000399,0.000407 | |||
giBClar65 ftgen 0,0,4096,10,0.934141,0.012361,0.023358,0.045609,0.025913,0.017772,0.009955,0.010837,0.007253,0.001002,0.004215,0.001570,0.004226,0.001334,0.000580,0.001740,0.000839,0.001364,0.001337,0.000523,0.000377,0.000535,0.000290,0.000461,0.000486,0.000333,0.000462,0.000685,0.001136,0.000794,0.000625,0.000436,0.000303,0.000270,0.000259,0.000289,0.000208,0.000224,0.000249,0.000271,0.000200,0.000240,0.000298,0.000226,0.000198,0.000188,0.000200,0.000259,0.000198,0.000169,0.000155,0.000144,0.000123,0.000120,0.000118,0.000112,0.000108,0.000105,0.000096,0.000091,0.000090,0.000093,0.000089,0.000093,0.000094,0.000095,0.000101,0.000112,0.000120,0.000126,0.000134,0.000142,0.000149,0.000170,0.000190,0.000212,0.000246,0.000289,0.000286,0.000269,0.000279,0.000310,0.000352,0.000355,0.000341,0.000361,0.000376,0.000373,0.000385,0.000427,0.000475,0.000539,0.000655,0.000838,0.001061,0.001284,0.001429,0.001364,0.001171,0.001020 | |||
giBClar71 ftgen 0,0,4096,10,0.951349,0.052635,0.166289,0.036346,0.080225,0.105328,0.019032,0.014538,0.003453,0.003349,0.001065,0.003529,0.004876,0.003334,0.003537,0.009903,0.004407,0.002506,0.002863,0.005317,0.004116,0.003426,0.001538,0.001829,0.001351,0.001942,0.001728,0.001103,0.000733,0.000413,0.000643,0.000468,0.000336,0.000631,0.000868,0.000470,0.000257,0.000240,0.000210,0.000190,0.000182,0.000170,0.000178,0.000178 | |||
giBClar77 ftgen 0,0,4096,10,0.679870,0.126072,0.031529,0.103885,0.017231,0.001781,0.005132,0.000787,0.003992,0.001819,0.002500,0.002660,0.001298,0.001834,0.001238,0.004273,0.001518,0.000670,0.000588,0.000395,0.000786,0.000400,0.000399,0.000471,0.000235,0.000212,0.000208,0.000169,0.000163,0.000146,0.000134 | |||
giwavemapBClar ftgen 0,0,128,-27, 0,0, 35,0, 41,1, 47,2, 53,3, 59,4, 65,5, 71,6, 77,7, 127,7 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBClar ftgen 0,0,8,-2,giBClar35,giBClar41,giBClar47,giBClar53,giBClar59,giBClar65,giBClar71,giBClar77 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CONTRA-BASS CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giCBClar26 ftgen 0,0,4096,10,0.100160,0.005519,0.631940,0.013046,0.749042,0.308868,0.475605,0.152792,0.074315,0.238927,0.152260,0.251283,0.030787,0.052465,0.032473,0.121972,0.064172,0.090564,0.043994,0.091868,0.039563,0.058622,0.024531,0.023127,0.026665,0.067522,0.081377,0.057914,0.066176,0.036134,0.026135,0.021056,0.038011,0.036534,0.058393,0.040915,0.050051,0.038446,0.034166,0.021341,0.014481,0.015708,0.025527,0.026622,0.033577,0.027355,0.034434,0.022920,0.016354,0.010905,0.011160,0.015075,0.019871,0.017505,0.013189,0.011442,0.008511,0.007974,0.006368,0.005988,0.005976,0.005922,0.006590,0.008199,0.006566,0.005254,0.004955,0.005576,0.005463,0.005101,0.003955,0.003622,0.004027,0.003772,0.003504,0.002848,0.002183,0.002075,0.002143,0.002014,0.001907,0.001850,0.001736,0.001543,0.001318,0.001180,0.001107,0.001066,0.001169,0.001372,0.001533,0.001667,0.001738,0.001655,0.001604,0.001603,0.001571,0.001575,0.001638,0.001696 | |||
giCBClar32 ftgen 0,0,4096,10,0.227476,0.006718,0.707706,0.018101,0.539432,0.018848,0.590242,0.029143,0.512926,0.035712,0.324304,0.035306,0.035964,0.050992,0.096916,0.025035,0.098203,0.072427,0.068155,0.060324,0.042818,0.074538,0.049430,0.100999,0.052956,0.109337,0.053778,0.108791,0.040535,0.041998,0.050107,0.102568,0.075823,0.121836,0.062713,0.047451,0.042146,0.061836,0.063525,0.079775,0.056177,0.039271,0.021422,0.017934,0.022472,0.016758,0.023407,0.025034,0.018765,0.012566,0.009566,0.008232,0.011234,0.015948,0.018924,0.020397,0.016720,0.016224,0.010210,0.006760,0.006525,0.006464,0.006410,0.007832,0.010929,0.013172,0.010412,0.008153,0.005887,0.004927,0.005543,0.006358,0.006415,0.006246,0.004977,0.004037,0.003084,0.002646,0.002504,0.002716,0.003253,0.003484,0.003416,0.003566,0.003392,0.002924,0.002750,0.002979,0.003398,0.003635,0.003855,0.004032,0.004285,0.004278,0.003688,0.003182,0.002942,0.003043,0.003240,0.003317 | |||
giCBClar38 ftgen 0,0,4096,10,0.805943,0.003127,0.607438,0.006915,0.078379,0.025071,0.319458,0.040967,0.418440,0.096874,0.067519,0.066830,0.181701,0.148461,0.024736,0.047734,0.027229,0.065092,0.020252,0.015890,0.047795,0.096969,0.049469,0.024097,0.032227,0.032247,0.057763,0.064995,0.031760,0.023574,0.021449,0.017946,0.015989,0.010329,0.017096,0.025053,0.020021,0.014542,0.009659,0.010282,0.011754,0.016404,0.013970,0.019292,0.012226,0.007260,0.007191,0.010064,0.007246,0.007400,0.007562,0.005179,0.005520,0.005811,0.004710,0.005570,0.007523,0.007671,0.005694,0.004881,0.005241,0.004991,0.005944,0.006659,0.006213,0.004986,0.004006,0.003617,0.003290,0.003479,0.004050,0.003911,0.003373,0.003294,0.003284,0.002858,0.002674,0.003290,0.003986,0.003982,0.003503,0.003424,0.003640,0.003903,0.004267,0.004774,0.005048,0.005020,0.005284,0.005837,0.006116,0.006124,0.006474,0.007329,0.008198,0.008721,0.009014,0.008920,0.008202,0.007419 | |||
giCBClar44 ftgen 0,0,4096,10,0.715187,0.010393,0.137973,0.010188,0.404486,0.073659,0.420943,0.145565,0.080881,0.104506,0.227785,0.021310,0.035316,0.052724,0.023335,0.014334,0.087911,0.036461,0.047658,0.016909,0.047453,0.017513,0.031591,0.010028,0.009677,0.014384,0.012660,0.031094,0.010732,0.009677,0.005632,0.007197,0.005202,0.005881,0.004438,0.005851,0.003283,0.002870,0.001732,0.001824,0.003100,0.002099,0.002084,0.002567,0.003519,0.003856,0.003017,0.003288,0.003518,0.003481,0.002717,0.002212,0.002009,0.002374,0.002508,0.003004,0.002356,0.001681,0.001376,0.001435,0.001604,0.001881,0.001924,0.001783,0.002097,0.002582,0.002971,0.002922,0.002735,0.002884,0.003498,0.003726,0.003454,0.003486,0.003620,0.003356,0.003457,0.003775,0.003730,0.003481,0.003126,0.002660,0.002244,0.001883,0.001625,0.001518,0.001533,0.001594,0.001565,0.001529,0.001485,0.001598,0.001965,0.002295,0.002394,0.002424,0.002401,0.002320,0.002329,0.002436 | |||
giCBClar50 ftgen 0,0,4096,10,0.880714,0.104962,0.497883,0.045337,0.172861,0.109234,0.166844,0.037601,0.179775,0.048578,0.136813,0.079191,0.068937,0.019908,0.087293,0.031265,0.010402,0.048393,0.020759,0.005769,0.015444,0.004339,0.006113,0.010598,0.009591,0.007441,0.002840,0.003349,0.003193,0.003806,0.004954,0.003108,0.003744,0.003254,0.003682,0.002736,0.002830,0.004080,0.005132,0.004023,0.004801,0.004386,0.003962,0.002657,0.003137,0.003478,0.004208,0.004600,0.004272,0.004501,0.004804,0.004328,0.003739,0.003495,0.003378,0.002513,0.002268,0.002182,0.002140,0.001833,0.001900,0.001666,0.001525,0.001441,0.001541,0.001518,0.001571,0.001664,0.001746,0.001600,0.001474,0.001527,0.001644,0.001577,0.001450,0.001382,0.001479,0.001646,0.001713,0.001652,0.001720,0.001859,0.001891,0.001654,0.001420,0.001306,0.001228,0.001173,0.001188,0.001247,0.001299,0.001317,0.001264,0.001186,0.001091,0.000947,0.000797,0.000685,0.000610,0.000547 | |||
giCBClar54 ftgen 0,0,4096,10,0.889990,0.001348,0.087695,0.023926,0.066262,0.023447,0.075142,0.026596,0.020409,0.052699,0.027246,0.016811,0.017828,0.004566,0.005199,0.010830,0.003227,0.005838,0.001883,0.001580,0.004878,0.001870,0.000924,0.001648,0.002681,0.001616,0.003610,0.002587,0.002221,0.002332,0.001110,0.001616,0.002062,0.001241,0.000899,0.001174,0.001196,0.001105,0.001254,0.001253,0.001237,0.001093,0.001281,0.001260,0.001266,0.001255,0.001194,0.000995,0.001213,0.000908,0.000857,0.000902,0.000863,0.001171,0.001146,0.001074,0.000908,0.000908,0.000752,0.000618,0.000456,0.000395,0.000445,0.000503,0.000434,0.000353,0.000347,0.000373,0.000416,0.000392,0.000334,0.000271,0.000275,0.000314,0.000314,0.000317,0.000280,0.000275,0.000289,0.000253,0.000221,0.000203,0.000194,0.000194,0.000208,0.000221,0.000212,0.000185,0.000172,0.000176,0.000173,0.000178,0.000175,0.000159,0.000152,0.000150,0.000135,0.000120,0.000115,0.000119 | |||
giwavemapCBClar ftgen 0,0,128,-27, 0,0, 26,0, 32,1, 38,2, 44,3, 50,4, 54,5, 127,5 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCBClar ftgen 0,0,8,-2,giCBClar26,giCBClar32,giCBClar38,giCBClar44,giCBClar50,giCBClar54,giCBClar54,giCBClar54 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; OBOE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gioboe59 ftgen 0,0,4096,10,0.239013,0.078927,0.241030,0.206347,0.832266,0.054540,0.013821,0.007450,0.022905,0.021737,0.018123,0.013105,0.002361,0.001433,0.003509,0.002589,0.001326,0.000743,0.000990,0.000868,0.000863,0.000994,0.000406,0.000288,0.000288 | |||
gioboe65 ftgen 0,0,4096,10,0.199317,0.508088,0.859044,0.346880,0.121336,0.005269,0.071954,0.035188,0.012195,0.010362,0.001516,0.002397,0.004325,0.002943,0.008168,0.003519,0.002074,0.001366,0.001019,0.000715,0.000788,0.000757,0.001403,0.001108,0.001108 | |||
gioboe73 ftgen 0,0,4096,10,0.297865,0.916220,0.218345,0.030903,0.016039,0.045984,0.003571,0.006255,0.007310,0.003701,0.001306,0.001355,0.000361,0.001108,0.001552,0.000991,0.000588,0.000780,0.000678,0.001103,0.000615,0.000264,0.000310,0.000464,0.000464 | |||
gioboe81 ftgen 0,0,4096,10,0.875554,0.822621,0.094665,0.308960,0.046707,0.031827,0.002702,0.002222,0.009030,0.009257,0.007814,0.000781,0.002099,0.001154,0.002638,0.000756,0.000750,0.001290,0.000476,0.001285,0.000627,0.000379,0.000594,0.000379,0.000379 | |||
gioboe89 ftgen 0,0,4096,10,0.965505,0.344315,0.033044,0.068398,0.013147,0.008580,0.003609,0.001848,0.001060,0.001429,0.001832,0.001218,0.000703,0.000642,0.000646,0.000867,0.000550,0.000567,0.001386,0.001239,0.001416,0.001354,0.001710,0.003111,0.003111 | |||
giwavemapOboe ftgen 0,0,128,-27, 0,0, 59,0, 65,1, 73,2, 81,3, 89,4, 127,4 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfOboe ftgen 0,0,8,-2,gioboe59,gioboe65,gioboe73,gioboe81,gioboe89,gioboe89,gioboe89,gioboe89 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASSOON | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gibassoon34 ftgen 0,0,4096,10,0.213868,0.268493,0.244166,0.230801,0.105833,0.308087,0.556920,0.478956,0.523357,0.900665,0.213470,0.229596,0.031221,0.040117,0.067113,0.060158,0.030778,0.061028,0.143814,0.063668,0.126426,0.055009,0.049138,0.085854,0.113027,0.111464,0.088765,0.037342,0.050990,0.035579,0.040460,0.032219,0.027305,0.034141,0.019655,0.009315,0.008270,0.006748,0.006472,0.007088,0.008133,0.007046,0.007850,0.005791,0.006273,0.006847,0.007249,0.009398,0.010309,0.010418,0.010247,0.010333,0.009562,0.008180,0.009576,0.009469,0.008529,0.008844,0.008053,0.007565,0.008026,0.007284,0.007299,0.007423,0.008280,0.008374,0.008239,0.008512,0.009431,0.010246,0.010350,0.009381,0.008652,0.008150,0.007888,0.007951,0.008166,0.008210,0.007921,0.007548,0.007147,0.006991,0.006978,0.006527,0.005617,0.004781,0.004549,0.004707,0.004803,0.004640,0.004303,0.003866,0.003524,0.003348,0.003108,0.002766,0.002439,0.002278,0.002406,0.002733 | |||
gibassoon38 ftgen 0,0,4096,10,0.242897,0.242266,0.380380,0.667003,0.720921,0.402509,0.422424,0.475496,0.823674,0.135651,0.169435,0.062761,0.017494,0.023826,0.049210,0.074371,0.035978,0.086397,0.160820,0.122072,0.061609,0.020374,0.023031,0.018479,0.013838,0.015511,0.012693,0.005626,0.007015,0.007590,0.008854,0.004833,0.006678,0.008155,0.006694,0.007708,0.007823,0.004336,0.003679,0.003698,0.005616,0.004049,0.003555,0.002815,0.002166,0.001778,0.002195,0.002446,0.003427,0.003600,0.005046,0.005043,0.003980,0.002591,0.002168,0.002644,0.003363,0.004603,0.004571,0.005024,0.004653,0.004659,0.004447,0.004128,0.004325,0.004464,0.004393,0.004144,0.004285,0.004442,0.004203,0.003640,0.003229,0.003115,0.003017,0.002902,0.002799,0.002839,0.003045,0.003262,0.003391,0.003250,0.003008,0.002726,0.002506,0.002370,0.002215,0.002130,0.002058,0.001832,0.001574,0.001339,0.001133,0.001005,0.000924,0.000860,0.000849,0.000896,0.000994,0.001115 | |||
gibassoon43 ftgen 0,0,4096,10,0.101647,0.135289,0.245027,0.142720,0.728360,0.361154,0.030730,0.079698,0.011579,0.074893,0.094091,0.028910,0.084641,0.058767,0.035341,0.016688,0.006781,0.020365,0.020545,0.008172,0.007968,0.017127,0.016825,0.009248,0.003609,0.002361,0.002361,0.001409,0.001208,0.001278,0.001752,0.002711,0.002221,0.001898,0.001255,0.001150,0.001935,0.001759,0.001661,0.001219,0.001111,0.001527,0.001167,0.001290,0.001366,0.001058,0.000935,0.000898,0.000937,0.001254,0.001464,0.001695,0.002012,0.002054,0.001872,0.001370,0.001074,0.000988,0.001009,0.000959,0.000905,0.000957,0.000885,0.000825,0.000811,0.000776,0.000727,0.000696,0.000758,0.000768,0.000667,0.000604,0.000548,0.000525,0.000508,0.000485,0.000445,0.000380,0.000330,0.000307,0.000329,0.000366,0.000367,0.000334,0.000291,0.000259,0.000247,0.000265,0.000309,0.000378,0.000436,0.000425,0.000390,0.000375,0.000353,0.000328,0.000312,0.000292,0.000273,0.000269 | |||
gibassoon50 ftgen 0,0,4096,10,0.147763,0.340255,0.879202,0.404023,0.259274,0.130887,0.095096,0.039056,0.091976,0.009828,0.004879,0.013408,0.016090,0.015931,0.012402,0.003430,0.006421,0.004323,0.002018,0.001465,0.003012,0.001397,0.002446,0.002683,0.002425,0.004828,0.002422,0.002479,0.002086,0.002351,0.002269,0.002034,0.001708,0.001324,0.001927,0.002764,0.003997,0.003514,0.002736,0.002327,0.002054,0.001842,0.001577,0.002009,0.002098,0.001411,0.001019,0.000816,0.000899,0.000893,0.001005,0.001296,0.000987,0.000657,0.000539,0.000400,0.000313,0.000284,0.000331,0.000417,0.000479,0.000633,0.000798,0.000893,0.001067,0.001242,0.001260,0.001282,0.001218,0.001023,0.000887,0.000830,0.000746,0.000637,0.000553,0.000534,0.000537,0.000506,0.000482,0.000477,0.000490,0.000515,0.000532,0.000508,0.000473,0.000416,0.000336,0.000271,0.000229,0.000193,0.000170,0.000169,0.000185,0.000197,0.000205,0.000223,0.000247,0.000255,0.000248,0.000249 | |||
gibassoon56 ftgen 0,0,4096,10,0.258143,0.954570,0.553228,0.188964,0.031203,0.252375,0.179421,0.053961,0.022121,0.016058,0.006372,0.002854,0.002507,0.006348,0.006626,0.008348,0.005125,0.001342,0.001956,0.002664,0.005721,0.003529,0.004933,0.002543,0.003026,0.003332,0.001828,0.003024,0.002223,0.001464,0.001354,0.001310,0.000827,0.000966,0.001111,0.001685,0.001048,0.000806,0.000660,0.000445,0.000368,0.000436,0.000578,0.000518,0.000372,0.000346,0.000342,0.000340,0.000259,0.000272,0.000318,0.000395,0.000481,0.000454,0.000428,0.000391,0.000351,0.000302,0.000261,0.000245,0.000253,0.000249,0.000223,0.000228,0.000244,0.000217,0.000203,0.000222,0.000250,0.000271,0.000235,0.000202,0.000179,0.000160,0.000151,0.000151,0.000144,0.000126,0.000116,0.000123,0.000134,0.000140,0.000142,0.000142,0.000130,0.000117,0.000109,0.000109,0.000110,0.000111,0.000122,0.000129,0.000124,0.000116,0.000115,0.000113,0.000104,0.000092,0.000080,0.000071 | |||
gibassoon62 ftgen 0,0,4096,10,0.802206,0.854305,0.242064,0.037491,0.024258,0.012991,0.003920,0.008373,0.001787,0.001801,0.003935,0.008957,0.009944,0.004249,0.003799,0.003374,0.001734,0.004753,0.008252,0.004132,0.002330,0.001700,0.001925,0.001098,0.001154,0.001943,0.000954,0.000487,0.000432,0.000605,0.000812,0.000806,0.001001,0.001178,0.001065,0.001137,0.000877,0.000630,0.000538,0.000499,0.000605,0.000532,0.000532,0.000387,0.000288,0.000253,0.000313,0.000347,0.000292,0.000225,0.000167,0.000144,0.000121,0.000116,0.000110,0.000110,0.000119,0.000111,0.000106,0.000111,0.000115,0.000114,0.000101,0.000094,0.000100,0.000102,0.000097,0.000088,0.000079,0.000070,0.000064,0.000059,0.000054,0.000053,0.000053 | |||
gibassoon67 ftgen 0,0,4096,10,0.262539,0.973041,0.138354,0.113396,0.058172,0.030635,0.005565,0.001686,0.003483,0.001977,0.003774,0.002477,0.002439,0.001226,0.002781,0.002527,0.001020,0.000611,0.000658,0.000715,0.000728,0.000531,0.000442,0.000238,0.000414,0.000325,0.000560,0.000689,0.000445,0.000306,0.000301,0.000305,0.000296,0.000325,0.000252,0.000218,0.000248,0.000193,0.000174,0.000179,0.000143,0.000140,0.000140,0.000104,0.000096,0.000116,0.000128,0.000137,0.000144,0.000113,0.000112,0.000119,0.000140,0.000116,0.000107,0.000102 | |||
giwavemapBassoon ftgen 0,0,128,-27, 0,0, 34,0, 38,1, 43,2, 50,3, 56,4, 62,5, 67,6, 127,6 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBassoon ftgen 0,0,8,-2,gibassoon34,gibassoon38,gibassoon43,gibassoon50,gibassoon56,gibassoon62,gibassoon67,gibassoon67 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CONTRA-BASSOON | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giCBassoon22 ftgen 0,0,4096,10,0.497216,0.592986,0.588338,0.378063,0.343716,0.540022,0.620921,0.613540,0.848864,0.535558,0.632297,0.584663,0.443376,0.419439,0.291262,0.249631,0.256447,0.182209,0.062888,0.160047,0.156792,0.115884,0.107766,0.130415,0.183253,0.145108,0.156478,0.170472,0.185752,0.181506,0.155042,0.154256,0.167703,0.145571,0.172382,0.169936,0.191248,0.207520,0.161789,0.114105,0.096757,0.068310,0.056357,0.068193,0.048257,0.046235,0.041903,0.032361,0.023090,0.012851,0.008788,0.010598,0.010151,0.010905,0.009426,0.009439,0.012674,0.016976,0.019287,0.017791,0.014995,0.015280,0.014007,0.012293,0.013920,0.015130,0.017138,0.020001,0.026003,0.029085,0.026391,0.021776,0.018388,0.016337,0.014700,0.015521,0.019019,0.022414,0.024168,0.024006,0.023403,0.022377,0.020534,0.018428,0.016165,0.013675,0.011929,0.011056,0.010352,0.010070,0.009561,0.009378,0.008855,0.008393,0.008147,0.008048,0.008099,0.007480,0.006551,0.005481 | |||
giCBassoon26 ftgen 0,0,4096,10,0.076357,0.137793,0.174617,0.207802,0.302523,0.705801,0.162577,0.073808,0.224559,0.050465,0.066110,0.181682,0.062409,0.052317,0.037698,0.029936,0.042341,0.053436,0.135414,0.059248,0.025689,0.033567,0.051201,0.029910,0.028697,0.052991,0.059280,0.029742,0.027742,0.023801,0.013878,0.006197,0.004814,0.005139,0.007873,0.007104,0.009903,0.007952,0.008234,0.005783,0.006682,0.007272,0.006943,0.007674,0.007728,0.006326,0.005179,0.004259,0.004142,0.003705,0.002547,0.001785,0.002073,0.002887,0.004184,0.004075,0.004174,0.005101,0.004993,0.004189,0.003170,0.002599,0.002866,0.003689,0.005272,0.006515,0.007262,0.006420,0.005939,0.005247,0.004710,0.004619,0.004018,0.003371,0.002611,0.001906,0.001540,0.001341,0.001128,0.001025,0.001114,0.001151,0.001224,0.001403,0.001564,0.001709,0.001914,0.002097,0.002148,0.002190,0.002192,0.002124,0.002190,0.002485,0.002819,0.002892,0.002769,0.002559,0.002374,0.002161 | |||
giCBassoon38 ftgen 0,0,4096,10,0.240531,0.304670,0.289169,0.727482,0.578083,0.169149,0.057305,0.193624,0.167977,0.206006,0.182632,0.057408,0.103574,0.044785,0.084239,0.068303,0.030771,0.133375,0.096231,0.037016,0.046566,0.020770,0.020264,0.015211,0.029647,0.018603,0.027940,0.062861,0.033828,0.015594,0.016305,0.025478,0.034356,0.038642,0.028451,0.026747,0.014914,0.016727,0.015524,0.013236,0.014264,0.013651,0.014838,0.016490,0.021208,0.017660,0.013009,0.014867,0.013013,0.010426,0.009144,0.009462,0.009367,0.009624,0.008079,0.007399,0.009012,0.009384,0.008661,0.009051,0.009394,0.010578,0.011610,0.012184,0.010442,0.009130,0.008795,0.008468,0.010039,0.011205,0.011438,0.011489,0.010526,0.008902,0.007391,0.006198,0.005970,0.005264,0.004331,0.003874,0.003514,0.003418,0.003518,0.003409,0.003150,0.003023,0.003047,0.003199,0.003624,0.003999,0.003839,0.003629,0.003712,0.003872,0.003974,0.003836,0.003596,0.003353,0.003177,0.003070 | |||
giCBassoon50 ftgen 0,0,4096,10,0.200451,0.511764,0.153876,0.491651,0.722151,0.174751,0.087283,0.068341,0.008971,0.040014,0.041083,0.015335,0.047809,0.037606,0.038259,0.020124,0.022425,0.024747,0.016480,0.008528,0.006892,0.004131,0.005947,0.005585,0.006842,0.008448,0.015885,0.005820,0.002834,0.004626,0.003886,0.003621,0.004837,0.005276,0.002715,0.002900,0.003817,0.005081,0.005598,0.006033,0.006164,0.004260,0.003944,0.004776,0.004223,0.004351,0.004769,0.004836,0.004959,0.005380,0.004538,0.003969,0.003860,0.003536,0.003521,0.003397,0.002823,0.002162,0.002001,0.001663,0.001430,0.001505,0.001566,0.001468,0.001406,0.001439,0.001225,0.001095,0.001134,0.001316,0.001630,0.001839,0.001964,0.001940,0.001824,0.001694,0.001617,0.001526,0.001348,0.001116,0.000972,0.000973,0.001011,0.001015,0.000944,0.000785,0.000650,0.000609,0.000675,0.000782,0.000839,0.000818,0.000755,0.000661,0.000566,0.000498,0.000471,0.000478,0.000486,0.000479 | |||
giwavemapCBassoon ftgen 0,0,128,-27, 0,0, 22,0, 26,1, 38,2, 50,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCBassoon ftgen 0,0,4,-2,giCBassoon22,giCBassoon26,giCBassoon38,giCBassoon50 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; VIOLIN | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giviolin55 ftgen 0,0,4096,10,0.081672,0.785854,0.808302,0.221447,0.136644,0.103608,0.051154,0.040070,0.071067,0.358903,0.053101,0.090036,0.033729,0.068969,0.060398,0.147336,0.060769,0.055245,0.044695,0.022179,0.058528,0.083706,0.029581,0.013173;,0.013173 | |||
giviolin67 ftgen 0,0,4096,10,0.344116,0.095361,0.038223,0.090317,0.145798,0.049369,0.076997,0.057555,0.016248,0.036189,0.014161,0.008738,0.010238,0.009625,0.005588,0.004762,0.002635,0.002162,0.002822,0.002144,0.001687,0.001955,0.001870,0.001011;,0.001011 | |||
giviolin79 ftgen 0,0,4096,10,0.403041,0.281156,0.259204,0.392900,0.236559,0.108769,0.117288,0.063588,0.039483,0.018245,0.012717,0.020183,0.008506,0.017915,0.008925,0.008575,0.006947,0.008142,0.005487,0.005970,0.004402,0.003161,0.002361,0.001942;,0.001942 | |||
giviolin91 ftgen 0,0,4096,10,0.231708,0.906742,0.215622,0.092709,0.057338,0.038101,0.030758,0.023439,0.009905,0.001298,0.002108,0.000516,0.000499,0.000123,0.000642,0.000732,0.004757,0.004547,0.017582,0.033035,0.098559,0.013616,0.017674,0.019601;,0.019601 | |||
giwavemapViolin ftgen 0,0,128,-27, 0,0, 55,0, 67,1, 79,2, 91,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfViolin ftgen 0,0,4,-2,giviolin55,giviolin67,giviolin79,giviolin91 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CELLO | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gicello36 ftgen 0,0,4096,10,0.022943,0.412962,0.548431,0.578468,0.092241,0.116378,0.052974,0.029585,0.093977,0.119660,0.064074,0.051807,0.015094,0.094184,0.015488,0.006640,0.007091,0.011557,0.043467,0.023330,0.018118,0.026921,0.010285,0.007653,0.015306,0.023175,0.013051,0.004840,0.005658,0.010814,0.014921,0.026066,0.028334,0.015227,0.010740,0.008966,0.009389,0.012547,0.011544,0.009900,0.012403,0.013093,0.008259,0.007148,0.006129,0.004932,0.004332,0.003397,0.002497,0.002241,0.002187,0.002227,0.001634,0.001186,0.001119,0.001131,0.001276,0.000970,0.001101,0.001647,0.001936,0.001632,0.001190,0.000891,0.000883,0.000906,0.000894,0.000855,0.000768,0.000721,0.000750,0.000900,0.000965,0.000844,0.000765,0.000643,0.000535,0.000464,0.000409,0.000403,0.000489,0.000642,0.000773,0.000819,0.000871,0.000930,0.000979,0.000950,0.000781,0.000649,0.000620,0.000653,0.000661,0.000706,0.000805,0.000856,0.000832,0.000793,0.000750,0.000702 | |||
gicello48 ftgen 0,0,4096,10,0.171752,0.537455,0.217980,0.172188,0.552902,0.583964,0.452897,0.095360,0.059208,0.033024,0.126570,0.028481,0.067671,0.029869,0.055112,0.056284,0.025151,0.038689,0.027323,0.027935,0.070762,0.023514,0.016984,0.013118,0.008692,0.004591,0.002235,0.003399,0.002568,0.002224,0.002366,0.002892,0.004660,0.003562,0.002923,0.002328,0.002327,0.001705,0.001566,0.002356,0.002199,0.003381,0.006360,0.007320,0.004930,0.002809,0.002686,0.002156,0.001566,0.001273,0.001192,0.001380,0.001683,0.002133,0.003160,0.002820,0.002065,0.002097,0.002013,0.001649,0.001366,0.001053,0.000819,0.000730,0.000775,0.000937,0.001097,0.001063,0.000917,0.000815,0.000792,0.000857,0.001010,0.001203,0.001372,0.001408,0.001295,0.001173,0.001062,0.000942,0.000825,0.000761,0.000774,0.000854,0.000932,0.000968,0.000987,0.001022,0.001018,0.000944,0.000882,0.000829,0.000779,0.000734,0.000693,0.000655,0.000602,0.000547,0.000529,0.000548 | |||
gicello60 ftgen 0,0,4096,10,0.762584,0.124687,0.088950,0.091324,0.058688,0.034069,0.038828,0.065420,0.062254,0.058503,0.033332,0.014105,0.011585,0.004135,0.005176,0.004496,0.006698,0.008491,0.007044,0.003450,0.004771,0.016317,0.009897,0.007180,0.004105,0.002477,0.003995,0.002992,0.002346,0.002233,0.002558,0.002135,0.002301,0.001713,0.001191,0.001850,0.004203,0.001813,0.000969,0.001090,0.000636,0.001237,0.000844,0.001107,0.000880,0.000791,0.000640,0.000894,0.000554,0.000727,0.001041,0.001046,0.001079,0.000456,0.000410,0.000442,0.000431,0.000437,0.000427,0.000389,0.000350,0.000284,0.000269,0.000260,0.000210,0.000253,0.000328,0.000296,0.000290,0.000419,0.000452,0.000328,0.000215,0.000229,0.000333,0.000275,0.000208,0.000204,0.000163,0.000283,0.000253,0.000264,0.000178,0.000208,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
gicello72 ftgen 0,0,4096,10,0.601382,0.263076,0.197963,0.244245,0.217992,0.114034,0.025768,0.041518,0.011954,0.006391,0.012239,0.017818,0.016819,0.012798,0.007576,0.007376,0.002891,0.021377,0.005261,0.004421,0.009226,0.004333,0.001808,0.003989,0.002078,0.001344,0.001560,0.001240,0.001586,0.001307,0.000519,0.000761,0.001009,0.000632,0.000412,0.000414,0.000361,0.000406,0.000544,0.000741,0.000281,0.000164,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapCello ftgen 0,0,128,-27, 0,0, 36,0, 48,1, 60,2, 72,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCello ftgen 0,0,4,-2,gicello36,gicello48,gicello60,gicello72 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; PICCOLO | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gipiccolo74 ftgen 0,0,4096,10,0.898113,0.247693,0.060222,0.127742,0.034019,0.044738,0.029980,0.018041,0.008219,0.009819,0.015719,0.009423,0.020117,0.011802,0.007226,0.003198,0.001597,0.002062,0.001590,0.001420,0.001087,0.000581,0.000370,0.000393,0.000393 | |||
gipiccolo80 ftgen 0,0,4096,10,0.837581,0.024769,0.144022,0.109176,0.031512,0.026122,0.004565,0.008379,0.004995,0.002685,0.003489,0.002674,0.002743,0.001129,0.000485,0.000367,0.000701,0.001563,0.001166,0.000647,0.000808,0.000622,0.000358,0.000227,0.000227 | |||
gipiccolo86 ftgen 0,0,4096,10,0.730803,0.323120,0.277720,0.044844,0.009400,0.022785,0.004602,0.005762,0.006400,0.002483,0.001490,0.002354,0.004728,0.002669,0.003175,0.001177,0.000761,0.000509,0.000449,0.000703,0.001078,0.002471,0.003905,0.004114,0.004114 | |||
gipiccolo92 ftgen 0,0,4096,10,0.883567,0.117309,0.144273,0.012664,0.016747,0.002921,0.002043,0.001429,0.002107,0.008510,0.001611,0.002330,0.000075,0.000381,0.000943,0.002268,0.001748,0.001626,0.000882,0.002765,0.003187,0.004911,0.008342,0.017209,0.017209 | |||
gipiccolo98 ftgen 0,0,4096,10,0.922186,0.144948,0.042529,0.011837,0.006901,0.000900,0.001625,0.000686,0.000507 ; ,0.000305,0.000305,0.000730,0.000922,0.001408,0.001499,0.005116,0.021056,0.151393,0.034986,0.124701,0.024182,0.008037,0.002664,0.001934,0.001934 | |||
gipiccolo106 ftgen 0,0,4096,10,0.501042,0.019695,0.008976,0.003473,0.006493,0.001700,0.002765,0.003224,0.006276 ; ,0.025062,0.036907,0.005386,0.046443,0.013720,0.005391,0.007819,0.019832,0.008441,0.006927,0.007528,0.018483,0.042516,0.057060,0.083779,0.083779 | |||
giwavemapPiccolo ftgen 0,0,128,-27, 0,0, 74,0, 80,1, 86,2, 92,3, 98,4, 106,5, 127,5 | |||
gitabs4morfPiccolo ftgen 0,0,8,-2,gipiccolo74,gipiccolo80,gipiccolo86,gipiccolo92,gipiccolo98,gipiccolo106,gipiccolo106,gipiccolo106 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giflute59 ftgen 0,0,4096,10,0.876155,0.188136,0.766537,0.278649,0.134428,0.143342,0.201465,0.068043,0.011284,0.021093,0.021494,0.010577,0.016431,0.007352,0.006864,0.007433,0.006500,0.004716,0.004282,0.002545,0.002718,0.002045,0.001768,0.002409,0.002409 | |||
giflute65 ftgen 0,0,4096,10,0.799971,0.564039,0.327027,0.076562,0.324116,0.049951,0.035116,0.048856,0.017988,0.004316,0.007909,0.004093,0.003013,0.003329,0.001707,0.001995,0.001913,0.000937,0.001543,0.001868,0.001289,0.001463,0.001865,0.001076,0.001076 | |||
giflute71 ftgen 0,0,4096,10,0.902388,0.107786,0.423495,0.078015,0.066093,0.032990,0.012352,0.008687,0.005253,0.004091,0.001790,0.002202,0.000853,0.001228,0.000810,0.000828,0.000601,0.000593,0.000647,0.000906,0.000925,0.001111,0.001302,0.000899,0.000899 | |||
giflute77 ftgen 0,0,4096,10,0.925667,0.059839,0.214284,0.013980,0.026778,0.008733,0.019436,0.002640,0.004217,0.002126,0.003513,0.002455,0.001336,0.001508,0.001589,0.002155,0.002549,0.001951,0.001614,0.001076,0.001253,0.001138,0.001073,0.000990,0.000990 | |||
giflute83 ftgen 0,0,4096,10,0.865610,0.041090,0.054192,0.043068,0.022098,0.002450,0.005687,0.002093,0.005076,0.001357,0.003848,0.006820,0.002879,0.005038,0.002273,0.002877,0.001043,0.001188,0.000857,0.000726,0.000537,0.000320,0.000390,0.000666,0.000666 | |||
giflute89 ftgen 0,0,4096,10,0.907108,0.032221,0.007003,0.010577,0.004166,0.002274,0.001089,0.002739,0.002459,0.002194,0.001351,0.000570,0.000469,0.000388,0.000228,0.000180,0.000377,0.000470,0.000724,0.001478,0.002258,0.002625,0.006255,0.003183,0.003183 | |||
giflute95 ftgen 0,0,4096,10,0.927168,0.094811,0.014160,0.010743,0.004640,0.002540,0.000535,0.000356,0.000205,0.000147,0.000042,0.000032,0.000090,0.000201,0.000171,0.000595,0.000136,0.000338,0.000284,0.000244,0.001813,0.001310,0.002113,0.000510,0.000510 | |||
giflute98 ftgen 0,0,4096,10,0.793870,0.077609,0.047389,0.012277,0.005127,0.002760,0.002619,0.000390,0.000109,0.000105,0.000147,0.000425,0.000266,0.000201,0.000312,0.000210,0.001391,0.003570,0.001720,0.002746,0.001399,0.000749,0.000411,0.001156,0.001156 | |||
giwavemapFlute ftgen 0,0,128,-27, 0,0, 59,0, 65,1, 71,2, 77,3, 83,4, 89,5, 95,6, 98,7, 127,7 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfFlute ftgen 0,0,8,-2,giflute59,giflute65,giflute71,giflute77,giflute83,giflute89,giflute95,giflute98 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; ALTO FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giAFlute55 ftgen 0,0,4096,10,0.821986,0.323726,0.027144,0.049562,0.045630,0.004837,0.008584,0.002449,0.002921,0.004780,0.006174,0.006496,0.009180,0.010020,0.008884,0.006397,0.007728,0.007543,0.005540,0.004643,0.004213,0.003464,0.002247,0.001529,0.001529 | |||
giAFlute61 ftgen 0,0,4096,10,0.629423,0.050378,0.078267,0.098147,0.002593,0.003473,0.002978,0.007847,0.002718,0.004264,0.004001,0.003129,0.002278,0.001767,0.001591,0.001198,0.000790,0.000910,0.000907,0.000909,0.000690,0.001006,0.000870,0.000801,0.000801 | |||
giAFlute67 ftgen 0,0,4096,10,0.734185,0.213440,0.086548,0.055143,0.004785,0.001811,0.011006,0.004212,0.001873,0.002130,0.001001,0.000376,0.000632,0.000823,0.000595,0.000764,0.000514,0.000403,0.000326,0.000317,0.000537,0.000523,0.000835,0.000743,0.000743 | |||
giAFlute76 ftgen 0,0,4096,10,0.868899,0.390848,0.052590,0.023839,0.033699,0.031143,0.013923,0.008881,0.003821,0.001797,0.003048,0.002506,0.002295,0.001878,0.001118,0.001109,0.001133,0.001732,0.002085,0.002020,0.001240,0.000963,0.000929,0.000456,0.000456 | |||
giwavemapAFlute ftgen 0,0,128,-27, 0,0, 55,0, 61,1, 67,2, 76,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfAFlute ftgen 0,0,4,-2,giAFlute55,giAFlute55,giAFlute55,giAFlute55 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giBFlute48 ftgen 0,0,4096,10,0.691967,0.034269,0.271945,0.033667,0.017446,0.011342,0.007238,0.006576,0.003027,0.003556,0.004425,0.004988,0.003990,0.005253,0.006140,0.003051,0.004437,0.003567,0.002838,0.001703,0.001528,0.001368,0.001703,0.001153,0.000827,0.001023,0.000899,0.000612,0.000827,0.000823,0.000948,0.001184,0.001201,0.001272,0.001032,0.001141,0.001128,0.000887,0.000790,0.000612,0.000565,0.000573,0.000586,0.000554,0.000483,0.000450,0.000404,0.000416,0.000392,0.000391,0.000327,0.000336,0.000370,0.000424,0.000460,0.000459,0.000456,0.000395,0.000319,0.000306,0.000283,0.000306,0.000338,0.000305,0.000288,0.000263,0.000247,0.000239,0.000245,0.000233,0.000190,0.000166,0.000161,0.000160,0.000150,0.000136,0.000130,0.000130,0.000126,0.000126,0.000128,0.000131,0.000131,0.000136,0.000138,0.000132,0.000122,0.000116,0.000119,0.000126,0.000122,0.000112,0.000109,0.000113,0.000118,0.000118,0.000118,0.000117,0.000116,0.000118 | |||
giBFlute54 ftgen 0,0,4096,10,0.633439,0.578363,0.200810,0.008032,0.068714,0.005615,0.005448,0.012421,0.009987,0.006289,0.004137,0.002738,0.001944,0.002935,0.003674,0.002567,0.002545,0.004116,0.003915,0.002935,0.002322,0.002647,0.003186,0.003370,0.003213,0.002193,0.001902,0.001629,0.001652,0.001274,0.001102,0.001205,0.001277,0.001134,0.001117,0.001286,0.001477,0.001607,0.002607,0.003270,0.002939,0.002558,0.001826,0.001324,0.001228,0.001070,0.001110,0.001120,0.001042,0.000924,0.000909,0.000880,0.000765,0.000674,0.000600,0.000491,0.000437,0.000441,0.000443,0.000452,0.000467,0.000527,0.000606,0.000571,0.000554,0.000518,0.000420,0.000363,0.000315,0.000275,0.000245,0.000221,0.000200,0.000202,0.000219,0.000211,0.000194,0.000187,0.000197,0.000197,0.000193,0.000201,0.000217,0.000223,0.000219,0.000213,0.000200,0.000175,0.000149,0.000131,0.000124,0.000120,0.000115,0.000111,0.000113,0.000117,0.000115,0.000107,0.000100,0.000098 | |||
giBFlute60 ftgen 0,0,4096,10,0.801592,0.068816,0.032303,0.012614,0.002660,0.014692,0.002493,0.006175,0.001826,0.001416,0.002607,0.001063,0.001542,0.001053,0.001293,0.001226,0.000781,0.001142,0.000975,0.000922,0.000693,0.000570,0.000538,0.000429,0.000587,0.000775,0.000855,0.001295,0.001190,0.000941,0.000912,0.000796,0.000662,0.000789,0.000828,0.000784,0.000614,0.000480,0.000455,0.000378,0.000334,0.000309,0.000351,0.000375,0.000427,0.000378,0.000293,0.000232,0.000224,0.000199,0.000150,0.000119,0.000100,0.000084,0.000084,0.000088,0.000085,0.000081,0.000076,0.000081,0.000080,0.000075,0.000071,0.000068,0.000063,0.000060,0.000064,0.000067,0.000065,0.000058,0.000055,0.000054,0.000054,0.000053,0.000052,0.000053,0.000053,0.000053,0.000052,0.000050,0.000049,0.000049,0.000049,0.000049,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute66 ftgen 0,0,4096,10,0.743019,0.068238,0.021487,0.010397,0.001744,0.013212,0.001676,0.005245,0.002049,0.001401,0.001686,0.001346,0.001288,0.000879,0.001087,0.000922,0.000878,0.000678,0.000904,0.000729,0.000481,0.000542,0.000525,0.000561,0.000481,0.000552,0.000745,0.001153,0.001211,0.001000,0.000706,0.000621,0.000613,0.000779,0.000764,0.000717,0.000619,0.000486,0.000448,0.000429,0.000341,0.000327,0.000331,0.000340,0.000340,0.000335,0.000288,0.000255,0.000233,0.000195,0.000173,0.000150,0.000127,0.000123,0.000119,0.000113,0.000111,0.000115,0.000116,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute72 ftgen 0,0,4096,10,0.741444,0.066744,0.018973,0.009713,0.002046,0.010742,0.001911,0.004984,0.002277,0.001308,0.001841,0.000932,0.001065,0.000889,0.001029,0.000970,0.000767,0.000708,0.000743,0.000629,0.000541,0.000457,0.000410,0.000534,0.000487,0.000489,0.000743,0.001263,0.001164,0.001062,0.000757,0.000529,0.000538,0.000606,0.000594,0.000583,0.000497,0.000463,0.000498,0.000433,0.000369,0.000363,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute76 ftgen 0,0,4096,10,0.745977,0.066489,0.014197,0.007352,0.002175,0.009766,0.002280,0.004362,0.001870,0.001375,0.001383,0.001328,0.001381,0.001194,0.001429,0.000949,0.000917,0.000802,0.000818,0.000932,0.000636,0.000646,0.000571,0.000575,0.000613,0.000679,0.000959,0.001343,0.001448,0.001365,0.001241,0.001091,0.001093,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapBFlute ftgen 0,0,128,-27, 0,0, 48,0, 54,1, 60,2, 66,3, 72,4, 76,5, 127,5 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBFlute ftgen 0,0,4,-2,giBFlute48,giBFlute54,giBFlute60,giBFlute66,giBFlute72,giBFlute76 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; AHH | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giahh43 ftgen 0,0,4096,10,0.386674,0.073031,0.081855,0.018459,0.053239,0.061160,0.058957,0.045203,0.039489,0.065846,0.041424,0.012866,0.006504,0.005909,0.005469,0.003737,0.003814,0.002639,0.002638,0.003016,0.004285,0.006226,0.007688,0.008839,0.014596,0.028866,0.037921,0.022164,0.015744,0.007756,0.005050,0.007234,0.008132,0.006564,0.005699,0.007003,0.007011,0.005459,0.004080,0.003820,0.004403,0.004661,0.005385,0.007278,0.009647,0.010877,0.012884,0.014945,0.015339,0.012290,0.009204,0.008363,0.007093,0.005203,0.003328,0.002161,0.001538,0.001215,0.001037,0.001033,0.001172,0.001483,0.002127,0.002644,0.002412,0.001679,0.001068,0.000848,0.000972,0.001425,0.002263,0.003492,0.004427,0.004100,0.003201,0.002484,0.002255,0.002495,0.003139,0.004136,0.005259,0.005878,0.005432,0.004477,0.003617,0.002973,0.002606,0.002518,0.002611,0.002863,0.003395,0.004095,0.004529,0.004686,0.004927,0.005437,0.006092,0.006727,0.007073,0.006966 | |||
giahh49 ftgen 0,0,4096,10,0.600063,0.256340,0.126445,0.040717,0.097956,0.082383,0.135342,0.006369,0.002414,0.002312,0.001526,0.000552,0.000868,0.000435,0.000576,0.001145,0.001706,0.003688,0.013234,0.006626,0.006840,0.012971,0.003639,0.002955,0.001962,0.001988,0.000831,0.000533,0.000748,0.000490,0.000674,0.001431,0.002663,0.002680,0.002874,0.003227,0.001837,0.000874,0.000662,0.000901,0.001630,0.002139,0.001816,0.001233,0.000817,0.000658,0.000730,0.000864,0.001037,0.001616,0.002390,0.002487,0.002363,0.002429,0.002624,0.002971,0.002486,0.001530,0.000895,0.000669,0.000806,0.001085,0.001185,0.001002,0.000857,0.000900,0.001009,0.001198,0.001398,0.001306,0.001302,0.001562,0.001670,0.001440,0.001105,0.000872,0.000746,0.000748,0.000770,0.000788,0.000890,0.000973,0.000896,0.000716,0.000598,0.000536,0.000492,0.000469,0.000443,0.000384,0.000317,0.000262,0.000209,0.000162,0.000129,0.000110,0.000102,0.000099,0.000099,0.000096 | |||
giahh55 ftgen 0,0,4096,10,0.667225,0.194524,0.098683,0.096875,0.021209,0.006311,0.002978,0.001013,0.001249,0.001446,0.002393,0.004826,0.018741,0.012161,0.010480,0.005261,0.004569,0.001376,0.001132,0.003605,0.001846,0.002757,0.005346,0.004712,0.004806,0.002357,0.001109,0.001302,0.001860,0.001054,0.001120,0.001642,0.002240,0.004382,0.005473,0.003755,0.002444,0.002088,0.001822,0.000946,0.000790,0.001222,0.001653,0.001374,0.001401,0.002118,0.002061,0.001470,0.001198,0.001635,0.002387,0.002248,0.001327,0.000951,0.000884,0.000844,0.000805,0.000667,0.000669,0.000701,0.000591,0.000445,0.000367,0.000314,0.000272,0.000225,0.000179,0.000152,0.000164,0.000169,0.000151,0.000144,0.000137,0.000121,0.000115,0.000123,0.000125,0.000116,0.000102,0.000095,0.000102,0.000120,0.000135,0.000132,0.000117,0.000100,0.000084,0.000074,0.000072,0.000075,0.000077,0.000079,0.000083,0.000083,0.000081,0.000082,0.000084,0.000081,0.000074,0.000063 | |||
giahh61 ftgen 0,0,4096,10,0.701578,0.444091,0.390732,0.103519,0.007759,0.002497,0.001883,0.001103,0.001729,0.001889,0.001679,0.002455,0.000872,0.000433,0.001071,0.001382,0.002270,0.001077,0.000930,0.000940,0.001143,0.001633,0.001901,0.001446,0.002619,0.003724,0.002339,0.001969,0.001199,0.000674,0.001015,0.001321,0.001504,0.001378,0.000778,0.000682,0.001100,0.001312,0.001438,0.001513,0.000928,0.000466,0.000374,0.000410,0.000492,0.000515,0.000367,0.000230,0.000171,0.000169,0.000209,0.000236,0.000189,0.000194,0.000205,0.000196,0.000184,0.000168,0.000186,0.000223,0.000241,0.000197,0.000144,0.000113,0.000100,0.000101,0.000097,0.000088,0.000075,0.000067,0.000060,0.000051,0.000044,0.000040,0.000036,0.000034,0.000033,0.000033,0.000033,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giahh67 ftgen 0,0,4096,10,0.836515,0.800602,0.036351,0.016206,0.006383,0.007973,0.003273,0.011820,0.001230,0.001857,0.003725,0.004792,0.002586,0.008972,0.005518,0.007339,0.005207,0.006633,0.005670,0.005010,0.005379,0.002919,0.004501,0.004490,0.002854,0.003643,0.005161,0.002824,0.002183,0.001438,0.001060,0.000978,0.001138,0.001729,0.001501,0.001117,0.000626,0.000578,0.000512,0.000294,0.000255,0.000311,0.000397,0.000310,0.000205,0.000188,0.000179,0.000164,0.000172,0.000143,0.000115,0.000095,0.000084,0.000081,0.000080,0.000080,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapAhh ftgen 0,0,128,-27, 0,0, 43,0, 49,1, 55,2, 61,3, 67,4, 127,4 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfAhh ftgen 0,0,8,-2,giahh43,giahh49,giahh55,giahh61,giahh67,giahh67,giahh67,giahh67 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; HORN P | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giHornP38 ftgen 0,0,4096,10,0.045737,0.148188,0.335691,0.493464,0.710665,0.765723,0.694286,0.628629,0.521398,0.428206,0.365416,0.306040,0.298023,0.254152,0.201721,0.154086,0.161771,0.146790,0.124044,0.110268,0.091099,0.076808,0.057743,0.042724,0.042724 | |||
giHornP50 ftgen 0,0,4096,10,0.280951,0.717837,0.823404,0.588908,0.394696,0.286430,0.176355,0.118365,0.064524,0.033209,0.016001,0.004104,0.004396,0.002069,0.002350,0.001903,0.001098,0.001262,0.001129,0.000906,0.000543,0.000575,0.000427,0.000355,0.000355 | |||
giHornP62 ftgen 0,0,4096,10,0.495327,0.909763,0.613398,0.368832,0.202553,0.124640,0.046586,0.011810,0.012510,0.011370,0.006659,0.004564,0.002331,0.001790,0.000667,0.000538,0.000352,0.000302,0.000558,0.000794,0.000797,0.000331,0.000342,0.000389,0.000389 | |||
giHornP74 ftgen 0,0,4096,10,0.796534,0.226262,0.060526,0.013273,0.003161,0.001015,0.001071,0.000595,0.000191,0.000337,0.000199,0.000173,0.000183,0.000187,0.000105,0.000113,0.000156,0.000119,0.000098,0.000067,0.000066,0.000064,0.000054,0.000043,0.000043 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapHornP ftgen 0,0,128,-27, 0,0, 38,0, 50,1, 62,2, 74,3, 127,3 | |||
gitabs4morfHornP ftgen 0,0,4,-2,giHornP38,giHornP50,giHornP62,giHornP74 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; HORN F | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giHornF38 ftgen 0,0,4096,10,0.150333,0.205756,0.869097,0.723941,0.707935,0.116871,0.238125,0.330962,0.443031,0.325212,0.131256,0.267361,0.273576,0.146568,0.209758,0.158564,0.179271,0.084668,0.112177,0.118845,0.124993,0.096945,0.128906,0.125534,0.125534 | |||
giHornF50 ftgen 0,0,4096,10,0.348154,0.319965,0.418661,0.396206,0.046368,0.198167,0.035091,0.107400,0.035358,0.066696,0.053722,0.045581,0.066494,0.109943,0.059354,0.050001,0.123615,0.052990,0.032207,0.039448,0.051629,0.014079,0.014571,0.017523,0.017523 | |||
giHornF62 ftgen 0,0,4096,10,0.449507,0.544173,0.108516,0.300530,0.163030,0.351952,0.171674,0.202505,0.098101,0.066418,0.044492,0.071036,0.074224,0.064911,0.027430,0.041991,0.022245,0.017689,0.013130,0.020853,0.016891,0.038363,0.017524,0.016841,0.016841 | |||
giHornF74 ftgen 0,0,4096,10,0.923831,0.259141,0.262670,0.175552,0.089346,0.073056,0.055113,0.031968,0.027964,0.033656,0.035303,0.010920,0.019420,0.013447,0.012944,0.006111,0.007041,0.003864,0.005702,0.004615,0.003076,0.001589,0.002756,0.001234,0.001234 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapHornF ftgen 0,0,128,-27, 0,0, 38,0, 50,1, 62,2, 74,3, 127,3 | |||
gitabs4morfHornF ftgen 0,0,4,-2,giHornF38,giHornF50,giHornF62,giHornF74 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (HARMON MUTE) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giharmon33 ftgen 0,0,4096,10,0.875348,0.155770,0.111939,0.181031,0.355046,0.044216,0.039025,0.036422,0.074587,0.050492,0.042464,0.079868,0.121542,0.243299,0.253642,0.263571,0.422410,0.624259,0.742333,0.514304,0.760971,0.444426,0.456583,0.195508,0.070084,0.032239,0.029621,0.058523,0.044442,0.057324,0.077997,0.047218,0.046215,0.023786,0.017859,0.017652,0.012055,0.009595,0.009020,0.006000,0.004077,0.004950,0.004543,0.003196,0.002659,0.003533,0.004156,0.003745,0.002471,0.002264,0.003050,0.002614,0.001944,0.001709,0.001717,0.001934,0.002458,0.003618,0.004915,0.004334,0.003733,0.003804,0.003489,0.002755,0.002427,0.002273,0.002577,0.002702,0.002483,0.002059,0.002016,0.002214,0.002215,0.001947,0.001952,0.002236,0.002357,0.002417,0.002406,0.002309,0.002176,0.002227,0.002527,0.002649,0.002448,0.002165,0.002175,0.002322,0.002371,0.002202,0.001845,0.001620,0.001626,0.001927,0.002537,0.003091,0.003220,0.003231,0.003453,0.003751 | |||
giharmon34 ftgen 0,0,4096,10,0.443604,0.040301,0.041393,0.115682,0.622143,0.055550,0.073493,0.090539,0.109410,0.039052,0.138611,0.161174,0.290931,0.212197,0.410393,0.749789,0.917784,1.375368,0.934044,0.781551,0.356416,0.290222,0.181279,0.061983,0.081959,0.039112,0.044805,0.058922,0.022274,0.022731,0.038966,0.025063,0.031263,0.030753,0.032383,0.045020,0.032652,0.027144,0.033411,0.020397,0.015121,0.017071,0.014804,0.013636,0.012149,0.012930,0.014231,0.012821,0.011342,0.009001,0.008587,0.006187,0.005928,0.008836,0.012118,0.012242,0.009968,0.009445,0.006852,0.004519,0.002870,0.001975,0.001680,0.001593,0.001930,0.002744,0.003798,0.003938,0.003311,0.003174,0.003465,0.004740,0.006267,0.006620,0.006071,0.005274,0.005318,0.005795,0.006440,0.007152,0.007792,0.008192,0.007304,0.005765,0.004397,0.003369,0.002855,0.003059,0.003731,0.004377,0.004923,0.005763,0.006567,0.006834,0.006780,0.006575,0.005922,0.004714,0.003481,0.002696 | |||
giharmon36 ftgen 0,0,4096,10,0.934870,0.094639,0.263729,0.103300,0.556951,0.047384,0.167404,0.119804,0.122737,0.048833,0.154640,0.111318,0.302046,0.230750,0.517436,0.259307,0.354474,0.152230,0.109031,0.091431,0.071065,0.027335,0.037383,0.048534,0.033460,0.066084,0.041563,0.049933,0.029361,0.032804,0.017292,0.018054,0.023006,0.019576,0.018461,0.008645,0.007040,0.005924,0.005415,0.003713,0.003447,0.002816,0.003594,0.003583,0.002658,0.001561,0.001446,0.002347,0.003707,0.005343,0.007152,0.006970,0.005630,0.004404,0.002749,0.002098,0.002393,0.001708,0.001255,0.001150,0.001263,0.001445,0.001397,0.001331,0.001510,0.001783,0.001849,0.001576,0.001508,0.001400,0.001153,0.000940,0.000797,0.000734,0.000677,0.000581,0.000531,0.000644,0.000829,0.000891,0.000846,0.000864,0.000921,0.000980,0.000945,0.000994,0.001078,0.001054,0.000936,0.000863,0.000855,0.000855,0.000757,0.000683,0.000687,0.000667,0.000654,0.000639,0.000610,0.000586 | |||
giharmon38 ftgen 0,0,4096,10,0.275894,0.119750,0.302577,0.931731,0.080509,0.210351,0.194035,0.223110,0.137304,0.197845,0.327194,0.349699,0.653623,0.881895,0.939789,0.691399,0.569520,0.195895,0.129254,0.040633,0.094914,0.073078,0.145254,0.105583,0.162773,0.080818,0.095817,0.054832,0.079542,0.059357,0.055196,0.036903,0.021942,0.019084,0.020925,0.014726,0.013288,0.012653,0.010311,0.008738,0.008159,0.006852,0.004697,0.006565,0.011392,0.016788,0.018297,0.017879,0.015021,0.009463,0.005643,0.005105,0.004046,0.004010,0.005012,0.004282,0.003406,0.003104,0.003782,0.005116,0.003975,0.002459,0.001720,0.001650,0.002105,0.002882,0.003694,0.004103,0.003070,0.001947,0.001446,0.001258,0.001170,0.001349,0.001876,0.002582,0.002853,0.002391,0.002009,0.001887,0.001808,0.001514,0.001333,0.001265,0.001131,0.001082,0.001169,0.001278,0.001225,0.001070,0.000913,0.000800,0.000767,0.000799,0.000824,0.000902,0.001003,0.001061,0.001115,0.001185 | |||
giharmon39 ftgen 0,0,4096,10,0.215899,0.043569,0.155862,0.915877,0.029041,0.085938,0.096861,0.027476,0.042161,0.045780,0.077178,0.073681,0.292899,0.268475,0.052870,0.047343,0.020451,0.005226,0.004051,0.013123,0.014796,0.018766,0.016900,0.010549,0.011430,0.006502,0.006649,0.009883,0.007521,0.005298,0.002202,0.001505,0.001267,0.001744,0.001762,0.001880,0.001510,0.001300,0.001551,0.001113,0.001344,0.002682,0.004692,0.003899,0.003280,0.002211,0.001351,0.000889,0.000702,0.000681,0.000890,0.000985,0.000873,0.001082,0.000955,0.001016,0.001084,0.000930,0.000860,0.000656,0.000607,0.000724,0.000840,0.000859,0.000735,0.000640,0.000553,0.000553,0.000664,0.000694,0.000736,0.000846,0.000794,0.000763,0.000690,0.000686,0.000654,0.000659,0.000732,0.000714,0.000736,0.000748,0.000741,0.000620,0.000514,0.000484,0.000540,0.000707,0.000958,0.001141,0.001115,0.001012,0.000967,0.000906,0.000789,0.000653,0.000550,0.000512,0.000523,0.000521 | |||
giharmon40 ftgen 0,0,4096,10,0.369055,0.131998,0.314332,0.267587,0.083279,0.197505,0.246057,0.188865,0.247543,0.447904,0.311578,0.951654,0.440089,0.497270,0.248691,0.084689,0.024288,0.043815,0.092522,0.149863,0.063883,0.137365,0.089276,0.106339,0.067676,0.038080,0.044355,0.030311,0.016710,0.009404,0.009432,0.010647,0.009912,0.005595,0.004133,0.004025,0.003963,0.005248,0.007884,0.011332,0.009707,0.007295,0.004440,0.003429,0.004551,0.003060,0.002116,0.001763,0.001514,0.002027,0.002310,0.003069,0.002321,0.001811,0.001688,0.002021,0.001926,0.001770,0.001680,0.001534,0.001470,0.001491,0.001508,0.001391,0.001324,0.001260,0.001327,0.001406,0.001495,0.001338,0.001292,0.001395,0.001369,0.001408,0.001332,0.001258,0.001360,0.001502,0.001505,0.001392,0.001389,0.001469,0.001354,0.001230,0.001168,0.001229,0.001270,0.001296,0.001299,0.001384,0.001495,0.001524,0.001735,0.002015,0.002003,0.001730,0.001490,0.001313,0.001201,0.001201 | |||
giharmon41 ftgen 0,0,4096,10,0.338560,0.097872,0.404630,0.072213,0.101149,0.122271,0.088489,0.206809,0.295859,0.455726,0.802773,0.963091,0.671085,0.510166,0.125095,0.028121,0.044968,0.022808,0.033809,0.020551,0.006760,0.009093,0.007270,0.015331,0.017393,0.011093,0.005257,0.003771,0.002662,0.001862,0.002670,0.003093,0.003083,0.002636,0.001647,0.002030,0.003615,0.005828,0.005317,0.003389,0.002213,0.002189,0.002077,0.001392,0.000953,0.000899,0.000930,0.001189,0.001829,0.001616,0.001463,0.001355,0.001413,0.001368,0.001472,0.001201,0.000951,0.000804,0.000750,0.000839,0.001162,0.001540,0.001515,0.001241,0.001296,0.001396,0.001129,0.000785,0.000579,0.000562,0.000702,0.000938,0.001154,0.001155,0.001088,0.001192,0.001489,0.001693,0.001713,0.001549,0.001472,0.001606,0.001560,0.001278,0.001057,0.001106,0.001217,0.001127,0.001002,0.000959,0.000869,0.000789,0.000751,0.000712,0.000744,0.000874,0.001032,0.001112,0.001055,0.001033 | |||
giharmon43 ftgen 0,0,4096,10,0.135645,0.120943,0.979143,0.023489,0.114683,0.114072,0.130730,0.180948,0.281652,0.683720,0.964428,0.306787,0.213682,0.058648,0.025209,0.025596,0.047105,0.038846,0.017756,0.006258,0.005601,0.010206,0.010689,0.004381,0.002744,0.002982,0.002040,0.002284,0.001570,0.001528,0.002115,0.001649,0.002514,0.003304,0.005338,0.002902,0.001301,0.000713,0.000665,0.000652,0.000695,0.000698,0.000700,0.001056,0.000728,0.000485,0.000534,0.000633,0.000450,0.000429,0.000625,0.000827,0.001012,0.001160,0.001256,0.001213,0.001133,0.001362,0.001533,0.001305,0.001367,0.001616,0.001627,0.001417,0.001458,0.001637,0.001588,0.001552,0.001476,0.001327,0.001247,0.001076,0.000857,0.000699,0.000670,0.000726,0.000750,0.000854,0.000976,0.000936,0.000830,0.000768,0.000683,0.000599,0.000530,0.000491,0.000451,0.000398,0.000378,0.000368,0.000380,0.000455,0.000533,0.000535,0.000501,0.000464,0.000470,0.000496,0.000480,0.000442 | |||
giharmon45 ftgen 0,0,4096,10,0.244591,0.267325,0.126930,0.136762,0.271635,0.312002,0.223921,0.477139,0.969260,0.621811,0.276235,0.133028,0.017955,0.053396,0.048589,0.033493,0.018488,0.024467,0.024072,0.021974,0.013672,0.005364,0.005982,0.003607,0.001893,0.001866,0.001242,0.001433,0.001334,0.002488,0.002930,0.001518,0.001627,0.002275,0.001495,0.001193,0.000972,0.000737,0.000811,0.001235,0.001057,0.000838,0.001036,0.001047,0.001114,0.001012,0.000995,0.001090,0.001298,0.001286,0.001257,0.001216,0.001222,0.001045,0.001114,0.001441,0.001842,0.001582,0.001233,0.001180,0.001395,0.001374,0.001319,0.001317,0.001143,0.001024,0.001053,0.001334,0.001740,0.001862,0.001603,0.001274,0.001051,0.001022,0.000939,0.000839,0.000784,0.000794,0.000787,0.000752,0.000772,0.000742,0.000760,0.000882,0.001044,0.001103,0.001124,0.001129,0.001259,0.001523,0.001689,0.001631,0.001499,0.001332,0.001219,0.001138,0.001037,0.000952,0.000828,0.000746 | |||
giharmon46 ftgen 0,0,4096,10,0.315815,0.844525,0.164412,0.451756,0.585703,0.518759,0.681565,0.411064,0.952335,0.494514,0.366224,0.049949,0.050057,0.056689,0.053659,0.035965,0.043860,0.032015,0.019827,0.005201,0.006601,0.005746,0.007203,0.005429,0.003518,0.004758,0.003756,0.007828,0.015721,0.006418,0.003773,0.007304,0.003491,0.004073,0.002821,0.001771,0.002371,0.001798,0.002341,0.002659,0.003029,0.001998,0.001673,0.001293,0.000985,0.001051,0.001602,0.002316,0.002076,0.001608,0.001182,0.001234,0.001509,0.002038,0.001745,0.001690,0.001788,0.002285,0.002474,0.002206,0.002242,0.002438,0.002520,0.003014,0.003823,0.004834,0.005921,0.005640,0.004222,0.003103,0.002822,0.003289,0.003754,0.003426,0.002719,0.002201,0.001856,0.001927,0.002461,0.002893,0.002831,0.002430,0.002388,0.002815,0.003393,0.003964,0.004124,0.003523,0.002801,0.002546,0.002599,0.002485,0.002105,0.001812,0.001794,0.001803,0.001606,0.001468,0.001509,0.001549 | |||
giharmon48 ftgen 0,0,4096,10,0.122676,0.220788,0.073432,0.127649,0.149907,0.310663,0.320023,0.888642,0.333339,0.133323,0.020148,0.021610,0.031312,0.019058,0.010338,0.008856,0.009259,0.004665,0.008040,0.006064,0.004765,0.002412,0.001080,0.002281,0.002107,0.003516,0.001246,0.000827,0.000714,0.001050,0.000701,0.000675,0.000523,0.000934,0.001128,0.001435,0.000766,0.000427,0.000568,0.000725,0.001140,0.001379,0.000939,0.000679,0.000677,0.000639,0.000687,0.000664,0.000490,0.000511,0.000557,0.000610,0.000728,0.001052,0.001004,0.000764,0.000789,0.000916,0.000909,0.001108,0.000978,0.000656,0.000487,0.000484,0.000484,0.000521,0.000592,0.000647,0.000545,0.000494,0.000588,0.000761,0.000868,0.000902,0.000912,0.000928,0.000781,0.000667,0.000669,0.000665,0.000649,0.000608,0.000541,0.000459,0.000419,0.000435,0.000481,0.000492,0.000493,0.000550,0.000622,0.000616,0.000575,0.000571,0.000566,0.000520,0.000445,0.000380,0.000345,0.000334 | |||
giharmon50 ftgen 0,0,4096,10,0.162293,0.952587,0.107970,0.148379,0.162877,0.302263,0.378248,0.526544,0.202053,0.019075,0.035439,0.025852,0.023804,0.025676,0.028522,0.013081,0.004084,0.002802,0.001949,0.002297,0.001565,0.001596,0.004229,0.004413,0.001504,0.001251,0.001021,0.001404,0.001139,0.001161,0.000682,0.000466,0.000926,0.000495,0.000656,0.000798,0.001105,0.000691,0.000515,0.000562,0.000460,0.000566,0.000474,0.000481,0.000452,0.000510,0.000694,0.000487,0.000439,0.000584,0.000605,0.000623,0.000670,0.000916,0.000792,0.000871,0.000636,0.000514,0.000540,0.000466,0.000488,0.000461,0.000448,0.000510,0.000642,0.000795,0.000743,0.000838,0.001039,0.001142,0.000966,0.000733,0.000659,0.000657,0.000595,0.000548,0.000480,0.000411,0.000427,0.000488,0.000580,0.000723,0.000773,0.000693,0.000563,0.000471,0.000412,0.000429,0.000481,0.000468,0.000408,0.000367,0.000352,0.000329,0.000288,0.000260,0.000253,0.000249,0.000251,0.000257 | |||
giharmon52 ftgen 0,0,4096,10,0.167672,0.198778,0.227405,0.284738,0.650198,0.940684,0.975647,0.268741,0.049829,0.071939,0.024052,0.019628,0.020109,0.016231,0.003867,0.003960,0.004551,0.001438,0.002545,0.005214,0.004055,0.001727,0.002282,0.002593,0.001856,0.002206,0.001924,0.000871,0.000924,0.001558,0.001059,0.001121,0.001112,0.001260,0.001747,0.001193,0.000757,0.001035,0.000862,0.000951,0.001089,0.001598,0.001563,0.001170,0.001427,0.001409,0.001130,0.001424,0.001095,0.000785,0.000800,0.001135,0.001025,0.001093,0.000966,0.001083,0.001357,0.001272,0.001103,0.001508,0.002036,0.001512,0.001143,0.001348,0.001716,0.001528,0.001151,0.000935,0.001007,0.001124,0.000930,0.000715,0.000611,0.000658,0.000759,0.000788,0.000734,0.000745,0.000773,0.000916,0.001069,0.001056,0.000942,0.000778,0.000676,0.000670,0.000675,0.000675,0.000644,0.000597,0.000550,0.000537,0.000555,0.000559,0.000525,0.000454,0.000404,0.000407,0.000442,0.000480 | |||
giharmon53 ftgen 0,0,4096,10,0.026511,0.043338,0.103983,0.172681,0.197084,0.979650,0.257547,0.017830,0.077807,0.064492,0.041376,0.053973,0.027216,0.006355,0.007006,0.001571,0.001221,0.001837,0.007442,0.004872,0.002662,0.002280,0.002188,0.001493,0.002889,0.002534,0.002305,0.002344,0.001085,0.001468,0.002010,0.002087,0.000876,0.000665,0.000602,0.000985,0.000607,0.000521,0.000609,0.000586,0.000566,0.000481,0.000501,0.000665,0.000626,0.000653,0.000579,0.000643,0.000690,0.000651,0.000432,0.000403,0.000504,0.000532,0.000598,0.000456,0.000369,0.000393,0.000370,0.000313,0.000265,0.000292,0.000299,0.000335,0.000381,0.000415,0.000449,0.000480,0.000399,0.000307,0.000245,0.000249,0.000338,0.000468,0.000545,0.000532,0.000495,0.000471,0.000476,0.000450,0.000388,0.000331,0.000297,0.000269,0.000233,0.000202,0.000188,0.000169,0.000158,0.000175,0.000208,0.000254,0.000316,0.000380,0.000433,0.000473,0.000499,0.000504,0.000472,0.000425 | |||
giharmon55 ftgen 0,0,4096,10,0.081729,0.021968,0.138971,0.239901,0.947997,0.478402,0.152261,0.093610,0.063734,0.039617,0.032944,0.006609,0.015447,0.010428,0.006706,0.002730,0.013404,0.010554,0.003963,0.002958,0.000885,0.000799,0.001120,0.001680,0.001729,0.001274,0.001362,0.000943,0.002299,0.001254,0.001112,0.000960,0.001034,0.000866,0.000912,0.000751,0.001101,0.000945,0.000888,0.000760,0.000758,0.000764,0.000797,0.000790,0.000657,0.000779,0.000816,0.000819,0.000797,0.000793,0.000830,0.000803,0.000678,0.000695,0.000912,0.000796,0.000686,0.000833,0.000798,0.000772,0.000941,0.000835,0.000815,0.000695,0.000533,0.000448,0.000405,0.000411,0.000492,0.000554,0.000576,0.000587,0.000573,0.000542,0.000560,0.000560,0.000557,0.000544,0.000547,0.000555,0.000551,0.000537,0.000544,0.000557,0.000533,0.000512,0.000499,0.000514,0.000548,0.000548,0.000539,0.000526,0.000511,0.000513,0.000513,0.000510,0.000506,0.000503,0.000507,0.000508 | |||
giharmon57 ftgen 0,0,4096,10,0.150966,0.141943,0.169272,0.391010,0.953809,0.119929,0.039950,0.075251,0.042294,0.016963,0.005858,0.005238,0.002857,0.003841,0.008582,0.001485,0.001148,0.002596,0.001639,0.001556,0.002197,0.001142,0.001112,0.001195,0.001136,0.001245,0.000909,0.001301,0.000937,0.000941,0.001212,0.001227,0.000900,0.000862,0.000883,0.000728,0.001073,0.001100,0.000883,0.001160,0.000948,0.000936,0.001199,0.000883,0.000791,0.000945,0.000697,0.000592,0.000626,0.000588,0.000617,0.000696,0.000684,0.000803,0.000743,0.000641,0.000514,0.000453,0.000480,0.000536,0.000586,0.000581,0.000619,0.000622,0.000602,0.000589,0.000589,0.000600,0.000582,0.000552,0.000553,0.000557,0.000549,0.000526,0.000512,0.000519,0.000533,0.000535,0.000547,0.000544,0.000539,0.000534,0.000524,0.000512,0.000502,0.000502,0.000502,0.000497,0.000480,0.000468,0.000466,0.000464,0.000461,0.000459,0.000463,0.000470,0.000477,0.000482,0.000483,0.000488 | |||
giharmon60 ftgen 0,0,4096,10,0.306985,0.126374,0.301596,0.969500,0.074344,0.009729,0.006039,0.004002,0.001666,0.001675,0.002331,0.000674,0.000730,0.000729,0.000758,0.000585,0.000577,0.000687,0.000657,0.001017,0.000768,0.000581,0.000549,0.000326,0.000290,0.000463,0.000666,0.000567,0.000312,0.000634,0.000665,0.000397,0.000264,0.000232,0.000286,0.000583,0.000629,0.000663,0.000354,0.000268,0.000259,0.000263,0.000303,0.000274,0.000231,0.000322,0.000471,0.000473,0.000488,0.000569,0.000596,0.000564,0.000445,0.000430,0.000473,0.000519,0.000490,0.000446,0.000488,0.000475,0.000372,0.000301,0.000312,0.000304,0.000374,0.000526,0.000614,0.000564,0.000443,0.000349,0.000321,0.000320,0.000292,0.000243,0.000210,0.000227,0.000301,0.000393,0.000452,0.000473,0.000454,0.000415,0.000375,0.000353,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon62 ftgen 0,0,4096,10,0.969106,0.095726,0.196065,0.188016,0.005133,0.010386,0.004868,0.005030,0.003515,0.002819,0.002632,0.002361,0.001260,0.000235,0.000966,0.001186,0.001018,0.000871,0.001416,0.000300,0.000430,0.000824,0.000912,0.000810,0.000516,0.000452,0.000279,0.000463,0.000690,0.000443,0.000429,0.000374,0.000579,0.000876,0.000457,0.000456,0.000449,0.000577,0.000797,0.000538,0.000571,0.000564,0.000466,0.000418,0.000306,0.000321,0.000334,0.000294,0.000244,0.000204,0.000231,0.000265,0.000340,0.000422,0.000467,0.000400,0.000291,0.000221,0.000207,0.000236,0.000249,0.000246,0.000207,0.000188,0.000203,0.000210,0.000206,0.000193,0.000167,0.000155,0.000192,0.000247,0.000284,0.000296,0.000308,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon64 ftgen 0,0,4096,10,0.361663,0.582855,0.979701,0.215161,0.118878,0.052107,0.013704,0.009061,0.004379,0.007958,0.002817,0.003129,0.003908,0.003040,0.002896,0.002083,0.002113,0.004424,0.003621,0.002331,0.002616,0.002100,0.002293,0.001878,0.002282,0.002077,0.002490,0.002088,0.001811,0.001576,0.001425,0.001407,0.001400,0.001482,0.001847,0.001816,0.001426,0.001730,0.001541,0.001272,0.001398,0.001231,0.001332,0.001350,0.001199,0.001258,0.001149,0.001243,0.001247,0.001156,0.001074,0.001049,0.001142,0.001143,0.001058,0.000978,0.000854,0.000777,0.000688,0.000751,0.000914,0.001100,0.001101,0.001029,0.001044,0.001018,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon65 ftgen 0,0,4096,10,0.314097,0.342771,0.973682,0.028876,0.015118,0.012713,0.002418,0.005174,0.003787,0.002218,0.002249,0.001625,0.002664,0.001830,0.002581,0.001180,0.001626,0.001619,0.001315,0.001513,0.001344,0.001175,0.000964,0.001112,0.001416,0.001129,0.001190,0.001045,0.001248,0.001029,0.000799,0.000750,0.000815,0.000965,0.000955,0.000725,0.000652,0.000709,0.000801,0.000717,0.000786,0.000648,0.000597,0.000630,0.000744,0.000667,0.000613,0.000496,0.000535,0.000596,0.000603,0.000583,0.000599,0.000593,0.000594,0.000603,0.000579,0.000588,0.000623,0.000624,0.000595,0.000573,0.000574,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapharmon ftgen 0,0,128,-27, 0,0, 33,0, 34,1, 36,2, 38,3, 39,3, 40,4, 41,5, 43,6, 45,7, 46,8, 48,9, 50,10, 52,11, 53,12, 55,13, 57,14, 60,15, 62,16, 64,17, 65,18, 127,18 | |||
gitabs4morfharmon ftgen 0,0,32,-2, giharmon33,giharmon34,giharmon36,giharmon38,giharmon39,giharmon40,giharmon41,giharmon43,giharmon45,giharmon46,giharmon48,giharmon50,giharmon52,giharmon53,giharmon55,giharmon57,giharmon60,giharmon62,giharmon64,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (STRAIGHT MUTE) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giMute122 ftgen 0,0,4096,10,0.164339,0.102551,0.069563,0.138697,0.223728,0.265220,0.280256,0.332069,0.420578,0.494911,0.577300,0.438019,0.538305,0.547959,0.857117,0.773953,0.517366,0.523329,0.250443,0.159600,0.171983,0.125233,0.061672,0.045591,0.028822,0.029244,0.026342,0.016326,0.018016,0.016474,0.009454,0.006045,0.003657,0.004270,0.008585,0.014528,0.017452,0.019652,0.016908,0.013257,0.016063,0.015947,0.010616,0.009647,0.007357,0.006942,0.005472,0.008460,0.014247,0.013954,0.009828,0.009192,0.009759,0.008585,0.009964,0.012870,0.010975,0.007757,0.007624,0.008209,0.008005,0.007979,0.007726,0.007655,0.007795,0.007616,0.006725,0.005945,0.005229,0.004482,0.003678,0.003014,0.002618,0.002393,0.002731,0.003322,0.003436,0.002905,0.002194,0.001589,0.001214,0.001156,0.001328,0.001483,0.001561,0.001609,0.001696,0.001872,0.001908,0.002069,0.002367,0.002374,0.002130,0.001840,0.001674,0.001720,0.001812,0.001802,0.001732,0.001622 | |||
giMute123 ftgen 0,0,4096,10,0.168432,0.062246,0.078354,0.110195,0.129041,0.377921,0.282536,0.228004,0.524063,0.552904,0.492429,0.533439,0.241793,0.431759,0.960231,0.527526,0.457018,0.447269,0.173908,0.188096,0.117536,0.088623,0.038960,0.034631,0.040187,0.030976,0.019737,0.017966,0.018488,0.010201,0.006147,0.003826,0.005925,0.007905,0.007681,0.008607,0.015400,0.021169,0.020768,0.019478,0.013836,0.014839,0.014657,0.013690,0.013236,0.016605,0.019334,0.015552,0.016319,0.019658,0.016907,0.011550,0.009411,0.009522,0.010270,0.008678,0.008528,0.008212,0.007305,0.006920,0.008975,0.009992,0.007897,0.006576,0.006398,0.005486,0.004674,0.004082,0.003255,0.002525,0.001877,0.001735,0.002072,0.002316,0.002265,0.001877,0.001508,0.001299,0.001160,0.001268,0.001500,0.001614,0.001649,0.001544,0.001559,0.001869,0.002444,0.002837,0.002564,0.002224,0.002193,0.002264,0.002103,0.001864,0.001829,0.001964,0.001969,0.001708,0.001368,0.001146 | |||
giMute124 ftgen 0,0,4096,10,0.142996,0.083116,0.064144,0.232641,0.363109,0.345440,0.348866,0.301465,0.496059,0.590541,0.450344,0.611392,0.691633,0.939595,0.719155,0.655138,0.609154,0.236629,0.218778,0.154757,0.077033,0.074852,0.040400,0.038516,0.034596,0.023126,0.013779,0.015070,0.008541,0.005439,0.004834,0.008763,0.016084,0.025053,0.033607,0.047747,0.045648,0.045497,0.025409,0.021094,0.022069,0.038009,0.041759,0.063224,0.070253,0.055822,0.048910,0.048219,0.052210,0.039531,0.037339,0.030915,0.028370,0.038122,0.044865,0.047418,0.042297,0.039872,0.040218,0.036388,0.033231,0.028010,0.022884,0.020191,0.018026,0.013653,0.011148,0.010124,0.011725,0.014502,0.015977,0.012802,0.008969,0.006321,0.005229,0.005789,0.006897,0.007670,0.008699,0.009835,0.010769,0.010605,0.010601,0.010721,0.010749,0.010852,0.010291,0.009559,0.008597,0.007779,0.007284,0.006683,0.005906,0.005353,0.005322,0.005542,0.005543,0.005124,0.004449,0.003603 | |||
giMute125 ftgen 0,0,4096,10,0.044114,0.061305,0.127226,0.214587,0.248138,0.322022,0.289079,0.300066,0.219345,0.389034,0.679974,0.361926,0.905776,0.756147,0.724622,0.413971,0.233101,0.180408,0.145204,0.056539,0.046805,0.060866,0.050067,0.038355,0.032608,0.021983,0.011622,0.006955,0.011848,0.020388,0.023077,0.028897,0.039329,0.040006,0.051071,0.030060,0.035671,0.024931,0.038339,0.037708,0.058492,0.053593,0.037184,0.045630,0.043341,0.034029,0.031437,0.034031,0.025773,0.028039,0.030454,0.031458,0.031318,0.029135,0.028627,0.025452,0.021115,0.018088,0.014741,0.013689,0.012102,0.010087,0.009117,0.010501,0.012107,0.011147,0.008670,0.006054,0.004653,0.004909,0.005979,0.007571,0.008945,0.009279,0.009403,0.009990,0.010831,0.011229,0.011576,0.012198,0.011522,0.009582,0.007918,0.007133,0.006815,0.006874,0.006545,0.005823,0.005215,0.004793,0.004226,0.003549,0.002763,0.002034,0.001527,0.001275,0.001284,0.001501,0.001663,0.001513 | |||
giMute126 ftgen 0,0,4096,10,0.060196,0.079208,0.165018,0.403007,0.474143,0.259060,0.390988,0.369395,0.520597,0.147418,0.294315,0.719113,0.948583,0.911775,0.688364,0.284237,0.196457,0.197963,0.098875,0.075773,0.045829,0.020036,0.034330,0.015751,0.015028,0.009926,0.008781,0.011622,0.026268,0.030349,0.027636,0.033521,0.031042,0.039392,0.034047,0.037282,0.023269,0.035915,0.033496,0.040946,0.033303,0.030305,0.029753,0.029612,0.029870,0.024821,0.021197,0.017836,0.015201,0.014801,0.017255,0.016419,0.014400,0.014847,0.014196,0.013845,0.010243,0.007414,0.006884,0.005313,0.005125,0.006712,0.007001,0.005537,0.003835,0.002755,0.002847,0.003574,0.003940,0.004035,0.004370,0.004927,0.004830,0.004569,0.004559,0.004585,0.004513,0.003828,0.003072,0.002596,0.002377,0.002294,0.002087,0.001940,0.001859,0.001843,0.002114,0.002255,0.001844,0.001305,0.000970,0.000768,0.000670,0.000707,0.000807,0.000885,0.000924,0.000852,0.000694,0.000544 | |||
giMute127 ftgen 0,0,4096,10,0.052401,0.049320,0.080590,0.183766,0.164401,0.307439,0.388671,0.284459,0.318081,0.164443,0.441431,0.928201,0.876487,0.740904,0.324363,0.142732,0.081529,0.077495,0.028649,0.043648,0.038991,0.025075,0.013227,0.010195,0.011781,0.010501,0.016602,0.024255,0.023187,0.036495,0.057654,0.054268,0.048563,0.024903,0.054174,0.048040,0.071704,0.054365,0.049624,0.064806,0.092036,0.062098,0.048326,0.054051,0.039134,0.032416,0.036465,0.055694,0.042371,0.035750,0.021224,0.022257,0.011427,0.014694,0.009479,0.004552,0.013174,0.019261,0.013315,0.005818,0.001677,0.002772,0.003021,0.006297,0.007154,0.008171,0.010310,0.008506,0.007517,0.010904,0.006062,0.012403,0.007495,0.006084,0.005664,0.006058,0.004342,0.006256,0.008205,0.007899,0.006624,0.007878,0.003449,0.001680,0.000514,0.001804,0.002081,0.003443,0.004990,0.003472,0.003035,0.002319,0.001815,0.000843,0.001081,0.003090,0.002248,0.001877,0.002589,0.003743 | |||
giMute128 ftgen 0,0,4096,10,0.027923,0.100208,0.119497,0.305740,0.241671,0.283542,0.288061,0.232034,0.826888,0.407135,0.944943,0.754001,0.650071,0.360755,0.163788,0.199546,0.064667,0.047976,0.067193,0.033442,0.022636,0.018891,0.006473,0.006036,0.009904,0.016425,0.024814,0.044941,0.038557,0.069982,0.053960,0.007689,0.060655,0.019491,0.072831,0.052666,0.042308,0.055883,0.044001,0.027661,0.043229,0.023057,0.025173,0.028614,0.031240,0.027168,0.026598,0.023386,0.018674,0.009964,0.010171,0.008959,0.004421,0.009443,0.011811,0.008975,0.005444,0.002992,0.002577,0.004840,0.005217,0.007905,0.008254,0.008604,0.004473,0.009592,0.008601,0.005583,0.008098,0.005796,0.002345,0.007586,0.005015,0.004900,0.007488,0.005743,0.006825,0.002224,0.002742,0.001117,0.001857,0.001298,0.003169,0.002324,0.002382,0.001822,0.001779,0.001092,0.000752,0.001206,0.002075,0.000843,0.001972,0.001844,0.002893,0.002804,0.002542,0.001110,0.001376,0.000804 | |||
giMute129 ftgen 0,0,4096,10,0.014669,0.032320,0.102462,0.174664,0.169222,0.111331,0.339606,0.209754,0.217866,0.343088,0.891951,0.530957,0.472318,0.164643,0.165367,0.091601,0.090801,0.015419,0.039607,0.019025,0.012281,0.004714,0.002434,0.014861,0.038522,0.020090,0.049806,0.050949,0.061040,0.054492,0.035308,0.046103,0.018911,0.085037,0.066539,0.090037,0.115123,0.114020,0.059158,0.070988,0.070450,0.068910,0.054753,0.043435,0.030742,0.021866,0.024247,0.013293,0.017833,0.010515,0.011265,0.016382,0.023641,0.010420,0.007923,0.005015,0.009328,0.008929,0.010346,0.011125,0.009063,0.009311,0.010454,0.010758,0.009200,0.014939,0.006906,0.005195,0.007827,0.007531,0.008761,0.010132,0.008289,0.010958,0.004572,0.001934,0.001818,0.002642,0.002171,0.002199,0.002528,0.001704,0.001645,0.001110,0.000567,0.001256,0.000671,0.001415,0.003604,0.003233,0.002086,0.001933,0.001526,0.000662,0.001458,0.000497,0.000845,0.000680,0.001138,0.001279 | |||
giMute130 ftgen 0,0,4096,10,0.064908,0.079846,0.127850,0.445046,0.330968,0.420691,0.480533,0.374119,0.245280,0.729167,0.936260,0.749421,0.381456,0.247718,0.207617,0.116908,0.051373,0.019507,0.008564,0.025213,0.010576,0.007009,0.011265,0.017944,0.027208,0.040488,0.021178,0.046272,0.038151,0.021208,0.044463,0.023287,0.045981,0.030790,0.020921,0.015858,0.026172,0.019160,0.017080,0.011607,0.015955,0.006307,0.009311,0.006865,0.003784,0.003961,0.002271,0.002504,0.000904,0.002864,0.002378,0.001916,0.001531,0.000626,0.001045,0.001491,0.001672,0.000890,0.001666,0.001476,0.001501,0.000957,0.003007,0.001529,0.001037,0.001154,0.001031,0.000515,0.000881,0.000327,0.000467,0.000436,0.000280,0.000329,0.000454,0.000243,0.000168,0.000282,0.000948,0.000411,0.000184,0.000452,0.000360,0.000354,0.000193,0.000243,0.000591,0.000203,0.000418,0.000245,0.000193,0.000287,0.000162,0.000386,0.000147,0.000097,0.000291,0.000161,0.000222,0.000228 | |||
giMute131 ftgen 0,0,4096,10,0.068230,0.065611,0.217451,0.232412,0.188182,0.427625,0.292296,0.554990,0.340081,0.915514,0.522787,0.307999,0.162151,0.094669,0.056724,0.027329,0.011538,0.010489,0.008261,0.001997,0.007832,0.008040,0.029670,0.021346,0.029403,0.071206,0.042160,0.041297,0.059757,0.018923,0.105664,0.038842,0.027166,0.042666,0.031872,0.028802,0.030657,0.019773,0.024186,0.023554,0.016848,0.015145,0.013926,0.008132,0.010479,0.005103,0.002808,0.010621,0.007445,0.004301,0.001100,0.003068,0.003063,0.004833,0.003047,0.003019,0.003716,0.005204,0.002390,0.002979,0.001408,0.001568,0.001539,0.001833,0.002366,0.001838,0.000682,0.001960,0.000613,0.000686,0.000652,0.000399,0.000606,0.000602,0.000521,0.000455,0.000432,0.000091,0.000136,0.000332,0.000272,0.000302,0.000126,0.000375,0.000314,0.000203,0.000126,0.000237,0.000293,0.000291,0.000185,0.000182,0.000275,0.000263,0.000195,0.000151,0.000202,0.000294,0.000205,0.000198 | |||
giMute132 ftgen 0,0,4096,10,0.072458,0.092631,0.167684,0.302817,0.140977,0.255042,0.110714,0.344468,0.928686,0.667412,0.338258,0.200769,0.147649,0.065744,0.004582,0.023573,0.011837,0.008391,0.007660,0.014753,0.031615,0.027782,0.039431,0.047372,0.049448,0.013895,0.042049,0.032148,0.026316,0.026284,0.049745,0.043954,0.026083,0.037453,0.029582,0.022591,0.018017,0.013163,0.009816,0.004994,0.005845,0.002926,0.004507,0.007678,0.002757,0.002125,0.001498,0.002105,0.002073,0.003179,0.003552,0.003030,0.003107,0.003121,0.004471,0.001227,0.002877,0.002488,0.002740,0.003051,0.002796,0.002240,0.000296,0.000464,0.000414,0.001290,0.000687,0.001086,0.000537,0.000387,0.000130,0.000370,0.000092,0.000561,0.000559,0.000109,0.000094,0.000089,0.000290,0.000073,0.000183,0.000250,0.000318,0.000509,0.000515,0.000390,0.000503,0.000327,0.000338,0.000232,0.000327,0.000154,0.000173,0.000108,0.000092,0.000271,0.000089,0.000076,0.000105,0.000132 | |||
giMute133 ftgen 0,0,4096,10,0.171302,0.215302,0.554037,0.602813,0.500383,0.551353,0.792246,0.972277,0.915826,0.832314,0.393008,0.188469,0.087171,0.051938,0.057335,0.030089,0.018181,0.012795,0.030872,0.033984,0.097553,0.117375,0.088919,0.019750,0.074370,0.074970,0.077987,0.098699,0.118454,0.054334,0.051802,0.037932,0.045722,0.044228,0.016572,0.018704,0.013524,0.013398,0.003788,0.004323,0.010291,0.003069,0.001274,0.001330,0.002466,0.002824,0.003268,0.005612,0.003975,0.000819,0.002777,0.002460,0.002046,0.001584,0.002892,0.002346,0.003012,0.001881,0.000649,0.000801,0.000646,0.001523,0.001240,0.001310,0.000390,0.000248,0.000279,0.000518,0.000341,0.000512,0.000393,0.000190,0.000358,0.000126,0.000196,0.000125,0.000251,0.000327,0.000531,0.000833,0.000907,0.000336,0.000482,0.000237,0.000687,0.000266,0.000316,0.000368,0.000104,0.000129,0.000172,0.000171,0.000167,0.000055,0.000143,0.000116,0.000132,0.000198,0.000238,0.000318 | |||
giMute134 ftgen 0,0,4096,10,0.097133,0.173820,0.374605,0.474497,0.645937,0.376089,0.435327,0.976798,0.725285,0.297676,0.120366,0.069249,0.033502,0.014976,0.014214,0.011249,0.006081,0.003570,0.011892,0.014690,0.022764,0.024186,0.025001,0.044955,0.049727,0.048851,0.047898,0.053897,0.023052,0.038993,0.025427,0.027582,0.022350,0.021270,0.010750,0.009160,0.013099,0.002909,0.008796,0.006376,0.001857,0.001716,0.003061,0.001735,0.002918,0.004325,0.002877,0.003817,0.005184,0.003931,0.001995,0.004293,0.003739,0.003678,0.003158,0.002071,0.001133,0.000232,0.000323,0.001563,0.001268,0.000658,0.000426,0.000063,0.000421,0.000195,0.000767,0.000535,0.000446,0.000289,0.000184,0.000296,0.000288,0.000200,0.000535,0.000186,0.000733,0.000229,0.000412,0.000107,0.000166,0.000355,0.000312,0.000317,0.000354,0.000185,0.000132,0.000137,0.000206,0.000233,0.000262,0.000150,0.000123,0.000145,0.000145,0.000117,0.000140,0.000106,0.000135,0.000169 | |||
giMute135 ftgen 0,0,4096,10,0.179021,0.401691,0.729330,0.982922,0.746447,0.524380,0.900583,0.585038,0.953435,0.443166,0.289448,0.098763,0.031244,0.011392,0.020066,0.020371,0.036289,0.021837,0.044660,0.116353,0.070855,0.059093,0.066299,0.083923,0.069741,0.061417,0.033091,0.045547,0.029414,0.028975,0.021471,0.021629,0.010855,0.013960,0.004240,0.008225,0.009562,0.004312,0.001601,0.002687,0.001271,0.003054,0.004689,0.003158,0.006429,0.004058,0.005468,0.002640,0.001551,0.003253,0.003142,0.003027,0.001217,0.000340,0.000216,0.000471,0.000540,0.000381,0.000432,0.000182,0.000650,0.000176,0.000758,0.000323,0.000522,0.000156,0.000289,0.000185,0.000281,0.000179,0.000391,0.000461,0.000214,0.000356,0.000189,0.000425,0.000214,0.000172,0.000322,0.000195,0.000387,0.000323,0.000373,0.000170,0.000176,0.000048,0.000079,0.000049,0.000161,0.000129,0.000141,0.000083,0.000119,0.000204,0.000318,0.000410,0.000202,0.000283,0.000292,0.000127 | |||
giMute136 ftgen 0,0,4096,10,0.084007,0.199308,0.212901,0.389112,0.310014,0.209644,0.951984,0.633937,0.286005,0.146120,0.053652,0.047694,0.020100,0.016786,0.003816,0.018198,0.008332,0.020077,0.037293,0.016675,0.022299,0.027356,0.023496,0.049061,0.039132,0.026396,0.012922,0.017081,0.012583,0.010068,0.005525,0.002721,0.003104,0.004799,0.003308,0.002047,0.001239,0.002036,0.002197,0.002242,0.003547,0.004859,0.003272,0.001567,0.002063,0.002229,0.001760,0.001286,0.001961,0.000541,0.000366,0.000986,0.000730,0.000861,0.000630,0.000616,0.000358,0.001058,0.000464,0.000438,0.000450,0.000487,0.000193,0.000559,0.000479,0.000260,0.000259,0.000887,0.000529,0.000258,0.000611,0.000375,0.000388,0.000092,0.000430,0.000337,0.000138,0.000312,0.000579,0.000492,0.000207,0.000330,0.000350,0.000212,0.000159,0.000387,0.000350,0.000158,0.000191,0.000374,0.000113,0.000150,0.000260,0.000156,0.000117,0.000208,0.000235,0.000105,0.000074,0.000268 | |||
giMute137 ftgen 0,0,4096,10,0.121187,0.301409,0.437255,0.488546,0.532406,0.556320,0.940536,0.612558,0.171145,0.078278,0.033359,0.039980,0.019198,0.003684,0.014541,0.021902,0.025869,0.028022,0.020078,0.018008,0.063141,0.040559,0.061443,0.025176,0.045882,0.030795,0.027823,0.023490,0.015819,0.011054,0.004279,0.008778,0.007683,0.002850,0.002807,0.001837,0.004594,0.006832,0.003882,0.006682,0.004472,0.002359,0.002653,0.002120,0.002271,0.001366,0.001048,0.000977,0.001563,0.000795,0.000741,0.000197,0.000435,0.000663,0.000303,0.000697,0.000460,0.000621,0.000388,0.000298,0.000103,0.000484,0.000378,0.000376,0.000296,0.000134,0.000043,0.000150,0.000155,0.000176,0.000187,0.000055,0.000111,0.000091,0.000143,0.000129,0.000153,0.000171,0.000204,0.000159,0.000206,0.000139,0.000065,0.000078,0.000107,0.000102,0.000128,0.000113,0.000157,0.000150,0.000078,0.000128,0.000144,0.000084,0.000114,0.000188,0.000043,0.000106,0.000116,0.000128 | |||
giMute138 ftgen 0,0,4096,10,0.137239,0.608302,0.333203,0.546467,0.231739,0.766708,0.950744,0.327806,0.160412,0.060869,0.019878,0.003953,0.008113,0.006915,0.028018,0.027245,0.043331,0.020302,0.014454,0.025972,0.026882,0.018782,0.017822,0.013846,0.010287,0.009995,0.005808,0.004941,0.003243,0.000812,0.002013,0.001670,0.000819,0.000666,0.000772,0.000298,0.000436,0.000772,0.000741,0.000154,0.001321,0.000422,0.000226,0.000631,0.000439,0.000344,0.000337,0.000336,0.000616,0.000238,0.000312,0.000215,0.000181,0.000430,0.000292,0.000227,0.000331,0.000311,0.000246,0.000311,0.000279,0.000324,0.000208,0.000103,0.000266,0.000302,0.000310,0.000240,0.000310,0.000296,0.000228,0.000305,0.000203,0.000181,0.000235,0.000154,0.000238,0.000155,0.000185,0.000226,0.000170,0.000202,0.000202,0.000228,0.000150,0.000178,0.000239,0.000187,0.000194,0.000253,0.000070,0.000165,0.000223,0.000127,0.000156,0.000160,0.000180,0.000163,0.000129,0.000224 | |||
giMute139 ftgen 0,0,4096,10,0.061443,0.238708,0.356688,0.269787,0.339649,0.912187,0.776022,0.165931,0.073909,0.021161,0.016878,0.008990,0.003708,0.022300,0.041143,0.038233,0.004859,0.023579,0.053718,0.052003,0.042268,0.022601,0.022660,0.029648,0.019517,0.017414,0.011974,0.004870,0.011305,0.003101,0.000546,0.002006,0.003619,0.004048,0.005624,0.003647,0.002198,0.002634,0.003291,0.001943,0.000613,0.000545,0.000250,0.000451,0.000789,0.000299,0.000410,0.000212,0.000138,0.000424,0.000415,0.000404,0.000244,0.000269,0.000335,0.000329,0.000230,0.000373,0.000400,0.000370,0.000260,0.000376,0.000293,0.000187,0.000119,0.000256,0.000177,0.000244,0.000278,0.000293,0.000302,0.000158,0.000215,0.000196,0.000203,0.000167,0.000136,0.000170,0.000168,0.000137,0.000166,0.000168,0.000160,0.000177,0.000247,0.000183,0.000197,0.000135,0.000162,0.000164,0.000186,0.000121,0.000206,0.000166,0.000144,0.000145,0.000141,0.000122,0.000131,0.000148 | |||
giMute140 ftgen 0,0,4096,10,0.171458,0.486737,0.414556,0.287720,0.507039,0.974434,0.387302,0.180263,0.044683,0.029233,0.014770,0.003589,0.009392,0.033786,0.054370,0.010033,0.024497,0.035533,0.046495,0.020949,0.024322,0.023346,0.018462,0.011212,0.009184,0.003515,0.005537,0.002905,0.001147,0.001777,0.002912,0.002534,0.003007,0.002041,0.002109,0.001352,0.001160,0.001111,0.000145,0.000433,0.000205,0.000056,0.000347,0.000268,0.000294,0.000170,0.000469,0.000118,0.000167,0.000252,0.000207,0.000132,0.000371,0.000145,0.000293,0.000072,0.000271,0.000135,0.000201,0.000141,0.000204,0.000171,0.000237,0.000126,0.000167,0.000093,0.000231,0.000074,0.000160,0.000043,0.000250,0.000055,0.000217,0.000066,0.000199,0.000066,0.000231,0.000104,0.000233,0.000061,0.000246,0.000078,0.000219,0.000099,0.000254,0.000073,0.000200,0.000053,0.000175,0.000057,0.000197,0.000066,0.000126,0.000068,0.000163,0.000069,0.000139,0.000114,0.000270,0.000106 | |||
giMute141 ftgen 0,0,4096,10,0.096700,0.501938,0.304973,0.388545,0.605784,0.973491,0.310298,0.166062,0.031823,0.020041,0.008197,0.018099,0.031406,0.032118,0.028621,0.035283,0.026152,0.031724,0.045821,0.032749,0.023933,0.009329,0.006590,0.003520,0.002035,0.005414,0.003178,0.001420,0.002462,0.001216,0.000800,0.002760,0.002395,0.001093,0.001088,0.001647,0.001527,0.000979,0.001163,0.001119,0.001071,0.001064,0.001131,0.001297,0.001070,0.001080,0.000990,0.000967,0.000985,0.001105,0.000916,0.000726,0.000869,0.000896,0.000931,0.000845,0.000797,0.000762,0.000805,0.000802,0.000683,0.000685,0.000708,0.000714,0.000719,0.000727,0.000634,0.000711,0.000686,0.000637,0.000694,0.000701,0.000592,0.000664,0.000534,0.000558,0.000681,0.000688,0.000614,0.000609,0.000647,0.000479,0.000513,0.000489,0.000396,0.000420,0.000504,0.000454,0.000492,0.000467,0.000503,0.000515,0.000470,0.000401,0.000502,0.000592,0.000567,0.000411,0.000453,0.000449 | |||
giMute142 ftgen 0,0,4096,10,0.079836,0.330689,0.372144,0.493873,0.925375,0.694151,0.118777,0.028983,0.015396,0.009622,0.001526,0.002627,0.008783,0.011024,0.010140,0.015272,0.009621,0.006265,0.004497,0.003760,0.002472,0.001108,0.000363,0.000521,0.000643,0.000834,0.000511,0.000843,0.000434,0.000735,0.001056,0.000991,0.001287,0.000997,0.000751,0.000669,0.000309,0.000891,0.000656,0.000613,0.000705,0.000663,0.000676,0.000561,0.000583,0.000611,0.000611,0.000702,0.000495,0.000478,0.000451,0.000393,0.000461,0.000506,0.000433,0.000473,0.000465,0.000454,0.000425,0.000361,0.000423,0.000458,0.000385,0.000422,0.000473,0.000380,0.000405,0.000421,0.000338,0.000379,0.000351,0.000358,0.000335,0.000353,0.000378,0.000372,0.000313,0.000331,0.000343,0.000315,0.000320,0.000280,0.000296,0.000226,0.000364,0.000296,0.000272,0.000282,0.000254,0.000289,0.000277,0.000204,0.000220,0.000269,0.000299,0.000321,0.000450,0.000259,0.000266,0.000435 | |||
giMute143 ftgen 0,0,4096,10,0.093603,0.658042,0.988507,0.565236,0.957972,0.360885,0.102049,0.051660,0.027922,0.005483,0.010335,0.012495,0.003673,0.003952,0.012964,0.008898,0.005397,0.006281,0.001252,0.006122,0.003828,0.000827,0.003226,0.002089,0.001925,0.000243,0.002872,0.002421,0.003325,0.002270,0.001755,0.001168,0.001149,0.000770,0.000928,0.000937,0.000720,0.000406,0.000688,0.000732,0.000790,0.000819,0.000398,0.000728,0.000703,0.001198,0.000151,0.000857,0.000600,0.000571,0.000660,0.000529,0.000450,0.000520,0.000520,0.000470,0.000463,0.000462,0.000454,0.000347,0.000590,0.000427,0.000210,0.000402,0.000401,0.000381,0.000525,0.000294,0.000410,0.000335,0.000296,0.000348,0.000580,0.000399,0.000186,0.000198,0.000288,0.000442,0.000411,0.000234,0.000356,0.000386,0.000271,0.000338,0.000271,0.000303,0.000385,0.000352,0.000226,0.000193,0.000103,0.000388,0.000349,0.000222,0.000208,0.000266,0.000232,0.000314,0.000425,0.000268 | |||
giMute144 ftgen 0,0,4096,10,0.127739,0.412859,0.669901,0.617303,0.972749,0.358440,0.065748,0.045528,0.010129,0.008737,0.005631,0.028396,0.004839,0.008872,0.006019,0.011096,0.006903,0.003885,0.004722,0.003204,0.000936,0.002573,0.001532,0.001369,0.001172,0.001160,0.002432,0.000544,0.000609,0.001867,0.000966,0.001039,0.001031,0.000884,0.000753,0.000848,0.000659,0.000749,0.000579,0.000769,0.000665,0.000754,0.000781,0.000490,0.000653,0.000626,0.000524,0.000572,0.000539,0.000566,0.000514,0.000414,0.000441,0.000453,0.000417,0.000478,0.000444,0.000495,0.000551,0.000346,0.000475,0.000442,0.000477,0.000269,0.000501,0.000483,0.000442,0.000267,0.000338,0.000368,0.000470,0.000382,0.000335,0.000358,0.000341,0.000354,0.000345,0.000310,0.000359,0.000228,0.000299,0.000348,0.000336,0.000319,0.000275,0.000294,0.000244,0.000271,0.000232,0.000358,0.000237,0.000269,0.000247,0.000360,0.000301,0.000208,0.000223,0.000248,0.000270,0.000258 | |||
giMute145 ftgen 0,0,4096,10,0.172584,0.253006,0.499844,0.963093,0.599448,0.063091,0.027923,0.009556,0.005430,0.007267,0.030576,0.010839,0.007632,0.008691,0.007373,0.004773,0.004338,0.006857,0.003189,0.000319,0.002787,0.001103,0.001002,0.001076,0.001129,0.001241,0.000702,0.000657,0.000919,0.000769,0.000959,0.000576,0.000715,0.000619,0.000732,0.000611,0.000499,0.000600,0.000491,0.000700,0.000580,0.000348,0.000432,0.000611,0.000489,0.000494,0.000446,0.000425,0.000537,0.000395,0.000420,0.000348,0.000423,0.000452,0.000417,0.000289,0.000444,0.000331,0.000335,0.000289,0.000366,0.000340,0.000289,0.000333,0.000336,0.000346,0.000297,0.000305,0.000318,0.000278,0.000199,0.000327,0.000258,0.000240,0.000298,0.000311,0.000247,0.000309,0.000274,0.000297,0.000343,0.000148,0.000267,0.000204,0.000326,0.000251,0.000194,0.000230,0.000250,0.000186,0.000238,0.000251,0.000196,0.000238,0.000292,0.000233,0.000162,0.000197,0.000198,0.000193 | |||
giMute146 ftgen 0,0,4096,10,0.169930,0.357871,0.478870,0.971148,0.103667,0.027577,0.012460,0.004728,0.004455,0.018143,0.018903,0.009745,0.013588,0.009707,0.007034,0.005601,0.003105,0.000981,0.000341,0.001493,0.000631,0.000446,0.000832,0.000522,0.000996,0.001277,0.000334,0.000333,0.000435,0.000326,0.000323,0.000353,0.000202,0.000214,0.000190,0.000284,0.000171,0.000339,0.000329,0.000183,0.000124,0.000342,0.000303,0.000128,0.000091,0.000224,0.000255,0.000167,0.000148,0.000089,0.000154,0.000248,0.000151,0.000141,0.000149,0.000108,0.000284,0.000121,0.000121,0.000193,0.000201,0.000123,0.000226,0.000223,0.000154,0.000094,0.000194,0.000058,0.000146,0.000232,0.000097,0.000224,0.000132,0.000062,0.000163,0.000214,0.000246,0.000418,0.000139,0.000221,0.000100,0.000095,0.000131,0.000152,0.000158,0.000051,0.000077,0.000080,0.000061,0.000131,0.000109,0.000055,0.000120,0.000091,0.000080,0.000081,0.000120,0.000053,0.000045,0.000123 | |||
giMute147 ftgen 0,0,4096,10,0.175950,0.306151,0.921267,0.803899,0.232506,0.029817,0.015312,0.002411,0.010177,0.008768,0.003962,0.004998,0.003485,0.001495,0.002390,0.001727,0.000838,0.000237,0.000572,0.000579,0.000740,0.001153,0.000286,0.000378,0.000226,0.000269,0.000314,0.000265,0.000200,0.000117,0.000250,0.000150,0.000183,0.000079,0.000168,0.000177,0.000049,0.000188,0.000111,0.000136,0.000108,0.000088,0.000122,0.000076,0.000110,0.000119,0.000091,0.000137,0.000123,0.000074,0.000144,0.000146,0.000077,0.000035,0.000056,0.000085,0.000020,0.000095,0.000092,0.000051,0.000122,0.000063,0.000147,0.000073,0.000076,0.000045,0.000098,0.000114,0.000063,0.000075,0.000037,0.000125,0.000019,0.000072,0.000077,0.000087,0.000132,0.000061,0.000112,0.000071,0.000050,0.000051,0.000054,0.000046,0.000107,0.000026,0.000027,0.000021,0.000035,0.000042,0.000030,0.000041,0.000038,0.000047,0.000015,0.000021,0.000032,0.000120,0.000147,0.000238 | |||
giMute148 ftgen 0,0,4096,10,0.546831,0.588315,0.974745,0.966438,0.134855,0.030603,0.009346,0.000932,0.030580,0.012583,0.020113,0.009766,0.016236,0.007109,0.004226,0.002316,0.001376,0.000358,0.001380,0.001135,0.000319,0.000940,0.000401,0.000703,0.000385,0.000515,0.000292,0.000252,0.000145,0.000137,0.000403,0.000278,0.000292,0.000275,0.000222,0.000110,0.000160,0.000085,0.000217,0.000270,0.000172,0.000158,0.000177,0.000095,0.000182,0.000067,0.000232,0.000159,0.000178,0.000150,0.000206,0.000086,0.000273,0.000112,0.000141,0.000195,0.000084,0.000079,0.000246,0.000201,0.000063,0.000129,0.000125,0.000117,0.000158,0.000162,0.000192,0.000121,0.000175,0.000267,0.000096,0.000179,0.000039,0.000074,0.000268,0.000160,0.000033,0.000069,0.000065,0.000055,0.000088,0.000054,0.000142,0.000087,0.000045,0.000095,0.000026,0.000039,0.000075,0.000073,0.000067,0.000054,0.000068,0.000091,0.000101,0.000092,0.000171,0.000084,0.000049,0.000055 | |||
giMute149 ftgen 0,0,4096,10,0.294629,0.975075,0.694387,0.796446,0.188314,0.013147,0.006022,0.018607,0.064160,0.026936,0.065686,0.065969,0.031796,0.020120,0.015238,0.003443,0.002738,0.001360,0.003362,0.001182,0.001135,0.002047,0.001013,0.000558,0.000429,0.000717,0.000504,0.000555,0.000624,0.000479,0.000343,0.000421,0.000606,0.000462,0.000385,0.000445,0.000230,0.000176,0.000301,0.000222,0.000323,0.000195,0.000306,0.000246,0.000307,0.000237,0.000215,0.000210,0.000380,0.000241,0.000377,0.000152,0.000491,0.000197,0.000367,0.000186,0.000204,0.000108,0.000304,0.000260,0.000093,0.000231,0.000163,0.000112,0.000185,0.000239,0.000226,0.000179,0.000200,0.000203,0.000175,0.000088,0.000156,0.000218,0.000201,0.000222,0.000100,0.000212,0.000151,0.000114,0.000168,0.000167,0.000170,0.000170,0.000116,0.000205,0.000116,0.000133,0.000139,0.000176,0.000154,0.000145,0.000119,0.000095,0.000085,0.000125,0.000145,0.000106,0.000145,0.000141 | |||
giMute150 ftgen 0,0,4096,10,0.594912,0.608509,0.961469,0.229985,0.033626,0.009789,0.002734,0.011904,0.013878,0.018699,0.018956,0.006098,0.006134,0.002889,0.000518,0.000310,0.000591,0.000264,0.000257,0.000698,0.000478,0.000286,0.000276,0.000212,0.000349,0.000257,0.000272,0.000224,0.000177,0.000174,0.000082,0.000176,0.000161,0.000172,0.000230,0.000066,0.000165,0.000161,0.000152,0.000109,0.000094,0.000130,0.000185,0.000186,0.000258,0.000200,0.000154,0.000204,0.000184,0.000157,0.000047,0.000131,0.000123,0.000097,0.000062,0.000144,0.000118,0.000149,0.000134,0.000157,0.000198,0.000063,0.000156,0.000144,0.000094,0.000105,0.000096,0.000093,0.000113,0.000081,0.000076,0.000079,0.000049,0.000061,0.000040,0.000104,0.000079,0.000022,0.000068,0.000078,0.000072,0.000063,0.000085,0.000086,0.000053,0.000080,0.000082,0.000054,0.000046,0.000081,0.000075,0.000056,0.000061,0.000025,0.000072,0.000042,0.000050,0.000054,0.000053,0.000068 | |||
giMute151 ftgen 0,0,4096,10,0.206347,0.510370,0.950258,0.127507,0.010206,0.002549,0.001810,0.012483,0.004635,0.004683,0.005187,0.003165,0.001760,0.000999,0.000554,0.000268,0.000624,0.000195,0.000027,0.000147,0.000141,0.000163,0.000117,0.000060,0.000105,0.000099,0.000067,0.000093,0.000160,0.000103,0.000140,0.000060,0.000090,0.000115,0.000051,0.000073,0.000045,0.000055,0.000143,0.000072,0.000114,0.000130,0.000048,0.000106,0.000081,0.000052,0.000096,0.000074,0.000050,0.000088,0.000108,0.000167,0.000065,0.000093,0.000168,0.000053,0.000085,0.000083,0.000061,0.000128,0.000058,0.000064,0.000040,0.000027,0.000100,0.000081,0.000054,0.000030,0.000036,0.000081,0.000048,0.000047,0.000067,0.000034,0.000037,0.000030,0.000021,0.000028,0.000043,0.000106,0.000063,0.000019,0.000039,0.000057,0.000021,0.000037,0.000026,0.000041,0.000039,0.000032,0.000024,0.000048,0.000021,0.000064,0.000037,0.000065,0.000049,0.000031,0.000048,0.000014 | |||
giMute152 ftgen 0,0,4096,10,0.718310,0.828992,0.971094,0.089148,0.007432,0.001882,0.006326,0.016275,0.013664,0.005083,0.004192,0.002987,0.000575,0.000244,0.000598,0.000195,0.000566,0.000394,0.000580,0.000162,0.000255,0.000166,0.000116,0.000132,0.000146,0.000108,0.000133,0.000237,0.000251,0.000229,0.000158,0.000127,0.000139,0.000150,0.000119,0.000043,0.000076,0.000198,0.000147,0.000151,0.000075,0.000073,0.000078,0.000098,0.000125,0.000095,0.000098,0.000053,0.000180,0.000068,0.000097,0.000168,0.000085,0.000055,0.000094,0.000084,0.000102,0.000047,0.000079,0.000083,0.000046,0.000050,0.000047,0.000066,0.000081,0.000049,0.000040,0.000040,0.000068,0.000075,0.000057,0.000054,0.000024,0.000106,0.000054,0.000084,0.000044,0.000058,0.000034,0.000045,0.000058,0.000029,0.000068,0.000046,0.000029,0.000029,0.000066,0.000045,0.000077,0.000038,0.000027,0.000035,0.000043,0.000036,0.000049,0.000024,0.000024,0.000045,0.000046,0.000034 | |||
giMute153 ftgen 0,0,4096,10,0.551061,0.501444,0.953401,0.068491,0.008520,0.012056,0.020903,0.021636,0.008585,0.007399,0.006298,0.001414,0.000788,0.000891,0.000358,0.000686,0.001110,0.000613,0.000691,0.000460,0.000664,0.000614,0.000565,0.000426,0.000472,0.000397,0.000391,0.000456,0.000378,0.000437,0.000434,0.000310,0.000368,0.000415,0.000400,0.000343,0.000353,0.000349,0.000357,0.000326,0.000313,0.000231,0.000257,0.000212,0.000281,0.000273,0.000286,0.000207,0.000174,0.000326,0.000097,0.000332,0.000115,0.000149,0.000211,0.000305,0.000186,0.000198,0.000220,0.000141,0.000131,0.000182,0.000188,0.000186,0.000182,0.000117,0.000163,0.000173,0.000185,0.000121,0.000186,0.000073,0.000203,0.000192,0.000150,0.000147,0.000131,0.000138,0.000145,0.000135,0.000111,0.000135,0.000109,0.000125,0.000126,0.000121,0.000105,0.000083,0.000102,0.000109,0.000069,0.000107,0.000148,0.000139,0.000126,0.000096,0.000101,0.000123,0.000104,0.000104 | |||
giMute154 ftgen 0,0,4096,10,0.965465,0.238341,0.801452,0.050222,0.006640,0.011475,0.012533,0.012724,0.004704,0.006848,0.004228,0.001130,0.001409,0.001463,0.000398,0.000800,0.000513,0.001091,0.001100,0.000393,0.000445,0.000310,0.000446,0.000589,0.000358,0.000505,0.000369,0.000525,0.000346,0.000322,0.000437,0.000435,0.000262,0.000286,0.000307,0.000308,0.000358,0.000350,0.000347,0.000237,0.000076,0.000385,0.000217,0.000215,0.000278,0.000200,0.000335,0.000203,0.000329,0.000194,0.000066,0.000171,0.000388,0.000178,0.000305,0.000205,0.000231,0.000150,0.000228,0.000249,0.000070,0.000179,0.000201,0.000134,0.000138,0.000151,0.000193,0.000156,0.000150,0.000137,0.000132,0.000132,0.000128,0.000118,0.000138,0.000126,0.000141,0.000133,0.000148,0.000184,0.000137,0.000131,0.000138,0.000107,0.000100,0.000116,0.000121,0.000092,0.000099,0.000106,0.000080,0.000101,0.000102,0.000073,0.000094,0.000104,0.000107,0.000106,0.000093,0.000085 | |||
giMute155 ftgen 0,0,4096,10,0.938142,0.970313,0.508740,0.021568,0.001864,0.002894,0.002724,0.002263,0.003861,0.001793,0.000443,0.001267,0.000409,0.000899,0.000541,0.000180,0.000417,0.000464,0.000377,0.000359,0.000247,0.000485,0.000254,0.000339,0.000219,0.000319,0.000168,0.000254,0.000251,0.000160,0.000021,0.000183,0.000145,0.000251,0.000161,0.000219,0.000034,0.000174,0.000112,0.000219,0.000100,0.000130,0.000289,0.000226,0.000368,0.000095,0.000094,0.000122,0.000072,0.000121,0.000126,0.000143,0.000135,0.000153,0.000050,0.000099,0.000080,0.000071,0.000089,0.000079,0.000117,0.000090,0.000082,0.000068,0.000126,0.000073,0.000077,0.000094,0.000076,0.000063,0.000056,0.000070,0.000076,0.000063,0.000036,0.000059,0.000040,0.000039,0.000031,0.000048,0.000048,0.000066,0.000072,0.000047,0.000057,0.000058,0.000066,0.000033,0.000044,0.000035,0.000051,0.000038,0.000039,0.000047,0.000046,0.000052,0.000050,0.000033,0.000052,0.000039 | |||
giMute156 ftgen 0,0,4096,10,0.625565,0.965980,0.202403,0.024063,0.002481,0.005337,0.005024,0.008205,0.003554,0.001210,0.000983,0.001570,0.000901,0.000291,0.000664,0.000883,0.000489,0.000671,0.000602,0.000605,0.000552,0.000393,0.000580,0.000544,0.000508,0.000536,0.000523,0.000420,0.000400,0.000436,0.000414,0.000508,0.000302,0.000362,0.000336,0.000489,0.000355,0.000362,0.000320,0.000350,0.000246,0.000251,0.000326,0.000214,0.000175,0.000260,0.000273,0.000224,0.000202,0.000232,0.000185,0.000237,0.000245,0.000169,0.000199,0.000160,0.000153,0.000211,0.000161,0.000157,0.000165,0.000177,0.000207,0.000214,0.000158,0.000167,0.000146,0.000138,0.000161,0.000162,0.000163,0.000138,0.000160,0.000141,0.000113,0.000139,0.000144,0.000099,0.000091,0.000160,0.000120,0.000102,0.000131,0.000108,0.000113,0.000114,0.000113,0.000111,0.000105,0.000113,0.000123,0.000107,0.000110,0.000112,0.000110,0.000106,0.000122,0.000112,0.000105,0.000101 | |||
giMute157 ftgen 0,0,4096,10,0.314475,0.959696,0.048444,0.004582,0.006574,0.012611,0.005426,0.002115,0.000604,0.000404,0.000356,0.000685,0.001096,0.000409,0.000072,0.000321,0.000329,0.000236,0.000403,0.000240,0.000158,0.000233,0.000268,0.000168,0.000154,0.000209,0.000165,0.000121,0.000111,0.000136,0.000085,0.000217,0.000086,0.000083,0.000149,0.000151,0.000115,0.000148,0.000123,0.000087,0.000095,0.000113,0.000089,0.000044,0.000137,0.000116,0.000130,0.000027,0.000101,0.000085,0.000121,0.000079,0.000106,0.000042,0.000011,0.000071,0.000080,0.000029,0.000039,0.000081,0.000041,0.000060,0.000040,0.000068,0.000066,0.000052,0.000050,0.000031,0.000056,0.000054,0.000039,0.000051,0.000037,0.000059,0.000054,0.000037,0.000046,0.000043,0.000038,0.000041,0.000031,0.000049,0.000033,0.000040,0.000038,0.000035,0.000050,0.000040,0.000043,0.000039,0.000051,0.000035,0.000045,0.000020,0.000038,0.000032,0.000026,0.000030,0.000031,0.000030 | |||
giMute158 ftgen 0,0,4096,10,0.428817,0.965152,0.013016,0.001790,0.004347,0.004997,0.005604,0.002582,0.000836,0.000569,0.000599,0.000465,0.000517,0.000563,0.000538,0.000350,0.000281,0.000361,0.000460,0.000274,0.000209,0.000199,0.000249,0.000304,0.000340,0.000213,0.000240,0.000152,0.000238,0.000157,0.000200,0.000196,0.000164,0.000118,0.000156,0.000141,0.000124,0.000105,0.000108,0.000150,0.000140,0.000124,0.000109,0.000104,0.000111,0.000096,0.000120,0.000092,0.000094,0.000103,0.000077,0.000064,0.000066,0.000111,0.000094,0.000093,0.000082,0.000078,0.000073,0.000096,0.000082,0.000079,0.000075,0.000072,0.000085,0.000068,0.000072,0.000053,0.000069,0.000054,0.000057,0.000058,0.000058,0.000065,0.000055,0.000063,0.000066,0.000063,0.000063,0.000058,0.000053,0.000052,0.000046,0.000046,0.000050,0.000049,0.000047,0.000045,0.000043,0.000050,0.000047,0.000052,0.000050,0.000049,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapMute1 ftgen 0,0,128,-27, 0,0, 22,0, 23,1, 24,2, 25,3, 26,4, 27,5, 28,6, 29,7, 30,8, 31,9, 32,10, 33,11, 34,12, 35,13, 36,14, 37,15, 38,16, 39,17, 40,18, 41,19, 42,20, 43,21, 44,22, 45,23, 46,24, 47,25, 48,26, 49,27, 50,28, 51,29, 52,30, 53,31, 54,32, 55,33, 56,34, 57,35, 58,36, 127,36 | |||
gitabs4morfMute1 ftgen 0,0,64,-2, giMute122,giMute123,giMute124,giMute125,giMute126,giMute127,giMute128,giMute129,giMute130,giMute131,giMute132,giMute133,giMute134,giMute135,giMute136,giMute137,giMute138,giMute139,giMute140,giMute141,giMute142,giMute143,giMute144,giMute145,giMute146,giMute147,giMute148,giMute149,giMute150,giMute151,giMute152,giMute153,giMute154,giMute155,giMute156,giMute157,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (OPEN) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giUnmuted22 ftgen 0,0,4096,10,0.209301,0.150536,0.083014,0.207956,0.321939,0.399510,0.327987,0.421479,0.539528,0.533091,0.721756,0.467196,0.947246,0.770314,0.912692,0.965128,0.962101,1.093136,0.708144,0.664071,0.619031,0.643414,0.371645,0.533120,0.477851,0.481481,0.451545,0.370726,0.360377,0.459325,0.288110,0.235271,0.205264,0.198828,0.206768,0.219183,0.205657,0.164230,0.168498,0.156362,0.109323,0.096989,0.105552,0.095551,0.069663,0.068933,0.067166,0.055414,0.072408,0.055978,0.033534,0.049491,0.054904,0.029956,0.018835,0.027602,0.035912,0.015979,0.021303,0.011033,0.024278,0.030411,0.020777,0.027002,0.020715,0.010245,0.010418,0.019612,0.017841,0.017176,0.012772,0.008424,0.009403,0.002947,0.006355,0.006158,0.015418,0.015477,0.011268,0.008620,0.008935,0.006072,0.005458,0.006560,0.006368,0.007559,0.004779,0.008830,0.007041,0.006334,0.002719,0.003830,0.006208,0.008425,0.006728,0.006139,0.002789,0.007133,0.005592,0.005069 | |||
giUnmuted23 ftgen 0,0,4096,10,0.129222,0.088552,0.116290,0.170792,0.176577,0.331680,0.281710,0.247957,0.379599,0.404781,0.432966,0.873924,0.774290,0.657216,0.986727,0.929760,0.832314,0.808580,0.585809,0.684034,0.674170,0.330450,0.888687,0.598954,0.599019,0.566506,0.632303,0.502653,0.431058,0.214554,0.351572,0.335693,0.277218,0.341691,0.264970,0.296760,0.293654,0.224055,0.213823,0.138880,0.188425,0.156849,0.137821,0.185206,0.172163,0.184744,0.153256,0.116401,0.138614,0.155349,0.095606,0.075646,0.091523,0.087233,0.081355,0.068920,0.094557,0.066191,0.069861,0.065915,0.072343,0.065165,0.065968,0.041851,0.063905,0.036430,0.041801,0.035516,0.038545,0.044169,0.038034,0.042219,0.032505,0.038202,0.034556,0.037548,0.036070,0.036673,0.037173,0.024089,0.029610,0.028726,0.018206,0.028118,0.023534,0.023563,0.025997,0.024870,0.021673,0.024752,0.020165,0.019645,0.016172,0.017942,0.018241,0.016560,0.014997,0.013671,0.015848,0.011383 | |||
giUnmuted24 ftgen 0,0,4096,10,0.014100,0.027948,0.037471,0.118589,0.278733,0.166216,0.237592,0.204888,0.303225,0.239198,0.590081,0.558590,0.488846,0.934503,0.791766,0.769104,0.451529,0.465344,0.363957,0.375648,0.362512,0.527955,0.584553,0.562238,0.409571,0.447397,0.547498,0.349795,0.363085,0.318352,0.305372,0.298282,0.236937,0.259059,0.251424,0.235425,0.253896,0.305811,0.227171,0.177695,0.218484,0.204418,0.227246,0.182265,0.183710,0.198997,0.141695,0.093968,0.119182,0.128975,0.118829,0.086353,0.143691,0.082113,0.096768,0.076006,0.108551,0.073045,0.080734,0.075566,0.076978,0.047507,0.057911,0.055554,0.070030,0.060662,0.054519,0.055938,0.064493,0.032839,0.043612,0.052568,0.034145,0.054702,0.041937,0.045108,0.037413,0.033601,0.044130,0.036376,0.036994,0.032488,0.031456,0.030170,0.029857,0.031038,0.027679,0.029891,0.027195,0.023506,0.027610,0.023146,0.022810,0.019058,0.018170,0.018749,0.017019,0.015480,0.016379,0.015893 | |||
giUnmuted25 ftgen 0,0,4096,10,0.075402,0.101145,0.176728,0.270616,0.291285,0.324780,0.333295,0.233831,0.290677,0.540830,0.767506,0.512758,0.980849,0.771417,0.804053,0.408122,0.631555,0.670085,0.408376,0.681153,0.911500,0.859956,0.697578,0.595419,0.593307,0.469251,0.543682,0.529757,0.367768,0.498910,0.305667,0.300578,0.386836,0.363336,0.347656,0.332606,0.322633,0.253819,0.316454,0.284584,0.227632,0.212815,0.324061,0.212387,0.161264,0.199347,0.187103,0.169679,0.152185,0.206879,0.129213,0.127022,0.158412,0.109282,0.134290,0.097383,0.119959,0.099454,0.111739,0.076911,0.100854,0.086224,0.089536,0.075617,0.075879,0.080690,0.071350,0.079834,0.089408,0.079954,0.081367,0.068297,0.067636,0.067458,0.048890,0.064138,0.053887,0.056479,0.047270,0.039648,0.049324,0.050416,0.048009,0.042951,0.034023,0.037808,0.026799,0.042091,0.023668,0.027252,0.027430,0.027822,0.030900,0.025171,0.030639,0.031093,0.018787,0.024957,0.020116,0.016682 | |||
giUnmuted26 ftgen 0,0,4096,10,0.043072,0.066480,0.103784,0.299131,0.266755,0.210417,0.254095,0.299260,0.120587,0.627381,0.502409,0.682945,0.896451,0.718962,0.798438,0.342935,0.438196,0.391451,0.571924,0.500613,0.522119,0.554206,0.351133,0.573747,0.415485,0.314183,0.377587,0.407768,0.269407,0.243405,0.358414,0.278435,0.297179,0.205957,0.278884,0.139884,0.230059,0.203655,0.273754,0.208405,0.268930,0.220588,0.093617,0.135109,0.140624,0.125541,0.127288,0.075447,0.145203,0.086283,0.144206,0.092668,0.097130,0.101259,0.096756,0.087998,0.053647,0.093505,0.075780,0.063445,0.057768,0.067925,0.062568,0.059886,0.049874,0.061576,0.047362,0.059277,0.045356,0.045205,0.049725,0.059766,0.051216,0.043048,0.047544,0.034671,0.055494,0.029430,0.038554,0.039949,0.030711,0.033481,0.031643,0.028951,0.022707,0.022752,0.019352,0.028349,0.020961,0.022731,0.022740,0.021957,0.021687,0.023511,0.015741,0.017651,0.017310,0.015487,0.015835,0.014889 | |||
giUnmuted27 ftgen 0,0,4096,10,0.116392,0.064448,0.127432,0.239485,0.257590,0.362741,0.449254,0.199901,0.348867,0.637406,0.429112,0.918400,0.936649,0.907354,0.601632,0.359938,0.492393,0.465346,0.501258,0.682788,0.539385,0.377763,0.493182,0.284353,0.308310,0.236111,0.324894,0.290903,0.171987,0.259098,0.209363,0.188311,0.165040,0.129121,0.179891,0.142395,0.192837,0.155400,0.140506,0.154670,0.085903,0.084914,0.123353,0.033350,0.085811,0.066361,0.064805,0.053334,0.059168,0.051871,0.024556,0.050781,0.036654,0.034625,0.037417,0.026993,0.036074,0.041271,0.034852,0.030858,0.035521,0.039943,0.029248,0.023157,0.034015,0.022517,0.032273,0.025478,0.021464,0.021306,0.020706,0.015205,0.017217,0.016590,0.014839,0.015475,0.014872,0.012173,0.018427,0.015918,0.010766,0.011403,0.007469,0.006837,0.010460,0.009821,0.011490,0.012841,0.009228,0.009485,0.005268,0.008016,0.007500,0.007632,0.009359,0.005060,0.006834,0.006729,0.005832,0.006610 | |||
giUnmuted28 ftgen 0,0,4096,10,0.076757,0.165970,0.231682,0.474308,0.397207,0.459106,0.300853,0.244548,0.666795,0.602133,0.902710,0.655767,0.483398,0.313870,0.349970,0.212690,0.704653,0.764853,0.648917,0.660316,0.500843,0.406945,0.437095,0.364433,0.332150,0.247819,0.335990,0.413334,0.272378,0.303040,0.347189,0.202684,0.273591,0.358844,0.326756,0.187244,0.245830,0.136904,0.149347,0.181123,0.074118,0.123133,0.099890,0.059919,0.124875,0.090488,0.085029,0.115332,0.036687,0.106389,0.065025,0.070006,0.054270,0.053720,0.068047,0.055966,0.079658,0.070141,0.046135,0.065892,0.044587,0.048301,0.044148,0.045919,0.038547,0.040422,0.052374,0.032757,0.026433,0.030900,0.031810,0.034349,0.013986,0.030399,0.015539,0.018593,0.017769,0.024225,0.019160,0.022166,0.018451,0.016544,0.010230,0.012227,0.012961,0.015889,0.015651,0.009872,0.014459,0.011942,0.015592,0.014711,0.013394,0.010871,0.008229,0.007572,0.008106,0.008828,0.011451,0.009952 | |||
giUnmuted30 ftgen 0,0,4096,10,0.102601,0.100887,0.167098,0.516781,0.330986,0.422868,0.412850,0.397849,0.628756,0.686835,0.929709,0.845577,0.935266,0.508059,0.792158,0.281350,0.378308,0.568489,0.346813,0.566233,0.413541,0.405762,0.359363,0.216505,0.366221,0.301854,0.216945,0.249969,0.168763,0.194386,0.278248,0.046419,0.257812,0.124464,0.096054,0.116201,0.059755,0.096572,0.074147,0.047405,0.054049,0.073919,0.023499,0.080643,0.079127,0.031933,0.076588,0.051990,0.032645,0.031250,0.046055,0.022654,0.038293,0.031067,0.045355,0.035515,0.043591,0.024758,0.020123,0.028097,0.025231,0.014737,0.015258,0.020891,0.010029,0.015487,0.004561,0.009797,0.007038,0.006923,0.012160,0.005577,0.012809,0.007007,0.007626,0.004440,0.008034,0.008475,0.006052,0.009027,0.006419,0.007999,0.005562,0.004974,0.008232,0.007159,0.005841,0.004633,0.005878,0.004708,0.005378,0.005775,0.004317,0.003135,0.006019,0.002682,0.003519,0.002106,0.001173,0.002911 | |||
giUnmuted31 ftgen 0,0,4096,10,0.066770,0.048141,0.313114,0.280252,0.266590,0.227818,0.195576,0.598114,0.585360,0.631625,0.922780,0.476250,0.557175,0.516114,0.284400,0.347304,0.327824,0.186298,0.429619,0.319332,0.143321,0.268362,0.179246,0.187779,0.187831,0.069696,0.157916,0.087219,0.051108,0.180413,0.090807,0.061893,0.087674,0.029616,0.053852,0.035420,0.032698,0.030786,0.031084,0.040347,0.022290,0.019770,0.033986,0.022503,0.008514,0.028204,0.013058,0.011683,0.016372,0.011838,0.005125,0.012279,0.007251,0.009685,0.008196,0.009381,0.007698,0.004608,0.004124,0.002835,0.002636,0.005858,0.004185,0.001287,0.002347,0.002862,0.004396,0.003505,0.001776,0.002038,0.003386,0.001389,0.002214,0.001394,0.002558,0.001971,0.001212,0.000993,0.001220,0.001435,0.001036,0.000315,0.000862,0.001509,0.000972,0.000423,0.000797,0.001030,0.001800,0.000491,0.000318,0.000990,0.000987,0.000840,0.000380,0.000536,0.000975,0.000576,0.000444,0.000286 | |||
giUnmuted32 ftgen 0,0,4096,10,0.153577,0.222613,0.376395,0.526417,0.515836,0.662033,0.484716,0.943689,0.936088,0.683402,0.940687,0.666224,0.399824,0.298609,0.378373,0.633100,0.213897,0.505597,0.312328,0.232655,0.144484,0.129531,0.225201,0.231697,0.116577,0.093467,0.083941,0.021798,0.081229,0.048477,0.071105,0.034486,0.057723,0.028194,0.029190,0.019811,0.027128,0.025539,0.014725,0.015158,0.019471,0.022215,0.011935,0.015510,0.012182,0.010768,0.007979,0.010226,0.004972,0.009394,0.006760,0.006326,0.005823,0.003912,0.005859,0.001846,0.002697,0.003683,0.003892,0.002554,0.002904,0.004195,0.000672,0.001703,0.001212,0.002070,0.001499,0.001454,0.002153,0.001936,0.000769,0.001242,0.001260,0.000672,0.000842,0.001179,0.001096,0.001223,0.001090,0.001644,0.001218,0.000337,0.000969,0.000736,0.000734,0.000228,0.000786,0.000788,0.000390,0.000223,0.001065,0.000755,0.000257,0.000513,0.000711,0.000538,0.000385,0.000437,0.000469,0.000430 | |||
giUnmuted33 ftgen 0,0,4096,10,0.199259,0.293112,0.678605,0.427095,0.796552,0.592920,0.832602,0.749712,0.753129,0.956136,0.706813,0.595711,0.292833,0.370551,0.334616,0.299621,0.458159,0.299313,0.277013,0.116169,0.127934,0.137952,0.174017,0.060317,0.067909,0.049889,0.073748,0.061114,0.028611,0.050743,0.022684,0.016755,0.015577,0.022867,0.023917,0.026384,0.015817,0.016226,0.020209,0.017937,0.014795,0.014935,0.011316,0.011197,0.003987,0.006306,0.007657,0.008754,0.008017,0.001430,0.002030,0.006426,0.004673,0.001697,0.003547,0.003128,0.001704,0.002225,0.003744,0.001255,0.001218,0.001706,0.000784,0.001874,0.002414,0.001450,0.001425,0.001431,0.001039,0.000512,0.001115,0.001012,0.000767,0.001368,0.000891,0.001254,0.000438,0.001473,0.000396,0.000944,0.000406,0.000645,0.000805,0.000497,0.000596,0.000632,0.000660,0.000453,0.000657,0.000437,0.000597,0.000534,0.000231,0.000579,0.000359,0.000597,0.000289,0.000515,0.000474,0.000508 | |||
giUnmuted34 ftgen 0,0,4096,10,0.156283,0.263433,0.503588,0.547226,0.458841,0.440476,0.745137,0.926771,0.703339,0.326809,0.455305,0.144506,0.578160,0.557536,0.390538,0.373849,0.349519,0.171391,0.136852,0.175680,0.170348,0.095999,0.101795,0.067277,0.069750,0.038210,0.062274,0.031281,0.045966,0.025999,0.019665,0.025196,0.019584,0.017978,0.018616,0.019068,0.009254,0.008323,0.009829,0.007950,0.009281,0.004125,0.006169,0.005516,0.008089,0.004623,0.003210,0.003435,0.002272,0.003102,0.002101,0.002482,0.000800,0.001308,0.001448,0.002671,0.000440,0.001102,0.000625,0.001246,0.000739,0.001198,0.000853,0.000982,0.000459,0.000870,0.000679,0.000793,0.000524,0.000192,0.000634,0.000314,0.000778,0.000405,0.000532,0.000235,0.000824,0.000204,0.000655,0.000308,0.000375,0.000408,0.000459,0.000698,0.000335,0.000370,0.000416,0.000463,0.000712,0.000202,0.000604,0.000194,0.000642,0.000492,0.000566,0.000304,0.000430,0.000666,0.000460,0.000725 | |||
giUnmuted35 ftgen 0,0,4096,10,0.109719,0.205679,0.327171,0.211979,0.275588,0.441424,0.909739,0.954713,0.704080,0.558176,0.412328,0.520298,0.672399,0.332547,0.403159,0.369356,0.239488,0.211806,0.231043,0.127727,0.249776,0.131377,0.104229,0.096938,0.102833,0.065079,0.066313,0.070405,0.083568,0.043975,0.062456,0.056332,0.053849,0.056551,0.038084,0.032551,0.031631,0.024900,0.019231,0.022793,0.025653,0.029848,0.012080,0.012343,0.008958,0.007429,0.009658,0.011782,0.006432,0.008668,0.004940,0.004961,0.011409,0.003677,0.005188,0.006053,0.002706,0.005660,0.005030,0.003473,0.004147,0.002260,0.003165,0.004611,0.001572,0.002973,0.001712,0.001380,0.002403,0.001241,0.001415,0.002559,0.000850,0.001416,0.000832,0.001164,0.001932,0.000912,0.001026,0.000996,0.000473,0.001056,0.000666,0.000709,0.000940,0.000380,0.000715,0.000818,0.000554,0.000733,0.000482,0.000638,0.000669,0.000419,0.000706,0.000551,0.000449,0.000615,0.000441,0.000574 | |||
giUnmuted37 ftgen 0,0,4096,10,0.163591,0.404564,0.575089,0.472316,0.486294,0.822510,0.806591,0.969411,0.362995,0.433080,0.496749,0.467537,0.467839,0.267451,0.183238,0.218200,0.199060,0.155508,0.175596,0.093844,0.131201,0.054473,0.064991,0.054622,0.028696,0.047964,0.032300,0.032288,0.027946,0.028929,0.025863,0.016471,0.015090,0.011768,0.012035,0.007896,0.009150,0.007422,0.006861,0.006328,0.006340,0.003206,0.001979,0.001196,0.003410,0.003344,0.001708,0.001304,0.001426,0.001391,0.002381,0.001136,0.000501,0.000621,0.001295,0.001362,0.001331,0.000559,0.000199,0.000503,0.000879,0.001032,0.000443,0.000370,0.000358,0.000616,0.000749,0.000331,0.000239,0.000475,0.000621,0.000552,0.000280,0.000188,0.000404,0.000434,0.000385,0.000500,0.000299,0.000339,0.000250,0.000436,0.000389,0.000319,0.000252,0.000279,0.000331,0.000496,0.000362,0.000299,0.000301,0.000389,0.000340,0.000331,0.000305,0.000321,0.000282,0.000312,0.000322,0.000305 | |||
giUnmuted38 ftgen 0,0,4096,10,0.088638,0.393952,0.219528,0.233796,0.390552,0.873953,0.973908,0.452420,0.406845,0.369372,0.418449,0.275682,0.233818,0.174596,0.176589,0.199987,0.084305,0.099145,0.066017,0.092595,0.045456,0.041233,0.057805,0.035677,0.029982,0.021224,0.023785,0.011487,0.013368,0.009656,0.009504,0.010544,0.006813,0.005152,0.006761,0.004720,0.005569,0.005772,0.003926,0.003876,0.001447,0.001937,0.001824,0.001260,0.001196,0.001056,0.001716,0.000597,0.000870,0.000129,0.001182,0.000562,0.000716,0.000558,0.000346,0.000458,0.000280,0.000472,0.000305,0.000628,0.000215,0.000532,0.000286,0.000686,0.000363,0.000433,0.000417,0.000257,0.000323,0.000182,0.000362,0.000182,0.000308,0.000090,0.000457,0.000168,0.000301,0.000207,0.000232,0.000295,0.000234,0.000253,0.000115,0.000278,0.000128,0.000246,0.000142,0.000206,0.000208,0.000168,0.000245,0.000156,0.000184,0.000153,0.000195,0.000110,0.000237,0.000120,0.000147,0.000197 | |||
giUnmuted39 ftgen 0,0,4096,10,0.072477,0.251689,0.379198,0.380111,0.725478,0.949509,0.692901,0.578175,0.268676,0.362999,0.292393,0.221151,0.135379,0.142198,0.166308,0.080654,0.080723,0.055948,0.052355,0.045652,0.019205,0.017803,0.021033,0.012636,0.010918,0.015171,0.012617,0.010832,0.009232,0.006483,0.005626,0.003851,0.002409,0.001860,0.003662,0.003232,0.003431,0.001824,0.002610,0.001564,0.001117,0.000540,0.000571,0.001003,0.001335,0.000552,0.000678,0.000584,0.001061,0.000360,0.000733,0.000138,0.000610,0.000585,0.000395,0.000329,0.000646,0.000491,0.000414,0.000402,0.000119,0.000403,0.000173,0.000409,0.000081,0.000323,0.000367,0.000312,0.000184,0.000390,0.000085,0.000295,0.000195,0.000268,0.000142,0.000267,0.000047,0.000196,0.000144,0.000201,0.000119,0.000264,0.000129,0.000192,0.000106,0.000089,0.000146,0.000206,0.000209,0.000106,0.000142,0.000140,0.000184,0.000083,0.000036,0.000158,0.000137,0.000135,0.000284,0.000115 | |||
giUnmuted40 ftgen 0,0,4096,10,0.225959,0.669389,0.383703,0.337797,0.897874,0.917315,0.679617,0.847733,0.413981,0.550916,0.384995,0.299373,0.229249,0.175955,0.251333,0.151143,0.072766,0.141216,0.038843,0.059075,0.024251,0.038600,0.034595,0.024303,0.012174,0.014682,0.023313,0.013042,0.011554,0.011010,0.010318,0.007734,0.007817,0.007700,0.004889,0.002809,0.002953,0.002732,0.002419,0.002929,0.001031,0.001758,0.002569,0.001934,0.000195,0.000657,0.000465,0.000529,0.000132,0.000495,0.000114,0.000374,0.000066,0.000383,0.000298,0.000374,0.000325,0.000203,0.000379,0.000195,0.000256,0.000055,0.000261,0.000143,0.000303,0.000225,0.000165,0.000287,0.000154,0.000362,0.000079,0.000339,0.000076,0.000304,0.000074,0.000377,0.000110,0.000203,0.000160,0.000220,0.000170,0.000246,0.000154,0.000238,0.000107,0.000233,0.000176,0.000143,0.000173,0.000149,0.000209,0.000112,0.000150,0.000111,0.000112,0.000142,0.000096,0.000126,0.000128,0.000116 | |||
giUnmuted41 ftgen 0,0,4096,10,0.097703,0.458893,0.214092,0.303131,0.643075,0.941287,0.605134,0.446467,0.333405,0.230717,0.265198,0.183918,0.159675,0.159325,0.106876,0.068197,0.087184,0.044215,0.041701,0.023995,0.024583,0.018444,0.017021,0.012909,0.009709,0.009292,0.005646,0.005169,0.005487,0.004703,0.003198,0.001953,0.002304,0.001896,0.001346,0.001214,0.000950,0.001006,0.000408,0.000899,0.000811,0.000603,0.000416,0.000186,0.000451,0.000580,0.000293,0.000134,0.000491,0.000610,0.000365,0.000202,0.000238,0.000284,0.000383,0.000318,0.000171,0.000207,0.000319,0.000262,0.000156,0.000201,0.000269,0.000277,0.000189,0.000255,0.000252,0.000251,0.000238,0.000176,0.000262,0.000221,0.000254,0.000156,0.000243,0.000273,0.000203,0.000144,0.000205,0.000227,0.000273,0.000231,0.000129,0.000148,0.000263,0.000231,0.000178,0.000240,0.000111,0.000150,0.000125,0.000253,0.000117,0.000217,0.000249,0.000167,0.000129,0.000153,0.000156,0.000166 | |||
giUnmuted42 ftgen 0,0,4096,10,0.124305,0.470693,0.408472,0.419845,0.726811,0.899803,0.320069,0.227380,0.170542,0.278327,0.087448,0.075657,0.070450,0.011278,0.027231,0.027560,0.017657,0.007864,0.003498,0.005879,0.002004,0.003338,0.002302,0.002026,0.001182,0.001269,0.001074,0.000364,0.000612,0.000235,0.000662,0.000064,0.000466,0.000427,0.000278,0.000267,0.000353,0.000292,0.000282,0.000261,0.000314,0.000191,0.000121,0.000300,0.000198,0.000184,0.000171,0.000233,0.000128,0.000158,0.000242,0.000129,0.000168,0.000158,0.000221,0.000105,0.000151,0.000134,0.000034,0.000239,0.000107,0.000190,0.000107,0.000133,0.000170,0.000077,0.000159,0.000133,0.000084,0.000139,0.000186,0.000114,0.000238,0.000054,0.000180,0.000124,0.000143,0.000260,0.000043,0.000132,0.000091,0.000030,0.000116,0.000080,0.000072,0.000057,0.000105,0.000076,0.000116,0.000065,0.000171,0.000053,0.000072,0.000074,0.000062,0.000114,0.000055,0.000095,0.000113,0.000044 | |||
giUnmuted43 ftgen 0,0,4096,10,0.125142,0.748133,0.488996,0.937672,0.810384,0.425414,0.265649,0.228407,0.170598,0.111821,0.121106,0.061239,0.019591,0.017183,0.019865,0.007807,0.001783,0.002592,0.001011,0.003527,0.002854,0.000493,0.002776,0.000788,0.001901,0.002961,0.000261,0.000981,0.000309,0.001260,0.001590,0.000419,0.000880,0.000853,0.000491,0.001106,0.000390,0.000507,0.000664,0.000732,0.000588,0.000322,0.000375,0.000612,0.000570,0.000284,0.000276,0.000346,0.000470,0.000510,0.000208,0.000313,0.000421,0.000286,0.000339,0.000330,0.000236,0.000285,0.000339,0.000333,0.000325,0.000301,0.000405,0.000289,0.000185,0.000254,0.000429,0.000220,0.000088,0.000342,0.000434,0.000323,0.000114,0.000423,0.000294,0.000189,0.000274,0.000329,0.000150,0.000193,0.000230,0.000213,0.000130,0.000222,0.000238,0.000078,0.000370,0.000313,0.000161,0.000338,0.000185,0.000246,0.000194,0.000179,0.000174,0.000154,0.000140,0.000235,0.000115,0.000258 | |||
giUnmuted44 ftgen 0,0,4096,10,0.302063,0.713050,0.452426,0.930055,0.680724,0.256993,0.187429,0.166946,0.128520,0.034480,0.011033,0.010095,0.010484,0.013378,0.003779,0.001842,0.002372,0.003682,0.002032,0.001052,0.001063,0.001158,0.000116,0.001123,0.001585,0.000539,0.001398,0.000809,0.000447,0.000282,0.000640,0.000371,0.000503,0.000484,0.000108,0.000162,0.000180,0.000319,0.000232,0.000211,0.000045,0.000246,0.000082,0.000069,0.000149,0.000105,0.000143,0.000097,0.000032,0.000091,0.000142,0.000202,0.000052,0.000133,0.000185,0.000054,0.000154,0.000137,0.000181,0.000042,0.000135,0.000129,0.000100,0.000108,0.000143,0.000065,0.000082,0.000182,0.000049,0.000189,0.000083,0.000061,0.000143,0.000078,0.000056,0.000079,0.000120,0.000037,0.000098,0.000063,0.000110,0.000162,0.000076,0.000078,0.000059,0.000095,0.000049,0.000104,0.000088,0.000117,0.000133,0.000031,0.000103,0.000040,0.000058,0.000025,0.000024,0.000077,0.000069,0.000155 | |||
giUnmuted45 ftgen 0,0,4096,10,0.233846,0.388855,0.488775,0.775865,0.964456,0.501325,0.291914,0.282804,0.153115,0.120898,0.100772,0.061525,0.021515,0.015412,0.010305,0.004386,0.004785,0.007854,0.004759,0.004311,0.003465,0.002391,0.000787,0.001491,0.000948,0.000812,0.000611,0.000750,0.000529,0.000347,0.000811,0.000462,0.000235,0.000129,0.000100,0.000270,0.000180,0.000344,0.000298,0.000283,0.000076,0.000033,0.000229,0.000057,0.000107,0.000302,0.000392,0.000250,0.000158,0.000123,0.000211,0.000176,0.000204,0.000052,0.000045,0.000073,0.000098,0.000048,0.000042,0.000062,0.000184,0.000108,0.000087,0.000108,0.000246,0.000201,0.000114,0.000035,0.000098,0.000163,0.000193,0.000214,0.000220,0.000138,0.000157,0.000201,0.000169,0.000255,0.000225,0.000166,0.000090,0.000040,0.000130,0.000094,0.000063,0.000032,0.000089,0.000092,0.000126,0.000045,0.000031,0.000089,0.000106,0.000113,0.000102,0.000097,0.000078,0.000087,0.000116,0.000073 | |||
giUnmuted46 ftgen 0,0,4096,10,0.278221,0.573695,0.445852,0.941888,0.349456,0.146739,0.401320,0.181176,0.109258,0.079677,0.027531,0.020462,0.010172,0.004976,0.008831,0.004459,0.003116,0.005925,0.003482,0.001955,0.000824,0.000849,0.000990,0.000555,0.000572,0.000248,0.000282,0.000312,0.000425,0.000324,0.000073,0.000533,0.000097,0.000455,0.000267,0.000126,0.000125,0.000100,0.000382,0.000051,0.000129,0.000240,0.000307,0.000083,0.000247,0.000140,0.000183,0.000087,0.000275,0.000383,0.000065,0.000167,0.000138,0.000204,0.000147,0.000389,0.000087,0.000087,0.000085,0.000041,0.000137,0.000224,0.000036,0.000053,0.000195,0.000205,0.000101,0.000065,0.000194,0.000064,0.000193,0.000258,0.000182,0.000073,0.000094,0.000173,0.000055,0.000075,0.000093,0.000129,0.000045,0.000085,0.000107,0.000117,0.000074,0.000107,0.000122,0.000085,0.000048,0.000110,0.000056,0.000075,0.000100,0.000057,0.000058,0.000070,0.000058,0.000062,0.000024,0.000053 | |||
giUnmuted48 ftgen 0,0,4096,10,0.452762,0.304359,0.946745,0.826937,0.631116,0.540533,0.395792,0.137892,0.089376,0.056327,0.024940,0.018700,0.015991,0.009294,0.006775,0.006495,0.001878,0.002247,0.000868,0.001248,0.001564,0.001249,0.001144,0.001326,0.001103,0.000911,0.000811,0.000899,0.000763,0.000818,0.000796,0.000855,0.000820,0.000710,0.000624,0.000684,0.000656,0.000643,0.000581,0.000503,0.000628,0.000640,0.000595,0.000471,0.000287,0.000521,0.000550,0.000603,0.000454,0.000276,0.000515,0.000524,0.000515,0.000548,0.000414,0.000417,0.000623,0.000306,0.000257,0.000314,0.000328,0.000356,0.000371,0.000363,0.000334,0.000261,0.000258,0.000294,0.000248,0.000426,0.000222,0.000250,0.000403,0.000222,0.000365,0.000158,0.000358,0.000267,0.000252,0.000328,0.000186,0.000291,0.000280,0.000198,0.000269,0.000258,0.000279,0.000252,0.000236,0.000257,0.000228,0.000248,0.000225,0.000222,0.000211,0.000262,0.000206,0.000219,0.000216,0.000223 | |||
giUnmuted49 ftgen 0,0,4096,10,0.384255,0.558888,0.714667,0.956957,0.356637,0.233667,0.190339,0.102786,0.061868,0.032079,0.017290,0.009522,0.005673,0.005487,0.002456,0.002036,0.000425,0.001796,0.002623,0.001222,0.000730,0.000805,0.000937,0.000709,0.000258,0.000626,0.000855,0.000810,0.000503,0.000376,0.000366,0.000792,0.000435,0.000475,0.000434,0.000367,0.000729,0.000327,0.000400,0.000367,0.000285,0.000247,0.000517,0.000305,0.000346,0.000356,0.000254,0.000337,0.000385,0.000231,0.000456,0.000215,0.000106,0.000201,0.000338,0.000284,0.000295,0.000166,0.000172,0.000132,0.000143,0.000401,0.000352,0.000229,0.000228,0.000272,0.000210,0.000234,0.000250,0.000182,0.000231,0.000084,0.000152,0.000170,0.000231,0.000207,0.000174,0.000130,0.000145,0.000280,0.000219,0.000185,0.000135,0.000104,0.000157,0.000222,0.000197,0.000090,0.000129,0.000142,0.000121,0.000183,0.000157,0.000120,0.000130,0.000101,0.000113,0.000151,0.000146,0.000114 | |||
giUnmuted50 ftgen 0,0,4096,10,0.446591,0.477584,0.426492,0.970753,0.374135,0.215282,0.306904,0.140851,0.070867,0.038834,0.002282,0.017849,0.007741,0.003585,0.006831,0.006003,0.003705,0.001554,0.003344,0.000137,0.001907,0.000924,0.001095,0.001011,0.000580,0.000998,0.001204,0.000696,0.001058,0.000873,0.000742,0.000768,0.000685,0.000814,0.000666,0.000827,0.000659,0.000713,0.000613,0.000584,0.000711,0.000452,0.000535,0.000517,0.000488,0.000572,0.000501,0.000577,0.000468,0.000403,0.000316,0.000555,0.000474,0.000513,0.000541,0.000421,0.000425,0.000418,0.000385,0.000321,0.000462,0.000415,0.000342,0.000312,0.000347,0.000323,0.000339,0.000320,0.000298,0.000318,0.000268,0.000265,0.000232,0.000302,0.000354,0.000263,0.000304,0.000222,0.000312,0.000311,0.000342,0.000363,0.000274,0.000300,0.000250,0.000296,0.000254,0.000287,0.000249,0.000199,0.000219,0.000195,0.000210,0.000230,0.000217,0.000181,0.000209,0.000200,0.000218,0.000224 | |||
giUnmuted51 ftgen 0,0,4096,10,0.287446,0.531276,0.971557,0.630155,0.300795,0.250731,0.098819,0.107126,0.053101,0.062126,0.011011,0.012837,0.004178,0.006909,0.004394,0.002253,0.002430,0.002140,0.001992,0.000671,0.000287,0.000471,0.000271,0.000130,0.000051,0.000046,0.000110,0.000021,0.000075,0.000192,0.000076,0.000065,0.000131,0.000125,0.000081,0.000150,0.000030,0.000017,0.000085,0.000079,0.000026,0.000096,0.000129,0.000153,0.000110,0.000071,0.000054,0.000060,0.000076,0.000043,0.000064,0.000017,0.000052,0.000117,0.000038,0.000047,0.000024,0.000058,0.000033,0.000021,0.000042,0.000074,0.000063,0.000027,0.000066,0.000039,0.000035,0.000030,0.000050,0.000068,0.000048,0.000058,0.000037,0.000069,0.000030,0.000032,0.000081,0.000067,0.000051,0.000033,0.000053,0.000067,0.000038,0.000025,0.000009,0.000037,0.000026,0.000021,0.000009,0.000039,0.000025,0.000029,0.000019,0.000007,0.000014,0.000020,0.000025,0.000019,0.000024,0.000011 | |||
giUnmuted52 ftgen 0,0,4096,10,0.780315,0.602043,0.971703,0.598540,0.419892,0.250576,0.135924,0.028914,0.007076,0.002504,0.001073,0.002881,0.002091,0.001033,0.001393,0.001759,0.002069,0.001160,0.001046,0.000119,0.000300,0.000679,0.000689,0.000161,0.000393,0.000523,0.000306,0.000179,0.000312,0.000431,0.000186,0.000165,0.000492,0.000276,0.000209,0.000416,0.000299,0.000153,0.000254,0.000350,0.000169,0.000155,0.000291,0.000165,0.000059,0.000258,0.000299,0.000257,0.000195,0.000128,0.000254,0.000142,0.000138,0.000172,0.000115,0.000086,0.000226,0.000168,0.000117,0.000109,0.000203,0.000108,0.000106,0.000096,0.000163,0.000088,0.000138,0.000083,0.000076,0.000118,0.000119,0.000130,0.000104,0.000106,0.000157,0.000102,0.000046,0.000053,0.000071,0.000098,0.000102,0.000096,0.000078,0.000080,0.000075,0.000076,0.000080,0.000077,0.000073,0.000056,0.000081,0.000076,0.000093,0.000054,0.000098,0.000069,0.000047,0.000076,0.000050,0.000039 | |||
giUnmuted53 ftgen 0,0,4096,10,0.372046,0.398945,0.933433,0.303716,0.202319,0.090480,0.045828,0.011018,0.009763,0.001157,0.003828,0.006742,0.001634,0.000320,0.001952,0.001823,0.000292,0.001455,0.000996,0.000511,0.001143,0.001002,0.000470,0.000777,0.000907,0.000648,0.000685,0.000677,0.000506,0.000454,0.000526,0.000488,0.000439,0.000473,0.000508,0.000505,0.000540,0.000447,0.000407,0.000416,0.000398,0.000364,0.000198,0.000374,0.000324,0.000391,0.000404,0.000361,0.000265,0.000399,0.000341,0.000282,0.000274,0.000277,0.000232,0.000236,0.000232,0.000234,0.000221,0.000241,0.000245,0.000215,0.000179,0.000214,0.000247,0.000215,0.000207,0.000202,0.000207,0.000195,0.000189,0.000164,0.000193,0.000172,0.000163,0.000189,0.000196,0.000183,0.000169,0.000170,0.000159,0.000177,0.000172,0.000148,0.000148,0.000174,0.000160,0.000170,0.000159,0.000159,0.000153,0.000140,0.000152,0.000124,0.000137,0.000135,0.000132,0.000111,0.000136,0.000145 | |||
giUnmuted55 ftgen 0,0,4096,10,0.553293,0.970661,0.775964,0.469479,0.247296,0.167610,0.076609,0.033410,0.020341,0.014035,0.008333,0.004948,0.005841,0.001285,0.003257,0.000737,0.001858,0.001036,0.001645,0.001036,0.001103,0.001137,0.001058,0.001046,0.000830,0.000920,0.000754,0.000986,0.000805,0.000941,0.000725,0.000785,0.000639,0.000792,0.000693,0.000710,0.000502,0.000630,0.000647,0.000611,0.000541,0.000612,0.000564,0.000535,0.000526,0.000550,0.000561,0.000452,0.000489,0.000502,0.000455,0.000494,0.000395,0.000489,0.000391,0.000455,0.000426,0.000401,0.000395,0.000424,0.000366,0.000409,0.000441,0.000420,0.000368,0.000384,0.000385,0.000372,0.000378,0.000347,0.000334,0.000364,0.000324,0.000342,0.000334,0.000331,0.000328,0.000319,0.000317,0.000303,0.000307,0.000324,0.000295,0.000316,0.000284,0.000293,0.000301,0.000292,0.000308,0.000294,0.000306,0.000291,0.000290,0.000281,0.000282,0.000284,0.000276,0.000270,0.000271,0.000271 | |||
giUnmuted56 ftgen 0,0,4096,10,0.400932,0.968520,0.498998,0.389257,0.178633,0.106598,0.036188,0.017795,0.012342,0.000119,0.001239,0.002906,0.000849,0.000166,0.001155,0.001166,0.000733,0.000431,0.000261,0.000740,0.000954,0.000788,0.000425,0.000292,0.000215,0.000111,0.000367,0.000116,0.000157,0.000202,0.000291,0.000325,0.000311,0.000291,0.000228,0.000258,0.000334,0.000245,0.000207,0.000181,0.000101,0.000272,0.000256,0.000160,0.000202,0.000191,0.000135,0.000209,0.000287,0.000145,0.000174,0.000142,0.000151,0.000158,0.000211,0.000156,0.000085,0.000205,0.000120,0.000149,0.000178,0.000110,0.000128,0.000155,0.000127,0.000078,0.000172,0.000112,0.000089,0.000134,0.000141,0.000080,0.000122,0.000145,0.000057,0.000148,0.000118,0.000076,0.000098,0.000141,0.000071,0.000118,0.000134,0.000051,0.000121,0.000094,0.000107,0.000067,0.000125,0.000091,0.000070,0.000129,0.000072,0.000073,0.000102,0.000110,0.000065,0.000125,0.000102,0.000073 | |||
giUnmuted57 ftgen 0,0,4096,10,0.291306,0.935026,0.610503,0.348987,0.214608,0.091185,0.014377,0.010820,0.009119,0.004516,0.002313,0.001529,0.002367,0.001896,0.001988,0.001276,0.001387,0.001297,0.001665,0.001145,0.001069,0.001265,0.001014,0.000912,0.000914,0.000884,0.001057,0.000657,0.000966,0.000629,0.000867,0.000822,0.000934,0.000930,0.000759,0.000705,0.000586,0.000610,0.000554,0.000522,0.000534,0.000515,0.000527,0.000475,0.000482,0.000475,0.000461,0.000481,0.000430,0.000442,0.000430,0.000434,0.000438,0.000393,0.000406,0.000411,0.000359,0.000372,0.000357,0.000351,0.000349,0.000324,0.000336,0.000324,0.000314,0.000303,0.000301,0.000285,0.000290,0.000281,0.000290,0.000278,0.000275,0.000275,0.000263,0.000266,0.000238,0.000227,0.000236,0.000240,0.000236,0.000232,0.000222,0.000228,0.000230,0.000219,0.000211,0.000210,0.000218,0.000220,0.000216,0.000205,0.000201,0.000207,0.000204,0.000198,0.000198,0.000199,0.000198,0.000204 | |||
giUnmuted58 ftgen 0,0,4096,10,0.424856,0.955425,0.300308,0.167209,0.106790,0.022221,0.009677,0.003945,0.002919,0.000972,0.002109,0.001042,0.000179,0.000802,0.000783,0.000469,0.000622,0.000452,0.000340,0.000342,0.000529,0.000442,0.000227,0.000537,0.000344,0.000279,0.000438,0.000291,0.000255,0.000281,0.000355,0.000226,0.000212,0.000190,0.000247,0.000230,0.000217,0.000203,0.000212,0.000229,0.000161,0.000199,0.000193,0.000163,0.000189,0.000156,0.000148,0.000176,0.000153,0.000136,0.000144,0.000163,0.000148,0.000142,0.000156,0.000124,0.000124,0.000128,0.000131,0.000128,0.000116,0.000119,0.000096,0.000126,0.000103,0.000119,0.000108,0.000098,0.000108,0.000100,0.000109,0.000095,0.000104,0.000104,0.000089,0.000098,0.000092,0.000092,0.000094,0.000088,0.000084,0.000083,0.000085,0.000085,0.000078,0.000083,0.000080,0.000081,0.000078,0.000077,0.000082,0.000082,0.000079,0.000080,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted59 ftgen 0,0,4096,10,0.359547,0.978853,0.629720,0.355319,0.173057,0.062497,0.018952,0.015355,0.001883,0.003244,0.000776,0.001277,0.001682,0.000930,0.001021,0.000861,0.000797,0.000784,0.000905,0.000938,0.000691,0.000529,0.000651,0.000668,0.000567,0.000394,0.000564,0.000553,0.000563,0.000374,0.000399,0.000503,0.000337,0.000498,0.000410,0.000391,0.000452,0.000316,0.000406,0.000293,0.000417,0.000301,0.000349,0.000279,0.000358,0.000270,0.000271,0.000287,0.000270,0.000252,0.000235,0.000266,0.000229,0.000223,0.000239,0.000206,0.000237,0.000201,0.000212,0.000207,0.000197,0.000204,0.000185,0.000193,0.000174,0.000185,0.000168,0.000173,0.000159,0.000158,0.000167,0.000156,0.000160,0.000158,0.000153,0.000144,0.000156,0.000152,0.000147,0.000148,0.000140,0.000141,0.000134,0.000134,0.000132,0.000133,0.000132,0.000129,0.000139,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted60 ftgen 0,0,4096,10,0.261374,0.958638,0.539283,0.255231,0.147692,0.058306,0.039086,0.029455,0.008523,0.006366,0.003368,0.001295,0.000525,0.000726,0.000847,0.000590,0.000475,0.000526,0.000505,0.000443,0.000320,0.000407,0.000362,0.000443,0.000436,0.000378,0.000327,0.000302,0.000313,0.000302,0.000287,0.000249,0.000268,0.000271,0.000288,0.000219,0.000205,0.000188,0.000206,0.000244,0.000213,0.000204,0.000153,0.000138,0.000190,0.000183,0.000175,0.000180,0.000157,0.000145,0.000159,0.000168,0.000161,0.000138,0.000144,0.000137,0.000134,0.000133,0.000132,0.000126,0.000126,0.000129,0.000119,0.000120,0.000108,0.000109,0.000110,0.000111,0.000101,0.000092,0.000091,0.000098,0.000100,0.000096,0.000094,0.000096,0.000089,0.000087,0.000090,0.000085,0.000088,0.000082,0.000081,0.000085,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted61 ftgen 0,0,4096,10,0.417597,0.966833,0.416727,0.180794,0.059064,0.009951,0.012483,0.005985,0.000936,0.001803,0.000655,0.001165,0.001044,0.000808,0.000730,0.000802,0.000431,0.000761,0.000635,0.000600,0.000672,0.000449,0.000439,0.000419,0.000423,0.000466,0.000371,0.000301,0.000340,0.000369,0.000332,0.000355,0.000303,0.000303,0.000266,0.000327,0.000298,0.000235,0.000293,0.000250,0.000196,0.000286,0.000226,0.000187,0.000270,0.000214,0.000201,0.000218,0.000195,0.000204,0.000206,0.000186,0.000183,0.000183,0.000170,0.000171,0.000168,0.000166,0.000163,0.000161,0.000161,0.000147,0.000147,0.000142,0.000139,0.000140,0.000142,0.000142,0.000138,0.000137,0.000135,0.000131,0.000129,0.000130,0.000131,0.000129,0.000128,0.000128,0.000129,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted62 ftgen 0,0,4096,10,0.619523,0.961285,0.413119,0.108674,0.024175,0.002125,0.004476,0.003247,0.001352,0.001965,0.000417,0.001471,0.001777,0.000808,0.001622,0.001287,0.001022,0.001266,0.000711,0.000939,0.000934,0.000662,0.000613,0.000589,0.000621,0.000570,0.000567,0.000537,0.000348,0.000623,0.000348,0.000581,0.000430,0.000433,0.000451,0.000404,0.000403,0.000380,0.000391,0.000385,0.000372,0.000351,0.000360,0.000320,0.000325,0.000307,0.000314,0.000267,0.000307,0.000276,0.000259,0.000269,0.000263,0.000231,0.000245,0.000235,0.000254,0.000203,0.000228,0.000209,0.000210,0.000212,0.000201,0.000201,0.000200,0.000193,0.000197,0.000181,0.000186,0.000191,0.000187,0.000179,0.000186,0.000183,0.000156,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted63 ftgen 0,0,4096,10,0.930506,0.830293,0.419689,0.124916,0.038385,0.024593,0.004794,0.004719,0.003135,0.000873,0.001282,0.002043,0.001147,0.000967,0.000988,0.000678,0.000173,0.000513,0.000302,0.000290,0.000411,0.000762,0.000371,0.000406,0.000100,0.000164,0.000359,0.000407,0.000105,0.000293,0.000391,0.000246,0.000158,0.000094,0.000092,0.000176,0.000072,0.000179,0.000079,0.000130,0.000159,0.000270,0.000068,0.000103,0.000061,0.000031,0.000141,0.000112,0.000103,0.000058,0.000084,0.000104,0.000104,0.000093,0.000106,0.000081,0.000073,0.000109,0.000082,0.000051,0.000083,0.000073,0.000065,0.000063,0.000070,0.000082,0.000059,0.000073,0.000066,0.000057,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted64 ftgen 0,0,4096,10,0.972240,0.962179,0.327494,0.131881,0.030060,0.012594,0.010159,0.006424,0.001103,0.003403,0.002598,0.002451,0.001553,0.001352,0.001133,0.001503,0.001006,0.001536,0.001309,0.001202,0.000888,0.001138,0.001263,0.001203,0.001186,0.000543,0.000766,0.000841,0.000896,0.000659,0.000695,0.000682,0.000638,0.000554,0.000597,0.000599,0.000595,0.000633,0.000510,0.000491,0.000552,0.000483,0.000426,0.000553,0.000423,0.000448,0.000409,0.000425,0.000270,0.000375,0.000420,0.000306,0.000414,0.000322,0.000332,0.000333,0.000282,0.000349,0.000328,0.000344,0.000339,0.000347,0.000316,0.000285,0.000300,0.000263,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted65 ftgen 0,0,4096,10,0.946888,0.960545,0.184774,0.018883,0.010446,0.014745,0.001268,0.004635,0.003175,0.000946,0.004142,0.002215,0.000862,0.002500,0.001973,0.001800,0.000634,0.001025,0.001812,0.001970,0.001697,0.001360,0.000855,0.000747,0.001079,0.000849,0.000880,0.000574,0.000730,0.000688,0.000981,0.000337,0.000974,0.000733,0.000756,0.000555,0.000861,0.000545,0.000749,0.000475,0.000535,0.000441,0.000525,0.000483,0.000584,0.000565,0.000414,0.000551,0.000370,0.000472,0.000237,0.000446,0.000374,0.000619,0.000426,0.000403,0.000396,0.000408,0.000394,0.000340,0.000296,0.000324,0.000299,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted67 ftgen 0,0,4096,10,0.904104,0.687203,0.074239,0.008596,0.008832,0.003406,0.003870,0.000671,0.001852,0.001635,0.001087,0.000499,0.001292,0.000964,0.000856,0.000780,0.000614,0.000711,0.000618,0.000934,0.000903,0.000581,0.000840,0.000399,0.000489,0.000328,0.000505,0.000515,0.000432,0.000365,0.000364,0.000454,0.000390,0.000377,0.000361,0.000314,0.000378,0.000357,0.000330,0.000270,0.000342,0.000244,0.000217,0.000204,0.000235,0.000181,0.000230,0.000167,0.000212,0.000212,0.000203,0.000218,0.000163,0.000210,0.000170,0.000173,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted69 ftgen 0,0,4096,10,0.944934,0.293223,0.066919,0.017808,0.007234,0.002307,0.002545,0.000739,0.000556,0.000511,0.000549,0.000723,0.000242,0.000601,0.000453,0.000316,0.000324,0.000312,0.000164,0.000264,0.000131,0.000093,0.000233,0.000211,0.000152,0.000187,0.000090,0.000233,0.000171,0.000154,0.000116,0.000082,0.000095,0.000121,0.000103,0.000074,0.000094,0.000088,0.000098,0.000122,0.000105,0.000080,0.000084,0.000079,0.000074,0.000104,0.000062,0.000071,0.000065,0.000064,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted70 ftgen 0,0,4096,10,0.943312,0.441802,0.052080,0.022643,0.001043,0.002473,0.002554,0.002310,0.001720,0.000881,0.001191,0.001619,0.000857,0.000858,0.001539,0.000697,0.000554,0.000498,0.000409,0.000174,0.000105,0.000147,0.000252,0.000549,0.000348,0.000262,0.000426,0.000336,0.000226,0.000305,0.000193,0.000333,0.000263,0.000183,0.000164,0.000171,0.000202,0.000221,0.000188,0.000137,0.000129,0.000098,0.000100,0.000144,0.000071,0.000094,0.000086,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapUnmuted ftgen 0,0,128,-27, 0,0, 22,0, 23,1, 24,2, 25,3, 26,4, 27,5, 28,6, 30,7, 31,8, 32,9, 33,10, 34,11, 35,12, 37,13, 38,14, 39,15, 40,16, 41,17, 42,18, 43,19, 44,20, 45,21, 46,22, 48,23, 49,24, 50,25, 51,26, 52,27, 53,28, 55,29, 56,30, 57,31, 58,32, 59,33, 60,34, 61,35, 62,36, 63,37, 64,38, 65,39, 67,40, 69,41, 70,42, 127,42 | |||
gitabs4morfUnmuted ftgen 0,0,64,-2, giUnmuted22,giUnmuted23,giUnmuted24,giUnmuted25,giUnmuted26,giUnmuted27,giUnmuted28,giUnmuted30,giUnmuted31,giUnmuted32,giUnmuted33,giUnmuted34,giUnmuted35,giUnmuted37,giUnmuted38,giUnmuted39,giUnmuted40,giUnmuted41,giUnmuted42,giUnmuted43,giUnmuted44,giUnmuted45,giUnmuted46,giUnmuted48,giUnmuted49,giUnmuted50,giUnmuted51,giUnmuted52,giUnmuted53,giUnmuted55,giUnmuted56,giUnmuted57,giUnmuted58,giUnmuted59,giUnmuted60,giUnmuted61,giUnmuted62,giUnmuted63,giUnmuted64,giUnmuted65,giUnmuted67,giUnmuted69,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70 | |||
;INITIAL INSTRUMENT SETTING WILL BE 'CLARINET' | |||
giwavemap init giwavemapClar | |||
gitabs4morf init gitabs4morfClar | |||
giSingleTab init giclar62 | |||
;FUNCTION TABLE USED TO RE-MAP THE RELATIONSHIP BETWEEN VELOCITY AND ATTACK TIME | |||
giattscl ftgen 0,0,128,-16,2,128,-10,0.005 | |||
giNAttScl ftgen 0,0,128,-16,8,128,-4,0.25 | |||
gasendL,gasendR init 0 | |||
opcode butlpsr,a,aa | |||
setksmps 1 | |||
ain,afreq xin | |||
kfreq downsamp afreq | |||
aout butlp ain,kfreq | |||
xout aout | |||
endop | |||
opcode SsplinePort,k,KkkO ;DEFINE OPCODE | |||
knum,kporttime,kcurve,iopt xin ;READ IN INPUT ARGUMENTS | |||
kout init i(knum) ;INITIALISE TO OUTPUT VALUE (PORTAMENTO APPLIED VALUE) | |||
ktrig changed knum ;...GENERATE A TRIGGER IS A NEW NOTE NUMBER IS GENERATED (FROM INSTR. 1) | |||
if ktrig=1 then ;IF A NEW (LEGATO) NOTE HAS BEEN PRESSED | |||
reinit S_CURVE ;BEGIN A REINITIALISATION PASS FROM LABEL | |||
endif ;END OF CONDITIONAL BRANCH | |||
S_CURVE: ;A LABEL. REINITIALISATION BEGINS FROM HERE. | |||
if iopt!=0 then ;IF ABSOLUTE/PROPORTIONAL SWITCH IS ON... (I.E. PROPORTIONAL) | |||
idiff = 1+abs(i(knum)-i(kout)) ;ABSOLUTE DIFFERENCE BETWEEN OLD NOTE AND NEW NOTE IN STEPS (+ 1) | |||
kporttime = kporttime*idiff ;SCALE PORTAMENTO TIME ACCORDING TO THE NOTE GAP | |||
endif ;END OF CONDITIONAL BRANCH | |||
imid = i(kout)+((i(knum)-i(kout))/2) ;SPLINE MID POINT VALUE | |||
isspline ftgentmp 0,0,4096,-16,i(kout),4096*0.5,i(kcurve),imid,(4096/2)-1,-i(kcurve),i(knum) ;GENERATE 'S' SPLINE | |||
kspd = i(kporttime)/kporttime ;POINTER SPEED AS A RATIO (WITH REFERENCE TO THE ORIGINAL DURATION) | |||
kptr init 0 ;POINTER INITIAL VALUE | |||
kout tablei kptr,isspline ;READ VALUE FROM TABLE | |||
kptr limit kptr+((ftlen(isspline)/(i(kporttime)*kr))*kspd), 0, ftlen(isspline)-1 ;INCREMENT THE POINTER BY THE REQUIRED NUMBER OF TABLE POINTS IN ONE CONTROL CYCLE AND LIMIT IT BETWEEN FIRST AND LAST TABLE POINT - FINAL VALUE WILL BE HELD IF POINTER ATTEMPTS TO EXCEED TABLE DURATION | |||
rireturn ;RETURN FROM REINITIALISATION PASS | |||
xout kout ;SEND PORTAMENTOED VALUES BACK TO CALLER INSTRUMENT | |||
endop | |||
instr UpdateTableNumbers ; SET VALUES FOR INSTRUMENT PRESETS ACCORDING TO BUTTON BANK CHOICE | |||
kporttime linseg 0,0.001,0.1 | |||
gkmonopoly chnget "monopoly" | |||
gkLegTim chnget "LegTim" | |||
gkModRte chnget "ModRte" | |||
gkshift chnget "shift" | |||
gkshift portk gkshift,kporttime | |||
gkNoiseAmp chnget "NoiseAmp" | |||
gkEQ_Lo chnget "EQ_Lo" | |||
gkEQ_Hi chnget "EQ_Hi" | |||
iPBendRange = 6 | |||
gkBendDn chnget "BendDn" | |||
gkBendDn scale gkBendDn,0,-iPBendRange | |||
gkBendUp chnget "BendUp" | |||
gkBendUp scale gkBendUp,iPBendRange,0 | |||
gkBend = gkBendUp+gkBendDn | |||
gkBend portk gkBend,kporttime | |||
gkpan chnget "pan" | |||
gklevel chnget "level" | |||
gkRvbMix chnget "RvbMix" | |||
gkRvbSize chnget "RvbSize" | |||
kInstr chnget "Instr" | |||
ktrig changed kInstr | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
iInstr = i(kInstr) | |||
if iInstr==1 then | |||
giwavemap init giwavemapClar | |||
gitabs4morf init gitabs4morfClar | |||
elseif iInstr==2 then | |||
giwavemap init giwavemapBClar | |||
gitabs4morf init gitabs4morfBClar | |||
elseif iInstr==3 then | |||
giwavemap init giwavemapCBClar | |||
gitabs4morf init gitabs4morfCBClar | |||
elseif iInstr==4 then | |||
giwavemap init giwavemapOboe | |||
gitabs4morf init gitabs4morfOboe | |||
elseif iInstr==5 then | |||
giwavemap init giwavemapBassoon | |||
gitabs4morf init gitabs4morfBassoon | |||
elseif iInstr==6 then | |||
giwavemap init giwavemapCBassoon | |||
gitabs4morf init gitabs4morfCBassoon | |||
elseif iInstr==7 then | |||
giwavemap init giwavemapViolin | |||
gitabs4morf init gitabs4morfViolin | |||
elseif iInstr==8 then | |||
giwavemap init giwavemapCello | |||
gitabs4morf init gitabs4morfCello | |||
elseif iInstr==9 then | |||
giwavemap init giwavemapPiccolo | |||
gitabs4morf init gitabs4morfPiccolo | |||
elseif iInstr==10 then | |||
giwavemap init giwavemapFlute | |||
gitabs4morf init gitabs4morfFlute | |||
elseif iInstr==11 then | |||
giwavemap init giwavemapAFlute | |||
gitabs4morf init gitabs4morfAFlute | |||
elseif iInstr==12 then | |||
giwavemap init giwavemapBFlute | |||
gitabs4morf init gitabs4morfBFlute | |||
elseif iInstr==13 then | |||
giwavemap init giwavemapAhh | |||
gitabs4morf init gitabs4morfAhh | |||
elseif iInstr==14 then | |||
giwavemap init giwavemapHornP | |||
gitabs4morf init gitabs4morfHornP | |||
elseif iInstr==15 then | |||
giwavemap init giwavemapHornF | |||
gitabs4morf init gitabs4morfHornF | |||
elseif iInstr==16 then | |||
giwavemap init giwavemapharmon | |||
gitabs4morf init gitabs4morfharmon | |||
elseif iInstr==17 then | |||
giwavemap init giwavemapMute1 | |||
gitabs4morf init gitabs4morfMute1 | |||
elseif iInstr==18 then | |||
giwavemap init giwavemapUnmuted | |||
gitabs4morf init gitabs4morfUnmuted | |||
endif | |||
rireturn | |||
endin | |||
instr 2 ;triggered via MIDI | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
ijitter chnget "jitter" | |||
inum notnum ;read in midi note number | |||
inum = inum+ijitter*0.2 ;random fixed pitch offset | |||
givel veloc 0,1 ;read in midi note velocity | |||
gknum = inum ;update a global krate variable for note pitch | |||
if i(gkmonopoly)==0 then ;if we are *not* in legato mode... | |||
inum notnum ; read midi note number (0 - 127) | |||
event_i "i",p1+1+(inum*0.001),0,-1,inum ; call sound producing instr | |||
krel release ; release flag (1 when note is released, 0 otherwise) | |||
if krel==1 then ; when note is released... | |||
turnoff2 p1+1+(inum*0.001),4,1 ; turn off the called instrument | |||
endif ; end of conditional | |||
else ;otherwise... (i.e. legato mode) | |||
iactive = i(gkactive) ;number of active notes of instr 3 (note in release are disregarded) | |||
if iactive==0 then ;...if no notes are active | |||
event_i "i",p1+1,0,-1 ;...start a new held note | |||
endif | |||
endif | |||
endin | |||
instr 3 ;waveguide instrument. MIDI notes are directed here. | |||
kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kporttime = kporttime*gkLegTim ;scale portamento time function with value from GUI knob widget | |||
if i(gkmonopoly)==1 then ;if we are in legato mode... | |||
krel release ;sense when note has been released | |||
gkactive = 1-krel ;if note is in release, gkactive=0, otherwise =1 | |||
knum SsplinePort gknum,kporttime,2,1 ;GLISSANDO TIME PROPORTIONAL TO NOTE GAP (OPTION SET TO '1'), THEREFORE PORTAMENTO TIME DEPENDENT UPON NOTE GAP. LARGER INTERVALS WILL RESULT IN PROPORTIONALLY LONGER PORTAMENTO TIMES. | |||
kactive active p1-1 ;...check number of active midi notes (previous instrument) | |||
if kactive==0 then ;if no midi notes are active... | |||
turnoff ;... turn this instrument off | |||
endif | |||
else ;otherwise... (polyphonic / non-legato mode) | |||
knum = p4 ;pitch equal to the original note pitch | |||
endif | |||
ivel init givel | |||
kvibdep chnget "vibdep" ;read in widgets | |||
ktremdep chnget "tremdep" | |||
ktonedep chnget "tonedep" | |||
kporttime linseg 0,0.001,0.02 ;CREATE A FUNCTION THAT RISES RAPIDLY FROM ZERO TO A FIXED VALUE THAT WILL BE USED FOR PORTAMENTO TIME | |||
kjitter chnget "jitter" | |||
iNAttAmp chnget "NAttAmp" | |||
iNAttTim chnget "NAttTim" | |||
idrop chnget "drop" | |||
;------------------------------------------------------------------------------------------------------------ | |||
;AMPLITUDE MODULATION (TREMOLO), VIBRATO AND TONE MODULATION | |||
;------------------------------------------------------------------------------------------------------------ | |||
if gkNoteTrig==1&&gkmonopoly==1 then ;if a new note is beginning and if we are in monophonic mode... | |||
reinit RESTART_ENVELOPE ;reinitialise the modulations build up | |||
endif | |||
RESTART_ENVELOPE: | |||
iphs random 0,1 ;RANDOM INITIAL PHASE FOR EACH NOTE | |||
kmoddep chnget "moddep";ctrl7 1,1,0,1 ;READ IN CONTROLLER 1. WILL BE USED TO CONTROL LFO MODULATION DEPTH | |||
irisetime = 1 ;THE TIME IT TAKES FOR MODULATION TO RISE TO ITS MAXIMUM VALUE | |||
kmodenv expseg 0.01,irisetime,1,1,1 ;MODULATION ENVELOPE. MODULATION WILL RISE FROM NEAR ZERO TO ITS REQUIRED VALUE OVER THE DURATION OF 'irisetime' FOR EACH NEW NOTE | |||
rireturn | |||
kmodenv portk kmodenv,0.05 ;smooth changes in modulation envelope. This is needed if the envelope is restarted in monophonic mode | |||
kRteVar randi 0.1,4 ;random variation of the rate of modulation | |||
kmodrate = gkModRte*octave(kRteVar) ;MODULATION RATE. (NOT CONSTANT IN ORDER TO ADD A BIT OF REALISM) | |||
kDepVar randomi 0.5,1,4,1 ;random variance of the depth of modulation | |||
kmoddep = kmoddep*kDepVar ;modulation depth modulated by randopm factor | |||
kvib oscili kvibdep*kmoddep*kmodenv,kmodrate, gisine,iphs ;VIBRATO LFO | |||
ktrem oscili ktremdep*kmoddep*kmodenv,kmodrate,gisine,iphs+0.5 ;TREMOLO LFO (NOTE PHASE WITH RESPECT TO THAT OF VIBRATO) | |||
ktrem = 1+(ktrem) ;OFFSET TREMOLO SO THAT IT MODULATES ABOUT '1' INSTEAD OF ABOUT ZERO. | |||
ktonemod oscili ktonedep*kmoddep*kmodenv,kmodrate,gisine,iphs+0.5 ;TONE MODULATION LFO | |||
ktonemod = ktonemod - (3*kmoddep*kmodenv) ; | |||
;------------------------------------------------------------------------------------------------------------ | |||
;PITCH JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER REALISM) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kPitchJit jitter 0.05*kjitter*4, 1, 20 | |||
;------------------------------------------------------------------------------------------------------------ | |||
;AMPLITUDE JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER REALISM) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kAmpJit jitter 0.1*kjitter*4, 0.2, 1 | |||
kAmpJit = kAmpJit+1 ;OFFSET SO IT MODULATES ABOUT '1' INSTEAD OF ABOUT ZERO | |||
;THE TABLE INTO WHICH THE MORPHED TABLE WILL BE WRITTEN IS CREATED WITHIN THE INSTRUMENT ITSELF | |||
;THIS IS DONE SO AS EACH NOTE PLAYED WILL REQUIRE ITS OWN UNIQUE MORPHED TABLE | |||
;THE TABLE CREATED WILL BE A TEMPORARY TABLE. IT WILL BE DESTROYED WHEN THE NOTE IS FINISHED AND IT IS NO LONGER NEEDED. | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
;pchbend DOESN'T SEEM TO WORK AT PRESENT IN CABBAGE | |||
kpchbend pchbend 0,4 ;READ MIDI PITCH BEND. THIS LINE OUTPUTS VALUES IN THE RANGE -2 TO 2. EQUILIBRIUM POSITION = 0. | |||
kpchbend portk kpchbend,kporttime ;APPLY SOME PORTAMENTO SMOOTHING TO THE PITCH BEND PARAMETER | |||
knum = knum+kpchbend+kvib+kPitchJit+gkBend ;DERIVE K-RATE NOTE NUMBER VALUE INCORPORATING PITCH BEND, VIBRATO, AND PITCH JITTER | |||
ktabndx limit knum+gkshift,0,127 ;SHIFT TABLE INDEX | |||
kftndx tablei ktabndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
iatt table ivel,giattscl,1 ;READ A VALUE MAPPED FROM KEY VELOCITY TO ATTACK TIME. (SEE TABLE giattscl) | |||
aenv linsegr 0,iatt,1,0.05,0 ;AMPLITUDE ENVELOPE | |||
kenv linsegr 0,iatt,1,0.05,0 ;K-RATE VERSION OF THE ABOVE | |||
/*NOISE ATTACK*/ | |||
iscale table i(gknum),giNAttScl ;LONGER ATTACK TIMES FOR LOWER NOTES | |||
kNenv expseg iNAttAmp+0.001,iNAttTim*iscale,0.001, 1, 0.001 ;NOISE ENVELOPE. WILL CREATE A HARD ATTACK AT THE START OF THE NOTE | |||
anoise gaussi 1,(kNenv-0.001)*iscale,1000 ;GENERATE GAUSSIAN NOISE IMPULSE AT THE START OF A NOTE | |||
if idrop>0 then | |||
adrop linsegr 0,0.05,-idrop ;SLIGHT PITCH DROP OFF UPON NOTE RELEASE | |||
acps = cpsmidinn(knum)*octave(anoise)*octave(adrop) | |||
else | |||
acps = cpsmidinn(knum)*octave(anoise) | |||
endif | |||
aAmpNoise gauss gkNoiseAmp | |||
aAmpNoise butlp aAmpNoise,gkEQ_Lo | |||
aAmpNoise buthp aAmpNoise,gkEQ_Hi | |||
asig poscil (aenv*ktrem*kAmpJit*0.1)*(1+aAmpNoise),acps,imorphtab ;CREATE THE AUDIO OSCILLATOR FROM THE MORPHED FUNCTION TABLE (IF MULTI-TABLE MODE IS SELECTED) | |||
kbright chnget "bright" ;BRIGHTNESS CONTROL (I.E. LOWPASS FILTER CUTOFF). | |||
kbright portk kbright,kporttime ;SMOOTH MOVEMENTS OF THE BRIGHTNESS CONTROL | |||
afreq interp cpsoct((kenv*4*kbright)+8+ktonemod) | |||
asig butlpsr asig,afreq ;LOWPASS FILTER THE SOUND (CALL UDO) | |||
aL,aR pan2 asig*gklevel,gkpan ;scale amplitude level and create stereo panned signal | |||
outs aL, aR ;SEND AUDIO TO THE OUTPUTS | |||
gasendL = gasendL+aL*gkRvbMix | |||
gasendR = gasendR+aR*gkRvbMix | |||
gkNoteTrig = 0 ;reset new-note trigger (in case it was '1') | |||
endin | |||
instr 5 ;reverb | |||
if gkRvbMix==0 kgoto SKIP_REVERB | |||
aL,aR reverbsc gasendL,gasendR,gkRvbSize,12000 | |||
outs aL,aR | |||
clear gasendL,gasendR | |||
SKIP_REVERB: | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i "UpdateTableNumbers" 0 3600 | |||
i 5 0 3600 ;reverb | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,65 @@ | |||
<Cabbage> | |||
form caption("Waveguide clar ") size(335, 165), colour("black"), pluginID("cla1") | |||
rslider bounds(0, 0, 80, 80) channel("noise"), range(0,0.5,.1), caption("Noise"), colour("yellow"), midictrl(1, 1) | |||
rslider bounds(85, 0, 80, 80) channel("vib"), range(0,12,1), caption("Vib rate"), colour("yellow"), midictrl(1, 2) | |||
rslider bounds(170, 0, 80, 80) channel("vibamp"), range(0,10,0), caption("Vib amp"), colour("yellow"), midictrl(1, 3) | |||
rslider bounds(255, 0, 80, 80) channel("stiff"), range(-0.44,-0.18, - 0.6), caption("Stiffness"), colour("yellow"), midictrl(1, 3) | |||
keyboard bounds(0, 85, 330, 50) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 | |||
;-n -d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
;Author: Giorgio Zucco (2012) | |||
sr = 44100 | |||
ksmps = 10 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
instr 1 | |||
iamp ampmidi 1 | |||
ifreq cpsmidi | |||
kngain chnget "noise" | |||
kvibf chnget "vib" | |||
kstiff chnget "stiff" | |||
kvamp chnget "vibamp" | |||
;kstiff = -0.3 | |||
iatt = 0.1 | |||
idetk = 0.1 | |||
;kngain = 0 ;vary breath | |||
;kvibf = 5.735 | |||
kvamp = 0.1 | |||
aclar wgclar iamp,ifreq,kstiff,iatt,idetk,kngain,kvibf,kvamp,1 | |||
aout clip aclar,0,0dbfs | |||
kenv linsegr 1,.1,1,.3,.5,.2,0 ;inviluppo d'ampiezza | |||
outs aout*kenv,aout*kenv | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
f0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,62 @@ | |||
<Cabbage> | |||
form caption("Waveguide flute ") size(335, 165), colour("black"), pluginID("flu") | |||
rslider bounds(0, 0, 80, 80) channel("jet"), range(0.08,0.56,0.08), caption("Air jet"), colour("yellow"), midictrl(1, 1) | |||
rslider bounds(85, 0, 80, 80) channel("vib"), range(0,12,1), caption("Vib rate"), colour("yellow"), midictrl(1, 2) | |||
rslider bounds(170, 0, 80, 80) channel("vibamp"), range(0,1,0), caption("Vib amp"), colour("yellow"), midictrl(1, 3) | |||
rslider bounds(255, 0, 80, 80) channel("noise"), range(0,0.6,0.1), caption("Noise"), colour("yellow"), midictrl(1, 3) | |||
keyboard bounds(0, 85, 330, 50) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 | |||
;-n -d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
;Author: Giorgio Zucco (2012) | |||
sr = 44100 | |||
ksmps = 10 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
instr 1 | |||
iamp ampmidi 1 | |||
ifreq cpsmidi | |||
kjet chnget "jet" | |||
kvibf chnget "vib" | |||
kngain chnget "noise" | |||
kstiff chnget "stiff" | |||
kvamp chnget "vibamp" | |||
iatt = 0.1 | |||
idetk = 0.1 | |||
aflute wgflute iamp, ifreq, kjet, iatt, idetk, kngain, kvibf, kvamp, 1 | |||
aout clip aflute,0,0dbfs | |||
kenv linsegr 1,.1,1,.3,.5,.2,0 ;inviluppo d'ampiezza | |||
outs aout*kenv,aout*kenv | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
f0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,64 @@ | |||
<Cabbage> | |||
form caption("Waveguide pluck ") size(335, 170), colour("black"), pluginID("plu1") | |||
rslider bounds(0, 0, 80, 80) channel("pick"), tracker(0), range(.1, 1,.5), caption("Pick"), colour("yellow"), midictrl(1, 1) | |||
rslider bounds(85, 0, 80, 80) channel("plucked"), range(0,2,1), caption("Point-plucked"), colour("yellow"), midictrl(1, 2) | |||
rslider bounds(170, 0, 80, 80) channel("damping"), range(1, 100, 10), caption("Damping"), colour("yellow"), midictrl(1, 3) | |||
rslider bounds(255, 0, 80, 80) channel("filter"), range(10, 30000, 100), caption("Filter"), colour("yellow"), midictrl(1, 4) | |||
keyboard pos(0, 85), size(330, 50) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 | |||
;-n -d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
;Author: Giorgio Zucco (2012) | |||
sr = 44100 | |||
ksmps = 10 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
instr 1 | |||
iamp ampmidi 1 | |||
ifreq cpsmidi | |||
kpick chnget "pick" | |||
kpoint chnget "plucked" | |||
kdamp chnget "damping" | |||
kfilt chnget "filter" | |||
kpickx portk kpick,.02 | |||
axcite oscil 1,1,1 ;segnale eccitatore | |||
apluck wgpluck ifreq,iamp,kpickx,i(kpoint),i(kdamp),i(kfilt),axcite | |||
aout clip apluck,0,0dbfs | |||
kenv linsegr 1,.1,1,.3,.5,.2,0 ;inviluppo d'ampiezza | |||
outs aout*kenv,aout*kenv | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
f0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,97 @@ | |||
<Cabbage> | |||
form caption("Impulse waveguide") size(560, 325), colour("black"),pluginID("imp1") | |||
rslider bounds(15, 10, 100, 100) channel("semi"), range(-12,12,-12), caption("Coarse"), colour("tomato") | |||
rslider bounds(120, 10, 100, 100) channel("spread"), range(0,1,.5), caption("spread"), colour("tomato") | |||
rslider bounds(225, 10, 100, 100) channel("detune"), range(-1,1,0), caption("Detune"), colour("tomato") | |||
rslider bounds(330, 10, 100, 100) channel("fback"), range(0.1,1,.8), caption("Feedback"), colour("tomato") | |||
rslider bounds(435, 10, 100, 100) channel("filter"), range(100,10000,2000), caption("Cutoff"), colour("tomato") | |||
rslider bounds(15, 120, 100, 100), caption("Impulse1"), colour("tomato"), channel("random1"), range(0,3,.1) | |||
rslider bounds(120, 120, 100, 100), caption("Impulse2"), colour("tomato"), channel("random2"), range(0,3,.1) | |||
rslider bounds(225, 120, 100, 100), caption("Rev level"), colour("tomato"), channel("level"), range(0,1,.8) | |||
rslider bounds(330, 120, 100, 100), caption("Rev size"), colour("tomato"), channel("revsize"), range(.1,.99,.7) | |||
checkbox bounds(450,120, 160, 20),channel("onoff"), text("Rev On/Off"), value(0) | |||
keyboard pos(15,230), size(520, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
seed 0 | |||
ga1 init 0 | |||
ga2 init 0 | |||
instr 1 | |||
gkrnd1 chnget "random1" | |||
gkrnd2 chnget "random2" | |||
gkrate chnget "rate" | |||
gksemi chnget "semi" | |||
gkspread chnget "spread" | |||
gkdetune chnget "detune" | |||
gkfeedback chnget "fback" | |||
gkfilt chnget "filter" | |||
iamp ampmidi 1 | |||
inote notnum | |||
kfreq1 = cpsmidinn(inote+int(gksemi)) | |||
kfreq2 = cpsmidinn(inote+int(gksemi)+gkdetune) | |||
kdev = rnd(.01) | |||
krnd1 randomh kdev,.01+gkrnd1,10 | |||
asig1 mpulse iamp,0.01+krnd1 | |||
krnd2 randomh kdev,.01+gkrnd2,10 | |||
asig2 mpulse iamp,0.01+krnd2 | |||
awg1 wguide1 asig1,kfreq1,gkfilt,gkfeedback | |||
awg2 wguide1 asig2,kfreq2,gkfilt,gkfeedback | |||
aL clip awg1,0,0dbfs | |||
aR clip awg2,0,0dbfs | |||
kenv mxadsr .001,1,1,.5 | |||
aoutL = ((aL * gkspread) + (aR * (1 - gkspread))) | |||
aoutR = ((aL * (1-gkspread)) + (aR * gkspread)) | |||
outs aoutL*kenv,aoutR*kenv | |||
vincr ga1,aoutL*kenv | |||
vincr ga2,aoutR*kenv | |||
endin | |||
instr 10 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "revsize" | |||
if ktrig = 1 then | |||
al,ar reverbsc ga1,ga2,ksize,12000,sr,0 | |||
asum1 dcblock2 al | |||
asum2 dcblock2 ar | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1*klevel,asum2*klevel | |||
clear ga1,ga2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i1 0 36000 | |||
i10 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,97 @@ | |||
<Cabbage> | |||
form caption("Impulse waveguide 2") size(550, 325), colour("black"),pluginID("imp2") | |||
rslider bounds(15, 10, 100, 100) channel("semi"), range(-12,12,-12), caption("Coarse"), colour("HotPink ") | |||
rslider bounds(120, 10, 100, 100) channel("spread"), range(0,1,.5), caption("spread"), colour("HotPink ") | |||
rslider bounds(225, 10, 100, 100) channel("detune"), range(-1,1,0), caption("Detune"), colour("HotPink ") | |||
rslider bounds(330, 10, 100, 100) channel("filter1"), range(100,20000,2000), caption("Cutoff1"), colour("HotPink ") | |||
rslider bounds(435, 10, 100, 100) channel("filter2"), range(100,20000,2000), caption("Cutoff2"), colour("HotPink ") | |||
rslider bounds(15, 120, 100, 100), caption("Impulse1"), colour("HotPink "), channel("random1"), range(0,3,.1) | |||
rslider bounds(120, 120, 100, 100), caption("Impulse2"), colour("HotPink "), channel("random2"), range(0,3,.1) | |||
rslider bounds(225, 120, 100, 100), caption("Rev level"), colour("HotPink "), channel("level"), range(0,1,.8) | |||
rslider bounds(330, 120, 100, 100), caption("Rev size"), colour("HotPink "), channel("revsize"), range(.1,.99,.7) | |||
checkbox bounds(450,120, 160, 20),channel("onoff"), text("Rev On/Off"), value(0) | |||
keyboard pos(15,230), size(520, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
seed 0 | |||
ga1 init 0 | |||
ga2 init 0 | |||
instr 1 | |||
gkrnd1 chnget "random1" | |||
gkrnd2 chnget "random2" | |||
gkrate chnget "rate" | |||
gksemi chnget "semi" | |||
gkspread chnget "spread" | |||
gkdetune chnget "detune" | |||
gkfilt1 chnget "filter1" | |||
gkfilt2 chnget "filter2" | |||
iamp ampmidi 1 | |||
inote notnum | |||
kfreq1 = cpsmidinn(inote+int(gksemi)) | |||
kfreq2 = cpsmidinn(inote+int(gksemi)+gkdetune) | |||
kdev = rnd(.01) | |||
krnd1 randomh kdev,.01+gkrnd1,10 | |||
asig1 mpulse iamp,0.01+krnd1 | |||
krnd2 randomh kdev,.01+gkrnd2,10 | |||
asig2 mpulse iamp,0.01+krnd2 | |||
awg1 wguide2 asig1,kfreq1,kfreq1*.5,gkfilt1,gkfilt2,.24,.24 | |||
awg2 wguide2 asig1,kfreq2,kfreq2*.5,gkfilt1,gkfilt2,.24,.24 | |||
aL clip awg1,0,0dbfs | |||
aR clip awg2,0,0dbfs | |||
kenv mxadsr .001,1,1,.5 | |||
aoutL = ((aL * gkspread) + (aR * (1 - gkspread))) | |||
aoutR = ((aL * (1-gkspread)) + (aR * gkspread)) | |||
outs aoutL*kenv,aoutR*kenv | |||
vincr ga1,aoutL*kenv | |||
vincr ga2,aoutR*kenv | |||
endin | |||
instr 10 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "revsize" | |||
if ktrig = 1 then | |||
al,ar reverbsc ga1,ga2,ksize,12000,sr,0 | |||
asum1 dcblock2 al | |||
asum2 dcblock2 ar | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1*klevel,asum2*klevel | |||
clear ga1,ga2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i1 0 36000 | |||
i10 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,204 @@ | |||
<Cabbage> | |||
form caption("Wave Terrain Synth"), size(760, 320), pluginID("wte1") | |||
xypad bounds(0, 0, 250, 210), channel("chanx", "chany"), text("Wave terrain X/Y"), rangex(0, 1, .2), rangey(0, 1, .4) | |||
groupbox bounds(260, 0, 240, 100), text("ADSR"), plant("adsr"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(260, 105, 240, 100), text("Tune/Moog filter"), plant("tune"){ | |||
rslider bounds(.0, .3, .6, .6), text("Coarse"), colour("red"), channel("det1"), range(-24,12,0) | |||
rslider bounds(.25, .3, .6, .6), text("Detune"), colour("red"), channel("detune"), range(-1,1,0) | |||
rslider bounds(.5, .3, .6, .6), text("cutoff"), colour("red"), channel("cutoff"), range(500,22000,4000) | |||
rslider bounds(.74, .3, .6, .6), text("reso"), colour("red"), channel("resonance"), range(.1,.9,.5) | |||
} | |||
groupbox bounds(510,0, 240, 100), text("LFO/Stereo chorus"), plant("mod"){ | |||
rslider bounds(.0, .3, .6, .6), text("Lfo amp"), colour("red"), channel("lfoamp"), range(0,50, 0) | |||
rslider bounds(.25, .3, .6, .6), text("Lfo rate"), colour("red"), channel("lforate"), range(0,20, 0) | |||
rslider bounds(.5, .3, .6, .6), text("depth"), colour("red"), channel("chdepth"), range(0,10,0) | |||
rslider bounds(.75, .3, .6, .6), text("rate"), colour("red"), channel("chrate"), range(0,10,0) | |||
} | |||
groupbox bounds(510,105, 240, 100), text("Reverb"), plant("rev"){ | |||
rslider bounds(0, .3, .6, .6), text("level"), colour("dodgerblue"), channel("level"), range(0,1,0) | |||
rslider bounds(0.25, .3, .6, .6), text("size"), colour("dodgerblue"), channel("size"), range(.1,.99,.5) | |||
;rslider bounds(115, 30, 60, 60), text("depth"), colour("dodgerblue"), channel("chdepth"), range(0,10,0) | |||
;rslider bounds(165, 30, 60, 60), text("rate"), colour("dodgerblue"), channel("chrate"), range(0,10,0) | |||
checkbox bounds(.55, .40, .60, .30),channel("onoff"), text("On/Off"), value(0), colour("red") | |||
} | |||
} | |||
keyboard bounds(0, 220, 750, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -m0d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;turnon don't work! | |||
;turnon 10 ;chorus | |||
;turnon 12 ;reverb | |||
ga1 init 0 | |||
ga2 init 0 | |||
garev1 init 0 | |||
garev2 init 0 | |||
gitemp ftgen 1,0,16384,10,1,0,.6,0,.3,0,.2,0,.1 | |||
gitemp ftgen 2,0,16384,10,1,1,1,1,0.7,0.5,0.3,0.1 | |||
;******************************************* | |||
opcode StChorus,aa,aakkkk | |||
asigr,asigl,kdepth,kdepthl,krate,kratel xin ;legge i parametri in entrata | |||
;ar,al StChorus asigr,asigl,kdepth,kdepthl,krate,kratel | |||
k1ch randi kdepth/2,krate,1 | |||
ar1 vdelay asigr,kdepth/2+k1ch,10 | |||
k2ch randi kdepth/2,krate*0.9,.2 | |||
ar2 vdelay asigr,kdepth/2+k2ch,10 | |||
k3ch randi kdepth/2,krate*1.1,.2 | |||
ar3 vdelay asigr,kdepth/2+k3ch,10 | |||
k4ch randi kdepth/2,krate*1.3,.1 | |||
ar4 vdelay asigr,kdepth/2+k4ch,10 | |||
k1chl randi kdepthl/2,kratel,1 | |||
ar1l vdelay asigl,kdepthl/2+k1chl,10 | |||
k2chl randi kdepthl/2,kratel*0.9,.2 | |||
ar2l vdelay asigl,kdepthl/2+k2chl,10 | |||
k3chl randi kdepthl/2,kratel*1.1,.2 | |||
ar3l vdelay asigl,kdepthl/2+k3chl,10 | |||
k4chl randi kdepthl/2,kratel*1.3,.1 | |||
ar4l vdelay asigl,kdepthl/2+k4chl,10 | |||
aL = (ar1+ar2+ar3+ar4)/4 | |||
aR = (ar1l+ar2l+ar3l+ar4l)/4 | |||
xout aL,aR ; write output | |||
endop | |||
;*********************************************** | |||
instr 1 | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
ksemi chnget "det1" | |||
kdet chnget "detune" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
kcutoff chnget "cutoff" | |||
kreso chnget "resonance" | |||
kx1 chnget "chanx" | |||
ky1 chnget "chany" | |||
kx portk kx1,.05 ;remove noise | |||
ky portk ky1,.05 | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(ksemi)+kdet) | |||
;lfo | |||
klfo poscil klfoamp,klforate,1 | |||
ifunc1 = 1 | |||
ifunc2 = 2 | |||
a1b wterrain iamp,(kfreq1+klfo),.1+kx,.1+ky,-kx,.1+ky,ifunc1,ifunc2 | |||
a2b wterrain iamp,(kfreq2+klfo),.1+kx,.1+ky,-kx,.1+ky,ifunc1,ifunc2 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
aout = a1b+a2b ;global out | |||
;abulp1 butterlp aout,kcutoff*kadsrfilt | |||
afilt moogladder aout,kcutoff,kreso | |||
amaster balance afilt,aout | |||
aclip clip amaster,0,0dbfs | |||
kpan jspline 1,0,8 | |||
al,ar pan2 aclip,kpan | |||
outs (al*kadsr),(ar*kadsr) | |||
vincr ga1,(al*kadsr) | |||
vincr ga2,(ar*kadsr) | |||
vincr garev1,(al*kadsr) | |||
vincr garev2,(ar*kadsr) | |||
endin | |||
;stereo chorus | |||
instr 10 | |||
k1 chnget "chdepth" | |||
k2 chnget "chrate" | |||
kfxdepth portk k1,.01 | |||
kfxrate portk k2,.01 | |||
acho1,acho2 StChorus ga1,ga2,kfxdepth,kfxdepth*.8,kfxrate*.8,kfxrate*.5 | |||
outs acho1,acho2 | |||
clear ga1,ga2 | |||
endin | |||
instr 12 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc garev1,garev2,ksize,16000,sr,0 | |||
asum1 dcblock2 al | |||
asum2 dcblock2 ar | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1*klevel,asum2*klevel | |||
clear garev1,garev2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
;f0 36000 | |||
i1 0 36000 | |||
i10 0 36000 | |||
i12 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,486 @@ | |||
<Cabbage> | |||
form caption("gbuzz Synth") size(875, 375), pluginID("GBuz") | |||
image bounds( 0, 0,875,295), colour("DarkSlateGrey"), outline("MediumSlateBlue"), line(3) ; main panel colouration | |||
;MAIN | |||
image bounds( 10, 6,495, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"),plant("main"){ ;main | |||
label bounds(180, 5,100, 15), text("Main"), fontcolour(white) | |||
rslider bounds( 0, 23, 62, 62), text("Level"), colour(SlateGrey) channel("level"),range(0,20, 10,0.5,0.001), fontcolour(white) | |||
rslider bounds( 60, 23, 62, 62), text("Power"), colour(SlateGrey) channel("mul"), range(0, 0.97, 0.1), fontcolour(white) | |||
rslider bounds(120, 23, 62, 62), text("Lowest"), colour(SlateGrey) channel("lh"), range(1, 40, 3,1,1), fontcolour(white) | |||
rslider bounds(180, 23, 62, 62), text("Number"), colour(SlateGrey) channel("nh"), range(1,200,10,1,1), fontcolour(white) | |||
rslider bounds(240, 23, 62, 62), text("Jitter"), colour(SlateGrey) channel("jitter"),range(0, 1, 0.4), fontcolour(white) | |||
rslider bounds(300, 23, 62, 62), text("Pan"), colour(SlateGrey) channel("pan"),range(0, 1, 0.5), fontcolour(white) | |||
label bounds(368, 19, 90, 11), text("Waveform"), fontcolour(white) | |||
combobox bounds(365, 30, 60, 18), channel("waveform"), value(3), text("cosine", "sine", "user") | |||
label bounds(368, 52, 90, 11), text("User Matrix"), fontcolour(white) | |||
checkbox bounds(368, 63, 10, 10), channel("part1"), FontColour(white), colour("lime"), value(1) | |||
checkbox bounds(378, 63, 10, 10), channel("part2"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(388, 63, 10, 10), channel("part3"), FontColour(white), colour("lime"), value(1) | |||
checkbox bounds(398, 63, 10, 10), channel("part4"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(408, 63, 10, 10), channel("part5"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(418, 63, 10, 10), channel("part6"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(368, 73, 10, 10), channel("part7"), FontColour(white), colour("lime"), value(1) | |||
checkbox bounds(378, 73, 10, 10), channel("part8"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(388, 73, 10, 10), channel("part9"), FontColour(white), colour("lime"), value(0) | |||
checkbox bounds(398, 73, 10, 10), channel("part10"), FontColour(white), colour("lime"), value(1) | |||
checkbox bounds(408, 73, 10, 10), channel("part11"), FontColour(white), colour("lime"), value(1) | |||
checkbox bounds(418, 73, 10, 10), channel("part12"), FontColour(white), colour("lime"), value(0) | |||
rslider bounds(430, 23, 62, 62), text("Octave"), colour(SlateGrey) channel("octave"),range(-8, 8, -4,1,1), fontcolour(white) | |||
} | |||
;POLYPHONY | |||
image bounds(510, 6,170, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("polyphony"){ ;polyphony | |||
label bounds( 35, 5,100, 15), text("Polyphony"), fontcolour(white) | |||
button bounds( 10, 24, 70, 25), text("mono", "poly"), channel("monopoly"), value(1), fontcolour("lime") | |||
rslider bounds(110, 26, 60, 60), text("Leg.Time"), channel("LegTim"), range(0.01, 15, 0.05, 0.25, 0.00001), fontcolour(white) colour(SlateGrey) | |||
label bounds( 37, 54, 90, 11), text("Mode"), fontcolour(white) | |||
combobox bounds( 10, 65, 90, 18), channel("PortMode"), value(1), text("Fixed", "Proportional") | |||
} | |||
;REVERB | |||
image bounds(710,101,120, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("reverb"){ ;reverb | |||
label bounds( 35, 5,100, 15), text("Reverb"), fontcolour(white) | |||
rslider bounds( 0, 23, 60, 60), text("Mix"), channel("RvbMix"), range(0, 1, 0.3), fontcolour(white) colour(SlateGrey) | |||
rslider bounds( 60, 23, 60, 60), text("Size"), channel("RvbSize"), range(0.3, 1, 0.7), fontcolour(white) colour(SlateGrey) | |||
} | |||
;PITCH BEND | |||
image bounds(685, 6,185, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("pitchbend"){ ;pitch bend | |||
label bounds( 52, 5,100, 15), text("Pitch Bend"), fontcolour(white) | |||
rslider bounds( 0, 23, 60, 60), fontcolour("white"), text("< Bend"), channel("BendDown"), range(-1,0, 0, 1,0.001), colour(SlateGrey) | |||
rslider bounds( 60, 23, 60, 60), fontcolour("white"), text("Bend >"), channel("BendUp"), range(0, 1, 0, 1,0.001), colour(SlateGrey) | |||
rslider bounds(120, 23, 60, 60), fontcolour("white"), text("Bend Rng."), channel("BendRange"), range(1, 24, 12, 1,1), colour(SlateGrey) | |||
} | |||
;MULTIPLIER ENVELOPE | |||
image bounds( 10,101,305, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("multiplierenvelope"){ ;multiplier envelope | |||
label bounds( 83, 5,160, 15), text("Multiplier Envelope"), fontcolour(white) | |||
rslider bounds( 0, 23, 62, 62), text("Att"), colour(SlateGrey) channel("MAtt"),range(0, 8.000, 0.01, 0.375,0.0001), fontcolour(white) | |||
rslider bounds( 60, 23, 62, 62), text("Lev"), colour(SlateGrey) channel("MLev"),range(0, 1.000, 0.6), fontcolour(white) | |||
rslider bounds(120, 23, 62, 62), text("Dec"), colour(SlateGrey) channel("MDec"),range(0, 8.000, 3, 0.375,0.0001), fontcolour(white) | |||
rslider bounds(180, 23, 62, 62), text("Sus"), colour(SlateGrey) channel("MSus"),range(0, 1.000, 0), fontcolour(white) | |||
rslider bounds(240, 23, 62, 62), text("Rel"), colour(SlateGrey) channel("MRel"),range(0, 8.000, 0.1, 0.375,0.0001), fontcolour(white) | |||
} | |||
;LOW CUT | |||
image bounds(320,101,125, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("lowcut"){ ;Low Cut | |||
checkbox bounds( 30, 6, 70, 12), text("Low Cut") channel("LowCutOnOff"), FontColour(white), colour("lime") | |||
rslider bounds( 0, 23, 62, 62), text("Low Cut"), colour(SlateGrey) channel("LowCut"),range(0, 30.00, 0,1,0.0011), fontcolour(white) | |||
rslider bounds( 60, 23, 62, 62), text("Lo Poles"), colour(SlateGrey) channel("LowPoles"),range(2, 30, 2,1,1), fontcolour(white) | |||
} | |||
;HIGH CUT | |||
image bounds(450,101,125, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("highcut"){ ;High Cut | |||
checkbox bounds( 28, 6, 70, 12), text("High Cut") channel("HighCutOnOff"), FontColour(white), colour("lime"), value(1) | |||
rslider bounds( 2, 23, 62, 62), text("High Cut"), colour(SlateGrey) channel("HighCut"),range(1, 100.00, 7,0.25,0.0001), fontcolour(white) | |||
rslider bounds( 62, 23, 62, 62), text("Hi Poles"), colour(SlateGrey) channel("HighPoles"),range(2, 30, 8,1,1), fontcolour(white) | |||
} | |||
;AMPLITUDE ENVELOPE | |||
image bounds( 10,196,305, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("amplitudeenvelope"){ ;amplitude envelope | |||
label bounds( 83, 5,160, 15), text("Amplitude Envelope"), fontcolour(white) | |||
rslider bounds( 0, 23, 62, 62), text("Att"), colour(SlateGrey) channel("AAtt"),range(0, 8.000, 0, 0.375,0.0001), fontcolour(white) | |||
rslider bounds( 60, 23, 62, 62), text("Lev"), colour(SlateGrey) channel("ALev"),range(0, 1.000, 1), fontcolour(white) | |||
rslider bounds(120, 23, 62, 62), text("Dec"), colour(SlateGrey) channel("ADec"),range(0, 8.000, 3, 0.375,0.0001), fontcolour(white) | |||
rslider bounds(180, 23, 62, 62), text("Sus"), colour(SlateGrey) channel("ASus"),range(0, 1.000, 0), fontcolour(white) | |||
rslider bounds(240, 23, 62, 62), text("Rel"), colour(SlateGrey) channel("ARel"),range(0, 8.000, 0.05, 0.375,0.0001), fontcolour(white) | |||
} | |||
;MODULATION | |||
image bounds(320,196,485, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("modulation"){ ;MODULATION | |||
label bounds(203, 5,100, 15), text("Modulation"), fontcolour(white) | |||
rslider bounds( 2, 23, 62, 62), text("Mod.Depth"), colour(SlateGrey) channel("mod"), range(0, 1.00, 0.7), fontcolour(white) | |||
rslider bounds( 62, 23, 62, 62), text("Delay"), colour(SlateGrey) channel("VDel"), range(0, 4.00, 0), fontcolour(white) | |||
rslider bounds(122, 23, 62, 62), text("Rise"), colour(SlateGrey) channel("VRis"), range(0, 5.00, 1.5), fontcolour(white) | |||
rslider bounds(182, 23, 62, 62), text("Rate"), colour(SlateGrey) channel("VRate"), range(0,30.00, 2.7), fontcolour(white) | |||
rslider bounds(242, 23, 62, 62), text("Rate Rnd."), colour(SlateGrey) channel("VRatRnd"),range(0, 2.00, 0.5), fontcolour(white) | |||
rslider bounds(302, 23, 62, 62), text("Vib.Dep."), colour(SlateGrey) channel("VibDep"),range(0, 1.00, 0.2), fontcolour(white) | |||
rslider bounds(362, 23, 62, 62), text("Trem.Dep."), colour(SlateGrey) channel("TremDep"),range(0, 0.5, 0.3), fontcolour(white) | |||
rslider bounds(422, 23, 62, 62), text("Tone Dep."), colour(SlateGrey) channel("ToneDep"),range(0, 4.00, 0), fontcolour(white) | |||
} | |||
;NOISE | |||
image bounds(580,101,125, 90), colour("DarkSlateGrey"), outline("white"), line(2), shape("sharp"), plant("noise"){ ;NOISE | |||
label bounds( 40, 5,100, 15), text("Noise"), fontcolour(white) | |||
rslider bounds( 2, 23, 62, 62), text("Depth"), colour(SlateGrey) channel("NoiseAmp"),range(0,300.00, 0, 1, 0.0001), fontcolour(white) | |||
rslider bounds( 62, 23, 62, 62), text("Damp"), colour(SlateGrey) channel("NoiseDamp"),range(15, 10000, 1000, 0.5, 0.01), fontcolour(white) | |||
} | |||
keyboard pos(0, 295), size(875, 80) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 16 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
seed 0 | |||
massign 0,2 | |||
;Author: Iain McCurdy (2012) | |||
gicos ftgen 0,0,131072,9,1,1,90 ;FUNCTION TABLE THAT STORES A SINGLE CYCLE OF A COSINE WAVE | |||
gisine ftgen 0,0,131072,10,1 ;A SINE WAVE. USED BY THE LFOs. | |||
giwave ftgen 999,0,131073,10,1,0,1 ;USER WAVEFORM | |||
gasendL,gasendR init 0 | |||
;FUNCTION TABLE USED TO RE-MAP THE RELATIONSHIP BETWEEN VELOCITY AND ATTACK TIME | |||
giattscl ftgen 0,0,128,-16,2,128,-10,0.005 | |||
giNAttScl ftgen 0,0,128,-16,8,128,-4,0.25 | |||
gkactive init 0 ; Will contain number of active instances of instr 3 when legato mode is chosen. NB. notes in release stage will not be regarded as active. | |||
opcode FreqShifter,a,aki | |||
ain,kfshift,ifn xin ;READ IN INPUT ARGUMENTS | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
xout aFS ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
opcode SsplinePort,k,KkkO ;DEFINE OPCODE | |||
knum,kporttime,kcurve,iopt xin ;READ IN INPUT ARGUMENTS | |||
kout init i(knum) ;INITIALISE TO OUTPUT VALUE (PORTAMENTO APPLIED VALUE) | |||
ktrig changed knum ;...GENERATE A TRIGGER IS A NEW NOTE NUMBER IS GENERATED (FROM INSTR. 1) | |||
if ktrig=1 then ;IF A NEW (LEGATO) NOTE HAS BEEN PRESSED | |||
reinit S_CURVE ;BEGIN A REINITIALISATION PASS FROM LABEL | |||
endif ;END OF CONDITIONAL BRANCH | |||
S_CURVE: ;A LABEL. REINITIALISATION BEGINS FROM HERE. | |||
if iopt!=0 then ;IF ABSOLUTE/PROPORTIONAL SWITCH IS ON... (I.E. PROPORTIONAL) | |||
idiff = 1+abs(i(knum)-i(kout)) ;ABSOLUTE DIFFERENCE BETWEEN OLD NOTE AND NEW NOTE IN STEPS (+ 1) | |||
kporttime = kporttime*idiff ;SCALE PORTAMENTO TIME ACCORDING TO THE NOTE GAP | |||
endif ;END OF CONDITIONAL BRANCH | |||
imid = i(kout)+((i(knum)-i(kout))/2) ;SPLINE MID POINT VALUE | |||
isspline ftgentmp 0,0,4096,-16,i(kout),4096*0.5,i(kcurve),imid,(4096/2)-1,-i(kcurve),i(knum) ;GENERATE 'S' SPLINE | |||
kspd = i(kporttime)/kporttime ;POINTER SPEED AS A RATIO (WITH REFERENCE TO THE ORIGINAL DURATION) | |||
kptr init 0 ;POINTER INITIAL VALUE | |||
kout tablei kptr,isspline ;READ VALUE FROM TABLE | |||
kptr limit kptr+((ftlen(isspline)/(i(kporttime)*kr))*kspd), 0, ftlen(isspline)-1 ;INCREMENT THE POINTER BY THE REQUIRED NUMBER OF TABLE POINTS IN ONE CONTROL CYCLE AND LIMIT IT BETWEEN FIRST AND LAST TABLE POINT - FINAL VALUE WILL BE HELD IF POINTER ATTEMPTS TO EXCEED TABLE DURATION | |||
rireturn ;RETURN FROM REINITIALISATION PASS | |||
xout kout ;SEND PORTAMENTOED VALUES BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 ; read in widgets | |||
kporttime linseg 0,0.001,0.05 | |||
gkmul chnget "mul" | |||
gklh chnget "lh" | |||
gknh chnget "nh" | |||
gkjitter chnget "jitter" | |||
gkwaveform chnget "waveform" | |||
gkoctave chnget "octave" | |||
gkpart1 chnget "part1" | |||
gkpart2 chnget "part2" | |||
gkpart3 chnget "part3" | |||
gkpart4 chnget "part4" | |||
gkpart5 chnget "part5" | |||
gkpart6 chnget "part6" | |||
gkpart7 chnget "part7" | |||
gkpart8 chnget "part8" | |||
gkpart9 chnget "part9" | |||
gkpart10 chnget "part10" | |||
gkpart11 chnget "part11" | |||
gkpart12 chnget "part12" | |||
ktrig changed gkpart1,gkpart2,gkpart3,gkpart4,gkpart5,gkpart6,gkpart7,gkpart8,gkpart9,gkpart10,gkpart11,gkpart12 | |||
if ktrig==1 then | |||
reinit USER_WAVEFORM | |||
endif | |||
USER_WAVEFORM: | |||
giwave ftgen 999,0,131073,10,i(gkpart1),i(gkpart2),i(gkpart3),i(gkpart4),i(gkpart5),i(gkpart6),i(gkpart7),i(gkpart8),i(gkpart9),i(gkpart10),i(gkpart11),i(gkpart12) ;USER WAVEFORM | |||
rireturn | |||
gkmonopoly chnget "monopoly" | |||
printk2 gkmonopoly | |||
gkLegTim chnget "LegTim" | |||
gkPortMode chnget "PortMode" | |||
gkpan chnget "pan" | |||
gklevel chnget "level" | |||
gkRvbMix chnget "RvbMix" | |||
gkRvbSize chnget "RvbSize" | |||
gkMAtt chnget "MAtt" ; multiplier envelope | |||
gkMLev chnget "MLev" | |||
gkMDec chnget "MDec" | |||
gkMSus chnget "MSus" | |||
gkMRel chnget "MRel" | |||
gkAAtt chnget "AAtt" ; amplitude envelope | |||
gkALev chnget "ALev" | |||
gkADec chnget "ADec" | |||
gkASus chnget "ASus" | |||
gkARel chnget "ARel" | |||
gkLowCutOnOff chnget "LowCutOnOff" | |||
gkLowCut chnget "LowCut" | |||
gkLowPoles chnget "LowPoles" | |||
gkHighCutOnOff chnget "HighCutOnOff" | |||
gkHighCut chnget "HighCut" | |||
gkHighPoles chnget "HighPoles" | |||
gkmod chnget "mod" ; modulation | |||
gkVDel chnget "VDel" | |||
gkVRis chnget "VRis" | |||
gkVRate chnget "VRate" | |||
gkVRatRnd chnget "VRatRnd" | |||
gkVibDep chnget "VibDep" | |||
gkTremDep chnget "TremDep" | |||
gkToneDep chnget "ToneDep" | |||
gkNoiseAmp chnget "NoiseAmp" ; noise | |||
gkNoiseDamp chnget "NoiseDamp" | |||
gkBendDown chnget "BendDown" | |||
gkBendUp chnget "BendUp" | |||
gkBendRange chnget "BendRange" | |||
gkPchBend portk (gkBendDown+gkBendUp)*gkBendRange, kporttime | |||
endin | |||
instr 2 ;triggered via MIDI | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
inum notnum ;read in midi note number | |||
givel veloc 0,1 ;read in midi note velocity | |||
gknum = inum ;update a global krate variable for note pitch | |||
;============================================================================================================================================================ | |||
if i(gkmonopoly)==0 then ; if we are *not* in legato mode... | |||
; METHOD 1: calling sub-instruments using event_1, fractional p1s and turnoff2s. (problematic on windows) | |||
; event_i "i",p1+1+(inum*0.001),0,-1,inum ; call sound producing instr | |||
;krel release ; release flag (1 when note is released, 0 otherwise) | |||
;if krel==1 then ; when note is released... | |||
; turnoff2 p1+1+(inum*0.001),4,1 ; turn off the called instrument | |||
;endif ; end of conditional | |||
; METHOD 2: using subinstr (problematic on windows and mac) | |||
;a1,a2 subinstr 3,inum | |||
; outs a1,a2 | |||
; METHOD 3: all instr code within the same instrument (the safest option on windows and mac, if rather inelegant) | |||
kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kglisstime = kporttime*gkLegTim ;scale portamento time function with value from GUI knob widget | |||
/* MODULATION */ | |||
krate randomi gkVRate-gkVRatRnd,gkVRate+gkVRatRnd,1,1 | |||
kModRise linseg 0,i(gkVDel)+0.0001, 0, i(gkVRis)+0.0001, 1 | |||
kmod lfo gkmod*kModRise,krate,0 | |||
kporttime linseg 0,0.001,1 ;CREATE A FUNCTION THAT RISES RAPIDLY FROM ZERO TO A FIXED VALUE THAT WILL BE USED FOR PORTAMENTO TIME | |||
;------------------------------------------------------------------------------------------------------------ | |||
;PITCH JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER REALISM) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kPitchJit jitter 0.05*gkjitter*4, 1, 20 | |||
;------------------------------------------------------------------------------------------------------------ | |||
;AMPLITUDE JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER REALISM) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kAmpJit jitter 0.1*gkjitter*4, 0.2, 1 | |||
kAmpJit = kAmpJit+1 ;OFFSET SO IT MODULATES ABOUT '1' INSTEAD OF ABOUT ZERO | |||
knum = inum+kPitchJit ;DERIVE K-RATE NOTE NUMBER VALUE INCORPORATING PITCH BEND, VIBRATO, AND PITCH JITTER | |||
/* OSCILLATOR */ | |||
kmul portk gkmul, kporttime*0.1 | |||
;kMulEnv linsegr 0, i(gkMAtt)+0.0001, i(gkMLev), i(gkMDec)+0.0001, i(gkMSus), i(gkMRel)+0.0001, 0 | |||
kMulEnv expsegr 0.001, i(gkMAtt)+0.0001, i(gkMLev)+0.001, i(gkMDec)+0.0001, i(gkMSus)+0.001, i(gkMRel)+0.0001, 0.001 | |||
kMulEnv = kMulEnv + 0.001 ; offset | |||
kmul = kmul+kMulEnv+(kmod*gkToneDep) | |||
kmul limit kmul,0,0.9 | |||
knum = knum + gkPchBend + (kmod*gkVibDep) | |||
ifn = ( i(gkwaveform) < 3 ? (gicos+i(gkwaveform)-1) : giwave) | |||
knum = knum+(gkoctave*12) | |||
asig gbuzz (kAmpJit*0.1)*(1+(kmod*gkTremDep*0.9)), cpsmidinn(knum), gknh, gklh, kmul, ifn;gicos+i(gkwaveform)-1 | |||
/* NOISE */ | |||
kNoiseAmp expcurve kmul,40 | |||
kNoiseAmp scale kNoiseAmp,2,0.1 | |||
anoise gauss kNoiseAmp*gkNoiseAmp | |||
anoise butlp anoise,gkNoiseDamp | |||
asig = asig * (1+anoise) | |||
/* LOW CUT / HIGH CUT FILTERS */ | |||
;FILTER | |||
if gkLowCutOnOff=1 then | |||
kLowCut portk gkLowCut,kporttime*0.1 | |||
kLowCut limit cpsmidinn(knum)*kLowCut,20,sr/2 | |||
ktrig changed gkLowPoles | |||
if ktrig=1 then | |||
reinit RESTART_LOWCUT | |||
endif | |||
RESTART_LOWCUT: | |||
asig clfilt asig,kLowCut,1,i(gkLowPoles) | |||
rireturn | |||
endif | |||
if gkHighCutOnOff=1 then | |||
kHighCut portk gkHighCut,kporttime*0.1 | |||
kHighCut limit cpsmidinn(knum)*kHighCut,20,sr/2 | |||
ktrig changed gkHighPoles | |||
if ktrig=1 then | |||
reinit RESTART_HIGHCUT | |||
endif | |||
RESTART_HIGHCUT: | |||
asig clfilt asig,kHighCut,0,i(gkHighPoles) | |||
rireturn | |||
endif | |||
aenv linsegr 0,i(gkAAtt)+0.0001,i(gkALev),i(gkADec),i(gkASus),i(gkARel),0 ;AMPLITUDE ENVELOPE | |||
asig = asig * aenv | |||
klevel portk gklevel,kporttime*0.1 | |||
kpan portk gkpan,kporttime*0.1 | |||
kRvbMix portk gkRvbMix,kporttime*0.1 | |||
aL,aR pan2 asig*klevel,kpan ;scale amplitude level and create stereo panned signal | |||
outs aL*(1-gkRvbSize), aR*(1-gkRvbSize) ;SEND AUDIO TO THE OUTPUTS | |||
gasendL = gasendL+aL*kRvbMix | |||
gasendR = gasendR+aR*kRvbMix | |||
;============================================================================================================================================================ | |||
else ;otherwise... (i.e. legato mode) | |||
;iactive active p1+1 ;check to see if there is already a note active... | |||
iactive = i(gkactive) ;number of active notes of instr 3 (note in release are disregarded) | |||
if iactive==0 then ;...if no notes are active | |||
event_i "i",p1+1,0,-1 ;...start a new held note | |||
endif | |||
endif | |||
endin | |||
instr 3 ;gbuzz instrument. MIDI notes are directed here. | |||
kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kglisstime = kporttime*gkLegTim ;scale portamento time function with value from GUI knob widget | |||
/* MODULATION */ | |||
krate randomi gkVRate-gkVRatRnd,gkVRate+gkVRatRnd,1,1 | |||
if gkNoteTrig==1 then | |||
reinit RESTART_MOD_ENV | |||
endif | |||
RESTART_MOD_ENV: | |||
kModRise linseg 0,i(gkVDel)+0.0001, 0, i(gkVRis)+0.0001, 1 | |||
kmod lfo gkmod*kModRise,krate,0 | |||
rireturn | |||
gkNoteTrig = 0 ;reset new-note trigger (in case it was '1') | |||
if i(gkmonopoly)==1 then ;if we are in legato mode... | |||
krel release ;sense when note has been released | |||
gkactive = 1-krel ;if note is in release, gkactive=0, otherwise =1 | |||
knum SsplinePort gknum,kglisstime,1,i(gkPortMode)-1 | |||
kactive active p1-1 ;...check number of active midi notes (previous instrument) | |||
if kactive==0 then ;if no midi notes are active... | |||
turnoff ;... turn this instrument off | |||
endif | |||
else ;otherwise... (polyphonic / non-legato mode) | |||
knum = p4 ;pitch equal to the original note pitch | |||
endif | |||
ivel init givel | |||
;------------------------------------------------------------------------------------------------------------ | |||
;PITCH JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER-LIKE INSTABILITY) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kPitchJit jitter 0.05*gkjitter*4, 1, 20 | |||
;------------------------------------------------------------------------------------------------------------ | |||
;AMPLITUDE JITTER (THIS WILL BE USED TO ADD HUMAN-PLAYER-LIKE INSTABILITY) | |||
;------------------------------------------------------------------------------------------------------------ | |||
; AMP | MIN_FREQ. | MAX_FREQ | |||
kAmpJit jitter 0.1*gkjitter*4, 0.2, 1 | |||
kAmpJit = kAmpJit+1 ;OFFSET SO IT MODULATES ABOUT '1' INSTEAD OF ABOUT ZERO | |||
knum = knum+kPitchJit ;DERIVE K-RATE NOTE NUMBER VALUE INCORPORATING PITCH BEND, VIBRATO, AND PITCH JITTER | |||
/* OSCILLATOR */ | |||
kmul portk gkmul, kporttime*0.1 | |||
;kMulEnv linsegr 0, i(gkMAtt)+0.0001, i(gkMLev), i(gkMDec)+0.0001, i(gkMSus), i(gkMRel)+0.0001, 0 | |||
kMulEnv expsegr 0.001, i(gkMAtt)+0.0001, i(gkMLev)+0.001, i(gkMDec)+0.0001, i(gkMSus)+0.001, i(gkMRel)+0.0001, 0.001 | |||
kMulEnv = kMulEnv + 0.001 ; offset | |||
kmul = kmul+kMulEnv+(kmod*gkToneDep) | |||
kmul limit kmul,0,0.9 | |||
knum = knum + gkPchBend + (kmod*gkVibDep) | |||
ifn = ( i(gkwaveform) < 3 ? (gicos+i(gkwaveform)-1) : giwave) | |||
asig gbuzz (kAmpJit*0.1)*(1+(kmod*gkTremDep*0.9)), cpsmidinn(knum+(gkoctave*12)), gknh, gklh, kmul, ifn;gicos+i(gkwaveform)-1 | |||
/* NOISE */ | |||
kNoiseAmp expcurve kmul,40 | |||
kNoiseAmp scale kNoiseAmp,2,0.1 | |||
anoise gauss kNoiseAmp*gkNoiseAmp | |||
anoise butlp anoise,gkNoiseDamp | |||
asig = asig * (1+anoise) | |||
/* LOW CUT / HIGH CUT FILTERS */ | |||
;FILTER | |||
if gkLowCutOnOff=1 then | |||
kLowCut portk gkLowCut,kporttime*0.1 | |||
kLowCut limit cpsmidinn(knum)*kLowCut,20,sr/2 | |||
ktrig changed gkLowPoles | |||
if ktrig=1 then | |||
reinit RESTART_LOWCUT | |||
endif | |||
RESTART_LOWCUT: | |||
asig clfilt asig,kLowCut,1,i(gkLowPoles) | |||
endif | |||
if gkHighCutOnOff=1 then | |||
kHighCut portk gkHighCut,kporttime*0.1 | |||
kHighCut limit cpsmidinn(knum)*kHighCut,20,sr/2 | |||
ktrig changed gkHighPoles | |||
if ktrig=1 then | |||
reinit RESTART_HIGHCUT | |||
endif | |||
RESTART_HIGHCUT: | |||
asig clfilt asig,kHighCut,0,i(gkHighPoles) | |||
rireturn | |||
endif | |||
aenv linsegr 0,i(gkAAtt)+0.0001,i(gkALev),i(gkADec),i(gkASus),i(gkARel),0 ;AMPLITUDE ENVELOPE | |||
asig = asig * aenv | |||
klevel portk gklevel,kporttime*0.1 | |||
kpan portk gkpan,kporttime*0.1 | |||
kRvbMix portk gkRvbMix,kporttime*0.1 | |||
aL,aR pan2 asig*klevel,kpan ;scale amplitude level and create stereo panned signal | |||
outs aL*(1-gkRvbSize), aR*(1-gkRvbSize) ;SEND AUDIO TO THE OUTPUTS | |||
gasendL = gasendL+aL*kRvbMix | |||
gasendR = gasendR+aR*kRvbMix | |||
endin | |||
instr 5 ;reverb | |||
if gkRvbMix==0 kgoto SKIP_REVERB | |||
aL,aR reverbsc gasendL,gasendR,gkRvbSize,12000 | |||
outs aL,aR | |||
clear gasendL,gasendR | |||
SKIP_REVERB: | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 3600 ; read widgets | |||
i 5 0 3600 ; reverb | |||
f 0 3600 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,363 @@ | |||
hsboscil_synth.csd | |||
Synthesizer is divided into seven panels. | |||
Amplitude | |||
--------- | |||
Amp - amplitude control | |||
Att. - amplitude envelope attack time | |||
Dec. - amplitude envelope decay time | |||
Sus. - amplitude envelope sustain level | |||
Rel. - amplitude envelope release time | |||
Mod.Shape- shape used for amplitude modulation (tremolo). Choose from sine shaped, random splines, random sample and hold (randomh) or square wave. | |||
Rate - rate of amplitude LFO (tremolo) | |||
Depth - depth of amplitude LFO | |||
Delay - delay time before amplitude LFO begins | |||
Rise - time over which amplitude LFO depth rises from zero to its prescribed value | |||
Brightness - brightness is really just a description of where the emphasis is in the stack of octave spaced tones that hsboscil produces | |||
---------- | |||
Brite - manual brightness control | |||
Vel. - amount of velocity to brightness control | |||
Att. - brightness envelope attack time | |||
Att.Lev - brightness envelope attack level | |||
Dec. - brightness envelope decay time | |||
Sus. - brightness envelope sustain level | |||
Rel. - brightness envelope release time | |||
Rel.Lev - brightness envelope release level | |||
Oct.Cnt.- Number of octave spaced partials in a tone | |||
Mod.Shape- shape used for brightness modulation. Choose from sine shaped, random splines, random sample and hold (randomh) or square wave. | |||
Rate - rate of brightness LFO | |||
Depth - depth of brightness LFO | |||
Delay - delay time before brightness LFO begins | |||
Rise - time over which brightness LFO depth rises from zero to its prescribed value | |||
Noise - interpolated gaussian modulation is applied to the pitch (tone) parameter which, at high rates/frequencies results in the addition of a noise component in the tone | |||
----- | |||
Rate - rate/frequency of noise modulation | |||
Depth - depth of noise modulation | |||
Reverb - the screverb opcode is used | |||
------ | |||
Mix - amount of reverb that is mixed into the output. When mix is zero the effect is bypassed. | |||
Size - size of the virtual space created by the reverb effect | |||
Pitch Modulation - modulation of the tone (pitch) parameter. This will be at a much slower rate than that applied using the 'noise' function | |||
---------------- | |||
Mod.Shape- shape used for pitch modulation. Choose from sine shaped, random splines, random sample and hold (randomh) or square wave. | |||
Rate - rate of pitch modulation LFO | |||
Depth - depth of pitch modulation LFO | |||
Delay - delay time before pitch modulation LFO begins | |||
Rise - time over which pitch modulation LFO depth rises from zero to its prescribed value | |||
Freq.Shift - a frequency shifting effect | |||
---------- | |||
Freq. - frequency by which the signal will be shifted | |||
Chorus - a stereo chorus effect. Two chorus voices are created which the panning of which is modulated randomly. Delay time/pitch modulations are random rather than cyclical. | |||
------ | |||
Mix - Amount of chorussed signal that is mixed into the output | |||
Depth - Depth of modualtion used in the chorus effect | |||
Rate - Rate of modulation used in the chorus effect | |||
<Cabbage> | |||
form caption("hsboscil Synth") size(590, 480), pluginID("hsbo") | |||
snapshot bounds( 5,455,200, 20), preset("hsboscil"), master(1), items("Preset 1", "Preset 2", "Preset 3", "Preset 4", "Preset 5", "Preset 6", "Preset 7", "Preset 8", "Preset 9", "Preset 10") | |||
;AMPLITUDE | |||
groupbox bounds(0, 0, 590, 100), colour( 10, 15, 30, 100) text("Amplitude"), fontcolour(255,0,0){ | |||
rslider bounds( 5, 30, 60, 60), text("Amp."), channel("amp"), range(0, 1, 0.3) | |||
line bounds( 65, 30, 2, 60), colour("DarkSlateGrey") | |||
rslider bounds( 70, 30, 60, 60), text("Att."), channel("AAtt"), range( 0, 8.00, 0.3,0.5) | |||
rslider bounds(120, 30, 60, 60), text("Dec."), channel("ADec"), range( 0, 8.00, 0.01,0.5) | |||
rslider bounds(170, 30, 60, 60), text("Sus."), channel("ASus"), range( 0, 1.00, 0.5,0.5) | |||
rslider bounds(220, 30, 60, 60), text("Rel."), channel("ARel"), range(0.01, 8, 0.3,0.5) | |||
line bounds(285, 30, 2, 60), colour("DarkSlateGrey") | |||
label bounds(305, 35, 70, 12), text("Mod.Shape") | |||
combobox bounds(300, 50, 70, 20), channel("amplfo"), value(2), text("sine", "splines", "S+H", "square") | |||
rslider bounds(375, 30, 60, 60), text("Rate"), channel("ARte"), range(0, 16.0, 4) | |||
rslider bounds(425, 30, 60, 60), text("Depth"), channel("ADep"), range(0, 1.00, 1) | |||
rslider bounds(475, 30, 60, 60), text("Delay"), channel("ADel"), range(0, 2.00, 0, 0.5) | |||
rslider bounds(525, 30, 60, 60), text("Rise"), channel("ARis"), range(0, 2.00, 0.1, 0.5) | |||
} | |||
;BRIGHTNESS | |||
groupbox bounds(0, 100,450,170), colour( 6, 18, 22, 100), text("Brightness"), fontcolour(205,10,10){ | |||
rslider bounds( 5,135, 60, 60), text("Brite"), channel("brite"), range(-6, 6.00, -2) | |||
rslider bounds( 5,200, 60, 60), text("Vel."), channel("BVelDep"), range(0, 6.00, 3) | |||
rslider bounds( 65,135, 60, 60), text("Oct.Cnt."), channel("octcnt"), range(2, 20, 3, 1, 1) | |||
line bounds(130,127, 2, 60), colour("DarkSlateGrey") | |||
rslider bounds(135,135, 60, 60), text("Att."), channel("BAtt"), range(0, 8.00, 0.1,0.5) | |||
rslider bounds(185,135, 60, 60), text("Att.Lev."), channel("BAttLev"), range(-6.00, 6, 1) | |||
rslider bounds(235,135, 60, 60), text("Dec."), channel("BDec"), range(0, 8.00, 0.1,0.5) | |||
rslider bounds(285,135, 60, 60), text("Sus."), channel("BSus"), range(-6, 6.00, 0) | |||
rslider bounds(335,135, 60, 60), text("Rel."), channel("BRel"), range(0, 8.00, 0.01,0.5) | |||
rslider bounds(385,135, 60, 60), text("Rel.Lev."), channel("BRelLev"), range(-4.00, 4, 0) | |||
line bounds( 90,200, 2, 60), colour("DarkSlateGrey") | |||
label bounds(120,205, 70, 12), text("Mod.Shape") | |||
combobox bounds(115,220, 70, 20), channel("britelfo"), value(2), text("sine", "splines", "S+H", "square") | |||
rslider bounds(185,200, 60, 60), text("Rate"), channel("BRte"), range(0, 30.0, 4) | |||
rslider bounds(235,200, 60, 60), text("Depth"), channel("BDep"), range(0, 6.00, 2) | |||
rslider bounds(285,200, 60, 60), text("Delay"), channel("BDel"), range(0, 2.00, 0.5, 0.5) | |||
rslider bounds(335,200, 60, 60), text("Rise"), channel("BRis"), range(0, 4.00, 1.5, 0.5) | |||
} | |||
;NOISE | |||
groupbox bounds(450, 100, 70,170), colour( 20, 7, 19, 100), text("Noise"), fontcolour(255,40,60){ | |||
rslider bounds(455, 135, 60, 60), text("Rate"), channel("NRte"), range(16,10000, 1000, 0.5) | |||
rslider bounds(455, 200, 60, 60), text("Depth"), channel("NDep"), range(0, 1.00, 0.05, 0.5) | |||
} | |||
;REVERB | |||
groupbox bounds(520, 100, 70,170), colour( 3, 25, 11, 100), text("Reverb"), fontcolour(255,0,100){ | |||
rslider bounds(525,135, 60, 60), text("Mix"), channel("RvbMix"), range(0, 1.00, 0.3) | |||
rslider bounds(525,200, 60, 60), text("Size"), channel("RvbSize"), range(0, 1.00, 0.82) | |||
} | |||
;PITCH MOD. | |||
groupbox bounds( 0,270,350,100), colour( 20, 25, 40, 100), text("Pitch Modulation"), fontcolour(255,100,0){ | |||
label bounds( 15,305, 65, 12), text("Mod.Shape") | |||
combobox bounds( 10,320, 65, 20), channel("pitchlfo"), value(1), text("sine", "splines", "S+H", "square") | |||
rslider bounds( 80,300, 60, 60), text("Rate"), channel("PRte"), range(0, 16.00, 0, 0.5) | |||
rslider bounds(130,300, 60, 60), text("Depth"), channel("PDep"), range(0, 1.00, 0) | |||
rslider bounds(180,300, 60, 60), text("Delay"), channel("PDel"), range(0, 2.00, 0, 0.5) | |||
rslider bounds(230,300, 60, 60), text("Rise"), channel("PRis"), range(0, 2.00, 0.1, 0.5) | |||
rslider bounds(280,300, 60, 60), text("Risset"), channel("TRate"), range(-3.00, 3, 0) | |||
} | |||
;FREQ. SHIFT | |||
groupbox bounds(350,270, 70,100), colour( 20, 5, 25, 100), text("Freq.Shift"), fontcolour(200,0,0){ | |||
rslider bounds(355,300, 60, 60), text("Freq."), channel("FShift"), range(-1000, 1000, -1000) | |||
} | |||
;CHORUS | |||
groupbox bounds(420,270,170,100), colour( 3, 10, 13, 100), text("Chorus"), fontcolour(255,200,0){ | |||
rslider bounds(425,300, 60, 60), text("Mix"), channel("ChoMix"), range(0, 1.00, 1) | |||
rslider bounds(475,300, 60, 60), text("Depth"), channel("ChoDep"), range(0, 0.100, 0.01,0.5,0.0001) | |||
rslider bounds(525,300, 60, 60), text("Rate"), channel("ChoRte"), range(0, 20.0, 4, 0.5) | |||
} | |||
keyboard pos(0, 370), size(590, 80) | |||
} | |||
image bounds(290, 455, 210, 20), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.15, .9, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE. HIGHER ksmps can result in quantisation noise in kbrite modulations. | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
seed 0 | |||
massign 0,2 | |||
;Author: Iain McCurdy (2012) | |||
gisine ftgen 0,0,4096,10,1 | |||
giwfn ftgen 0, 0, 131072, 10, 1 ;A SINE WAVE | |||
gioctfn ftgen 0, 0, 1024, -19, 1, 0.5, 270, 0.5 ;A HANNING-TYPE WINDOW | |||
gasendL,gasendR init 0 | |||
opcode FreqShifter,a,aki | |||
ain,kfshift,ifn xin ;READ IN INPUT ARGUMENTS | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
xout aFS ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 ;read in widgets | |||
gkamplfo chnget "amplfo" | |||
gkbritelfo chnget "britelfo" | |||
gkChoMix chnget "ChoMix" | |||
gkChoDep chnget "ChoDep" | |||
gkChoRte chnget "ChoRte" | |||
gkRvbMix chnget "RvbMix" | |||
gkRvbSize chnget "RvbSize" | |||
gkFShift chnget "FShift" | |||
gkNRte chnget "NRte" | |||
gkNDep chnget "NDep" | |||
gkpitchlfo chnget "pitchlfo" | |||
gkPDel chnget "PDel" | |||
gkPRis chnget "PRis" | |||
gkPRte chnget "PRte" | |||
gkPDep chnget "PDep" | |||
endin | |||
instr 2 ;hsboscil instrument. MIDI notes are directed here. | |||
kporttime linseg 0,0.001,0.01 ;PORTAMENTO TIME VALUE RISES QUICKLY FROM ZERO TO A HELD VALUE | |||
kamp chnget "amp" ;READ WIDGETS... | |||
iAAtt chnget "AAtt" ; | |||
iADec chnget "ADec" ; | |||
iASus chnget "ASus" ; | |||
iARel chnget "ARel" ; | |||
aenv linsegr 0.001,iAAtt+0.001,1,iADec+0.001,iASus,iARel+0.001,0.001 ;AMPLITUDE ENVELOPE | |||
iADel chnget "ADel" ; | |||
iARis chnget "ARis" ; | |||
kADep chnget "ADep" ; | |||
kARte chnget "ARte" ; | |||
kbrite chnget "brite" ; | |||
kbrite portk kbrite,kporttime | |||
koctcnt chnget "octcnt" ; | |||
iBVelDep chnget "BVelDep" ; | |||
iBAtt chnget "BAtt" ; | |||
iBAttLev chnget "BAttLev" ; | |||
iBDec chnget "BDec" ; | |||
iBSus chnget "BSus" ; | |||
iBRel chnget "BRel" ; | |||
iBRelLev chnget "BRelLev" ; | |||
kBEnv linsegr 0,iBAtt+0.001,iBAttLev,iBDec+0.001,iBSus,iBRel+0.001,iBRelLev ;'BRIGHTNESS' ENVELOPE | |||
iBDel chnget "BDel" ; | |||
iBRis chnget "BRis" ; | |||
kBDep chnget "BDep" ; | |||
kBRte chnget "BRte" ; | |||
kTRate chnget "TRate" ; | |||
ibasfreq cpsmidi ;READ MIDI NOTE PITCH | |||
ktrig changed koctcnt ;IF 'NUMBER OF OCTAVES' AS DEFINED BY WIDGET CHANGES GENERATE A TRIGGER | |||
if ktrig==1 then ;IF 'NUMBER OF OCTAVES' CHANGE TRIGGER HAS BEEN GENERATED... | |||
reinit UPDATE ;BEGIN A REINITIALISATION PASS FROM LABEL 'UPDATE' | |||
endif ;END OF CONDITIONAL | |||
UPDATE: ;LABEL 'UPDATE'. REINITIALISATION PASS BEGINS FROM HERE | |||
;AMPLITUDE LFO | |||
kdepth linseg 0,iADel+0.001,0,iARis+0.001,1 ;DEPTH OF MODULATION ENVELOPE | |||
if gkamplfo==1 then | |||
kALFO lfo (kdepth*kADep)/2,kARte,0 ;LFO (sine) | |||
elseif gkamplfo==2 then | |||
kALFO jspline (kdepth*kADep)/2,kARte,kARte | |||
elseif gkamplfo==3 then | |||
kALFO randomh -(kdepth*kADep)/2,(kdepth*kADep)/2,kARte | |||
kALFO port kALFO,0.001 ;smooth out the clicks | |||
else | |||
kALFO lfo (kdepth*kADep)/2,kARte,2 ;LFO (bi-square) | |||
kALFO port kALFO,0.001 ;smooth out the clicks | |||
endif | |||
kALFO = (kALFO+0.5) + (1 - kADep) ;OFFSET AND RESCALE LFO FUNCTION | |||
;VELOCITY TO AMPLITUDE | |||
iVelAmp veloc 0.2,1 ;READ IN MIDI NOTE VELOCITY AS A VALUE WITHIN THE RANGE 0.2 TO 1 | |||
;BRIGHTNESS LFO | |||
kdepth linseg 0,iBDel+0.001,0,iBRis+0.001,1 ;DEPTH OF MODULATION ENVELOPE | |||
if gkbritelfo==1 then | |||
kBLFO lfo kdepth*kBDep,kBRte,0 ;LFO (sine) | |||
elseif gkbritelfo==2 then | |||
kBLFO jspline kdepth*kBDep,kBRte,kBRte | |||
elseif gkbritelfo==3 then | |||
kBLFO randomh -kdepth*kBDep,kdepth*kBDep,kBRte | |||
kBLFO port kBLFO,0.004 ;smooth out the clicks | |||
else | |||
kBLFO lfo kdepth*kBDep,kBRte,2 ;LFO (bi-square) | |||
kBLFO port kBLFO,0.004 ;smooth out the clicks | |||
endif | |||
;VELOCITY TO BRIGHTNESS | |||
iBVel ampmidi iBVelDep ;MIDI NOTE VELOCITY USED TO DERIVE A VALUE THAT WILL INFLUENCE 'BRIGHTNESS' | |||
;NOISE | |||
knoise gaussi 1, gkNDep, gkNRte | |||
;RISSET | |||
kRisset lfo 1,kTRate,4 ;'RISSET GLISSANDO' FUNCTION | |||
;PITCH MODULATION | |||
kPDepth linseg 0,i(gkPDel)+0.001,0,i(gkPRis)+0.001,1 ;DEPTH OF MODULATION ENVELOPE | |||
if gkpitchlfo==1 then | |||
kPLFO lfo gkPDep*kPDepth,gkPRte,0 ;LFO | |||
elseif gkpitchlfo==2 then | |||
kPLFO jspline gkPDep*kPDepth,gkPRte,gkPRte | |||
elseif gkpitchlfo==3 then | |||
kPLFO randomh -gkPDep*kPDepth,gkPDep*kPDepth,gkPRte | |||
kPLFO port kPLFO,0.002 ;smooth out the clicks | |||
else | |||
kPLFO lfo gkPDep*kPDepth,gkPRte,2 ;LFO (bi-square) | |||
kPLFO port kPLFO,0.002 ;smooth out the clicks | |||
endif | |||
aL hsboscil kamp*kALFO*iVelAmp, kPLFO+kRisset+knoise, kbrite+kBEnv+kBLFO+iBVel, ibasfreq, giwfn, gioctfn, i(koctcnt), rnd(1) ;CREATE AN hsboscil TONE FOR THE LEFT CHANNEL. RANDOM INITIAL PHASE CREATE STEREO EFFECT. | |||
aR hsboscil kamp*kALFO*iVelAmp, kPLFO+kRisset+knoise, kbrite+kBEnv+kBLFO+iBVel, ibasfreq, giwfn, gioctfn, i(koctcnt), rnd(1) ;CREATE AN hsboscil TONE FOR THE RIGHT CHANNEL. RANDOM INITIAL PHASE CREATE STEREO EFFECT. | |||
aL = aL*aenv ;APPLY AMPLITUDE ENVELOPE TO AUDIO OUTPUT OF hsboscil | |||
aR = aR*aenv ;APPLY AMPLITUDE ENVELOPE TO AUDIO OUTPUT OF hsboscil | |||
rireturn | |||
/*FREQUENCY SHIFTER*/ | |||
if gkFShift==0 kgoto SKIP_FSHIFT ;IF F.SHIFT VALUE = 0, BYPASS THE EFFECT | |||
kFShift portk gkFShift,kporttime | |||
aL FreqShifter aL,kFShift,gisine | |||
aR FreqShifter aR,kFShift,gisine | |||
SKIP_FSHIFT: | |||
outs aL,aR ;SEND AUDIO TO OUTPUTS | |||
gasendL = gasendL+aL | |||
gasendR = gasendR+aR | |||
endin | |||
instr 3 ;Chorus effect | |||
if gkChoMix==0 goto SKIP_CHORUS | |||
kporttime linseg 0,0.001,1 | |||
kporttime = kporttime/gkChoRte | |||
kdlt1 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt1 portk kdlt1,kporttime | |||
adlt1 interp kdlt1 | |||
acho1 vdelay gasendL,adlt1*1000,1*1000 | |||
kdlt2 randomi ksmps/sr,gkChoDep,gkChoRte,1 | |||
kdlt2 portk kdlt2,kporttime | |||
adlt2 interp kdlt2 | |||
acho2 vdelay gasendR,adlt2*1000,1*1000 | |||
kpan1 randomi 0,1,gkChoRte,1 | |||
kpan2 randomi 0,1,gkChoRte,1 | |||
a1L,a1R pan2 acho1,kpan1 | |||
a2L,a2R pan2 acho2,kpan2 | |||
achoL = a1L+a2L | |||
achoR = a1R+a2R | |||
outs achoL*gkChoMix,achoR*gkChoMix | |||
gasendL = (gasendL+achoL)*gkRvbMix | |||
gasendR = (gasendR+achoR)*gkRvbMix | |||
SKIP_CHORUS: | |||
gasendL = gasendL*gkRvbMix | |||
gasendR = gasendR*gkRvbMix | |||
endin | |||
instr 4 ;reverb | |||
if gkRvbMix==0 goto SKIP_REVERB | |||
aL,aR reverbsc gasendL,gasendR,gkRvbSize,12000 | |||
outs aL,aR | |||
SKIP_REVERB: | |||
clear gasendL,gasendR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
i 3 0 [3600*24*7] | |||
i 4 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,808 @@ | |||
oscbnk_synth.csd | |||
A synthesizer utilising the oscbnk opcode | |||
CONTROLS | |||
-------- | |||
-Oscillators- | |||
Amp -- output amplitude of the oscillators sections | |||
N.Oscs -- number of oscillators | |||
Spread -- pitch spread | |||
SPeed -- speed of pitch modulations | |||
Waveform -- (dropdown menu) wavefrom used by the oscillator. Trombone 2 is a multi-waveform wavetable instrument. | |||
mono -- activate monophonic mode | |||
Time -- portamento time (monophonic mode) | |||
T.Shift -- wavetable shift (will alter the tone if a multi-waveform wavetable instrument is chosen) | |||
< Bend / Bend > -- pitch bend up / pitch bend down (in semitones). These can be linked to midi controllers to replace Cabbages lack of response to pitch bend. | |||
Bend Rng. -- pitch bend range | |||
-Filter Envelope- | |||
Filter -- filter cutoff global control | |||
Env. -- amount of influnce of the envelope | |||
Att. -- envelope attack time | |||
Dec. -- envelope decay time | |||
Sus. -- envelope sustain level | |||
Rel. -- envelope release time | |||
-Amplitude Envelope- | |||
Att -- envelope attack time | |||
Dec -- envelope decay time | |||
Sus -- envelope sustain level | |||
Rel -- envelope release time | |||
-Filter- | |||
Layers -- number of interations of tonex filter. Increasing this number will sharpen cutoff. | |||
-Filter LFO- | |||
shape -- (drop down menu) LFO shape | |||
Rate -- LFO rate | |||
Depth -- LFO depth / amplitude | |||
Delay -- delay time before LFO has any effect | |||
Rise -- time it take for LFO amplitude to rise from zero to 'Depth' | |||
-Reverb- | |||
Mix -- dry/wet mix | |||
Size -- room size | |||
<Cabbage> | |||
form caption("Oscillator Bank Synth") size(525, 330), pluginID("oscb") | |||
image bounds( 0, 0,525, 330), colour( 0, 0, 50), shape("sharp"), outline("white"), line(0) | |||
;OSCILLATOR | |||
groupbox bounds( 0, 0,525, 85), text("Oscillators"), fontcolour("white") plant("oscillators"){ | |||
rslider bounds( 5, 25, 55, 55), fontcolour("white"), text("Amp."), channel("amp"), range(0, 1.00, 0.2), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 50, 25, 55, 55), fontcolour("white"), text("N.Oscs."), channel("NOscs"), range(1, 100, 10, 1, 1), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 95, 25, 55, 55), fontcolour("white"), text("Spread"), channel("fmd"), range(0, 1.00, 0.005,0.25,0.000001), trackercolour("white") colour(LightBlue) | |||
rslider bounds(140, 25, 55, 55), fontcolour("white"), text("Speed"), channel("mvt"), range(0, 100.000, 1, 0.25,0.0001), trackercolour("white") colour(LightBlue) | |||
rslider bounds(185, 25, 55, 55), fontcolour("white"), text("Width"), channel("width"), range(0, 1.000, 1, 1,0.001), trackercolour("white") colour(LightBlue) | |||
combobox bounds(240, 25, 80,18), channel("waveform"), value(1), text("saw", "square", "organ", "eee", "ooh", "Clarinet","Bass Clarinet", "C.Bass Clarinet","Oboe","Bassoon","C.Bassoon",Violin","Cello","Piccolo","Flute","Alto Flute","Bass Flute", "Ahh", "Horn P", "Horn F", "B.Tbn.Harmon", "B.Tbn.Straight", "B.Tbn.Open") | |||
checkbox bounds(240, 50, 85, 13), text("Legato"), colour("yellow"), channel("legato"), value(0) | |||
checkbox bounds(240, 65, 85, 13), text("Mono"), colour("yellow"), channel("mono"), value(0) | |||
rslider bounds(292, 44, 38, 38), fontcolour("white"), text("Time"), channel("LegTim"), range(0, 4.00, 0.09, 0.5, 0.01), trackercolour("white") colour(LightBlue) | |||
rslider bounds(325, 25, 55, 55), fontcolour("white"), text("T.Shift"), channel("WTableShift"), range(-36, 36, 0, 1,0.001), trackercolour("white") colour(LightBlue) | |||
;PITCH BEND | |||
rslider bounds(370, 25, 55, 55), fontcolour("white"), text("< Bend"), channel("BendDown"), range(-1,0, 0, 1,0.001), trackercolour("white") colour(LightBlue) | |||
rslider bounds(415, 25, 55, 55), fontcolour("white"), text("Bend >"), channel("BendUp"), range(0, 1, 0, 1,0.001), trackercolour("white") colour(LightBlue) | |||
rslider bounds(465, 25, 55, 55), fontcolour("white"), text("Bend Rng."), channel("BendRange"), range(1, 24, 12, 1,1), trackercolour("white") colour(LightBlue) | |||
} | |||
;AMPLITUDE ENVELOPE | |||
groupbox bounds(290,85, 200, 85), text("Amplitude Envelope"), plant("AmpEnv"), fontcolour("white"){ | |||
rslider bounds( 5, 25, 55, 55), fontcolour("white"), text("Att."), channel("AAtt"), range(0, 8.00, 0.13,0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 50, 25, 55, 55), fontcolour("white"), text("Dec."), channel("ADec"), range(0, 8.00, 0.01,0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 95, 25, 55, 55), fontcolour("white"), text("Sus."), channel("ASus"), range(0, 1.00, 1.00, 0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds(140, 25, 55, 55), fontcolour("white"), text("Rel."), channel("ARel"), range(0.01, 8, 1.67, 0.5), trackercolour("white") colour(LightBlue) | |||
} | |||
;FILTER | |||
groupbox bounds(0, 85, 290, 85), text("Filter Envelope"), fontcolour("white"){ | |||
rslider bounds( 5, 110, 55, 55), fontcolour("white"), text("Filter"), channel("cf"), range(0, 10.00, 6), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 50, 110, 55, 55), fontcolour("white"), text("Env."), channel("FEnvAmt"), range(0, 10.00, 1.16), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 95, 110, 55, 55), fontcolour("white"), text("Att."), channel("FAtt"), range(0, 8.00, 0.1,0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds(140, 110, 55, 55), fontcolour("white"), text("Dec."), channel("FDec"), range(0, 8.00, 1,0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds(185, 110, 55, 55), fontcolour("white"), text("Sus."), channel("FSus"), range(0, 1.00, 4, 0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds(230, 110, 55, 55), fontcolour("white"), text("Rel."), channel("FRel"), range(0.01, 8, 1.3, 0.5), trackercolour("white") colour(LightBlue) | |||
} | |||
;FILTER | |||
groupbox bounds( 0,170, 90, 85), text("Filter"), plant("Filter"){ | |||
rslider bounds( 17, 25, 55, 55), fontcolour("white"), text("Layers"), channel("FiltLayers"), range(1, 10, 1,1,1), trackercolour("white") colour(LightBlue) | |||
} | |||
;FILTER LFO | |||
groupbox bounds( 90,170,290, 85), text("Filter LFO"), plant("FilterLFO"), fontcolour("white"){ | |||
combobox bounds( 15, 35, 80, 20), channel("FlfoType"), value(2), text("sine", "splines", "S+H", "square") | |||
rslider bounds( 95, 25, 55, 55), text("Rate"), channel("FRte"), range(0, 16.00, 4), fontcolour("white"), trackercolour("white") colour(LightBlue) | |||
rslider bounds(140, 25, 55, 55), text("Depth"), channel("FDep"), range(0, 4.00, 0), fontcolour("white"), trackercolour("white") colour(LightBlue) | |||
rslider bounds(185, 25, 55, 55), text("Delay"), channel("FDel"), range(0, 2.00, 0, 0.5), fontcolour("white"), trackercolour("white") colour(LightBlue) | |||
rslider bounds(230, 25, 55, 55), text("Rise"), channel("FRis"), range(0, 2.00, 0.1, 0.5), fontcolour("white"), trackercolour("white") colour(LightBlue) | |||
;REVERB | |||
groupbox bounds(380,170, 110, 85), text("Reverb"), plant("Reverb"), fontcolour("white"){ | |||
rslider bounds( 5, 25, 55, 55), fontcolour("white"), text("Mix"), channel("RvbMix"), range(0, 1.00, 0.5), trackercolour("white") colour(LightBlue) | |||
rslider bounds( 50, 25, 55, 55), fontcolour("white"), text("Size"), channel("RvbSize"), range(0, 1.00, 0.77), trackercolour("white") colour(LightBlue) | |||
} | |||
keyboard bounds(0, 255, 525, 75) | |||
image bounds(5, 337, 250, 25), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.2, .9, .6), text("Author: Iain McCurdy |2012|"), colour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
massign 0,1 | |||
;Author: Iain McCurdy (2012) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
;FOUR GEN10 FUNCTION TABLES WHICH CORRESPOND TO THE SPECTRAL ENVELOPES OF FOUR DIFFERENT NOTES PLAYED ON THE CLARINET | |||
;THE FOUR NOTES CHOSEN COVER THE SOUNDING RANGE OF THE INSTRUMENT | |||
;NOTE THAT ALL FUNCTION TABLES USED BY ftmorph IN THE MORPHING PROCESS, INCLUDING THE ONE INTO WHICH THE MORPHED TABLE IS WRITTEN (SEE INSTR 1), SHOULD BE THE SAME SIZE | |||
;FOUR GEN10 FUNCTION TABLES WHICH CORRESPOND TO THE SPECTRAL ENVELOPES OF FOUR DIFFERENT NOTES PLAYED ON THE CLARINET | |||
;THE FOUR NOTES CHOSEN COVER THE SOUNDING RANGE OF THE INSTRUMENT | |||
;NOTE THAT ALL FUNCTION TABLES USED BY ftmorph IN THE MORPHING PROCESS, INCLUDING THE ONE INTO WHICH THE MORPHED TABLE IS WRITTEN (SEE INSTR 1), SHOULD BE THE SAME SIZE | |||
giclar50 ftgen 0,0,4096,10,0.273597,0.027434,0.737705,0.049480,0.448437,0.272536,0.131175,0.129945,0.283082,0.130714,0.026719,0.037582,0.018953,0.010729,0.067580,0.024573,0.016586,0.049988,0.033294,0.017090,0.008591,0.021128,0.007237,0.016060,0.016060 | |||
giclar62 ftgen 0,0,4096,10,0.753504,0.011446,0.501720,0.055791,0.241768,0.037889,0.027203,0.062793,0.102494,0.030506,0.042453,0.050202,0.031077,0.027208,0.020897,0.022205,0.012154,0.008160,0.004886,0.005076,0.003805,0.001322,0.001149,0.001450,0.001450 | |||
giclar74 ftgen 0,0,4096,10,0.519536,0.062430,0.745521,0.055790,0.103856,0.097554,0.090420,0.077181,0.017130,0.013446,0.005674,0.003296,0.003438,0.003395,0.002506,0.001169,0.002525,0.001237,0.002624,0.001440,0.000880,0.001061,0.002672,0.002090,0.002090 | |||
giclar86 ftgen 0,0,4096,10,0.823209,0.201690,0.171118,0.161374,0.041951,0.004950,0.010889,0.001107,0.001365,0.003340,0.002259,0.001175,0.000442,0.001544,0.001259,0.000549,0.000455,0.000352,0.000345,0.000396,0.000477,0.000848,0.001199,0.001081,0.001081 | |||
giwavemapClar ftgen 0,0,128,-27, 0,0, 50,0, 62,1, 74,2, 86,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfClar ftgen 0,0,4,-2,giclar50,giclar62,giclar74,giclar86 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giBClar35 ftgen 0,0,4096,10,0.384232,0.038085,0.578537,0.029558,0.143002,0.119033,0.397678,0.113380,0.577246,0.158831,0.577514,0.094994,0.440674,0.109136,0.500666,0.132354,0.360370,0.104810,0.231403,0.089565,0.207353,0.099773,0.209066,0.123801,0.158769,0.079383,0.036078,0.019583,0.010310,0.017060,0.029465,0.045821,0.031622,0.038326,0.052222,0.058647,0.083956,0.079748,0.081955,0.097274,0.069934,0.075100,0.049259,0.058121,0.068078,0.065276,0.070165,0.065898,0.072432,0.055423,0.052283,0.036547,0.034082,0.035287,0.044801,0.053917,0.050263,0.036979,0.034264,0.035892,0.035011,0.037199,0.041542,0.043201,0.039923,0.035164,0.035828,0.036193,0.037155,0.035493,0.034546,0.035091,0.029891,0.027394,0.026174,0.023757,0.021365,0.019468,0.016295,0.015301,0.015263,0.014310,0.013239,0.011972,0.011445,0.011727,0.012391,0.013892,0.015395,0.015147,0.015137,0.014816,0.013898,0.012682,0.011462,0.009883,0.008579,0.007797,0.007749 | |||
giBClar41 ftgen 0,0,4096,10,0.525063,0.002869,0.469239,0.024384,0.895713,0.021156,0.199553,0.014871,0.215693,0.036697,0.212856,0.060220,0.224360,0.026202,0.021469,0.019475,0.067282,0.034970,0.025525,0.028958,0.038550,0.041724,0.035988,0.016617,0.026564,0.031021,0.037801,0.030070,0.055636,0.040575,0.029792,0.031356,0.031871,0.058063,0.027829,0.023825,0.015824,0.011714,0.011110,0.015367,0.011850,0.008957,0.011489,0.007029,0.004640,0.004862,0.006536,0.006771,0.006683,0.005231,0.005323,0.006834,0.005342,0.005818,0.004902,0.005468,0.005431,0.006151,0.004672,0.003041,0.002322,0.002274,0.002661,0.003122,0.002931,0.002587,0.002527,0.002499,0.003095,0.003755,0.003651,0.003768,0.003972,0.003962,0.003999,0.003352,0.002866,0.002449,0.002120,0.001972,0.002040,0.002221,0.002063,0.002057,0.002415,0.002849,0.003276,0.003776,0.003994,0.003829,0.003419,0.003328,0.003575,0.003829,0.003703,0.003454,0.003149,0.002825,0.002697,0.002765 | |||
giBClar47 ftgen 0,0,4096,10,0.447815,0.011780,0.911495,0.027076,0.846723,0.050517,0.224579,0.039801,0.048967,0.024162,0.071418,0.087315,0.031778,0.048063,0.058394,0.078770,0.021135,0.041585,0.092206,0.058125,0.063991,0.033673,0.025813,0.045142,0.037450,0.016766,0.014278,0.016668,0.017869,0.025925,0.010244,0.010062,0.010634,0.008986,0.006992,0.005186,0.004618,0.003658,0.002913,0.003004,0.004250,0.003142,0.002387,0.002692,0.003592,0.004496,0.002831,0.001838,0.001680,0.002144,0.002567,0.003185,0.002727,0.002419,0.001998,0.001883,0.002286,0.002626,0.003202,0.003257,0.003056,0.003241,0.002838,0.002521,0.002294,0.002409,0.002746,0.002848,0.003387,0.004173,0.004189,0.004587,0.005402,0.004977,0.004132,0.003842,0.003974,0.003650,0.003605,0.003810,0.003745,0.003770,0.003520,0.003363,0.003391,0.003302,0.003124,0.003422,0.004022,0.004064,0.003584,0.002939,0.002329,0.001970,0.001947,0.002034,0.002069,0.002043,0.001854,0.001658 | |||
giBClar53 ftgen 0,0,4096,10,0.819856,0.006052,0.508263,0.007439,0.271031,0.012967,0.059374,0.017922,0.016997,0.004014,0.027132,0.014921,0.020230,0.012123,0.021066,0.004875,0.016894,0.004428,0.004157,0.007603,0.004211,0.011103,0.005054,0.007329,0.004043,0.002169,0.003183,0.001822,0.001158,0.001758,0.002350,0.001442,0.002218,0.002815,0.001503,0.001764,0.001171,0.001508,0.000934,0.000714,0.000902,0.000884,0.000943,0.000825,0.000579,0.000572,0.000654,0.000752,0.000902,0.000932,0.000868,0.000909,0.000903,0.001065,0.001472,0.001483,0.001803,0.001941,0.002100,0.002756,0.002543,0.001984,0.001589,0.001342,0.001414,0.001219,0.001004,0.000908,0.000887,0.001102,0.001342,0.001312,0.001089,0.000869,0.000733,0.000620,0.000574,0.000518,0.000451,0.000422,0.000446,0.000473,0.000423,0.000354,0.000335,0.000370,0.000410,0.000418,0.000435,0.000434,0.000417,0.000417,0.000388,0.000342,0.000316,0.000303,0.000306,0.000309,0.000292,0.000267 | |||
giBClar59 ftgen 0,0,4096,10,0.866645,0.024133,0.420624,0.171074,0.353043,0.050546,0.198619,0.047824,0.110458,0.081558,0.064116,0.041109,0.026267,0.036570,0.013031,0.023724,0.007023,0.010067,0.004550,0.011618,0.009601,0.005731,0.005607,0.005036,0.002347,0.002907,0.001472,0.001519,0.001304,0.002584,0.001383,0.001362,0.001591,0.002655,0.004442,0.004905,0.003148,0.004830,0.002947,0.002926,0.003063,0.002394,0.002276,0.002019,0.001689,0.002028,0.002368,0.003510,0.004637,0.004228,0.003257,0.002700,0.002231,0.001681,0.001293,0.001062,0.001121,0.000894,0.000797,0.000865,0.000752,0.000724,0.000719,0.000787,0.000896,0.000801,0.000686,0.000551,0.000468,0.000466,0.000515,0.000460,0.000382,0.000358,0.000366,0.000400,0.000405,0.000355,0.000333,0.000349,0.000352,0.000346,0.000335,0.000317,0.000303,0.000297,0.000289,0.000276,0.000290,0.000292,0.000287,0.000307,0.000318,0.000332,0.000353,0.000374,0.000388,0.000398,0.000399,0.000407 | |||
giBClar65 ftgen 0,0,4096,10,0.934141,0.012361,0.023358,0.045609,0.025913,0.017772,0.009955,0.010837,0.007253,0.001002,0.004215,0.001570,0.004226,0.001334,0.000580,0.001740,0.000839,0.001364,0.001337,0.000523,0.000377,0.000535,0.000290,0.000461,0.000486,0.000333,0.000462,0.000685,0.001136,0.000794,0.000625,0.000436,0.000303,0.000270,0.000259,0.000289,0.000208,0.000224,0.000249,0.000271,0.000200,0.000240,0.000298,0.000226,0.000198,0.000188,0.000200,0.000259,0.000198,0.000169,0.000155,0.000144,0.000123,0.000120,0.000118,0.000112,0.000108,0.000105,0.000096,0.000091,0.000090,0.000093,0.000089,0.000093,0.000094,0.000095,0.000101,0.000112,0.000120,0.000126,0.000134,0.000142,0.000149,0.000170,0.000190,0.000212,0.000246,0.000289,0.000286,0.000269,0.000279,0.000310,0.000352,0.000355,0.000341,0.000361,0.000376,0.000373,0.000385,0.000427,0.000475,0.000539,0.000655,0.000838,0.001061,0.001284,0.001429,0.001364,0.001171,0.001020 | |||
giBClar71 ftgen 0,0,4096,10,0.951349,0.052635,0.166289,0.036346,0.080225,0.105328,0.019032,0.014538,0.003453,0.003349,0.001065,0.003529,0.004876,0.003334,0.003537,0.009903,0.004407,0.002506,0.002863,0.005317,0.004116,0.003426,0.001538,0.001829,0.001351,0.001942,0.001728,0.001103,0.000733,0.000413,0.000643,0.000468,0.000336,0.000631,0.000868,0.000470,0.000257,0.000240,0.000210,0.000190,0.000182,0.000170,0.000178,0.000178 | |||
giBClar77 ftgen 0,0,4096,10,0.679870,0.126072,0.031529,0.103885,0.017231,0.001781,0.005132,0.000787,0.003992,0.001819,0.002500,0.002660,0.001298,0.001834,0.001238,0.004273,0.001518,0.000670,0.000588,0.000395,0.000786,0.000400,0.000399,0.000471,0.000235,0.000212,0.000208,0.000169,0.000163,0.000146,0.000134 | |||
giwavemapBClar ftgen 0,0,128,-27, 0,0, 35,0, 41,1, 47,2, 53,3, 59,4, 65,5, 71,6, 77,7, 127,7 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBClar ftgen 0,0,8,-2,giBClar35,giBClar41,giBClar47,giBClar53,giBClar59,giBClar65,giBClar71,giBClar77 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CONTRA-BASS CLARINET | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giCBClar26 ftgen 0,0,4096,10,0.100160,0.005519,0.631940,0.013046,0.749042,0.308868,0.475605,0.152792,0.074315,0.238927,0.152260,0.251283,0.030787,0.052465,0.032473,0.121972,0.064172,0.090564,0.043994,0.091868,0.039563,0.058622,0.024531,0.023127,0.026665,0.067522,0.081377,0.057914,0.066176,0.036134,0.026135,0.021056,0.038011,0.036534,0.058393,0.040915,0.050051,0.038446,0.034166,0.021341,0.014481,0.015708,0.025527,0.026622,0.033577,0.027355,0.034434,0.022920,0.016354,0.010905,0.011160,0.015075,0.019871,0.017505,0.013189,0.011442,0.008511,0.007974,0.006368,0.005988,0.005976,0.005922,0.006590,0.008199,0.006566,0.005254,0.004955,0.005576,0.005463,0.005101,0.003955,0.003622,0.004027,0.003772,0.003504,0.002848,0.002183,0.002075,0.002143,0.002014,0.001907,0.001850,0.001736,0.001543,0.001318,0.001180,0.001107,0.001066,0.001169,0.001372,0.001533,0.001667,0.001738,0.001655,0.001604,0.001603,0.001571,0.001575,0.001638,0.001696 | |||
giCBClar32 ftgen 0,0,4096,10,0.227476,0.006718,0.707706,0.018101,0.539432,0.018848,0.590242,0.029143,0.512926,0.035712,0.324304,0.035306,0.035964,0.050992,0.096916,0.025035,0.098203,0.072427,0.068155,0.060324,0.042818,0.074538,0.049430,0.100999,0.052956,0.109337,0.053778,0.108791,0.040535,0.041998,0.050107,0.102568,0.075823,0.121836,0.062713,0.047451,0.042146,0.061836,0.063525,0.079775,0.056177,0.039271,0.021422,0.017934,0.022472,0.016758,0.023407,0.025034,0.018765,0.012566,0.009566,0.008232,0.011234,0.015948,0.018924,0.020397,0.016720,0.016224,0.010210,0.006760,0.006525,0.006464,0.006410,0.007832,0.010929,0.013172,0.010412,0.008153,0.005887,0.004927,0.005543,0.006358,0.006415,0.006246,0.004977,0.004037,0.003084,0.002646,0.002504,0.002716,0.003253,0.003484,0.003416,0.003566,0.003392,0.002924,0.002750,0.002979,0.003398,0.003635,0.003855,0.004032,0.004285,0.004278,0.003688,0.003182,0.002942,0.003043,0.003240,0.003317 | |||
giCBClar38 ftgen 0,0,4096,10,0.805943,0.003127,0.607438,0.006915,0.078379,0.025071,0.319458,0.040967,0.418440,0.096874,0.067519,0.066830,0.181701,0.148461,0.024736,0.047734,0.027229,0.065092,0.020252,0.015890,0.047795,0.096969,0.049469,0.024097,0.032227,0.032247,0.057763,0.064995,0.031760,0.023574,0.021449,0.017946,0.015989,0.010329,0.017096,0.025053,0.020021,0.014542,0.009659,0.010282,0.011754,0.016404,0.013970,0.019292,0.012226,0.007260,0.007191,0.010064,0.007246,0.007400,0.007562,0.005179,0.005520,0.005811,0.004710,0.005570,0.007523,0.007671,0.005694,0.004881,0.005241,0.004991,0.005944,0.006659,0.006213,0.004986,0.004006,0.003617,0.003290,0.003479,0.004050,0.003911,0.003373,0.003294,0.003284,0.002858,0.002674,0.003290,0.003986,0.003982,0.003503,0.003424,0.003640,0.003903,0.004267,0.004774,0.005048,0.005020,0.005284,0.005837,0.006116,0.006124,0.006474,0.007329,0.008198,0.008721,0.009014,0.008920,0.008202,0.007419 | |||
giCBClar44 ftgen 0,0,4096,10,0.715187,0.010393,0.137973,0.010188,0.404486,0.073659,0.420943,0.145565,0.080881,0.104506,0.227785,0.021310,0.035316,0.052724,0.023335,0.014334,0.087911,0.036461,0.047658,0.016909,0.047453,0.017513,0.031591,0.010028,0.009677,0.014384,0.012660,0.031094,0.010732,0.009677,0.005632,0.007197,0.005202,0.005881,0.004438,0.005851,0.003283,0.002870,0.001732,0.001824,0.003100,0.002099,0.002084,0.002567,0.003519,0.003856,0.003017,0.003288,0.003518,0.003481,0.002717,0.002212,0.002009,0.002374,0.002508,0.003004,0.002356,0.001681,0.001376,0.001435,0.001604,0.001881,0.001924,0.001783,0.002097,0.002582,0.002971,0.002922,0.002735,0.002884,0.003498,0.003726,0.003454,0.003486,0.003620,0.003356,0.003457,0.003775,0.003730,0.003481,0.003126,0.002660,0.002244,0.001883,0.001625,0.001518,0.001533,0.001594,0.001565,0.001529,0.001485,0.001598,0.001965,0.002295,0.002394,0.002424,0.002401,0.002320,0.002329,0.002436 | |||
giCBClar50 ftgen 0,0,4096,10,0.880714,0.104962,0.497883,0.045337,0.172861,0.109234,0.166844,0.037601,0.179775,0.048578,0.136813,0.079191,0.068937,0.019908,0.087293,0.031265,0.010402,0.048393,0.020759,0.005769,0.015444,0.004339,0.006113,0.010598,0.009591,0.007441,0.002840,0.003349,0.003193,0.003806,0.004954,0.003108,0.003744,0.003254,0.003682,0.002736,0.002830,0.004080,0.005132,0.004023,0.004801,0.004386,0.003962,0.002657,0.003137,0.003478,0.004208,0.004600,0.004272,0.004501,0.004804,0.004328,0.003739,0.003495,0.003378,0.002513,0.002268,0.002182,0.002140,0.001833,0.001900,0.001666,0.001525,0.001441,0.001541,0.001518,0.001571,0.001664,0.001746,0.001600,0.001474,0.001527,0.001644,0.001577,0.001450,0.001382,0.001479,0.001646,0.001713,0.001652,0.001720,0.001859,0.001891,0.001654,0.001420,0.001306,0.001228,0.001173,0.001188,0.001247,0.001299,0.001317,0.001264,0.001186,0.001091,0.000947,0.000797,0.000685,0.000610,0.000547 | |||
giCBClar54 ftgen 0,0,4096,10,0.889990,0.001348,0.087695,0.023926,0.066262,0.023447,0.075142,0.026596,0.020409,0.052699,0.027246,0.016811,0.017828,0.004566,0.005199,0.010830,0.003227,0.005838,0.001883,0.001580,0.004878,0.001870,0.000924,0.001648,0.002681,0.001616,0.003610,0.002587,0.002221,0.002332,0.001110,0.001616,0.002062,0.001241,0.000899,0.001174,0.001196,0.001105,0.001254,0.001253,0.001237,0.001093,0.001281,0.001260,0.001266,0.001255,0.001194,0.000995,0.001213,0.000908,0.000857,0.000902,0.000863,0.001171,0.001146,0.001074,0.000908,0.000908,0.000752,0.000618,0.000456,0.000395,0.000445,0.000503,0.000434,0.000353,0.000347,0.000373,0.000416,0.000392,0.000334,0.000271,0.000275,0.000314,0.000314,0.000317,0.000280,0.000275,0.000289,0.000253,0.000221,0.000203,0.000194,0.000194,0.000208,0.000221,0.000212,0.000185,0.000172,0.000176,0.000173,0.000178,0.000175,0.000159,0.000152,0.000150,0.000135,0.000120,0.000115,0.000119 | |||
giwavemapCBClar ftgen 0,0,128,-27, 0,0, 26,0, 32,1, 38,2, 44,3, 50,4, 54,5, 127,5 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCBClar ftgen 0,0,8,-2,giCBClar26,giCBClar32,giCBClar38,giCBClar44,giCBClar50,giCBClar54,giCBClar54,giCBClar54 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; OBOE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gioboe59 ftgen 0,0,4096,10,0.239013,0.078927,0.241030,0.206347,0.832266,0.054540,0.013821,0.007450,0.022905,0.021737,0.018123,0.013105,0.002361,0.001433,0.003509,0.002589,0.001326,0.000743,0.000990,0.000868,0.000863,0.000994,0.000406,0.000288,0.000288 | |||
gioboe65 ftgen 0,0,4096,10,0.199317,0.508088,0.859044,0.346880,0.121336,0.005269,0.071954,0.035188,0.012195,0.010362,0.001516,0.002397,0.004325,0.002943,0.008168,0.003519,0.002074,0.001366,0.001019,0.000715,0.000788,0.000757,0.001403,0.001108,0.001108 | |||
gioboe73 ftgen 0,0,4096,10,0.297865,0.916220,0.218345,0.030903,0.016039,0.045984,0.003571,0.006255,0.007310,0.003701,0.001306,0.001355,0.000361,0.001108,0.001552,0.000991,0.000588,0.000780,0.000678,0.001103,0.000615,0.000264,0.000310,0.000464,0.000464 | |||
gioboe81 ftgen 0,0,4096,10,0.875554,0.822621,0.094665,0.308960,0.046707,0.031827,0.002702,0.002222,0.009030,0.009257,0.007814,0.000781,0.002099,0.001154,0.002638,0.000756,0.000750,0.001290,0.000476,0.001285,0.000627,0.000379,0.000594,0.000379,0.000379 | |||
gioboe89 ftgen 0,0,4096,10,0.965505,0.344315,0.033044,0.068398,0.013147,0.008580,0.003609,0.001848,0.001060,0.001429,0.001832,0.001218,0.000703,0.000642,0.000646,0.000867,0.000550,0.000567,0.001386,0.001239,0.001416,0.001354,0.001710,0.003111,0.003111 | |||
giwavemapOboe ftgen 0,0,128,-27, 0,0, 59,0, 65,1, 73,2, 81,3, 89,4, 127,4 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfOboe ftgen 0,0,8,-2,gioboe59,gioboe65,gioboe73,gioboe81,gioboe89,gioboe89,gioboe89,gioboe89 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASSOON | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gibassoon34 ftgen 0,0,4096,10,0.213868,0.268493,0.244166,0.230801,0.105833,0.308087,0.556920,0.478956,0.523357,0.900665,0.213470,0.229596,0.031221,0.040117,0.067113,0.060158,0.030778,0.061028,0.143814,0.063668,0.126426,0.055009,0.049138,0.085854,0.113027,0.111464,0.088765,0.037342,0.050990,0.035579,0.040460,0.032219,0.027305,0.034141,0.019655,0.009315,0.008270,0.006748,0.006472,0.007088,0.008133,0.007046,0.007850,0.005791,0.006273,0.006847,0.007249,0.009398,0.010309,0.010418,0.010247,0.010333,0.009562,0.008180,0.009576,0.009469,0.008529,0.008844,0.008053,0.007565,0.008026,0.007284,0.007299,0.007423,0.008280,0.008374,0.008239,0.008512,0.009431,0.010246,0.010350,0.009381,0.008652,0.008150,0.007888,0.007951,0.008166,0.008210,0.007921,0.007548,0.007147,0.006991,0.006978,0.006527,0.005617,0.004781,0.004549,0.004707,0.004803,0.004640,0.004303,0.003866,0.003524,0.003348,0.003108,0.002766,0.002439,0.002278,0.002406,0.002733 | |||
gibassoon38 ftgen 0,0,4096,10,0.242897,0.242266,0.380380,0.667003,0.720921,0.402509,0.422424,0.475496,0.823674,0.135651,0.169435,0.062761,0.017494,0.023826,0.049210,0.074371,0.035978,0.086397,0.160820,0.122072,0.061609,0.020374,0.023031,0.018479,0.013838,0.015511,0.012693,0.005626,0.007015,0.007590,0.008854,0.004833,0.006678,0.008155,0.006694,0.007708,0.007823,0.004336,0.003679,0.003698,0.005616,0.004049,0.003555,0.002815,0.002166,0.001778,0.002195,0.002446,0.003427,0.003600,0.005046,0.005043,0.003980,0.002591,0.002168,0.002644,0.003363,0.004603,0.004571,0.005024,0.004653,0.004659,0.004447,0.004128,0.004325,0.004464,0.004393,0.004144,0.004285,0.004442,0.004203,0.003640,0.003229,0.003115,0.003017,0.002902,0.002799,0.002839,0.003045,0.003262,0.003391,0.003250,0.003008,0.002726,0.002506,0.002370,0.002215,0.002130,0.002058,0.001832,0.001574,0.001339,0.001133,0.001005,0.000924,0.000860,0.000849,0.000896,0.000994,0.001115 | |||
gibassoon43 ftgen 0,0,4096,10,0.101647,0.135289,0.245027,0.142720,0.728360,0.361154,0.030730,0.079698,0.011579,0.074893,0.094091,0.028910,0.084641,0.058767,0.035341,0.016688,0.006781,0.020365,0.020545,0.008172,0.007968,0.017127,0.016825,0.009248,0.003609,0.002361,0.002361,0.001409,0.001208,0.001278,0.001752,0.002711,0.002221,0.001898,0.001255,0.001150,0.001935,0.001759,0.001661,0.001219,0.001111,0.001527,0.001167,0.001290,0.001366,0.001058,0.000935,0.000898,0.000937,0.001254,0.001464,0.001695,0.002012,0.002054,0.001872,0.001370,0.001074,0.000988,0.001009,0.000959,0.000905,0.000957,0.000885,0.000825,0.000811,0.000776,0.000727,0.000696,0.000758,0.000768,0.000667,0.000604,0.000548,0.000525,0.000508,0.000485,0.000445,0.000380,0.000330,0.000307,0.000329,0.000366,0.000367,0.000334,0.000291,0.000259,0.000247,0.000265,0.000309,0.000378,0.000436,0.000425,0.000390,0.000375,0.000353,0.000328,0.000312,0.000292,0.000273,0.000269 | |||
gibassoon50 ftgen 0,0,4096,10,0.147763,0.340255,0.879202,0.404023,0.259274,0.130887,0.095096,0.039056,0.091976,0.009828,0.004879,0.013408,0.016090,0.015931,0.012402,0.003430,0.006421,0.004323,0.002018,0.001465,0.003012,0.001397,0.002446,0.002683,0.002425,0.004828,0.002422,0.002479,0.002086,0.002351,0.002269,0.002034,0.001708,0.001324,0.001927,0.002764,0.003997,0.003514,0.002736,0.002327,0.002054,0.001842,0.001577,0.002009,0.002098,0.001411,0.001019,0.000816,0.000899,0.000893,0.001005,0.001296,0.000987,0.000657,0.000539,0.000400,0.000313,0.000284,0.000331,0.000417,0.000479,0.000633,0.000798,0.000893,0.001067,0.001242,0.001260,0.001282,0.001218,0.001023,0.000887,0.000830,0.000746,0.000637,0.000553,0.000534,0.000537,0.000506,0.000482,0.000477,0.000490,0.000515,0.000532,0.000508,0.000473,0.000416,0.000336,0.000271,0.000229,0.000193,0.000170,0.000169,0.000185,0.000197,0.000205,0.000223,0.000247,0.000255,0.000248,0.000249 | |||
gibassoon56 ftgen 0,0,4096,10,0.258143,0.954570,0.553228,0.188964,0.031203,0.252375,0.179421,0.053961,0.022121,0.016058,0.006372,0.002854,0.002507,0.006348,0.006626,0.008348,0.005125,0.001342,0.001956,0.002664,0.005721,0.003529,0.004933,0.002543,0.003026,0.003332,0.001828,0.003024,0.002223,0.001464,0.001354,0.001310,0.000827,0.000966,0.001111,0.001685,0.001048,0.000806,0.000660,0.000445,0.000368,0.000436,0.000578,0.000518,0.000372,0.000346,0.000342,0.000340,0.000259,0.000272,0.000318,0.000395,0.000481,0.000454,0.000428,0.000391,0.000351,0.000302,0.000261,0.000245,0.000253,0.000249,0.000223,0.000228,0.000244,0.000217,0.000203,0.000222,0.000250,0.000271,0.000235,0.000202,0.000179,0.000160,0.000151,0.000151,0.000144,0.000126,0.000116,0.000123,0.000134,0.000140,0.000142,0.000142,0.000130,0.000117,0.000109,0.000109,0.000110,0.000111,0.000122,0.000129,0.000124,0.000116,0.000115,0.000113,0.000104,0.000092,0.000080,0.000071 | |||
gibassoon62 ftgen 0,0,4096,10,0.802206,0.854305,0.242064,0.037491,0.024258,0.012991,0.003920,0.008373,0.001787,0.001801,0.003935,0.008957,0.009944,0.004249,0.003799,0.003374,0.001734,0.004753,0.008252,0.004132,0.002330,0.001700,0.001925,0.001098,0.001154,0.001943,0.000954,0.000487,0.000432,0.000605,0.000812,0.000806,0.001001,0.001178,0.001065,0.001137,0.000877,0.000630,0.000538,0.000499,0.000605,0.000532,0.000532,0.000387,0.000288,0.000253,0.000313,0.000347,0.000292,0.000225,0.000167,0.000144,0.000121,0.000116,0.000110,0.000110,0.000119,0.000111,0.000106,0.000111,0.000115,0.000114,0.000101,0.000094,0.000100,0.000102,0.000097,0.000088,0.000079,0.000070,0.000064,0.000059,0.000054,0.000053,0.000053 | |||
gibassoon67 ftgen 0,0,4096,10,0.262539,0.973041,0.138354,0.113396,0.058172,0.030635,0.005565,0.001686,0.003483,0.001977,0.003774,0.002477,0.002439,0.001226,0.002781,0.002527,0.001020,0.000611,0.000658,0.000715,0.000728,0.000531,0.000442,0.000238,0.000414,0.000325,0.000560,0.000689,0.000445,0.000306,0.000301,0.000305,0.000296,0.000325,0.000252,0.000218,0.000248,0.000193,0.000174,0.000179,0.000143,0.000140,0.000140,0.000104,0.000096,0.000116,0.000128,0.000137,0.000144,0.000113,0.000112,0.000119,0.000140,0.000116,0.000107,0.000102 | |||
giwavemapBassoon ftgen 0,0,128,-27, 0,0, 34,0, 38,1, 43,2, 50,3, 56,4, 62,5, 67,6, 127,6 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBassoon ftgen 0,0,8,-2,gibassoon34,gibassoon38,gibassoon43,gibassoon50,gibassoon56,gibassoon62,gibassoon67,gibassoon67 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CONTRA-BASSOON | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giCBassoon22 ftgen 0,0,4096,10,0.497216,0.592986,0.588338,0.378063,0.343716,0.540022,0.620921,0.613540,0.848864,0.535558,0.632297,0.584663,0.443376,0.419439,0.291262,0.249631,0.256447,0.182209,0.062888,0.160047,0.156792,0.115884,0.107766,0.130415,0.183253,0.145108,0.156478,0.170472,0.185752,0.181506,0.155042,0.154256,0.167703,0.145571,0.172382,0.169936,0.191248,0.207520,0.161789,0.114105,0.096757,0.068310,0.056357,0.068193,0.048257,0.046235,0.041903,0.032361,0.023090,0.012851,0.008788,0.010598,0.010151,0.010905,0.009426,0.009439,0.012674,0.016976,0.019287,0.017791,0.014995,0.015280,0.014007,0.012293,0.013920,0.015130,0.017138,0.020001,0.026003,0.029085,0.026391,0.021776,0.018388,0.016337,0.014700,0.015521,0.019019,0.022414,0.024168,0.024006,0.023403,0.022377,0.020534,0.018428,0.016165,0.013675,0.011929,0.011056,0.010352,0.010070,0.009561,0.009378,0.008855,0.008393,0.008147,0.008048,0.008099,0.007480,0.006551,0.005481 | |||
giCBassoon26 ftgen 0,0,4096,10,0.076357,0.137793,0.174617,0.207802,0.302523,0.705801,0.162577,0.073808,0.224559,0.050465,0.066110,0.181682,0.062409,0.052317,0.037698,0.029936,0.042341,0.053436,0.135414,0.059248,0.025689,0.033567,0.051201,0.029910,0.028697,0.052991,0.059280,0.029742,0.027742,0.023801,0.013878,0.006197,0.004814,0.005139,0.007873,0.007104,0.009903,0.007952,0.008234,0.005783,0.006682,0.007272,0.006943,0.007674,0.007728,0.006326,0.005179,0.004259,0.004142,0.003705,0.002547,0.001785,0.002073,0.002887,0.004184,0.004075,0.004174,0.005101,0.004993,0.004189,0.003170,0.002599,0.002866,0.003689,0.005272,0.006515,0.007262,0.006420,0.005939,0.005247,0.004710,0.004619,0.004018,0.003371,0.002611,0.001906,0.001540,0.001341,0.001128,0.001025,0.001114,0.001151,0.001224,0.001403,0.001564,0.001709,0.001914,0.002097,0.002148,0.002190,0.002192,0.002124,0.002190,0.002485,0.002819,0.002892,0.002769,0.002559,0.002374,0.002161 | |||
giCBassoon38 ftgen 0,0,4096,10,0.240531,0.304670,0.289169,0.727482,0.578083,0.169149,0.057305,0.193624,0.167977,0.206006,0.182632,0.057408,0.103574,0.044785,0.084239,0.068303,0.030771,0.133375,0.096231,0.037016,0.046566,0.020770,0.020264,0.015211,0.029647,0.018603,0.027940,0.062861,0.033828,0.015594,0.016305,0.025478,0.034356,0.038642,0.028451,0.026747,0.014914,0.016727,0.015524,0.013236,0.014264,0.013651,0.014838,0.016490,0.021208,0.017660,0.013009,0.014867,0.013013,0.010426,0.009144,0.009462,0.009367,0.009624,0.008079,0.007399,0.009012,0.009384,0.008661,0.009051,0.009394,0.010578,0.011610,0.012184,0.010442,0.009130,0.008795,0.008468,0.010039,0.011205,0.011438,0.011489,0.010526,0.008902,0.007391,0.006198,0.005970,0.005264,0.004331,0.003874,0.003514,0.003418,0.003518,0.003409,0.003150,0.003023,0.003047,0.003199,0.003624,0.003999,0.003839,0.003629,0.003712,0.003872,0.003974,0.003836,0.003596,0.003353,0.003177,0.003070 | |||
giCBassoon50 ftgen 0,0,4096,10,0.200451,0.511764,0.153876,0.491651,0.722151,0.174751,0.087283,0.068341,0.008971,0.040014,0.041083,0.015335,0.047809,0.037606,0.038259,0.020124,0.022425,0.024747,0.016480,0.008528,0.006892,0.004131,0.005947,0.005585,0.006842,0.008448,0.015885,0.005820,0.002834,0.004626,0.003886,0.003621,0.004837,0.005276,0.002715,0.002900,0.003817,0.005081,0.005598,0.006033,0.006164,0.004260,0.003944,0.004776,0.004223,0.004351,0.004769,0.004836,0.004959,0.005380,0.004538,0.003969,0.003860,0.003536,0.003521,0.003397,0.002823,0.002162,0.002001,0.001663,0.001430,0.001505,0.001566,0.001468,0.001406,0.001439,0.001225,0.001095,0.001134,0.001316,0.001630,0.001839,0.001964,0.001940,0.001824,0.001694,0.001617,0.001526,0.001348,0.001116,0.000972,0.000973,0.001011,0.001015,0.000944,0.000785,0.000650,0.000609,0.000675,0.000782,0.000839,0.000818,0.000755,0.000661,0.000566,0.000498,0.000471,0.000478,0.000486,0.000479 | |||
giwavemapCBassoon ftgen 0,0,128,-27, 0,0, 22,0, 26,1, 38,2, 50,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCBassoon ftgen 0,0,4,-2,giCBassoon22,giCBassoon26,giCBassoon38,giCBassoon50 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; VIOLIN | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giviolin55 ftgen 0,0,4096,10,0.081672,0.785854,0.808302,0.221447,0.136644,0.103608,0.051154,0.040070,0.071067,0.358903,0.053101,0.090036,0.033729,0.068969,0.060398,0.147336,0.060769,0.055245,0.044695,0.022179,0.058528,0.083706,0.029581,0.013173;,0.013173 | |||
giviolin67 ftgen 0,0,4096,10,0.344116,0.095361,0.038223,0.090317,0.145798,0.049369,0.076997,0.057555,0.016248,0.036189,0.014161,0.008738,0.010238,0.009625,0.005588,0.004762,0.002635,0.002162,0.002822,0.002144,0.001687,0.001955,0.001870,0.001011;,0.001011 | |||
giviolin79 ftgen 0,0,4096,10,0.403041,0.281156,0.259204,0.392900,0.236559,0.108769,0.117288,0.063588,0.039483,0.018245,0.012717,0.020183,0.008506,0.017915,0.008925,0.008575,0.006947,0.008142,0.005487,0.005970,0.004402,0.003161,0.002361,0.001942;,0.001942 | |||
giviolin91 ftgen 0,0,4096,10,0.231708,0.906742,0.215622,0.092709,0.057338,0.038101,0.030758,0.023439,0.009905,0.001298,0.002108,0.000516,0.000499,0.000123,0.000642,0.000732,0.004757,0.004547,0.017582,0.033035,0.098559,0.013616,0.017674,0.019601;,0.019601 | |||
giwavemapViolin ftgen 0,0,128,-27, 0,0, 55,0, 67,1, 79,2, 91,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfViolin ftgen 0,0,4,-2,giviolin55,giviolin67,giviolin79,giviolin91 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; CELLO | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gicello36 ftgen 0,0,4096,10,0.022943,0.412962,0.548431,0.578468,0.092241,0.116378,0.052974,0.029585,0.093977,0.119660,0.064074,0.051807,0.015094,0.094184,0.015488,0.006640,0.007091,0.011557,0.043467,0.023330,0.018118,0.026921,0.010285,0.007653,0.015306,0.023175,0.013051,0.004840,0.005658,0.010814,0.014921,0.026066,0.028334,0.015227,0.010740,0.008966,0.009389,0.012547,0.011544,0.009900,0.012403,0.013093,0.008259,0.007148,0.006129,0.004932,0.004332,0.003397,0.002497,0.002241,0.002187,0.002227,0.001634,0.001186,0.001119,0.001131,0.001276,0.000970,0.001101,0.001647,0.001936,0.001632,0.001190,0.000891,0.000883,0.000906,0.000894,0.000855,0.000768,0.000721,0.000750,0.000900,0.000965,0.000844,0.000765,0.000643,0.000535,0.000464,0.000409,0.000403,0.000489,0.000642,0.000773,0.000819,0.000871,0.000930,0.000979,0.000950,0.000781,0.000649,0.000620,0.000653,0.000661,0.000706,0.000805,0.000856,0.000832,0.000793,0.000750,0.000702 | |||
gicello48 ftgen 0,0,4096,10,0.171752,0.537455,0.217980,0.172188,0.552902,0.583964,0.452897,0.095360,0.059208,0.033024,0.126570,0.028481,0.067671,0.029869,0.055112,0.056284,0.025151,0.038689,0.027323,0.027935,0.070762,0.023514,0.016984,0.013118,0.008692,0.004591,0.002235,0.003399,0.002568,0.002224,0.002366,0.002892,0.004660,0.003562,0.002923,0.002328,0.002327,0.001705,0.001566,0.002356,0.002199,0.003381,0.006360,0.007320,0.004930,0.002809,0.002686,0.002156,0.001566,0.001273,0.001192,0.001380,0.001683,0.002133,0.003160,0.002820,0.002065,0.002097,0.002013,0.001649,0.001366,0.001053,0.000819,0.000730,0.000775,0.000937,0.001097,0.001063,0.000917,0.000815,0.000792,0.000857,0.001010,0.001203,0.001372,0.001408,0.001295,0.001173,0.001062,0.000942,0.000825,0.000761,0.000774,0.000854,0.000932,0.000968,0.000987,0.001022,0.001018,0.000944,0.000882,0.000829,0.000779,0.000734,0.000693,0.000655,0.000602,0.000547,0.000529,0.000548 | |||
gicello60 ftgen 0,0,4096,10,0.762584,0.124687,0.088950,0.091324,0.058688,0.034069,0.038828,0.065420,0.062254,0.058503,0.033332,0.014105,0.011585,0.004135,0.005176,0.004496,0.006698,0.008491,0.007044,0.003450,0.004771,0.016317,0.009897,0.007180,0.004105,0.002477,0.003995,0.002992,0.002346,0.002233,0.002558,0.002135,0.002301,0.001713,0.001191,0.001850,0.004203,0.001813,0.000969,0.001090,0.000636,0.001237,0.000844,0.001107,0.000880,0.000791,0.000640,0.000894,0.000554,0.000727,0.001041,0.001046,0.001079,0.000456,0.000410,0.000442,0.000431,0.000437,0.000427,0.000389,0.000350,0.000284,0.000269,0.000260,0.000210,0.000253,0.000328,0.000296,0.000290,0.000419,0.000452,0.000328,0.000215,0.000229,0.000333,0.000275,0.000208,0.000204,0.000163,0.000283,0.000253,0.000264,0.000178,0.000208,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
gicello72 ftgen 0,0,4096,10,0.601382,0.263076,0.197963,0.244245,0.217992,0.114034,0.025768,0.041518,0.011954,0.006391,0.012239,0.017818,0.016819,0.012798,0.007576,0.007376,0.002891,0.021377,0.005261,0.004421,0.009226,0.004333,0.001808,0.003989,0.002078,0.001344,0.001560,0.001240,0.001586,0.001307,0.000519,0.000761,0.001009,0.000632,0.000412,0.000414,0.000361,0.000406,0.000544,0.000741,0.000281,0.000164,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapCello ftgen 0,0,128,-27, 0,0, 36,0, 48,1, 60,2, 72,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfCello ftgen 0,0,4,-2,gicello36,gicello48,gicello60,gicello72 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; PICCOLO | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
gipiccolo74 ftgen 0,0,4096,10,0.898113,0.247693,0.060222,0.127742,0.034019,0.044738,0.029980,0.018041,0.008219,0.009819,0.015719,0.009423,0.020117,0.011802,0.007226,0.003198,0.001597,0.002062,0.001590,0.001420,0.001087,0.000581,0.000370,0.000393,0.000393 | |||
gipiccolo80 ftgen 0,0,4096,10,0.837581,0.024769,0.144022,0.109176,0.031512,0.026122,0.004565,0.008379,0.004995,0.002685,0.003489,0.002674,0.002743,0.001129,0.000485,0.000367,0.000701,0.001563,0.001166,0.000647,0.000808,0.000622,0.000358,0.000227,0.000227 | |||
gipiccolo86 ftgen 0,0,4096,10,0.730803,0.323120,0.277720,0.044844,0.009400,0.022785,0.004602,0.005762,0.006400,0.002483,0.001490,0.002354,0.004728,0.002669,0.003175,0.001177,0.000761,0.000509,0.000449,0.000703,0.001078,0.002471,0.003905,0.004114,0.004114 | |||
gipiccolo92 ftgen 0,0,4096,10,0.883567,0.117309,0.144273,0.012664,0.016747,0.002921,0.002043,0.001429,0.002107,0.008510,0.001611,0.002330,0.000075,0.000381,0.000943,0.002268,0.001748,0.001626,0.000882,0.002765,0.003187,0.004911,0.008342,0.017209,0.017209 | |||
gipiccolo98 ftgen 0,0,4096,10,0.922186,0.144948,0.042529,0.011837,0.006901,0.000900,0.001625,0.000686,0.000507 ; ,0.000305,0.000305,0.000730,0.000922,0.001408,0.001499,0.005116,0.021056,0.151393,0.034986,0.124701,0.024182,0.008037,0.002664,0.001934,0.001934 | |||
gipiccolo106 ftgen 0,0,4096,10,0.501042,0.019695,0.008976,0.003473,0.006493,0.001700,0.002765,0.003224,0.006276 ; ,0.025062,0.036907,0.005386,0.046443,0.013720,0.005391,0.007819,0.019832,0.008441,0.006927,0.007528,0.018483,0.042516,0.057060,0.083779,0.083779 | |||
giwavemapPiccolo ftgen 0,0,128,-27, 0,0, 74,0, 80,1, 86,2, 92,3, 98,4, 106,5, 127,5 | |||
gitabs4morfPiccolo ftgen 0,0,8,-2,gipiccolo74,gipiccolo80,gipiccolo86,gipiccolo92,gipiccolo98,gipiccolo106,gipiccolo106,gipiccolo106 ; | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giflute59 ftgen 0,0,4096,10,0.876155,0.188136,0.766537,0.278649,0.134428,0.143342,0.201465,0.068043,0.011284,0.021093,0.021494,0.010577,0.016431,0.007352,0.006864,0.007433,0.006500,0.004716,0.004282,0.002545,0.002718,0.002045,0.001768,0.002409,0.002409 | |||
giflute65 ftgen 0,0,4096,10,0.799971,0.564039,0.327027,0.076562,0.324116,0.049951,0.035116,0.048856,0.017988,0.004316,0.007909,0.004093,0.003013,0.003329,0.001707,0.001995,0.001913,0.000937,0.001543,0.001868,0.001289,0.001463,0.001865,0.001076,0.001076 | |||
giflute71 ftgen 0,0,4096,10,0.902388,0.107786,0.423495,0.078015,0.066093,0.032990,0.012352,0.008687,0.005253,0.004091,0.001790,0.002202,0.000853,0.001228,0.000810,0.000828,0.000601,0.000593,0.000647,0.000906,0.000925,0.001111,0.001302,0.000899,0.000899 | |||
giflute77 ftgen 0,0,4096,10,0.925667,0.059839,0.214284,0.013980,0.026778,0.008733,0.019436,0.002640,0.004217,0.002126,0.003513,0.002455,0.001336,0.001508,0.001589,0.002155,0.002549,0.001951,0.001614,0.001076,0.001253,0.001138,0.001073,0.000990,0.000990 | |||
giflute83 ftgen 0,0,4096,10,0.865610,0.041090,0.054192,0.043068,0.022098,0.002450,0.005687,0.002093,0.005076,0.001357,0.003848,0.006820,0.002879,0.005038,0.002273,0.002877,0.001043,0.001188,0.000857,0.000726,0.000537,0.000320,0.000390,0.000666,0.000666 | |||
giflute89 ftgen 0,0,4096,10,0.907108,0.032221,0.007003,0.010577,0.004166,0.002274,0.001089,0.002739,0.002459,0.002194,0.001351,0.000570,0.000469,0.000388,0.000228,0.000180,0.000377,0.000470,0.000724,0.001478,0.002258,0.002625,0.006255,0.003183,0.003183 | |||
giflute95 ftgen 0,0,4096,10,0.927168,0.094811,0.014160,0.010743,0.004640,0.002540,0.000535,0.000356,0.000205,0.000147,0.000042,0.000032,0.000090,0.000201,0.000171,0.000595,0.000136,0.000338,0.000284,0.000244,0.001813,0.001310,0.002113,0.000510,0.000510 | |||
giflute98 ftgen 0,0,4096,10,0.793870,0.077609,0.047389,0.012277,0.005127,0.002760,0.002619,0.000390,0.000109,0.000105,0.000147,0.000425,0.000266,0.000201,0.000312,0.000210,0.001391,0.003570,0.001720,0.002746,0.001399,0.000749,0.000411,0.001156,0.001156 | |||
giwavemapFlute ftgen 0,0,128,-27, 0,0, 59,0, 65,1, 71,2, 77,3, 83,4, 89,5, 95,6, 98,7, 127,7 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfFlute ftgen 0,0,8,-2,giflute59,giflute65,giflute71,giflute77,giflute83,giflute89,giflute95,giflute98 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; ALTO FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giAFlute55 ftgen 0,0,4096,10,0.821986,0.323726,0.027144,0.049562,0.045630,0.004837,0.008584,0.002449,0.002921,0.004780,0.006174,0.006496,0.009180,0.010020,0.008884,0.006397,0.007728,0.007543,0.005540,0.004643,0.004213,0.003464,0.002247,0.001529,0.001529 | |||
giAFlute61 ftgen 0,0,4096,10,0.629423,0.050378,0.078267,0.098147,0.002593,0.003473,0.002978,0.007847,0.002718,0.004264,0.004001,0.003129,0.002278,0.001767,0.001591,0.001198,0.000790,0.000910,0.000907,0.000909,0.000690,0.001006,0.000870,0.000801,0.000801 | |||
giAFlute67 ftgen 0,0,4096,10,0.734185,0.213440,0.086548,0.055143,0.004785,0.001811,0.011006,0.004212,0.001873,0.002130,0.001001,0.000376,0.000632,0.000823,0.000595,0.000764,0.000514,0.000403,0.000326,0.000317,0.000537,0.000523,0.000835,0.000743,0.000743 | |||
giAFlute76 ftgen 0,0,4096,10,0.868899,0.390848,0.052590,0.023839,0.033699,0.031143,0.013923,0.008881,0.003821,0.001797,0.003048,0.002506,0.002295,0.001878,0.001118,0.001109,0.001133,0.001732,0.002085,0.002020,0.001240,0.000963,0.000929,0.000456,0.000456 | |||
giwavemapAFlute ftgen 0,0,128,-27, 0,0, 55,0, 61,1, 67,2, 76,3, 127,3 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfAFlute ftgen 0,0,4,-2,giAFlute55,giAFlute55,giAFlute55,giAFlute55 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS FLUTE | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giBFlute48 ftgen 0,0,4096,10,0.691967,0.034269,0.271945,0.033667,0.017446,0.011342,0.007238,0.006576,0.003027,0.003556,0.004425,0.004988,0.003990,0.005253,0.006140,0.003051,0.004437,0.003567,0.002838,0.001703,0.001528,0.001368,0.001703,0.001153,0.000827,0.001023,0.000899,0.000612,0.000827,0.000823,0.000948,0.001184,0.001201,0.001272,0.001032,0.001141,0.001128,0.000887,0.000790,0.000612,0.000565,0.000573,0.000586,0.000554,0.000483,0.000450,0.000404,0.000416,0.000392,0.000391,0.000327,0.000336,0.000370,0.000424,0.000460,0.000459,0.000456,0.000395,0.000319,0.000306,0.000283,0.000306,0.000338,0.000305,0.000288,0.000263,0.000247,0.000239,0.000245,0.000233,0.000190,0.000166,0.000161,0.000160,0.000150,0.000136,0.000130,0.000130,0.000126,0.000126,0.000128,0.000131,0.000131,0.000136,0.000138,0.000132,0.000122,0.000116,0.000119,0.000126,0.000122,0.000112,0.000109,0.000113,0.000118,0.000118,0.000118,0.000117,0.000116,0.000118 | |||
giBFlute54 ftgen 0,0,4096,10,0.633439,0.578363,0.200810,0.008032,0.068714,0.005615,0.005448,0.012421,0.009987,0.006289,0.004137,0.002738,0.001944,0.002935,0.003674,0.002567,0.002545,0.004116,0.003915,0.002935,0.002322,0.002647,0.003186,0.003370,0.003213,0.002193,0.001902,0.001629,0.001652,0.001274,0.001102,0.001205,0.001277,0.001134,0.001117,0.001286,0.001477,0.001607,0.002607,0.003270,0.002939,0.002558,0.001826,0.001324,0.001228,0.001070,0.001110,0.001120,0.001042,0.000924,0.000909,0.000880,0.000765,0.000674,0.000600,0.000491,0.000437,0.000441,0.000443,0.000452,0.000467,0.000527,0.000606,0.000571,0.000554,0.000518,0.000420,0.000363,0.000315,0.000275,0.000245,0.000221,0.000200,0.000202,0.000219,0.000211,0.000194,0.000187,0.000197,0.000197,0.000193,0.000201,0.000217,0.000223,0.000219,0.000213,0.000200,0.000175,0.000149,0.000131,0.000124,0.000120,0.000115,0.000111,0.000113,0.000117,0.000115,0.000107,0.000100,0.000098 | |||
giBFlute60 ftgen 0,0,4096,10,0.801592,0.068816,0.032303,0.012614,0.002660,0.014692,0.002493,0.006175,0.001826,0.001416,0.002607,0.001063,0.001542,0.001053,0.001293,0.001226,0.000781,0.001142,0.000975,0.000922,0.000693,0.000570,0.000538,0.000429,0.000587,0.000775,0.000855,0.001295,0.001190,0.000941,0.000912,0.000796,0.000662,0.000789,0.000828,0.000784,0.000614,0.000480,0.000455,0.000378,0.000334,0.000309,0.000351,0.000375,0.000427,0.000378,0.000293,0.000232,0.000224,0.000199,0.000150,0.000119,0.000100,0.000084,0.000084,0.000088,0.000085,0.000081,0.000076,0.000081,0.000080,0.000075,0.000071,0.000068,0.000063,0.000060,0.000064,0.000067,0.000065,0.000058,0.000055,0.000054,0.000054,0.000053,0.000052,0.000053,0.000053,0.000053,0.000052,0.000050,0.000049,0.000049,0.000049,0.000049,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute66 ftgen 0,0,4096,10,0.743019,0.068238,0.021487,0.010397,0.001744,0.013212,0.001676,0.005245,0.002049,0.001401,0.001686,0.001346,0.001288,0.000879,0.001087,0.000922,0.000878,0.000678,0.000904,0.000729,0.000481,0.000542,0.000525,0.000561,0.000481,0.000552,0.000745,0.001153,0.001211,0.001000,0.000706,0.000621,0.000613,0.000779,0.000764,0.000717,0.000619,0.000486,0.000448,0.000429,0.000341,0.000327,0.000331,0.000340,0.000340,0.000335,0.000288,0.000255,0.000233,0.000195,0.000173,0.000150,0.000127,0.000123,0.000119,0.000113,0.000111,0.000115,0.000116,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute72 ftgen 0,0,4096,10,0.741444,0.066744,0.018973,0.009713,0.002046,0.010742,0.001911,0.004984,0.002277,0.001308,0.001841,0.000932,0.001065,0.000889,0.001029,0.000970,0.000767,0.000708,0.000743,0.000629,0.000541,0.000457,0.000410,0.000534,0.000487,0.000489,0.000743,0.001263,0.001164,0.001062,0.000757,0.000529,0.000538,0.000606,0.000594,0.000583,0.000497,0.000463,0.000498,0.000433,0.000369,0.000363,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giBFlute76 ftgen 0,0,4096,10,0.745977,0.066489,0.014197,0.007352,0.002175,0.009766,0.002280,0.004362,0.001870,0.001375,0.001383,0.001328,0.001381,0.001194,0.001429,0.000949,0.000917,0.000802,0.000818,0.000932,0.000636,0.000646,0.000571,0.000575,0.000613,0.000679,0.000959,0.001343,0.001448,0.001365,0.001241,0.001091,0.001093,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapBFlute ftgen 0,0,128,-27, 0,0, 48,0, 54,1, 60,2, 66,3, 72,4, 76,5, 127,5 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfBFlute ftgen 0,0,4,-2,giBFlute48,giBFlute54,giBFlute60,giBFlute66,giBFlute72,giBFlute76 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; AHH | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giahh43 ftgen 0,0,4096,10,0.386674,0.073031,0.081855,0.018459,0.053239,0.061160,0.058957,0.045203,0.039489,0.065846,0.041424,0.012866,0.006504,0.005909,0.005469,0.003737,0.003814,0.002639,0.002638,0.003016,0.004285,0.006226,0.007688,0.008839,0.014596,0.028866,0.037921,0.022164,0.015744,0.007756,0.005050,0.007234,0.008132,0.006564,0.005699,0.007003,0.007011,0.005459,0.004080,0.003820,0.004403,0.004661,0.005385,0.007278,0.009647,0.010877,0.012884,0.014945,0.015339,0.012290,0.009204,0.008363,0.007093,0.005203,0.003328,0.002161,0.001538,0.001215,0.001037,0.001033,0.001172,0.001483,0.002127,0.002644,0.002412,0.001679,0.001068,0.000848,0.000972,0.001425,0.002263,0.003492,0.004427,0.004100,0.003201,0.002484,0.002255,0.002495,0.003139,0.004136,0.005259,0.005878,0.005432,0.004477,0.003617,0.002973,0.002606,0.002518,0.002611,0.002863,0.003395,0.004095,0.004529,0.004686,0.004927,0.005437,0.006092,0.006727,0.007073,0.006966 | |||
giahh49 ftgen 0,0,4096,10,0.600063,0.256340,0.126445,0.040717,0.097956,0.082383,0.135342,0.006369,0.002414,0.002312,0.001526,0.000552,0.000868,0.000435,0.000576,0.001145,0.001706,0.003688,0.013234,0.006626,0.006840,0.012971,0.003639,0.002955,0.001962,0.001988,0.000831,0.000533,0.000748,0.000490,0.000674,0.001431,0.002663,0.002680,0.002874,0.003227,0.001837,0.000874,0.000662,0.000901,0.001630,0.002139,0.001816,0.001233,0.000817,0.000658,0.000730,0.000864,0.001037,0.001616,0.002390,0.002487,0.002363,0.002429,0.002624,0.002971,0.002486,0.001530,0.000895,0.000669,0.000806,0.001085,0.001185,0.001002,0.000857,0.000900,0.001009,0.001198,0.001398,0.001306,0.001302,0.001562,0.001670,0.001440,0.001105,0.000872,0.000746,0.000748,0.000770,0.000788,0.000890,0.000973,0.000896,0.000716,0.000598,0.000536,0.000492,0.000469,0.000443,0.000384,0.000317,0.000262,0.000209,0.000162,0.000129,0.000110,0.000102,0.000099,0.000099,0.000096 | |||
giahh55 ftgen 0,0,4096,10,0.667225,0.194524,0.098683,0.096875,0.021209,0.006311,0.002978,0.001013,0.001249,0.001446,0.002393,0.004826,0.018741,0.012161,0.010480,0.005261,0.004569,0.001376,0.001132,0.003605,0.001846,0.002757,0.005346,0.004712,0.004806,0.002357,0.001109,0.001302,0.001860,0.001054,0.001120,0.001642,0.002240,0.004382,0.005473,0.003755,0.002444,0.002088,0.001822,0.000946,0.000790,0.001222,0.001653,0.001374,0.001401,0.002118,0.002061,0.001470,0.001198,0.001635,0.002387,0.002248,0.001327,0.000951,0.000884,0.000844,0.000805,0.000667,0.000669,0.000701,0.000591,0.000445,0.000367,0.000314,0.000272,0.000225,0.000179,0.000152,0.000164,0.000169,0.000151,0.000144,0.000137,0.000121,0.000115,0.000123,0.000125,0.000116,0.000102,0.000095,0.000102,0.000120,0.000135,0.000132,0.000117,0.000100,0.000084,0.000074,0.000072,0.000075,0.000077,0.000079,0.000083,0.000083,0.000081,0.000082,0.000084,0.000081,0.000074,0.000063 | |||
giahh61 ftgen 0,0,4096,10,0.701578,0.444091,0.390732,0.103519,0.007759,0.002497,0.001883,0.001103,0.001729,0.001889,0.001679,0.002455,0.000872,0.000433,0.001071,0.001382,0.002270,0.001077,0.000930,0.000940,0.001143,0.001633,0.001901,0.001446,0.002619,0.003724,0.002339,0.001969,0.001199,0.000674,0.001015,0.001321,0.001504,0.001378,0.000778,0.000682,0.001100,0.001312,0.001438,0.001513,0.000928,0.000466,0.000374,0.000410,0.000492,0.000515,0.000367,0.000230,0.000171,0.000169,0.000209,0.000236,0.000189,0.000194,0.000205,0.000196,0.000184,0.000168,0.000186,0.000223,0.000241,0.000197,0.000144,0.000113,0.000100,0.000101,0.000097,0.000088,0.000075,0.000067,0.000060,0.000051,0.000044,0.000040,0.000036,0.000034,0.000033,0.000033,0.000033,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giahh67 ftgen 0,0,4096,10,0.836515,0.800602,0.036351,0.016206,0.006383,0.007973,0.003273,0.011820,0.001230,0.001857,0.003725,0.004792,0.002586,0.008972,0.005518,0.007339,0.005207,0.006633,0.005670,0.005010,0.005379,0.002919,0.004501,0.004490,0.002854,0.003643,0.005161,0.002824,0.002183,0.001438,0.001060,0.000978,0.001138,0.001729,0.001501,0.001117,0.000626,0.000578,0.000512,0.000294,0.000255,0.000311,0.000397,0.000310,0.000205,0.000188,0.000179,0.000164,0.000172,0.000143,0.000115,0.000095,0.000084,0.000081,0.000080,0.000080,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giwavemapAhh ftgen 0,0,128,-27, 0,0, 43,0, 49,1, 55,2, 61,3, 67,4, 127,4 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
gitabs4morfAhh ftgen 0,0,8,-2,giahh43,giahh49,giahh55,giahh61,giahh67,giahh67,giahh67,giahh67 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; HORN P | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giHornP38 ftgen 0,0,4096,10,0.045737,0.148188,0.335691,0.493464,0.710665,0.765723,0.694286,0.628629,0.521398,0.428206,0.365416,0.306040,0.298023,0.254152,0.201721,0.154086,0.161771,0.146790,0.124044,0.110268,0.091099,0.076808,0.057743,0.042724,0.042724 | |||
giHornP50 ftgen 0,0,4096,10,0.280951,0.717837,0.823404,0.588908,0.394696,0.286430,0.176355,0.118365,0.064524,0.033209,0.016001,0.004104,0.004396,0.002069,0.002350,0.001903,0.001098,0.001262,0.001129,0.000906,0.000543,0.000575,0.000427,0.000355,0.000355 | |||
giHornP62 ftgen 0,0,4096,10,0.495327,0.909763,0.613398,0.368832,0.202553,0.124640,0.046586,0.011810,0.012510,0.011370,0.006659,0.004564,0.002331,0.001790,0.000667,0.000538,0.000352,0.000302,0.000558,0.000794,0.000797,0.000331,0.000342,0.000389,0.000389 | |||
giHornP74 ftgen 0,0,4096,10,0.796534,0.226262,0.060526,0.013273,0.003161,0.001015,0.001071,0.000595,0.000191,0.000337,0.000199,0.000173,0.000183,0.000187,0.000105,0.000113,0.000156,0.000119,0.000098,0.000067,0.000066,0.000064,0.000054,0.000043,0.000043 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapHornP ftgen 0,0,128,-27, 0,0, 38,0, 50,1, 62,2, 74,3, 127,3 | |||
gitabs4morfHornP ftgen 0,0,4,-2,giHornP38,giHornP50,giHornP62,giHornP74 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; HORN F | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giHornF38 ftgen 0,0,4096,10,0.150333,0.205756,0.869097,0.723941,0.707935,0.116871,0.238125,0.330962,0.443031,0.325212,0.131256,0.267361,0.273576,0.146568,0.209758,0.158564,0.179271,0.084668,0.112177,0.118845,0.124993,0.096945,0.128906,0.125534,0.125534 | |||
giHornF50 ftgen 0,0,4096,10,0.348154,0.319965,0.418661,0.396206,0.046368,0.198167,0.035091,0.107400,0.035358,0.066696,0.053722,0.045581,0.066494,0.109943,0.059354,0.050001,0.123615,0.052990,0.032207,0.039448,0.051629,0.014079,0.014571,0.017523,0.017523 | |||
giHornF62 ftgen 0,0,4096,10,0.449507,0.544173,0.108516,0.300530,0.163030,0.351952,0.171674,0.202505,0.098101,0.066418,0.044492,0.071036,0.074224,0.064911,0.027430,0.041991,0.022245,0.017689,0.013130,0.020853,0.016891,0.038363,0.017524,0.016841,0.016841 | |||
giHornF74 ftgen 0,0,4096,10,0.923831,0.259141,0.262670,0.175552,0.089346,0.073056,0.055113,0.031968,0.027964,0.033656,0.035303,0.010920,0.019420,0.013447,0.012944,0.006111,0.007041,0.003864,0.005702,0.004615,0.003076,0.001589,0.002756,0.001234,0.001234 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapHornF ftgen 0,0,128,-27, 0,0, 38,0, 50,1, 62,2, 74,3, 127,3 | |||
gitabs4morfHornF ftgen 0,0,4,-2,giHornF38,giHornF50,giHornF62,giHornF74 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (HARMON MUTE) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giharmon33 ftgen 0,0,4096,10,0.875348,0.155770,0.111939,0.181031,0.355046,0.044216,0.039025,0.036422,0.074587,0.050492,0.042464,0.079868,0.121542,0.243299,0.253642,0.263571,0.422410,0.624259,0.742333,0.514304,0.760971,0.444426,0.456583,0.195508,0.070084,0.032239,0.029621,0.058523,0.044442,0.057324,0.077997,0.047218,0.046215,0.023786,0.017859,0.017652,0.012055,0.009595,0.009020,0.006000,0.004077,0.004950,0.004543,0.003196,0.002659,0.003533,0.004156,0.003745,0.002471,0.002264,0.003050,0.002614,0.001944,0.001709,0.001717,0.001934,0.002458,0.003618,0.004915,0.004334,0.003733,0.003804,0.003489,0.002755,0.002427,0.002273,0.002577,0.002702,0.002483,0.002059,0.002016,0.002214,0.002215,0.001947,0.001952,0.002236,0.002357,0.002417,0.002406,0.002309,0.002176,0.002227,0.002527,0.002649,0.002448,0.002165,0.002175,0.002322,0.002371,0.002202,0.001845,0.001620,0.001626,0.001927,0.002537,0.003091,0.003220,0.003231,0.003453,0.003751 | |||
giharmon34 ftgen 0,0,4096,10,0.443604,0.040301,0.041393,0.115682,0.622143,0.055550,0.073493,0.090539,0.109410,0.039052,0.138611,0.161174,0.290931,0.212197,0.410393,0.749789,0.917784,1.375368,0.934044,0.781551,0.356416,0.290222,0.181279,0.061983,0.081959,0.039112,0.044805,0.058922,0.022274,0.022731,0.038966,0.025063,0.031263,0.030753,0.032383,0.045020,0.032652,0.027144,0.033411,0.020397,0.015121,0.017071,0.014804,0.013636,0.012149,0.012930,0.014231,0.012821,0.011342,0.009001,0.008587,0.006187,0.005928,0.008836,0.012118,0.012242,0.009968,0.009445,0.006852,0.004519,0.002870,0.001975,0.001680,0.001593,0.001930,0.002744,0.003798,0.003938,0.003311,0.003174,0.003465,0.004740,0.006267,0.006620,0.006071,0.005274,0.005318,0.005795,0.006440,0.007152,0.007792,0.008192,0.007304,0.005765,0.004397,0.003369,0.002855,0.003059,0.003731,0.004377,0.004923,0.005763,0.006567,0.006834,0.006780,0.006575,0.005922,0.004714,0.003481,0.002696 | |||
giharmon36 ftgen 0,0,4096,10,0.934870,0.094639,0.263729,0.103300,0.556951,0.047384,0.167404,0.119804,0.122737,0.048833,0.154640,0.111318,0.302046,0.230750,0.517436,0.259307,0.354474,0.152230,0.109031,0.091431,0.071065,0.027335,0.037383,0.048534,0.033460,0.066084,0.041563,0.049933,0.029361,0.032804,0.017292,0.018054,0.023006,0.019576,0.018461,0.008645,0.007040,0.005924,0.005415,0.003713,0.003447,0.002816,0.003594,0.003583,0.002658,0.001561,0.001446,0.002347,0.003707,0.005343,0.007152,0.006970,0.005630,0.004404,0.002749,0.002098,0.002393,0.001708,0.001255,0.001150,0.001263,0.001445,0.001397,0.001331,0.001510,0.001783,0.001849,0.001576,0.001508,0.001400,0.001153,0.000940,0.000797,0.000734,0.000677,0.000581,0.000531,0.000644,0.000829,0.000891,0.000846,0.000864,0.000921,0.000980,0.000945,0.000994,0.001078,0.001054,0.000936,0.000863,0.000855,0.000855,0.000757,0.000683,0.000687,0.000667,0.000654,0.000639,0.000610,0.000586 | |||
giharmon38 ftgen 0,0,4096,10,0.275894,0.119750,0.302577,0.931731,0.080509,0.210351,0.194035,0.223110,0.137304,0.197845,0.327194,0.349699,0.653623,0.881895,0.939789,0.691399,0.569520,0.195895,0.129254,0.040633,0.094914,0.073078,0.145254,0.105583,0.162773,0.080818,0.095817,0.054832,0.079542,0.059357,0.055196,0.036903,0.021942,0.019084,0.020925,0.014726,0.013288,0.012653,0.010311,0.008738,0.008159,0.006852,0.004697,0.006565,0.011392,0.016788,0.018297,0.017879,0.015021,0.009463,0.005643,0.005105,0.004046,0.004010,0.005012,0.004282,0.003406,0.003104,0.003782,0.005116,0.003975,0.002459,0.001720,0.001650,0.002105,0.002882,0.003694,0.004103,0.003070,0.001947,0.001446,0.001258,0.001170,0.001349,0.001876,0.002582,0.002853,0.002391,0.002009,0.001887,0.001808,0.001514,0.001333,0.001265,0.001131,0.001082,0.001169,0.001278,0.001225,0.001070,0.000913,0.000800,0.000767,0.000799,0.000824,0.000902,0.001003,0.001061,0.001115,0.001185 | |||
giharmon39 ftgen 0,0,4096,10,0.215899,0.043569,0.155862,0.915877,0.029041,0.085938,0.096861,0.027476,0.042161,0.045780,0.077178,0.073681,0.292899,0.268475,0.052870,0.047343,0.020451,0.005226,0.004051,0.013123,0.014796,0.018766,0.016900,0.010549,0.011430,0.006502,0.006649,0.009883,0.007521,0.005298,0.002202,0.001505,0.001267,0.001744,0.001762,0.001880,0.001510,0.001300,0.001551,0.001113,0.001344,0.002682,0.004692,0.003899,0.003280,0.002211,0.001351,0.000889,0.000702,0.000681,0.000890,0.000985,0.000873,0.001082,0.000955,0.001016,0.001084,0.000930,0.000860,0.000656,0.000607,0.000724,0.000840,0.000859,0.000735,0.000640,0.000553,0.000553,0.000664,0.000694,0.000736,0.000846,0.000794,0.000763,0.000690,0.000686,0.000654,0.000659,0.000732,0.000714,0.000736,0.000748,0.000741,0.000620,0.000514,0.000484,0.000540,0.000707,0.000958,0.001141,0.001115,0.001012,0.000967,0.000906,0.000789,0.000653,0.000550,0.000512,0.000523,0.000521 | |||
giharmon40 ftgen 0,0,4096,10,0.369055,0.131998,0.314332,0.267587,0.083279,0.197505,0.246057,0.188865,0.247543,0.447904,0.311578,0.951654,0.440089,0.497270,0.248691,0.084689,0.024288,0.043815,0.092522,0.149863,0.063883,0.137365,0.089276,0.106339,0.067676,0.038080,0.044355,0.030311,0.016710,0.009404,0.009432,0.010647,0.009912,0.005595,0.004133,0.004025,0.003963,0.005248,0.007884,0.011332,0.009707,0.007295,0.004440,0.003429,0.004551,0.003060,0.002116,0.001763,0.001514,0.002027,0.002310,0.003069,0.002321,0.001811,0.001688,0.002021,0.001926,0.001770,0.001680,0.001534,0.001470,0.001491,0.001508,0.001391,0.001324,0.001260,0.001327,0.001406,0.001495,0.001338,0.001292,0.001395,0.001369,0.001408,0.001332,0.001258,0.001360,0.001502,0.001505,0.001392,0.001389,0.001469,0.001354,0.001230,0.001168,0.001229,0.001270,0.001296,0.001299,0.001384,0.001495,0.001524,0.001735,0.002015,0.002003,0.001730,0.001490,0.001313,0.001201,0.001201 | |||
giharmon41 ftgen 0,0,4096,10,0.338560,0.097872,0.404630,0.072213,0.101149,0.122271,0.088489,0.206809,0.295859,0.455726,0.802773,0.963091,0.671085,0.510166,0.125095,0.028121,0.044968,0.022808,0.033809,0.020551,0.006760,0.009093,0.007270,0.015331,0.017393,0.011093,0.005257,0.003771,0.002662,0.001862,0.002670,0.003093,0.003083,0.002636,0.001647,0.002030,0.003615,0.005828,0.005317,0.003389,0.002213,0.002189,0.002077,0.001392,0.000953,0.000899,0.000930,0.001189,0.001829,0.001616,0.001463,0.001355,0.001413,0.001368,0.001472,0.001201,0.000951,0.000804,0.000750,0.000839,0.001162,0.001540,0.001515,0.001241,0.001296,0.001396,0.001129,0.000785,0.000579,0.000562,0.000702,0.000938,0.001154,0.001155,0.001088,0.001192,0.001489,0.001693,0.001713,0.001549,0.001472,0.001606,0.001560,0.001278,0.001057,0.001106,0.001217,0.001127,0.001002,0.000959,0.000869,0.000789,0.000751,0.000712,0.000744,0.000874,0.001032,0.001112,0.001055,0.001033 | |||
giharmon43 ftgen 0,0,4096,10,0.135645,0.120943,0.979143,0.023489,0.114683,0.114072,0.130730,0.180948,0.281652,0.683720,0.964428,0.306787,0.213682,0.058648,0.025209,0.025596,0.047105,0.038846,0.017756,0.006258,0.005601,0.010206,0.010689,0.004381,0.002744,0.002982,0.002040,0.002284,0.001570,0.001528,0.002115,0.001649,0.002514,0.003304,0.005338,0.002902,0.001301,0.000713,0.000665,0.000652,0.000695,0.000698,0.000700,0.001056,0.000728,0.000485,0.000534,0.000633,0.000450,0.000429,0.000625,0.000827,0.001012,0.001160,0.001256,0.001213,0.001133,0.001362,0.001533,0.001305,0.001367,0.001616,0.001627,0.001417,0.001458,0.001637,0.001588,0.001552,0.001476,0.001327,0.001247,0.001076,0.000857,0.000699,0.000670,0.000726,0.000750,0.000854,0.000976,0.000936,0.000830,0.000768,0.000683,0.000599,0.000530,0.000491,0.000451,0.000398,0.000378,0.000368,0.000380,0.000455,0.000533,0.000535,0.000501,0.000464,0.000470,0.000496,0.000480,0.000442 | |||
giharmon45 ftgen 0,0,4096,10,0.244591,0.267325,0.126930,0.136762,0.271635,0.312002,0.223921,0.477139,0.969260,0.621811,0.276235,0.133028,0.017955,0.053396,0.048589,0.033493,0.018488,0.024467,0.024072,0.021974,0.013672,0.005364,0.005982,0.003607,0.001893,0.001866,0.001242,0.001433,0.001334,0.002488,0.002930,0.001518,0.001627,0.002275,0.001495,0.001193,0.000972,0.000737,0.000811,0.001235,0.001057,0.000838,0.001036,0.001047,0.001114,0.001012,0.000995,0.001090,0.001298,0.001286,0.001257,0.001216,0.001222,0.001045,0.001114,0.001441,0.001842,0.001582,0.001233,0.001180,0.001395,0.001374,0.001319,0.001317,0.001143,0.001024,0.001053,0.001334,0.001740,0.001862,0.001603,0.001274,0.001051,0.001022,0.000939,0.000839,0.000784,0.000794,0.000787,0.000752,0.000772,0.000742,0.000760,0.000882,0.001044,0.001103,0.001124,0.001129,0.001259,0.001523,0.001689,0.001631,0.001499,0.001332,0.001219,0.001138,0.001037,0.000952,0.000828,0.000746 | |||
giharmon46 ftgen 0,0,4096,10,0.315815,0.844525,0.164412,0.451756,0.585703,0.518759,0.681565,0.411064,0.952335,0.494514,0.366224,0.049949,0.050057,0.056689,0.053659,0.035965,0.043860,0.032015,0.019827,0.005201,0.006601,0.005746,0.007203,0.005429,0.003518,0.004758,0.003756,0.007828,0.015721,0.006418,0.003773,0.007304,0.003491,0.004073,0.002821,0.001771,0.002371,0.001798,0.002341,0.002659,0.003029,0.001998,0.001673,0.001293,0.000985,0.001051,0.001602,0.002316,0.002076,0.001608,0.001182,0.001234,0.001509,0.002038,0.001745,0.001690,0.001788,0.002285,0.002474,0.002206,0.002242,0.002438,0.002520,0.003014,0.003823,0.004834,0.005921,0.005640,0.004222,0.003103,0.002822,0.003289,0.003754,0.003426,0.002719,0.002201,0.001856,0.001927,0.002461,0.002893,0.002831,0.002430,0.002388,0.002815,0.003393,0.003964,0.004124,0.003523,0.002801,0.002546,0.002599,0.002485,0.002105,0.001812,0.001794,0.001803,0.001606,0.001468,0.001509,0.001549 | |||
giharmon48 ftgen 0,0,4096,10,0.122676,0.220788,0.073432,0.127649,0.149907,0.310663,0.320023,0.888642,0.333339,0.133323,0.020148,0.021610,0.031312,0.019058,0.010338,0.008856,0.009259,0.004665,0.008040,0.006064,0.004765,0.002412,0.001080,0.002281,0.002107,0.003516,0.001246,0.000827,0.000714,0.001050,0.000701,0.000675,0.000523,0.000934,0.001128,0.001435,0.000766,0.000427,0.000568,0.000725,0.001140,0.001379,0.000939,0.000679,0.000677,0.000639,0.000687,0.000664,0.000490,0.000511,0.000557,0.000610,0.000728,0.001052,0.001004,0.000764,0.000789,0.000916,0.000909,0.001108,0.000978,0.000656,0.000487,0.000484,0.000484,0.000521,0.000592,0.000647,0.000545,0.000494,0.000588,0.000761,0.000868,0.000902,0.000912,0.000928,0.000781,0.000667,0.000669,0.000665,0.000649,0.000608,0.000541,0.000459,0.000419,0.000435,0.000481,0.000492,0.000493,0.000550,0.000622,0.000616,0.000575,0.000571,0.000566,0.000520,0.000445,0.000380,0.000345,0.000334 | |||
giharmon50 ftgen 0,0,4096,10,0.162293,0.952587,0.107970,0.148379,0.162877,0.302263,0.378248,0.526544,0.202053,0.019075,0.035439,0.025852,0.023804,0.025676,0.028522,0.013081,0.004084,0.002802,0.001949,0.002297,0.001565,0.001596,0.004229,0.004413,0.001504,0.001251,0.001021,0.001404,0.001139,0.001161,0.000682,0.000466,0.000926,0.000495,0.000656,0.000798,0.001105,0.000691,0.000515,0.000562,0.000460,0.000566,0.000474,0.000481,0.000452,0.000510,0.000694,0.000487,0.000439,0.000584,0.000605,0.000623,0.000670,0.000916,0.000792,0.000871,0.000636,0.000514,0.000540,0.000466,0.000488,0.000461,0.000448,0.000510,0.000642,0.000795,0.000743,0.000838,0.001039,0.001142,0.000966,0.000733,0.000659,0.000657,0.000595,0.000548,0.000480,0.000411,0.000427,0.000488,0.000580,0.000723,0.000773,0.000693,0.000563,0.000471,0.000412,0.000429,0.000481,0.000468,0.000408,0.000367,0.000352,0.000329,0.000288,0.000260,0.000253,0.000249,0.000251,0.000257 | |||
giharmon52 ftgen 0,0,4096,10,0.167672,0.198778,0.227405,0.284738,0.650198,0.940684,0.975647,0.268741,0.049829,0.071939,0.024052,0.019628,0.020109,0.016231,0.003867,0.003960,0.004551,0.001438,0.002545,0.005214,0.004055,0.001727,0.002282,0.002593,0.001856,0.002206,0.001924,0.000871,0.000924,0.001558,0.001059,0.001121,0.001112,0.001260,0.001747,0.001193,0.000757,0.001035,0.000862,0.000951,0.001089,0.001598,0.001563,0.001170,0.001427,0.001409,0.001130,0.001424,0.001095,0.000785,0.000800,0.001135,0.001025,0.001093,0.000966,0.001083,0.001357,0.001272,0.001103,0.001508,0.002036,0.001512,0.001143,0.001348,0.001716,0.001528,0.001151,0.000935,0.001007,0.001124,0.000930,0.000715,0.000611,0.000658,0.000759,0.000788,0.000734,0.000745,0.000773,0.000916,0.001069,0.001056,0.000942,0.000778,0.000676,0.000670,0.000675,0.000675,0.000644,0.000597,0.000550,0.000537,0.000555,0.000559,0.000525,0.000454,0.000404,0.000407,0.000442,0.000480 | |||
giharmon53 ftgen 0,0,4096,10,0.026511,0.043338,0.103983,0.172681,0.197084,0.979650,0.257547,0.017830,0.077807,0.064492,0.041376,0.053973,0.027216,0.006355,0.007006,0.001571,0.001221,0.001837,0.007442,0.004872,0.002662,0.002280,0.002188,0.001493,0.002889,0.002534,0.002305,0.002344,0.001085,0.001468,0.002010,0.002087,0.000876,0.000665,0.000602,0.000985,0.000607,0.000521,0.000609,0.000586,0.000566,0.000481,0.000501,0.000665,0.000626,0.000653,0.000579,0.000643,0.000690,0.000651,0.000432,0.000403,0.000504,0.000532,0.000598,0.000456,0.000369,0.000393,0.000370,0.000313,0.000265,0.000292,0.000299,0.000335,0.000381,0.000415,0.000449,0.000480,0.000399,0.000307,0.000245,0.000249,0.000338,0.000468,0.000545,0.000532,0.000495,0.000471,0.000476,0.000450,0.000388,0.000331,0.000297,0.000269,0.000233,0.000202,0.000188,0.000169,0.000158,0.000175,0.000208,0.000254,0.000316,0.000380,0.000433,0.000473,0.000499,0.000504,0.000472,0.000425 | |||
giharmon55 ftgen 0,0,4096,10,0.081729,0.021968,0.138971,0.239901,0.947997,0.478402,0.152261,0.093610,0.063734,0.039617,0.032944,0.006609,0.015447,0.010428,0.006706,0.002730,0.013404,0.010554,0.003963,0.002958,0.000885,0.000799,0.001120,0.001680,0.001729,0.001274,0.001362,0.000943,0.002299,0.001254,0.001112,0.000960,0.001034,0.000866,0.000912,0.000751,0.001101,0.000945,0.000888,0.000760,0.000758,0.000764,0.000797,0.000790,0.000657,0.000779,0.000816,0.000819,0.000797,0.000793,0.000830,0.000803,0.000678,0.000695,0.000912,0.000796,0.000686,0.000833,0.000798,0.000772,0.000941,0.000835,0.000815,0.000695,0.000533,0.000448,0.000405,0.000411,0.000492,0.000554,0.000576,0.000587,0.000573,0.000542,0.000560,0.000560,0.000557,0.000544,0.000547,0.000555,0.000551,0.000537,0.000544,0.000557,0.000533,0.000512,0.000499,0.000514,0.000548,0.000548,0.000539,0.000526,0.000511,0.000513,0.000513,0.000510,0.000506,0.000503,0.000507,0.000508 | |||
giharmon57 ftgen 0,0,4096,10,0.150966,0.141943,0.169272,0.391010,0.953809,0.119929,0.039950,0.075251,0.042294,0.016963,0.005858,0.005238,0.002857,0.003841,0.008582,0.001485,0.001148,0.002596,0.001639,0.001556,0.002197,0.001142,0.001112,0.001195,0.001136,0.001245,0.000909,0.001301,0.000937,0.000941,0.001212,0.001227,0.000900,0.000862,0.000883,0.000728,0.001073,0.001100,0.000883,0.001160,0.000948,0.000936,0.001199,0.000883,0.000791,0.000945,0.000697,0.000592,0.000626,0.000588,0.000617,0.000696,0.000684,0.000803,0.000743,0.000641,0.000514,0.000453,0.000480,0.000536,0.000586,0.000581,0.000619,0.000622,0.000602,0.000589,0.000589,0.000600,0.000582,0.000552,0.000553,0.000557,0.000549,0.000526,0.000512,0.000519,0.000533,0.000535,0.000547,0.000544,0.000539,0.000534,0.000524,0.000512,0.000502,0.000502,0.000502,0.000497,0.000480,0.000468,0.000466,0.000464,0.000461,0.000459,0.000463,0.000470,0.000477,0.000482,0.000483,0.000488 | |||
giharmon60 ftgen 0,0,4096,10,0.306985,0.126374,0.301596,0.969500,0.074344,0.009729,0.006039,0.004002,0.001666,0.001675,0.002331,0.000674,0.000730,0.000729,0.000758,0.000585,0.000577,0.000687,0.000657,0.001017,0.000768,0.000581,0.000549,0.000326,0.000290,0.000463,0.000666,0.000567,0.000312,0.000634,0.000665,0.000397,0.000264,0.000232,0.000286,0.000583,0.000629,0.000663,0.000354,0.000268,0.000259,0.000263,0.000303,0.000274,0.000231,0.000322,0.000471,0.000473,0.000488,0.000569,0.000596,0.000564,0.000445,0.000430,0.000473,0.000519,0.000490,0.000446,0.000488,0.000475,0.000372,0.000301,0.000312,0.000304,0.000374,0.000526,0.000614,0.000564,0.000443,0.000349,0.000321,0.000320,0.000292,0.000243,0.000210,0.000227,0.000301,0.000393,0.000452,0.000473,0.000454,0.000415,0.000375,0.000353,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon62 ftgen 0,0,4096,10,0.969106,0.095726,0.196065,0.188016,0.005133,0.010386,0.004868,0.005030,0.003515,0.002819,0.002632,0.002361,0.001260,0.000235,0.000966,0.001186,0.001018,0.000871,0.001416,0.000300,0.000430,0.000824,0.000912,0.000810,0.000516,0.000452,0.000279,0.000463,0.000690,0.000443,0.000429,0.000374,0.000579,0.000876,0.000457,0.000456,0.000449,0.000577,0.000797,0.000538,0.000571,0.000564,0.000466,0.000418,0.000306,0.000321,0.000334,0.000294,0.000244,0.000204,0.000231,0.000265,0.000340,0.000422,0.000467,0.000400,0.000291,0.000221,0.000207,0.000236,0.000249,0.000246,0.000207,0.000188,0.000203,0.000210,0.000206,0.000193,0.000167,0.000155,0.000192,0.000247,0.000284,0.000296,0.000308,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon64 ftgen 0,0,4096,10,0.361663,0.582855,0.979701,0.215161,0.118878,0.052107,0.013704,0.009061,0.004379,0.007958,0.002817,0.003129,0.003908,0.003040,0.002896,0.002083,0.002113,0.004424,0.003621,0.002331,0.002616,0.002100,0.002293,0.001878,0.002282,0.002077,0.002490,0.002088,0.001811,0.001576,0.001425,0.001407,0.001400,0.001482,0.001847,0.001816,0.001426,0.001730,0.001541,0.001272,0.001398,0.001231,0.001332,0.001350,0.001199,0.001258,0.001149,0.001243,0.001247,0.001156,0.001074,0.001049,0.001142,0.001143,0.001058,0.000978,0.000854,0.000777,0.000688,0.000751,0.000914,0.001100,0.001101,0.001029,0.001044,0.001018,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giharmon65 ftgen 0,0,4096,10,0.314097,0.342771,0.973682,0.028876,0.015118,0.012713,0.002418,0.005174,0.003787,0.002218,0.002249,0.001625,0.002664,0.001830,0.002581,0.001180,0.001626,0.001619,0.001315,0.001513,0.001344,0.001175,0.000964,0.001112,0.001416,0.001129,0.001190,0.001045,0.001248,0.001029,0.000799,0.000750,0.000815,0.000965,0.000955,0.000725,0.000652,0.000709,0.000801,0.000717,0.000786,0.000648,0.000597,0.000630,0.000744,0.000667,0.000613,0.000496,0.000535,0.000596,0.000603,0.000583,0.000599,0.000593,0.000594,0.000603,0.000579,0.000588,0.000623,0.000624,0.000595,0.000573,0.000574,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapharmon ftgen 0,0,128,-27, 0,0, 33,0, 34,1, 36,2, 38,3, 39,3, 40,4, 41,5, 43,6, 45,7, 46,8, 48,9, 50,10, 52,11, 53,12, 55,13, 57,14, 60,15, 62,16, 64,17, 65,18, 127,18 | |||
gitabs4morfharmon ftgen 0,0,32,-2, giharmon33,giharmon34,giharmon36,giharmon38,giharmon39,giharmon40,giharmon41,giharmon43,giharmon45,giharmon46,giharmon48,giharmon50,giharmon52,giharmon53,giharmon55,giharmon57,giharmon60,giharmon62,giharmon64,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65,giharmon65 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (STRAIGHT MUTE) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giMute122 ftgen 0,0,4096,10,0.164339,0.102551,0.069563,0.138697,0.223728,0.265220,0.280256,0.332069,0.420578,0.494911,0.577300,0.438019,0.538305,0.547959,0.857117,0.773953,0.517366,0.523329,0.250443,0.159600,0.171983,0.125233,0.061672,0.045591,0.028822,0.029244,0.026342,0.016326,0.018016,0.016474,0.009454,0.006045,0.003657,0.004270,0.008585,0.014528,0.017452,0.019652,0.016908,0.013257,0.016063,0.015947,0.010616,0.009647,0.007357,0.006942,0.005472,0.008460,0.014247,0.013954,0.009828,0.009192,0.009759,0.008585,0.009964,0.012870,0.010975,0.007757,0.007624,0.008209,0.008005,0.007979,0.007726,0.007655,0.007795,0.007616,0.006725,0.005945,0.005229,0.004482,0.003678,0.003014,0.002618,0.002393,0.002731,0.003322,0.003436,0.002905,0.002194,0.001589,0.001214,0.001156,0.001328,0.001483,0.001561,0.001609,0.001696,0.001872,0.001908,0.002069,0.002367,0.002374,0.002130,0.001840,0.001674,0.001720,0.001812,0.001802,0.001732,0.001622 | |||
giMute123 ftgen 0,0,4096,10,0.168432,0.062246,0.078354,0.110195,0.129041,0.377921,0.282536,0.228004,0.524063,0.552904,0.492429,0.533439,0.241793,0.431759,0.960231,0.527526,0.457018,0.447269,0.173908,0.188096,0.117536,0.088623,0.038960,0.034631,0.040187,0.030976,0.019737,0.017966,0.018488,0.010201,0.006147,0.003826,0.005925,0.007905,0.007681,0.008607,0.015400,0.021169,0.020768,0.019478,0.013836,0.014839,0.014657,0.013690,0.013236,0.016605,0.019334,0.015552,0.016319,0.019658,0.016907,0.011550,0.009411,0.009522,0.010270,0.008678,0.008528,0.008212,0.007305,0.006920,0.008975,0.009992,0.007897,0.006576,0.006398,0.005486,0.004674,0.004082,0.003255,0.002525,0.001877,0.001735,0.002072,0.002316,0.002265,0.001877,0.001508,0.001299,0.001160,0.001268,0.001500,0.001614,0.001649,0.001544,0.001559,0.001869,0.002444,0.002837,0.002564,0.002224,0.002193,0.002264,0.002103,0.001864,0.001829,0.001964,0.001969,0.001708,0.001368,0.001146 | |||
giMute124 ftgen 0,0,4096,10,0.142996,0.083116,0.064144,0.232641,0.363109,0.345440,0.348866,0.301465,0.496059,0.590541,0.450344,0.611392,0.691633,0.939595,0.719155,0.655138,0.609154,0.236629,0.218778,0.154757,0.077033,0.074852,0.040400,0.038516,0.034596,0.023126,0.013779,0.015070,0.008541,0.005439,0.004834,0.008763,0.016084,0.025053,0.033607,0.047747,0.045648,0.045497,0.025409,0.021094,0.022069,0.038009,0.041759,0.063224,0.070253,0.055822,0.048910,0.048219,0.052210,0.039531,0.037339,0.030915,0.028370,0.038122,0.044865,0.047418,0.042297,0.039872,0.040218,0.036388,0.033231,0.028010,0.022884,0.020191,0.018026,0.013653,0.011148,0.010124,0.011725,0.014502,0.015977,0.012802,0.008969,0.006321,0.005229,0.005789,0.006897,0.007670,0.008699,0.009835,0.010769,0.010605,0.010601,0.010721,0.010749,0.010852,0.010291,0.009559,0.008597,0.007779,0.007284,0.006683,0.005906,0.005353,0.005322,0.005542,0.005543,0.005124,0.004449,0.003603 | |||
giMute125 ftgen 0,0,4096,10,0.044114,0.061305,0.127226,0.214587,0.248138,0.322022,0.289079,0.300066,0.219345,0.389034,0.679974,0.361926,0.905776,0.756147,0.724622,0.413971,0.233101,0.180408,0.145204,0.056539,0.046805,0.060866,0.050067,0.038355,0.032608,0.021983,0.011622,0.006955,0.011848,0.020388,0.023077,0.028897,0.039329,0.040006,0.051071,0.030060,0.035671,0.024931,0.038339,0.037708,0.058492,0.053593,0.037184,0.045630,0.043341,0.034029,0.031437,0.034031,0.025773,0.028039,0.030454,0.031458,0.031318,0.029135,0.028627,0.025452,0.021115,0.018088,0.014741,0.013689,0.012102,0.010087,0.009117,0.010501,0.012107,0.011147,0.008670,0.006054,0.004653,0.004909,0.005979,0.007571,0.008945,0.009279,0.009403,0.009990,0.010831,0.011229,0.011576,0.012198,0.011522,0.009582,0.007918,0.007133,0.006815,0.006874,0.006545,0.005823,0.005215,0.004793,0.004226,0.003549,0.002763,0.002034,0.001527,0.001275,0.001284,0.001501,0.001663,0.001513 | |||
giMute126 ftgen 0,0,4096,10,0.060196,0.079208,0.165018,0.403007,0.474143,0.259060,0.390988,0.369395,0.520597,0.147418,0.294315,0.719113,0.948583,0.911775,0.688364,0.284237,0.196457,0.197963,0.098875,0.075773,0.045829,0.020036,0.034330,0.015751,0.015028,0.009926,0.008781,0.011622,0.026268,0.030349,0.027636,0.033521,0.031042,0.039392,0.034047,0.037282,0.023269,0.035915,0.033496,0.040946,0.033303,0.030305,0.029753,0.029612,0.029870,0.024821,0.021197,0.017836,0.015201,0.014801,0.017255,0.016419,0.014400,0.014847,0.014196,0.013845,0.010243,0.007414,0.006884,0.005313,0.005125,0.006712,0.007001,0.005537,0.003835,0.002755,0.002847,0.003574,0.003940,0.004035,0.004370,0.004927,0.004830,0.004569,0.004559,0.004585,0.004513,0.003828,0.003072,0.002596,0.002377,0.002294,0.002087,0.001940,0.001859,0.001843,0.002114,0.002255,0.001844,0.001305,0.000970,0.000768,0.000670,0.000707,0.000807,0.000885,0.000924,0.000852,0.000694,0.000544 | |||
giMute127 ftgen 0,0,4096,10,0.052401,0.049320,0.080590,0.183766,0.164401,0.307439,0.388671,0.284459,0.318081,0.164443,0.441431,0.928201,0.876487,0.740904,0.324363,0.142732,0.081529,0.077495,0.028649,0.043648,0.038991,0.025075,0.013227,0.010195,0.011781,0.010501,0.016602,0.024255,0.023187,0.036495,0.057654,0.054268,0.048563,0.024903,0.054174,0.048040,0.071704,0.054365,0.049624,0.064806,0.092036,0.062098,0.048326,0.054051,0.039134,0.032416,0.036465,0.055694,0.042371,0.035750,0.021224,0.022257,0.011427,0.014694,0.009479,0.004552,0.013174,0.019261,0.013315,0.005818,0.001677,0.002772,0.003021,0.006297,0.007154,0.008171,0.010310,0.008506,0.007517,0.010904,0.006062,0.012403,0.007495,0.006084,0.005664,0.006058,0.004342,0.006256,0.008205,0.007899,0.006624,0.007878,0.003449,0.001680,0.000514,0.001804,0.002081,0.003443,0.004990,0.003472,0.003035,0.002319,0.001815,0.000843,0.001081,0.003090,0.002248,0.001877,0.002589,0.003743 | |||
giMute128 ftgen 0,0,4096,10,0.027923,0.100208,0.119497,0.305740,0.241671,0.283542,0.288061,0.232034,0.826888,0.407135,0.944943,0.754001,0.650071,0.360755,0.163788,0.199546,0.064667,0.047976,0.067193,0.033442,0.022636,0.018891,0.006473,0.006036,0.009904,0.016425,0.024814,0.044941,0.038557,0.069982,0.053960,0.007689,0.060655,0.019491,0.072831,0.052666,0.042308,0.055883,0.044001,0.027661,0.043229,0.023057,0.025173,0.028614,0.031240,0.027168,0.026598,0.023386,0.018674,0.009964,0.010171,0.008959,0.004421,0.009443,0.011811,0.008975,0.005444,0.002992,0.002577,0.004840,0.005217,0.007905,0.008254,0.008604,0.004473,0.009592,0.008601,0.005583,0.008098,0.005796,0.002345,0.007586,0.005015,0.004900,0.007488,0.005743,0.006825,0.002224,0.002742,0.001117,0.001857,0.001298,0.003169,0.002324,0.002382,0.001822,0.001779,0.001092,0.000752,0.001206,0.002075,0.000843,0.001972,0.001844,0.002893,0.002804,0.002542,0.001110,0.001376,0.000804 | |||
giMute129 ftgen 0,0,4096,10,0.014669,0.032320,0.102462,0.174664,0.169222,0.111331,0.339606,0.209754,0.217866,0.343088,0.891951,0.530957,0.472318,0.164643,0.165367,0.091601,0.090801,0.015419,0.039607,0.019025,0.012281,0.004714,0.002434,0.014861,0.038522,0.020090,0.049806,0.050949,0.061040,0.054492,0.035308,0.046103,0.018911,0.085037,0.066539,0.090037,0.115123,0.114020,0.059158,0.070988,0.070450,0.068910,0.054753,0.043435,0.030742,0.021866,0.024247,0.013293,0.017833,0.010515,0.011265,0.016382,0.023641,0.010420,0.007923,0.005015,0.009328,0.008929,0.010346,0.011125,0.009063,0.009311,0.010454,0.010758,0.009200,0.014939,0.006906,0.005195,0.007827,0.007531,0.008761,0.010132,0.008289,0.010958,0.004572,0.001934,0.001818,0.002642,0.002171,0.002199,0.002528,0.001704,0.001645,0.001110,0.000567,0.001256,0.000671,0.001415,0.003604,0.003233,0.002086,0.001933,0.001526,0.000662,0.001458,0.000497,0.000845,0.000680,0.001138,0.001279 | |||
giMute130 ftgen 0,0,4096,10,0.064908,0.079846,0.127850,0.445046,0.330968,0.420691,0.480533,0.374119,0.245280,0.729167,0.936260,0.749421,0.381456,0.247718,0.207617,0.116908,0.051373,0.019507,0.008564,0.025213,0.010576,0.007009,0.011265,0.017944,0.027208,0.040488,0.021178,0.046272,0.038151,0.021208,0.044463,0.023287,0.045981,0.030790,0.020921,0.015858,0.026172,0.019160,0.017080,0.011607,0.015955,0.006307,0.009311,0.006865,0.003784,0.003961,0.002271,0.002504,0.000904,0.002864,0.002378,0.001916,0.001531,0.000626,0.001045,0.001491,0.001672,0.000890,0.001666,0.001476,0.001501,0.000957,0.003007,0.001529,0.001037,0.001154,0.001031,0.000515,0.000881,0.000327,0.000467,0.000436,0.000280,0.000329,0.000454,0.000243,0.000168,0.000282,0.000948,0.000411,0.000184,0.000452,0.000360,0.000354,0.000193,0.000243,0.000591,0.000203,0.000418,0.000245,0.000193,0.000287,0.000162,0.000386,0.000147,0.000097,0.000291,0.000161,0.000222,0.000228 | |||
giMute131 ftgen 0,0,4096,10,0.068230,0.065611,0.217451,0.232412,0.188182,0.427625,0.292296,0.554990,0.340081,0.915514,0.522787,0.307999,0.162151,0.094669,0.056724,0.027329,0.011538,0.010489,0.008261,0.001997,0.007832,0.008040,0.029670,0.021346,0.029403,0.071206,0.042160,0.041297,0.059757,0.018923,0.105664,0.038842,0.027166,0.042666,0.031872,0.028802,0.030657,0.019773,0.024186,0.023554,0.016848,0.015145,0.013926,0.008132,0.010479,0.005103,0.002808,0.010621,0.007445,0.004301,0.001100,0.003068,0.003063,0.004833,0.003047,0.003019,0.003716,0.005204,0.002390,0.002979,0.001408,0.001568,0.001539,0.001833,0.002366,0.001838,0.000682,0.001960,0.000613,0.000686,0.000652,0.000399,0.000606,0.000602,0.000521,0.000455,0.000432,0.000091,0.000136,0.000332,0.000272,0.000302,0.000126,0.000375,0.000314,0.000203,0.000126,0.000237,0.000293,0.000291,0.000185,0.000182,0.000275,0.000263,0.000195,0.000151,0.000202,0.000294,0.000205,0.000198 | |||
giMute132 ftgen 0,0,4096,10,0.072458,0.092631,0.167684,0.302817,0.140977,0.255042,0.110714,0.344468,0.928686,0.667412,0.338258,0.200769,0.147649,0.065744,0.004582,0.023573,0.011837,0.008391,0.007660,0.014753,0.031615,0.027782,0.039431,0.047372,0.049448,0.013895,0.042049,0.032148,0.026316,0.026284,0.049745,0.043954,0.026083,0.037453,0.029582,0.022591,0.018017,0.013163,0.009816,0.004994,0.005845,0.002926,0.004507,0.007678,0.002757,0.002125,0.001498,0.002105,0.002073,0.003179,0.003552,0.003030,0.003107,0.003121,0.004471,0.001227,0.002877,0.002488,0.002740,0.003051,0.002796,0.002240,0.000296,0.000464,0.000414,0.001290,0.000687,0.001086,0.000537,0.000387,0.000130,0.000370,0.000092,0.000561,0.000559,0.000109,0.000094,0.000089,0.000290,0.000073,0.000183,0.000250,0.000318,0.000509,0.000515,0.000390,0.000503,0.000327,0.000338,0.000232,0.000327,0.000154,0.000173,0.000108,0.000092,0.000271,0.000089,0.000076,0.000105,0.000132 | |||
giMute133 ftgen 0,0,4096,10,0.171302,0.215302,0.554037,0.602813,0.500383,0.551353,0.792246,0.972277,0.915826,0.832314,0.393008,0.188469,0.087171,0.051938,0.057335,0.030089,0.018181,0.012795,0.030872,0.033984,0.097553,0.117375,0.088919,0.019750,0.074370,0.074970,0.077987,0.098699,0.118454,0.054334,0.051802,0.037932,0.045722,0.044228,0.016572,0.018704,0.013524,0.013398,0.003788,0.004323,0.010291,0.003069,0.001274,0.001330,0.002466,0.002824,0.003268,0.005612,0.003975,0.000819,0.002777,0.002460,0.002046,0.001584,0.002892,0.002346,0.003012,0.001881,0.000649,0.000801,0.000646,0.001523,0.001240,0.001310,0.000390,0.000248,0.000279,0.000518,0.000341,0.000512,0.000393,0.000190,0.000358,0.000126,0.000196,0.000125,0.000251,0.000327,0.000531,0.000833,0.000907,0.000336,0.000482,0.000237,0.000687,0.000266,0.000316,0.000368,0.000104,0.000129,0.000172,0.000171,0.000167,0.000055,0.000143,0.000116,0.000132,0.000198,0.000238,0.000318 | |||
giMute134 ftgen 0,0,4096,10,0.097133,0.173820,0.374605,0.474497,0.645937,0.376089,0.435327,0.976798,0.725285,0.297676,0.120366,0.069249,0.033502,0.014976,0.014214,0.011249,0.006081,0.003570,0.011892,0.014690,0.022764,0.024186,0.025001,0.044955,0.049727,0.048851,0.047898,0.053897,0.023052,0.038993,0.025427,0.027582,0.022350,0.021270,0.010750,0.009160,0.013099,0.002909,0.008796,0.006376,0.001857,0.001716,0.003061,0.001735,0.002918,0.004325,0.002877,0.003817,0.005184,0.003931,0.001995,0.004293,0.003739,0.003678,0.003158,0.002071,0.001133,0.000232,0.000323,0.001563,0.001268,0.000658,0.000426,0.000063,0.000421,0.000195,0.000767,0.000535,0.000446,0.000289,0.000184,0.000296,0.000288,0.000200,0.000535,0.000186,0.000733,0.000229,0.000412,0.000107,0.000166,0.000355,0.000312,0.000317,0.000354,0.000185,0.000132,0.000137,0.000206,0.000233,0.000262,0.000150,0.000123,0.000145,0.000145,0.000117,0.000140,0.000106,0.000135,0.000169 | |||
giMute135 ftgen 0,0,4096,10,0.179021,0.401691,0.729330,0.982922,0.746447,0.524380,0.900583,0.585038,0.953435,0.443166,0.289448,0.098763,0.031244,0.011392,0.020066,0.020371,0.036289,0.021837,0.044660,0.116353,0.070855,0.059093,0.066299,0.083923,0.069741,0.061417,0.033091,0.045547,0.029414,0.028975,0.021471,0.021629,0.010855,0.013960,0.004240,0.008225,0.009562,0.004312,0.001601,0.002687,0.001271,0.003054,0.004689,0.003158,0.006429,0.004058,0.005468,0.002640,0.001551,0.003253,0.003142,0.003027,0.001217,0.000340,0.000216,0.000471,0.000540,0.000381,0.000432,0.000182,0.000650,0.000176,0.000758,0.000323,0.000522,0.000156,0.000289,0.000185,0.000281,0.000179,0.000391,0.000461,0.000214,0.000356,0.000189,0.000425,0.000214,0.000172,0.000322,0.000195,0.000387,0.000323,0.000373,0.000170,0.000176,0.000048,0.000079,0.000049,0.000161,0.000129,0.000141,0.000083,0.000119,0.000204,0.000318,0.000410,0.000202,0.000283,0.000292,0.000127 | |||
giMute136 ftgen 0,0,4096,10,0.084007,0.199308,0.212901,0.389112,0.310014,0.209644,0.951984,0.633937,0.286005,0.146120,0.053652,0.047694,0.020100,0.016786,0.003816,0.018198,0.008332,0.020077,0.037293,0.016675,0.022299,0.027356,0.023496,0.049061,0.039132,0.026396,0.012922,0.017081,0.012583,0.010068,0.005525,0.002721,0.003104,0.004799,0.003308,0.002047,0.001239,0.002036,0.002197,0.002242,0.003547,0.004859,0.003272,0.001567,0.002063,0.002229,0.001760,0.001286,0.001961,0.000541,0.000366,0.000986,0.000730,0.000861,0.000630,0.000616,0.000358,0.001058,0.000464,0.000438,0.000450,0.000487,0.000193,0.000559,0.000479,0.000260,0.000259,0.000887,0.000529,0.000258,0.000611,0.000375,0.000388,0.000092,0.000430,0.000337,0.000138,0.000312,0.000579,0.000492,0.000207,0.000330,0.000350,0.000212,0.000159,0.000387,0.000350,0.000158,0.000191,0.000374,0.000113,0.000150,0.000260,0.000156,0.000117,0.000208,0.000235,0.000105,0.000074,0.000268 | |||
giMute137 ftgen 0,0,4096,10,0.121187,0.301409,0.437255,0.488546,0.532406,0.556320,0.940536,0.612558,0.171145,0.078278,0.033359,0.039980,0.019198,0.003684,0.014541,0.021902,0.025869,0.028022,0.020078,0.018008,0.063141,0.040559,0.061443,0.025176,0.045882,0.030795,0.027823,0.023490,0.015819,0.011054,0.004279,0.008778,0.007683,0.002850,0.002807,0.001837,0.004594,0.006832,0.003882,0.006682,0.004472,0.002359,0.002653,0.002120,0.002271,0.001366,0.001048,0.000977,0.001563,0.000795,0.000741,0.000197,0.000435,0.000663,0.000303,0.000697,0.000460,0.000621,0.000388,0.000298,0.000103,0.000484,0.000378,0.000376,0.000296,0.000134,0.000043,0.000150,0.000155,0.000176,0.000187,0.000055,0.000111,0.000091,0.000143,0.000129,0.000153,0.000171,0.000204,0.000159,0.000206,0.000139,0.000065,0.000078,0.000107,0.000102,0.000128,0.000113,0.000157,0.000150,0.000078,0.000128,0.000144,0.000084,0.000114,0.000188,0.000043,0.000106,0.000116,0.000128 | |||
giMute138 ftgen 0,0,4096,10,0.137239,0.608302,0.333203,0.546467,0.231739,0.766708,0.950744,0.327806,0.160412,0.060869,0.019878,0.003953,0.008113,0.006915,0.028018,0.027245,0.043331,0.020302,0.014454,0.025972,0.026882,0.018782,0.017822,0.013846,0.010287,0.009995,0.005808,0.004941,0.003243,0.000812,0.002013,0.001670,0.000819,0.000666,0.000772,0.000298,0.000436,0.000772,0.000741,0.000154,0.001321,0.000422,0.000226,0.000631,0.000439,0.000344,0.000337,0.000336,0.000616,0.000238,0.000312,0.000215,0.000181,0.000430,0.000292,0.000227,0.000331,0.000311,0.000246,0.000311,0.000279,0.000324,0.000208,0.000103,0.000266,0.000302,0.000310,0.000240,0.000310,0.000296,0.000228,0.000305,0.000203,0.000181,0.000235,0.000154,0.000238,0.000155,0.000185,0.000226,0.000170,0.000202,0.000202,0.000228,0.000150,0.000178,0.000239,0.000187,0.000194,0.000253,0.000070,0.000165,0.000223,0.000127,0.000156,0.000160,0.000180,0.000163,0.000129,0.000224 | |||
giMute139 ftgen 0,0,4096,10,0.061443,0.238708,0.356688,0.269787,0.339649,0.912187,0.776022,0.165931,0.073909,0.021161,0.016878,0.008990,0.003708,0.022300,0.041143,0.038233,0.004859,0.023579,0.053718,0.052003,0.042268,0.022601,0.022660,0.029648,0.019517,0.017414,0.011974,0.004870,0.011305,0.003101,0.000546,0.002006,0.003619,0.004048,0.005624,0.003647,0.002198,0.002634,0.003291,0.001943,0.000613,0.000545,0.000250,0.000451,0.000789,0.000299,0.000410,0.000212,0.000138,0.000424,0.000415,0.000404,0.000244,0.000269,0.000335,0.000329,0.000230,0.000373,0.000400,0.000370,0.000260,0.000376,0.000293,0.000187,0.000119,0.000256,0.000177,0.000244,0.000278,0.000293,0.000302,0.000158,0.000215,0.000196,0.000203,0.000167,0.000136,0.000170,0.000168,0.000137,0.000166,0.000168,0.000160,0.000177,0.000247,0.000183,0.000197,0.000135,0.000162,0.000164,0.000186,0.000121,0.000206,0.000166,0.000144,0.000145,0.000141,0.000122,0.000131,0.000148 | |||
giMute140 ftgen 0,0,4096,10,0.171458,0.486737,0.414556,0.287720,0.507039,0.974434,0.387302,0.180263,0.044683,0.029233,0.014770,0.003589,0.009392,0.033786,0.054370,0.010033,0.024497,0.035533,0.046495,0.020949,0.024322,0.023346,0.018462,0.011212,0.009184,0.003515,0.005537,0.002905,0.001147,0.001777,0.002912,0.002534,0.003007,0.002041,0.002109,0.001352,0.001160,0.001111,0.000145,0.000433,0.000205,0.000056,0.000347,0.000268,0.000294,0.000170,0.000469,0.000118,0.000167,0.000252,0.000207,0.000132,0.000371,0.000145,0.000293,0.000072,0.000271,0.000135,0.000201,0.000141,0.000204,0.000171,0.000237,0.000126,0.000167,0.000093,0.000231,0.000074,0.000160,0.000043,0.000250,0.000055,0.000217,0.000066,0.000199,0.000066,0.000231,0.000104,0.000233,0.000061,0.000246,0.000078,0.000219,0.000099,0.000254,0.000073,0.000200,0.000053,0.000175,0.000057,0.000197,0.000066,0.000126,0.000068,0.000163,0.000069,0.000139,0.000114,0.000270,0.000106 | |||
giMute141 ftgen 0,0,4096,10,0.096700,0.501938,0.304973,0.388545,0.605784,0.973491,0.310298,0.166062,0.031823,0.020041,0.008197,0.018099,0.031406,0.032118,0.028621,0.035283,0.026152,0.031724,0.045821,0.032749,0.023933,0.009329,0.006590,0.003520,0.002035,0.005414,0.003178,0.001420,0.002462,0.001216,0.000800,0.002760,0.002395,0.001093,0.001088,0.001647,0.001527,0.000979,0.001163,0.001119,0.001071,0.001064,0.001131,0.001297,0.001070,0.001080,0.000990,0.000967,0.000985,0.001105,0.000916,0.000726,0.000869,0.000896,0.000931,0.000845,0.000797,0.000762,0.000805,0.000802,0.000683,0.000685,0.000708,0.000714,0.000719,0.000727,0.000634,0.000711,0.000686,0.000637,0.000694,0.000701,0.000592,0.000664,0.000534,0.000558,0.000681,0.000688,0.000614,0.000609,0.000647,0.000479,0.000513,0.000489,0.000396,0.000420,0.000504,0.000454,0.000492,0.000467,0.000503,0.000515,0.000470,0.000401,0.000502,0.000592,0.000567,0.000411,0.000453,0.000449 | |||
giMute142 ftgen 0,0,4096,10,0.079836,0.330689,0.372144,0.493873,0.925375,0.694151,0.118777,0.028983,0.015396,0.009622,0.001526,0.002627,0.008783,0.011024,0.010140,0.015272,0.009621,0.006265,0.004497,0.003760,0.002472,0.001108,0.000363,0.000521,0.000643,0.000834,0.000511,0.000843,0.000434,0.000735,0.001056,0.000991,0.001287,0.000997,0.000751,0.000669,0.000309,0.000891,0.000656,0.000613,0.000705,0.000663,0.000676,0.000561,0.000583,0.000611,0.000611,0.000702,0.000495,0.000478,0.000451,0.000393,0.000461,0.000506,0.000433,0.000473,0.000465,0.000454,0.000425,0.000361,0.000423,0.000458,0.000385,0.000422,0.000473,0.000380,0.000405,0.000421,0.000338,0.000379,0.000351,0.000358,0.000335,0.000353,0.000378,0.000372,0.000313,0.000331,0.000343,0.000315,0.000320,0.000280,0.000296,0.000226,0.000364,0.000296,0.000272,0.000282,0.000254,0.000289,0.000277,0.000204,0.000220,0.000269,0.000299,0.000321,0.000450,0.000259,0.000266,0.000435 | |||
giMute143 ftgen 0,0,4096,10,0.093603,0.658042,0.988507,0.565236,0.957972,0.360885,0.102049,0.051660,0.027922,0.005483,0.010335,0.012495,0.003673,0.003952,0.012964,0.008898,0.005397,0.006281,0.001252,0.006122,0.003828,0.000827,0.003226,0.002089,0.001925,0.000243,0.002872,0.002421,0.003325,0.002270,0.001755,0.001168,0.001149,0.000770,0.000928,0.000937,0.000720,0.000406,0.000688,0.000732,0.000790,0.000819,0.000398,0.000728,0.000703,0.001198,0.000151,0.000857,0.000600,0.000571,0.000660,0.000529,0.000450,0.000520,0.000520,0.000470,0.000463,0.000462,0.000454,0.000347,0.000590,0.000427,0.000210,0.000402,0.000401,0.000381,0.000525,0.000294,0.000410,0.000335,0.000296,0.000348,0.000580,0.000399,0.000186,0.000198,0.000288,0.000442,0.000411,0.000234,0.000356,0.000386,0.000271,0.000338,0.000271,0.000303,0.000385,0.000352,0.000226,0.000193,0.000103,0.000388,0.000349,0.000222,0.000208,0.000266,0.000232,0.000314,0.000425,0.000268 | |||
giMute144 ftgen 0,0,4096,10,0.127739,0.412859,0.669901,0.617303,0.972749,0.358440,0.065748,0.045528,0.010129,0.008737,0.005631,0.028396,0.004839,0.008872,0.006019,0.011096,0.006903,0.003885,0.004722,0.003204,0.000936,0.002573,0.001532,0.001369,0.001172,0.001160,0.002432,0.000544,0.000609,0.001867,0.000966,0.001039,0.001031,0.000884,0.000753,0.000848,0.000659,0.000749,0.000579,0.000769,0.000665,0.000754,0.000781,0.000490,0.000653,0.000626,0.000524,0.000572,0.000539,0.000566,0.000514,0.000414,0.000441,0.000453,0.000417,0.000478,0.000444,0.000495,0.000551,0.000346,0.000475,0.000442,0.000477,0.000269,0.000501,0.000483,0.000442,0.000267,0.000338,0.000368,0.000470,0.000382,0.000335,0.000358,0.000341,0.000354,0.000345,0.000310,0.000359,0.000228,0.000299,0.000348,0.000336,0.000319,0.000275,0.000294,0.000244,0.000271,0.000232,0.000358,0.000237,0.000269,0.000247,0.000360,0.000301,0.000208,0.000223,0.000248,0.000270,0.000258 | |||
giMute145 ftgen 0,0,4096,10,0.172584,0.253006,0.499844,0.963093,0.599448,0.063091,0.027923,0.009556,0.005430,0.007267,0.030576,0.010839,0.007632,0.008691,0.007373,0.004773,0.004338,0.006857,0.003189,0.000319,0.002787,0.001103,0.001002,0.001076,0.001129,0.001241,0.000702,0.000657,0.000919,0.000769,0.000959,0.000576,0.000715,0.000619,0.000732,0.000611,0.000499,0.000600,0.000491,0.000700,0.000580,0.000348,0.000432,0.000611,0.000489,0.000494,0.000446,0.000425,0.000537,0.000395,0.000420,0.000348,0.000423,0.000452,0.000417,0.000289,0.000444,0.000331,0.000335,0.000289,0.000366,0.000340,0.000289,0.000333,0.000336,0.000346,0.000297,0.000305,0.000318,0.000278,0.000199,0.000327,0.000258,0.000240,0.000298,0.000311,0.000247,0.000309,0.000274,0.000297,0.000343,0.000148,0.000267,0.000204,0.000326,0.000251,0.000194,0.000230,0.000250,0.000186,0.000238,0.000251,0.000196,0.000238,0.000292,0.000233,0.000162,0.000197,0.000198,0.000193 | |||
giMute146 ftgen 0,0,4096,10,0.169930,0.357871,0.478870,0.971148,0.103667,0.027577,0.012460,0.004728,0.004455,0.018143,0.018903,0.009745,0.013588,0.009707,0.007034,0.005601,0.003105,0.000981,0.000341,0.001493,0.000631,0.000446,0.000832,0.000522,0.000996,0.001277,0.000334,0.000333,0.000435,0.000326,0.000323,0.000353,0.000202,0.000214,0.000190,0.000284,0.000171,0.000339,0.000329,0.000183,0.000124,0.000342,0.000303,0.000128,0.000091,0.000224,0.000255,0.000167,0.000148,0.000089,0.000154,0.000248,0.000151,0.000141,0.000149,0.000108,0.000284,0.000121,0.000121,0.000193,0.000201,0.000123,0.000226,0.000223,0.000154,0.000094,0.000194,0.000058,0.000146,0.000232,0.000097,0.000224,0.000132,0.000062,0.000163,0.000214,0.000246,0.000418,0.000139,0.000221,0.000100,0.000095,0.000131,0.000152,0.000158,0.000051,0.000077,0.000080,0.000061,0.000131,0.000109,0.000055,0.000120,0.000091,0.000080,0.000081,0.000120,0.000053,0.000045,0.000123 | |||
giMute147 ftgen 0,0,4096,10,0.175950,0.306151,0.921267,0.803899,0.232506,0.029817,0.015312,0.002411,0.010177,0.008768,0.003962,0.004998,0.003485,0.001495,0.002390,0.001727,0.000838,0.000237,0.000572,0.000579,0.000740,0.001153,0.000286,0.000378,0.000226,0.000269,0.000314,0.000265,0.000200,0.000117,0.000250,0.000150,0.000183,0.000079,0.000168,0.000177,0.000049,0.000188,0.000111,0.000136,0.000108,0.000088,0.000122,0.000076,0.000110,0.000119,0.000091,0.000137,0.000123,0.000074,0.000144,0.000146,0.000077,0.000035,0.000056,0.000085,0.000020,0.000095,0.000092,0.000051,0.000122,0.000063,0.000147,0.000073,0.000076,0.000045,0.000098,0.000114,0.000063,0.000075,0.000037,0.000125,0.000019,0.000072,0.000077,0.000087,0.000132,0.000061,0.000112,0.000071,0.000050,0.000051,0.000054,0.000046,0.000107,0.000026,0.000027,0.000021,0.000035,0.000042,0.000030,0.000041,0.000038,0.000047,0.000015,0.000021,0.000032,0.000120,0.000147,0.000238 | |||
giMute148 ftgen 0,0,4096,10,0.546831,0.588315,0.974745,0.966438,0.134855,0.030603,0.009346,0.000932,0.030580,0.012583,0.020113,0.009766,0.016236,0.007109,0.004226,0.002316,0.001376,0.000358,0.001380,0.001135,0.000319,0.000940,0.000401,0.000703,0.000385,0.000515,0.000292,0.000252,0.000145,0.000137,0.000403,0.000278,0.000292,0.000275,0.000222,0.000110,0.000160,0.000085,0.000217,0.000270,0.000172,0.000158,0.000177,0.000095,0.000182,0.000067,0.000232,0.000159,0.000178,0.000150,0.000206,0.000086,0.000273,0.000112,0.000141,0.000195,0.000084,0.000079,0.000246,0.000201,0.000063,0.000129,0.000125,0.000117,0.000158,0.000162,0.000192,0.000121,0.000175,0.000267,0.000096,0.000179,0.000039,0.000074,0.000268,0.000160,0.000033,0.000069,0.000065,0.000055,0.000088,0.000054,0.000142,0.000087,0.000045,0.000095,0.000026,0.000039,0.000075,0.000073,0.000067,0.000054,0.000068,0.000091,0.000101,0.000092,0.000171,0.000084,0.000049,0.000055 | |||
giMute149 ftgen 0,0,4096,10,0.294629,0.975075,0.694387,0.796446,0.188314,0.013147,0.006022,0.018607,0.064160,0.026936,0.065686,0.065969,0.031796,0.020120,0.015238,0.003443,0.002738,0.001360,0.003362,0.001182,0.001135,0.002047,0.001013,0.000558,0.000429,0.000717,0.000504,0.000555,0.000624,0.000479,0.000343,0.000421,0.000606,0.000462,0.000385,0.000445,0.000230,0.000176,0.000301,0.000222,0.000323,0.000195,0.000306,0.000246,0.000307,0.000237,0.000215,0.000210,0.000380,0.000241,0.000377,0.000152,0.000491,0.000197,0.000367,0.000186,0.000204,0.000108,0.000304,0.000260,0.000093,0.000231,0.000163,0.000112,0.000185,0.000239,0.000226,0.000179,0.000200,0.000203,0.000175,0.000088,0.000156,0.000218,0.000201,0.000222,0.000100,0.000212,0.000151,0.000114,0.000168,0.000167,0.000170,0.000170,0.000116,0.000205,0.000116,0.000133,0.000139,0.000176,0.000154,0.000145,0.000119,0.000095,0.000085,0.000125,0.000145,0.000106,0.000145,0.000141 | |||
giMute150 ftgen 0,0,4096,10,0.594912,0.608509,0.961469,0.229985,0.033626,0.009789,0.002734,0.011904,0.013878,0.018699,0.018956,0.006098,0.006134,0.002889,0.000518,0.000310,0.000591,0.000264,0.000257,0.000698,0.000478,0.000286,0.000276,0.000212,0.000349,0.000257,0.000272,0.000224,0.000177,0.000174,0.000082,0.000176,0.000161,0.000172,0.000230,0.000066,0.000165,0.000161,0.000152,0.000109,0.000094,0.000130,0.000185,0.000186,0.000258,0.000200,0.000154,0.000204,0.000184,0.000157,0.000047,0.000131,0.000123,0.000097,0.000062,0.000144,0.000118,0.000149,0.000134,0.000157,0.000198,0.000063,0.000156,0.000144,0.000094,0.000105,0.000096,0.000093,0.000113,0.000081,0.000076,0.000079,0.000049,0.000061,0.000040,0.000104,0.000079,0.000022,0.000068,0.000078,0.000072,0.000063,0.000085,0.000086,0.000053,0.000080,0.000082,0.000054,0.000046,0.000081,0.000075,0.000056,0.000061,0.000025,0.000072,0.000042,0.000050,0.000054,0.000053,0.000068 | |||
giMute151 ftgen 0,0,4096,10,0.206347,0.510370,0.950258,0.127507,0.010206,0.002549,0.001810,0.012483,0.004635,0.004683,0.005187,0.003165,0.001760,0.000999,0.000554,0.000268,0.000624,0.000195,0.000027,0.000147,0.000141,0.000163,0.000117,0.000060,0.000105,0.000099,0.000067,0.000093,0.000160,0.000103,0.000140,0.000060,0.000090,0.000115,0.000051,0.000073,0.000045,0.000055,0.000143,0.000072,0.000114,0.000130,0.000048,0.000106,0.000081,0.000052,0.000096,0.000074,0.000050,0.000088,0.000108,0.000167,0.000065,0.000093,0.000168,0.000053,0.000085,0.000083,0.000061,0.000128,0.000058,0.000064,0.000040,0.000027,0.000100,0.000081,0.000054,0.000030,0.000036,0.000081,0.000048,0.000047,0.000067,0.000034,0.000037,0.000030,0.000021,0.000028,0.000043,0.000106,0.000063,0.000019,0.000039,0.000057,0.000021,0.000037,0.000026,0.000041,0.000039,0.000032,0.000024,0.000048,0.000021,0.000064,0.000037,0.000065,0.000049,0.000031,0.000048,0.000014 | |||
giMute152 ftgen 0,0,4096,10,0.718310,0.828992,0.971094,0.089148,0.007432,0.001882,0.006326,0.016275,0.013664,0.005083,0.004192,0.002987,0.000575,0.000244,0.000598,0.000195,0.000566,0.000394,0.000580,0.000162,0.000255,0.000166,0.000116,0.000132,0.000146,0.000108,0.000133,0.000237,0.000251,0.000229,0.000158,0.000127,0.000139,0.000150,0.000119,0.000043,0.000076,0.000198,0.000147,0.000151,0.000075,0.000073,0.000078,0.000098,0.000125,0.000095,0.000098,0.000053,0.000180,0.000068,0.000097,0.000168,0.000085,0.000055,0.000094,0.000084,0.000102,0.000047,0.000079,0.000083,0.000046,0.000050,0.000047,0.000066,0.000081,0.000049,0.000040,0.000040,0.000068,0.000075,0.000057,0.000054,0.000024,0.000106,0.000054,0.000084,0.000044,0.000058,0.000034,0.000045,0.000058,0.000029,0.000068,0.000046,0.000029,0.000029,0.000066,0.000045,0.000077,0.000038,0.000027,0.000035,0.000043,0.000036,0.000049,0.000024,0.000024,0.000045,0.000046,0.000034 | |||
giMute153 ftgen 0,0,4096,10,0.551061,0.501444,0.953401,0.068491,0.008520,0.012056,0.020903,0.021636,0.008585,0.007399,0.006298,0.001414,0.000788,0.000891,0.000358,0.000686,0.001110,0.000613,0.000691,0.000460,0.000664,0.000614,0.000565,0.000426,0.000472,0.000397,0.000391,0.000456,0.000378,0.000437,0.000434,0.000310,0.000368,0.000415,0.000400,0.000343,0.000353,0.000349,0.000357,0.000326,0.000313,0.000231,0.000257,0.000212,0.000281,0.000273,0.000286,0.000207,0.000174,0.000326,0.000097,0.000332,0.000115,0.000149,0.000211,0.000305,0.000186,0.000198,0.000220,0.000141,0.000131,0.000182,0.000188,0.000186,0.000182,0.000117,0.000163,0.000173,0.000185,0.000121,0.000186,0.000073,0.000203,0.000192,0.000150,0.000147,0.000131,0.000138,0.000145,0.000135,0.000111,0.000135,0.000109,0.000125,0.000126,0.000121,0.000105,0.000083,0.000102,0.000109,0.000069,0.000107,0.000148,0.000139,0.000126,0.000096,0.000101,0.000123,0.000104,0.000104 | |||
giMute154 ftgen 0,0,4096,10,0.965465,0.238341,0.801452,0.050222,0.006640,0.011475,0.012533,0.012724,0.004704,0.006848,0.004228,0.001130,0.001409,0.001463,0.000398,0.000800,0.000513,0.001091,0.001100,0.000393,0.000445,0.000310,0.000446,0.000589,0.000358,0.000505,0.000369,0.000525,0.000346,0.000322,0.000437,0.000435,0.000262,0.000286,0.000307,0.000308,0.000358,0.000350,0.000347,0.000237,0.000076,0.000385,0.000217,0.000215,0.000278,0.000200,0.000335,0.000203,0.000329,0.000194,0.000066,0.000171,0.000388,0.000178,0.000305,0.000205,0.000231,0.000150,0.000228,0.000249,0.000070,0.000179,0.000201,0.000134,0.000138,0.000151,0.000193,0.000156,0.000150,0.000137,0.000132,0.000132,0.000128,0.000118,0.000138,0.000126,0.000141,0.000133,0.000148,0.000184,0.000137,0.000131,0.000138,0.000107,0.000100,0.000116,0.000121,0.000092,0.000099,0.000106,0.000080,0.000101,0.000102,0.000073,0.000094,0.000104,0.000107,0.000106,0.000093,0.000085 | |||
giMute155 ftgen 0,0,4096,10,0.938142,0.970313,0.508740,0.021568,0.001864,0.002894,0.002724,0.002263,0.003861,0.001793,0.000443,0.001267,0.000409,0.000899,0.000541,0.000180,0.000417,0.000464,0.000377,0.000359,0.000247,0.000485,0.000254,0.000339,0.000219,0.000319,0.000168,0.000254,0.000251,0.000160,0.000021,0.000183,0.000145,0.000251,0.000161,0.000219,0.000034,0.000174,0.000112,0.000219,0.000100,0.000130,0.000289,0.000226,0.000368,0.000095,0.000094,0.000122,0.000072,0.000121,0.000126,0.000143,0.000135,0.000153,0.000050,0.000099,0.000080,0.000071,0.000089,0.000079,0.000117,0.000090,0.000082,0.000068,0.000126,0.000073,0.000077,0.000094,0.000076,0.000063,0.000056,0.000070,0.000076,0.000063,0.000036,0.000059,0.000040,0.000039,0.000031,0.000048,0.000048,0.000066,0.000072,0.000047,0.000057,0.000058,0.000066,0.000033,0.000044,0.000035,0.000051,0.000038,0.000039,0.000047,0.000046,0.000052,0.000050,0.000033,0.000052,0.000039 | |||
giMute156 ftgen 0,0,4096,10,0.625565,0.965980,0.202403,0.024063,0.002481,0.005337,0.005024,0.008205,0.003554,0.001210,0.000983,0.001570,0.000901,0.000291,0.000664,0.000883,0.000489,0.000671,0.000602,0.000605,0.000552,0.000393,0.000580,0.000544,0.000508,0.000536,0.000523,0.000420,0.000400,0.000436,0.000414,0.000508,0.000302,0.000362,0.000336,0.000489,0.000355,0.000362,0.000320,0.000350,0.000246,0.000251,0.000326,0.000214,0.000175,0.000260,0.000273,0.000224,0.000202,0.000232,0.000185,0.000237,0.000245,0.000169,0.000199,0.000160,0.000153,0.000211,0.000161,0.000157,0.000165,0.000177,0.000207,0.000214,0.000158,0.000167,0.000146,0.000138,0.000161,0.000162,0.000163,0.000138,0.000160,0.000141,0.000113,0.000139,0.000144,0.000099,0.000091,0.000160,0.000120,0.000102,0.000131,0.000108,0.000113,0.000114,0.000113,0.000111,0.000105,0.000113,0.000123,0.000107,0.000110,0.000112,0.000110,0.000106,0.000122,0.000112,0.000105,0.000101 | |||
giMute157 ftgen 0,0,4096,10,0.314475,0.959696,0.048444,0.004582,0.006574,0.012611,0.005426,0.002115,0.000604,0.000404,0.000356,0.000685,0.001096,0.000409,0.000072,0.000321,0.000329,0.000236,0.000403,0.000240,0.000158,0.000233,0.000268,0.000168,0.000154,0.000209,0.000165,0.000121,0.000111,0.000136,0.000085,0.000217,0.000086,0.000083,0.000149,0.000151,0.000115,0.000148,0.000123,0.000087,0.000095,0.000113,0.000089,0.000044,0.000137,0.000116,0.000130,0.000027,0.000101,0.000085,0.000121,0.000079,0.000106,0.000042,0.000011,0.000071,0.000080,0.000029,0.000039,0.000081,0.000041,0.000060,0.000040,0.000068,0.000066,0.000052,0.000050,0.000031,0.000056,0.000054,0.000039,0.000051,0.000037,0.000059,0.000054,0.000037,0.000046,0.000043,0.000038,0.000041,0.000031,0.000049,0.000033,0.000040,0.000038,0.000035,0.000050,0.000040,0.000043,0.000039,0.000051,0.000035,0.000045,0.000020,0.000038,0.000032,0.000026,0.000030,0.000031,0.000030 | |||
giMute158 ftgen 0,0,4096,10,0.428817,0.965152,0.013016,0.001790,0.004347,0.004997,0.005604,0.002582,0.000836,0.000569,0.000599,0.000465,0.000517,0.000563,0.000538,0.000350,0.000281,0.000361,0.000460,0.000274,0.000209,0.000199,0.000249,0.000304,0.000340,0.000213,0.000240,0.000152,0.000238,0.000157,0.000200,0.000196,0.000164,0.000118,0.000156,0.000141,0.000124,0.000105,0.000108,0.000150,0.000140,0.000124,0.000109,0.000104,0.000111,0.000096,0.000120,0.000092,0.000094,0.000103,0.000077,0.000064,0.000066,0.000111,0.000094,0.000093,0.000082,0.000078,0.000073,0.000096,0.000082,0.000079,0.000075,0.000072,0.000085,0.000068,0.000072,0.000053,0.000069,0.000054,0.000057,0.000058,0.000058,0.000065,0.000055,0.000063,0.000066,0.000063,0.000063,0.000058,0.000053,0.000052,0.000046,0.000046,0.000050,0.000049,0.000047,0.000045,0.000043,0.000050,0.000047,0.000052,0.000050,0.000049,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapMute1 ftgen 0,0,128,-27, 0,0, 22,0, 23,1, 24,2, 25,3, 26,4, 27,5, 28,6, 29,7, 30,8, 31,9, 32,10, 33,11, 34,12, 35,13, 36,14, 37,15, 38,16, 39,17, 40,18, 41,19, 42,20, 43,21, 44,22, 45,23, 46,24, 47,25, 48,26, 49,27, 50,28, 51,29, 52,30, 53,31, 54,32, 55,33, 56,34, 57,35, 58,36, 127,36 | |||
gitabs4morfMute1 ftgen 0,0,64,-2, giMute122,giMute123,giMute124,giMute125,giMute126,giMute127,giMute128,giMute129,giMute130,giMute131,giMute132,giMute133,giMute134,giMute135,giMute136,giMute137,giMute138,giMute139,giMute140,giMute141,giMute142,giMute143,giMute144,giMute145,giMute146,giMute147,giMute148,giMute149,giMute150,giMute151,giMute152,giMute153,giMute154,giMute155,giMute156,giMute157,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158,giMute158 | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
; BASS TROMBONE (OPEN) | |||
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
giUnmuted22 ftgen 0,0,4096,10,0.209301,0.150536,0.083014,0.207956,0.321939,0.399510,0.327987,0.421479,0.539528,0.533091,0.721756,0.467196,0.947246,0.770314,0.912692,0.965128,0.962101,1.093136,0.708144,0.664071,0.619031,0.643414,0.371645,0.533120,0.477851,0.481481,0.451545,0.370726,0.360377,0.459325,0.288110,0.235271,0.205264,0.198828,0.206768,0.219183,0.205657,0.164230,0.168498,0.156362,0.109323,0.096989,0.105552,0.095551,0.069663,0.068933,0.067166,0.055414,0.072408,0.055978,0.033534,0.049491,0.054904,0.029956,0.018835,0.027602,0.035912,0.015979,0.021303,0.011033,0.024278,0.030411,0.020777,0.027002,0.020715,0.010245,0.010418,0.019612,0.017841,0.017176,0.012772,0.008424,0.009403,0.002947,0.006355,0.006158,0.015418,0.015477,0.011268,0.008620,0.008935,0.006072,0.005458,0.006560,0.006368,0.007559,0.004779,0.008830,0.007041,0.006334,0.002719,0.003830,0.006208,0.008425,0.006728,0.006139,0.002789,0.007133,0.005592,0.005069 | |||
giUnmuted23 ftgen 0,0,4096,10,0.129222,0.088552,0.116290,0.170792,0.176577,0.331680,0.281710,0.247957,0.379599,0.404781,0.432966,0.873924,0.774290,0.657216,0.986727,0.929760,0.832314,0.808580,0.585809,0.684034,0.674170,0.330450,0.888687,0.598954,0.599019,0.566506,0.632303,0.502653,0.431058,0.214554,0.351572,0.335693,0.277218,0.341691,0.264970,0.296760,0.293654,0.224055,0.213823,0.138880,0.188425,0.156849,0.137821,0.185206,0.172163,0.184744,0.153256,0.116401,0.138614,0.155349,0.095606,0.075646,0.091523,0.087233,0.081355,0.068920,0.094557,0.066191,0.069861,0.065915,0.072343,0.065165,0.065968,0.041851,0.063905,0.036430,0.041801,0.035516,0.038545,0.044169,0.038034,0.042219,0.032505,0.038202,0.034556,0.037548,0.036070,0.036673,0.037173,0.024089,0.029610,0.028726,0.018206,0.028118,0.023534,0.023563,0.025997,0.024870,0.021673,0.024752,0.020165,0.019645,0.016172,0.017942,0.018241,0.016560,0.014997,0.013671,0.015848,0.011383 | |||
giUnmuted24 ftgen 0,0,4096,10,0.014100,0.027948,0.037471,0.118589,0.278733,0.166216,0.237592,0.204888,0.303225,0.239198,0.590081,0.558590,0.488846,0.934503,0.791766,0.769104,0.451529,0.465344,0.363957,0.375648,0.362512,0.527955,0.584553,0.562238,0.409571,0.447397,0.547498,0.349795,0.363085,0.318352,0.305372,0.298282,0.236937,0.259059,0.251424,0.235425,0.253896,0.305811,0.227171,0.177695,0.218484,0.204418,0.227246,0.182265,0.183710,0.198997,0.141695,0.093968,0.119182,0.128975,0.118829,0.086353,0.143691,0.082113,0.096768,0.076006,0.108551,0.073045,0.080734,0.075566,0.076978,0.047507,0.057911,0.055554,0.070030,0.060662,0.054519,0.055938,0.064493,0.032839,0.043612,0.052568,0.034145,0.054702,0.041937,0.045108,0.037413,0.033601,0.044130,0.036376,0.036994,0.032488,0.031456,0.030170,0.029857,0.031038,0.027679,0.029891,0.027195,0.023506,0.027610,0.023146,0.022810,0.019058,0.018170,0.018749,0.017019,0.015480,0.016379,0.015893 | |||
giUnmuted25 ftgen 0,0,4096,10,0.075402,0.101145,0.176728,0.270616,0.291285,0.324780,0.333295,0.233831,0.290677,0.540830,0.767506,0.512758,0.980849,0.771417,0.804053,0.408122,0.631555,0.670085,0.408376,0.681153,0.911500,0.859956,0.697578,0.595419,0.593307,0.469251,0.543682,0.529757,0.367768,0.498910,0.305667,0.300578,0.386836,0.363336,0.347656,0.332606,0.322633,0.253819,0.316454,0.284584,0.227632,0.212815,0.324061,0.212387,0.161264,0.199347,0.187103,0.169679,0.152185,0.206879,0.129213,0.127022,0.158412,0.109282,0.134290,0.097383,0.119959,0.099454,0.111739,0.076911,0.100854,0.086224,0.089536,0.075617,0.075879,0.080690,0.071350,0.079834,0.089408,0.079954,0.081367,0.068297,0.067636,0.067458,0.048890,0.064138,0.053887,0.056479,0.047270,0.039648,0.049324,0.050416,0.048009,0.042951,0.034023,0.037808,0.026799,0.042091,0.023668,0.027252,0.027430,0.027822,0.030900,0.025171,0.030639,0.031093,0.018787,0.024957,0.020116,0.016682 | |||
giUnmuted26 ftgen 0,0,4096,10,0.043072,0.066480,0.103784,0.299131,0.266755,0.210417,0.254095,0.299260,0.120587,0.627381,0.502409,0.682945,0.896451,0.718962,0.798438,0.342935,0.438196,0.391451,0.571924,0.500613,0.522119,0.554206,0.351133,0.573747,0.415485,0.314183,0.377587,0.407768,0.269407,0.243405,0.358414,0.278435,0.297179,0.205957,0.278884,0.139884,0.230059,0.203655,0.273754,0.208405,0.268930,0.220588,0.093617,0.135109,0.140624,0.125541,0.127288,0.075447,0.145203,0.086283,0.144206,0.092668,0.097130,0.101259,0.096756,0.087998,0.053647,0.093505,0.075780,0.063445,0.057768,0.067925,0.062568,0.059886,0.049874,0.061576,0.047362,0.059277,0.045356,0.045205,0.049725,0.059766,0.051216,0.043048,0.047544,0.034671,0.055494,0.029430,0.038554,0.039949,0.030711,0.033481,0.031643,0.028951,0.022707,0.022752,0.019352,0.028349,0.020961,0.022731,0.022740,0.021957,0.021687,0.023511,0.015741,0.017651,0.017310,0.015487,0.015835,0.014889 | |||
giUnmuted27 ftgen 0,0,4096,10,0.116392,0.064448,0.127432,0.239485,0.257590,0.362741,0.449254,0.199901,0.348867,0.637406,0.429112,0.918400,0.936649,0.907354,0.601632,0.359938,0.492393,0.465346,0.501258,0.682788,0.539385,0.377763,0.493182,0.284353,0.308310,0.236111,0.324894,0.290903,0.171987,0.259098,0.209363,0.188311,0.165040,0.129121,0.179891,0.142395,0.192837,0.155400,0.140506,0.154670,0.085903,0.084914,0.123353,0.033350,0.085811,0.066361,0.064805,0.053334,0.059168,0.051871,0.024556,0.050781,0.036654,0.034625,0.037417,0.026993,0.036074,0.041271,0.034852,0.030858,0.035521,0.039943,0.029248,0.023157,0.034015,0.022517,0.032273,0.025478,0.021464,0.021306,0.020706,0.015205,0.017217,0.016590,0.014839,0.015475,0.014872,0.012173,0.018427,0.015918,0.010766,0.011403,0.007469,0.006837,0.010460,0.009821,0.011490,0.012841,0.009228,0.009485,0.005268,0.008016,0.007500,0.007632,0.009359,0.005060,0.006834,0.006729,0.005832,0.006610 | |||
giUnmuted28 ftgen 0,0,4096,10,0.076757,0.165970,0.231682,0.474308,0.397207,0.459106,0.300853,0.244548,0.666795,0.602133,0.902710,0.655767,0.483398,0.313870,0.349970,0.212690,0.704653,0.764853,0.648917,0.660316,0.500843,0.406945,0.437095,0.364433,0.332150,0.247819,0.335990,0.413334,0.272378,0.303040,0.347189,0.202684,0.273591,0.358844,0.326756,0.187244,0.245830,0.136904,0.149347,0.181123,0.074118,0.123133,0.099890,0.059919,0.124875,0.090488,0.085029,0.115332,0.036687,0.106389,0.065025,0.070006,0.054270,0.053720,0.068047,0.055966,0.079658,0.070141,0.046135,0.065892,0.044587,0.048301,0.044148,0.045919,0.038547,0.040422,0.052374,0.032757,0.026433,0.030900,0.031810,0.034349,0.013986,0.030399,0.015539,0.018593,0.017769,0.024225,0.019160,0.022166,0.018451,0.016544,0.010230,0.012227,0.012961,0.015889,0.015651,0.009872,0.014459,0.011942,0.015592,0.014711,0.013394,0.010871,0.008229,0.007572,0.008106,0.008828,0.011451,0.009952 | |||
giUnmuted30 ftgen 0,0,4096,10,0.102601,0.100887,0.167098,0.516781,0.330986,0.422868,0.412850,0.397849,0.628756,0.686835,0.929709,0.845577,0.935266,0.508059,0.792158,0.281350,0.378308,0.568489,0.346813,0.566233,0.413541,0.405762,0.359363,0.216505,0.366221,0.301854,0.216945,0.249969,0.168763,0.194386,0.278248,0.046419,0.257812,0.124464,0.096054,0.116201,0.059755,0.096572,0.074147,0.047405,0.054049,0.073919,0.023499,0.080643,0.079127,0.031933,0.076588,0.051990,0.032645,0.031250,0.046055,0.022654,0.038293,0.031067,0.045355,0.035515,0.043591,0.024758,0.020123,0.028097,0.025231,0.014737,0.015258,0.020891,0.010029,0.015487,0.004561,0.009797,0.007038,0.006923,0.012160,0.005577,0.012809,0.007007,0.007626,0.004440,0.008034,0.008475,0.006052,0.009027,0.006419,0.007999,0.005562,0.004974,0.008232,0.007159,0.005841,0.004633,0.005878,0.004708,0.005378,0.005775,0.004317,0.003135,0.006019,0.002682,0.003519,0.002106,0.001173,0.002911 | |||
giUnmuted31 ftgen 0,0,4096,10,0.066770,0.048141,0.313114,0.280252,0.266590,0.227818,0.195576,0.598114,0.585360,0.631625,0.922780,0.476250,0.557175,0.516114,0.284400,0.347304,0.327824,0.186298,0.429619,0.319332,0.143321,0.268362,0.179246,0.187779,0.187831,0.069696,0.157916,0.087219,0.051108,0.180413,0.090807,0.061893,0.087674,0.029616,0.053852,0.035420,0.032698,0.030786,0.031084,0.040347,0.022290,0.019770,0.033986,0.022503,0.008514,0.028204,0.013058,0.011683,0.016372,0.011838,0.005125,0.012279,0.007251,0.009685,0.008196,0.009381,0.007698,0.004608,0.004124,0.002835,0.002636,0.005858,0.004185,0.001287,0.002347,0.002862,0.004396,0.003505,0.001776,0.002038,0.003386,0.001389,0.002214,0.001394,0.002558,0.001971,0.001212,0.000993,0.001220,0.001435,0.001036,0.000315,0.000862,0.001509,0.000972,0.000423,0.000797,0.001030,0.001800,0.000491,0.000318,0.000990,0.000987,0.000840,0.000380,0.000536,0.000975,0.000576,0.000444,0.000286 | |||
giUnmuted32 ftgen 0,0,4096,10,0.153577,0.222613,0.376395,0.526417,0.515836,0.662033,0.484716,0.943689,0.936088,0.683402,0.940687,0.666224,0.399824,0.298609,0.378373,0.633100,0.213897,0.505597,0.312328,0.232655,0.144484,0.129531,0.225201,0.231697,0.116577,0.093467,0.083941,0.021798,0.081229,0.048477,0.071105,0.034486,0.057723,0.028194,0.029190,0.019811,0.027128,0.025539,0.014725,0.015158,0.019471,0.022215,0.011935,0.015510,0.012182,0.010768,0.007979,0.010226,0.004972,0.009394,0.006760,0.006326,0.005823,0.003912,0.005859,0.001846,0.002697,0.003683,0.003892,0.002554,0.002904,0.004195,0.000672,0.001703,0.001212,0.002070,0.001499,0.001454,0.002153,0.001936,0.000769,0.001242,0.001260,0.000672,0.000842,0.001179,0.001096,0.001223,0.001090,0.001644,0.001218,0.000337,0.000969,0.000736,0.000734,0.000228,0.000786,0.000788,0.000390,0.000223,0.001065,0.000755,0.000257,0.000513,0.000711,0.000538,0.000385,0.000437,0.000469,0.000430 | |||
giUnmuted33 ftgen 0,0,4096,10,0.199259,0.293112,0.678605,0.427095,0.796552,0.592920,0.832602,0.749712,0.753129,0.956136,0.706813,0.595711,0.292833,0.370551,0.334616,0.299621,0.458159,0.299313,0.277013,0.116169,0.127934,0.137952,0.174017,0.060317,0.067909,0.049889,0.073748,0.061114,0.028611,0.050743,0.022684,0.016755,0.015577,0.022867,0.023917,0.026384,0.015817,0.016226,0.020209,0.017937,0.014795,0.014935,0.011316,0.011197,0.003987,0.006306,0.007657,0.008754,0.008017,0.001430,0.002030,0.006426,0.004673,0.001697,0.003547,0.003128,0.001704,0.002225,0.003744,0.001255,0.001218,0.001706,0.000784,0.001874,0.002414,0.001450,0.001425,0.001431,0.001039,0.000512,0.001115,0.001012,0.000767,0.001368,0.000891,0.001254,0.000438,0.001473,0.000396,0.000944,0.000406,0.000645,0.000805,0.000497,0.000596,0.000632,0.000660,0.000453,0.000657,0.000437,0.000597,0.000534,0.000231,0.000579,0.000359,0.000597,0.000289,0.000515,0.000474,0.000508 | |||
giUnmuted34 ftgen 0,0,4096,10,0.156283,0.263433,0.503588,0.547226,0.458841,0.440476,0.745137,0.926771,0.703339,0.326809,0.455305,0.144506,0.578160,0.557536,0.390538,0.373849,0.349519,0.171391,0.136852,0.175680,0.170348,0.095999,0.101795,0.067277,0.069750,0.038210,0.062274,0.031281,0.045966,0.025999,0.019665,0.025196,0.019584,0.017978,0.018616,0.019068,0.009254,0.008323,0.009829,0.007950,0.009281,0.004125,0.006169,0.005516,0.008089,0.004623,0.003210,0.003435,0.002272,0.003102,0.002101,0.002482,0.000800,0.001308,0.001448,0.002671,0.000440,0.001102,0.000625,0.001246,0.000739,0.001198,0.000853,0.000982,0.000459,0.000870,0.000679,0.000793,0.000524,0.000192,0.000634,0.000314,0.000778,0.000405,0.000532,0.000235,0.000824,0.000204,0.000655,0.000308,0.000375,0.000408,0.000459,0.000698,0.000335,0.000370,0.000416,0.000463,0.000712,0.000202,0.000604,0.000194,0.000642,0.000492,0.000566,0.000304,0.000430,0.000666,0.000460,0.000725 | |||
giUnmuted35 ftgen 0,0,4096,10,0.109719,0.205679,0.327171,0.211979,0.275588,0.441424,0.909739,0.954713,0.704080,0.558176,0.412328,0.520298,0.672399,0.332547,0.403159,0.369356,0.239488,0.211806,0.231043,0.127727,0.249776,0.131377,0.104229,0.096938,0.102833,0.065079,0.066313,0.070405,0.083568,0.043975,0.062456,0.056332,0.053849,0.056551,0.038084,0.032551,0.031631,0.024900,0.019231,0.022793,0.025653,0.029848,0.012080,0.012343,0.008958,0.007429,0.009658,0.011782,0.006432,0.008668,0.004940,0.004961,0.011409,0.003677,0.005188,0.006053,0.002706,0.005660,0.005030,0.003473,0.004147,0.002260,0.003165,0.004611,0.001572,0.002973,0.001712,0.001380,0.002403,0.001241,0.001415,0.002559,0.000850,0.001416,0.000832,0.001164,0.001932,0.000912,0.001026,0.000996,0.000473,0.001056,0.000666,0.000709,0.000940,0.000380,0.000715,0.000818,0.000554,0.000733,0.000482,0.000638,0.000669,0.000419,0.000706,0.000551,0.000449,0.000615,0.000441,0.000574 | |||
giUnmuted37 ftgen 0,0,4096,10,0.163591,0.404564,0.575089,0.472316,0.486294,0.822510,0.806591,0.969411,0.362995,0.433080,0.496749,0.467537,0.467839,0.267451,0.183238,0.218200,0.199060,0.155508,0.175596,0.093844,0.131201,0.054473,0.064991,0.054622,0.028696,0.047964,0.032300,0.032288,0.027946,0.028929,0.025863,0.016471,0.015090,0.011768,0.012035,0.007896,0.009150,0.007422,0.006861,0.006328,0.006340,0.003206,0.001979,0.001196,0.003410,0.003344,0.001708,0.001304,0.001426,0.001391,0.002381,0.001136,0.000501,0.000621,0.001295,0.001362,0.001331,0.000559,0.000199,0.000503,0.000879,0.001032,0.000443,0.000370,0.000358,0.000616,0.000749,0.000331,0.000239,0.000475,0.000621,0.000552,0.000280,0.000188,0.000404,0.000434,0.000385,0.000500,0.000299,0.000339,0.000250,0.000436,0.000389,0.000319,0.000252,0.000279,0.000331,0.000496,0.000362,0.000299,0.000301,0.000389,0.000340,0.000331,0.000305,0.000321,0.000282,0.000312,0.000322,0.000305 | |||
giUnmuted38 ftgen 0,0,4096,10,0.088638,0.393952,0.219528,0.233796,0.390552,0.873953,0.973908,0.452420,0.406845,0.369372,0.418449,0.275682,0.233818,0.174596,0.176589,0.199987,0.084305,0.099145,0.066017,0.092595,0.045456,0.041233,0.057805,0.035677,0.029982,0.021224,0.023785,0.011487,0.013368,0.009656,0.009504,0.010544,0.006813,0.005152,0.006761,0.004720,0.005569,0.005772,0.003926,0.003876,0.001447,0.001937,0.001824,0.001260,0.001196,0.001056,0.001716,0.000597,0.000870,0.000129,0.001182,0.000562,0.000716,0.000558,0.000346,0.000458,0.000280,0.000472,0.000305,0.000628,0.000215,0.000532,0.000286,0.000686,0.000363,0.000433,0.000417,0.000257,0.000323,0.000182,0.000362,0.000182,0.000308,0.000090,0.000457,0.000168,0.000301,0.000207,0.000232,0.000295,0.000234,0.000253,0.000115,0.000278,0.000128,0.000246,0.000142,0.000206,0.000208,0.000168,0.000245,0.000156,0.000184,0.000153,0.000195,0.000110,0.000237,0.000120,0.000147,0.000197 | |||
giUnmuted39 ftgen 0,0,4096,10,0.072477,0.251689,0.379198,0.380111,0.725478,0.949509,0.692901,0.578175,0.268676,0.362999,0.292393,0.221151,0.135379,0.142198,0.166308,0.080654,0.080723,0.055948,0.052355,0.045652,0.019205,0.017803,0.021033,0.012636,0.010918,0.015171,0.012617,0.010832,0.009232,0.006483,0.005626,0.003851,0.002409,0.001860,0.003662,0.003232,0.003431,0.001824,0.002610,0.001564,0.001117,0.000540,0.000571,0.001003,0.001335,0.000552,0.000678,0.000584,0.001061,0.000360,0.000733,0.000138,0.000610,0.000585,0.000395,0.000329,0.000646,0.000491,0.000414,0.000402,0.000119,0.000403,0.000173,0.000409,0.000081,0.000323,0.000367,0.000312,0.000184,0.000390,0.000085,0.000295,0.000195,0.000268,0.000142,0.000267,0.000047,0.000196,0.000144,0.000201,0.000119,0.000264,0.000129,0.000192,0.000106,0.000089,0.000146,0.000206,0.000209,0.000106,0.000142,0.000140,0.000184,0.000083,0.000036,0.000158,0.000137,0.000135,0.000284,0.000115 | |||
giUnmuted40 ftgen 0,0,4096,10,0.225959,0.669389,0.383703,0.337797,0.897874,0.917315,0.679617,0.847733,0.413981,0.550916,0.384995,0.299373,0.229249,0.175955,0.251333,0.151143,0.072766,0.141216,0.038843,0.059075,0.024251,0.038600,0.034595,0.024303,0.012174,0.014682,0.023313,0.013042,0.011554,0.011010,0.010318,0.007734,0.007817,0.007700,0.004889,0.002809,0.002953,0.002732,0.002419,0.002929,0.001031,0.001758,0.002569,0.001934,0.000195,0.000657,0.000465,0.000529,0.000132,0.000495,0.000114,0.000374,0.000066,0.000383,0.000298,0.000374,0.000325,0.000203,0.000379,0.000195,0.000256,0.000055,0.000261,0.000143,0.000303,0.000225,0.000165,0.000287,0.000154,0.000362,0.000079,0.000339,0.000076,0.000304,0.000074,0.000377,0.000110,0.000203,0.000160,0.000220,0.000170,0.000246,0.000154,0.000238,0.000107,0.000233,0.000176,0.000143,0.000173,0.000149,0.000209,0.000112,0.000150,0.000111,0.000112,0.000142,0.000096,0.000126,0.000128,0.000116 | |||
giUnmuted41 ftgen 0,0,4096,10,0.097703,0.458893,0.214092,0.303131,0.643075,0.941287,0.605134,0.446467,0.333405,0.230717,0.265198,0.183918,0.159675,0.159325,0.106876,0.068197,0.087184,0.044215,0.041701,0.023995,0.024583,0.018444,0.017021,0.012909,0.009709,0.009292,0.005646,0.005169,0.005487,0.004703,0.003198,0.001953,0.002304,0.001896,0.001346,0.001214,0.000950,0.001006,0.000408,0.000899,0.000811,0.000603,0.000416,0.000186,0.000451,0.000580,0.000293,0.000134,0.000491,0.000610,0.000365,0.000202,0.000238,0.000284,0.000383,0.000318,0.000171,0.000207,0.000319,0.000262,0.000156,0.000201,0.000269,0.000277,0.000189,0.000255,0.000252,0.000251,0.000238,0.000176,0.000262,0.000221,0.000254,0.000156,0.000243,0.000273,0.000203,0.000144,0.000205,0.000227,0.000273,0.000231,0.000129,0.000148,0.000263,0.000231,0.000178,0.000240,0.000111,0.000150,0.000125,0.000253,0.000117,0.000217,0.000249,0.000167,0.000129,0.000153,0.000156,0.000166 | |||
giUnmuted42 ftgen 0,0,4096,10,0.124305,0.470693,0.408472,0.419845,0.726811,0.899803,0.320069,0.227380,0.170542,0.278327,0.087448,0.075657,0.070450,0.011278,0.027231,0.027560,0.017657,0.007864,0.003498,0.005879,0.002004,0.003338,0.002302,0.002026,0.001182,0.001269,0.001074,0.000364,0.000612,0.000235,0.000662,0.000064,0.000466,0.000427,0.000278,0.000267,0.000353,0.000292,0.000282,0.000261,0.000314,0.000191,0.000121,0.000300,0.000198,0.000184,0.000171,0.000233,0.000128,0.000158,0.000242,0.000129,0.000168,0.000158,0.000221,0.000105,0.000151,0.000134,0.000034,0.000239,0.000107,0.000190,0.000107,0.000133,0.000170,0.000077,0.000159,0.000133,0.000084,0.000139,0.000186,0.000114,0.000238,0.000054,0.000180,0.000124,0.000143,0.000260,0.000043,0.000132,0.000091,0.000030,0.000116,0.000080,0.000072,0.000057,0.000105,0.000076,0.000116,0.000065,0.000171,0.000053,0.000072,0.000074,0.000062,0.000114,0.000055,0.000095,0.000113,0.000044 | |||
giUnmuted43 ftgen 0,0,4096,10,0.125142,0.748133,0.488996,0.937672,0.810384,0.425414,0.265649,0.228407,0.170598,0.111821,0.121106,0.061239,0.019591,0.017183,0.019865,0.007807,0.001783,0.002592,0.001011,0.003527,0.002854,0.000493,0.002776,0.000788,0.001901,0.002961,0.000261,0.000981,0.000309,0.001260,0.001590,0.000419,0.000880,0.000853,0.000491,0.001106,0.000390,0.000507,0.000664,0.000732,0.000588,0.000322,0.000375,0.000612,0.000570,0.000284,0.000276,0.000346,0.000470,0.000510,0.000208,0.000313,0.000421,0.000286,0.000339,0.000330,0.000236,0.000285,0.000339,0.000333,0.000325,0.000301,0.000405,0.000289,0.000185,0.000254,0.000429,0.000220,0.000088,0.000342,0.000434,0.000323,0.000114,0.000423,0.000294,0.000189,0.000274,0.000329,0.000150,0.000193,0.000230,0.000213,0.000130,0.000222,0.000238,0.000078,0.000370,0.000313,0.000161,0.000338,0.000185,0.000246,0.000194,0.000179,0.000174,0.000154,0.000140,0.000235,0.000115,0.000258 | |||
giUnmuted44 ftgen 0,0,4096,10,0.302063,0.713050,0.452426,0.930055,0.680724,0.256993,0.187429,0.166946,0.128520,0.034480,0.011033,0.010095,0.010484,0.013378,0.003779,0.001842,0.002372,0.003682,0.002032,0.001052,0.001063,0.001158,0.000116,0.001123,0.001585,0.000539,0.001398,0.000809,0.000447,0.000282,0.000640,0.000371,0.000503,0.000484,0.000108,0.000162,0.000180,0.000319,0.000232,0.000211,0.000045,0.000246,0.000082,0.000069,0.000149,0.000105,0.000143,0.000097,0.000032,0.000091,0.000142,0.000202,0.000052,0.000133,0.000185,0.000054,0.000154,0.000137,0.000181,0.000042,0.000135,0.000129,0.000100,0.000108,0.000143,0.000065,0.000082,0.000182,0.000049,0.000189,0.000083,0.000061,0.000143,0.000078,0.000056,0.000079,0.000120,0.000037,0.000098,0.000063,0.000110,0.000162,0.000076,0.000078,0.000059,0.000095,0.000049,0.000104,0.000088,0.000117,0.000133,0.000031,0.000103,0.000040,0.000058,0.000025,0.000024,0.000077,0.000069,0.000155 | |||
giUnmuted45 ftgen 0,0,4096,10,0.233846,0.388855,0.488775,0.775865,0.964456,0.501325,0.291914,0.282804,0.153115,0.120898,0.100772,0.061525,0.021515,0.015412,0.010305,0.004386,0.004785,0.007854,0.004759,0.004311,0.003465,0.002391,0.000787,0.001491,0.000948,0.000812,0.000611,0.000750,0.000529,0.000347,0.000811,0.000462,0.000235,0.000129,0.000100,0.000270,0.000180,0.000344,0.000298,0.000283,0.000076,0.000033,0.000229,0.000057,0.000107,0.000302,0.000392,0.000250,0.000158,0.000123,0.000211,0.000176,0.000204,0.000052,0.000045,0.000073,0.000098,0.000048,0.000042,0.000062,0.000184,0.000108,0.000087,0.000108,0.000246,0.000201,0.000114,0.000035,0.000098,0.000163,0.000193,0.000214,0.000220,0.000138,0.000157,0.000201,0.000169,0.000255,0.000225,0.000166,0.000090,0.000040,0.000130,0.000094,0.000063,0.000032,0.000089,0.000092,0.000126,0.000045,0.000031,0.000089,0.000106,0.000113,0.000102,0.000097,0.000078,0.000087,0.000116,0.000073 | |||
giUnmuted46 ftgen 0,0,4096,10,0.278221,0.573695,0.445852,0.941888,0.349456,0.146739,0.401320,0.181176,0.109258,0.079677,0.027531,0.020462,0.010172,0.004976,0.008831,0.004459,0.003116,0.005925,0.003482,0.001955,0.000824,0.000849,0.000990,0.000555,0.000572,0.000248,0.000282,0.000312,0.000425,0.000324,0.000073,0.000533,0.000097,0.000455,0.000267,0.000126,0.000125,0.000100,0.000382,0.000051,0.000129,0.000240,0.000307,0.000083,0.000247,0.000140,0.000183,0.000087,0.000275,0.000383,0.000065,0.000167,0.000138,0.000204,0.000147,0.000389,0.000087,0.000087,0.000085,0.000041,0.000137,0.000224,0.000036,0.000053,0.000195,0.000205,0.000101,0.000065,0.000194,0.000064,0.000193,0.000258,0.000182,0.000073,0.000094,0.000173,0.000055,0.000075,0.000093,0.000129,0.000045,0.000085,0.000107,0.000117,0.000074,0.000107,0.000122,0.000085,0.000048,0.000110,0.000056,0.000075,0.000100,0.000057,0.000058,0.000070,0.000058,0.000062,0.000024,0.000053 | |||
giUnmuted48 ftgen 0,0,4096,10,0.452762,0.304359,0.946745,0.826937,0.631116,0.540533,0.395792,0.137892,0.089376,0.056327,0.024940,0.018700,0.015991,0.009294,0.006775,0.006495,0.001878,0.002247,0.000868,0.001248,0.001564,0.001249,0.001144,0.001326,0.001103,0.000911,0.000811,0.000899,0.000763,0.000818,0.000796,0.000855,0.000820,0.000710,0.000624,0.000684,0.000656,0.000643,0.000581,0.000503,0.000628,0.000640,0.000595,0.000471,0.000287,0.000521,0.000550,0.000603,0.000454,0.000276,0.000515,0.000524,0.000515,0.000548,0.000414,0.000417,0.000623,0.000306,0.000257,0.000314,0.000328,0.000356,0.000371,0.000363,0.000334,0.000261,0.000258,0.000294,0.000248,0.000426,0.000222,0.000250,0.000403,0.000222,0.000365,0.000158,0.000358,0.000267,0.000252,0.000328,0.000186,0.000291,0.000280,0.000198,0.000269,0.000258,0.000279,0.000252,0.000236,0.000257,0.000228,0.000248,0.000225,0.000222,0.000211,0.000262,0.000206,0.000219,0.000216,0.000223 | |||
giUnmuted49 ftgen 0,0,4096,10,0.384255,0.558888,0.714667,0.956957,0.356637,0.233667,0.190339,0.102786,0.061868,0.032079,0.017290,0.009522,0.005673,0.005487,0.002456,0.002036,0.000425,0.001796,0.002623,0.001222,0.000730,0.000805,0.000937,0.000709,0.000258,0.000626,0.000855,0.000810,0.000503,0.000376,0.000366,0.000792,0.000435,0.000475,0.000434,0.000367,0.000729,0.000327,0.000400,0.000367,0.000285,0.000247,0.000517,0.000305,0.000346,0.000356,0.000254,0.000337,0.000385,0.000231,0.000456,0.000215,0.000106,0.000201,0.000338,0.000284,0.000295,0.000166,0.000172,0.000132,0.000143,0.000401,0.000352,0.000229,0.000228,0.000272,0.000210,0.000234,0.000250,0.000182,0.000231,0.000084,0.000152,0.000170,0.000231,0.000207,0.000174,0.000130,0.000145,0.000280,0.000219,0.000185,0.000135,0.000104,0.000157,0.000222,0.000197,0.000090,0.000129,0.000142,0.000121,0.000183,0.000157,0.000120,0.000130,0.000101,0.000113,0.000151,0.000146,0.000114 | |||
giUnmuted50 ftgen 0,0,4096,10,0.446591,0.477584,0.426492,0.970753,0.374135,0.215282,0.306904,0.140851,0.070867,0.038834,0.002282,0.017849,0.007741,0.003585,0.006831,0.006003,0.003705,0.001554,0.003344,0.000137,0.001907,0.000924,0.001095,0.001011,0.000580,0.000998,0.001204,0.000696,0.001058,0.000873,0.000742,0.000768,0.000685,0.000814,0.000666,0.000827,0.000659,0.000713,0.000613,0.000584,0.000711,0.000452,0.000535,0.000517,0.000488,0.000572,0.000501,0.000577,0.000468,0.000403,0.000316,0.000555,0.000474,0.000513,0.000541,0.000421,0.000425,0.000418,0.000385,0.000321,0.000462,0.000415,0.000342,0.000312,0.000347,0.000323,0.000339,0.000320,0.000298,0.000318,0.000268,0.000265,0.000232,0.000302,0.000354,0.000263,0.000304,0.000222,0.000312,0.000311,0.000342,0.000363,0.000274,0.000300,0.000250,0.000296,0.000254,0.000287,0.000249,0.000199,0.000219,0.000195,0.000210,0.000230,0.000217,0.000181,0.000209,0.000200,0.000218,0.000224 | |||
giUnmuted51 ftgen 0,0,4096,10,0.287446,0.531276,0.971557,0.630155,0.300795,0.250731,0.098819,0.107126,0.053101,0.062126,0.011011,0.012837,0.004178,0.006909,0.004394,0.002253,0.002430,0.002140,0.001992,0.000671,0.000287,0.000471,0.000271,0.000130,0.000051,0.000046,0.000110,0.000021,0.000075,0.000192,0.000076,0.000065,0.000131,0.000125,0.000081,0.000150,0.000030,0.000017,0.000085,0.000079,0.000026,0.000096,0.000129,0.000153,0.000110,0.000071,0.000054,0.000060,0.000076,0.000043,0.000064,0.000017,0.000052,0.000117,0.000038,0.000047,0.000024,0.000058,0.000033,0.000021,0.000042,0.000074,0.000063,0.000027,0.000066,0.000039,0.000035,0.000030,0.000050,0.000068,0.000048,0.000058,0.000037,0.000069,0.000030,0.000032,0.000081,0.000067,0.000051,0.000033,0.000053,0.000067,0.000038,0.000025,0.000009,0.000037,0.000026,0.000021,0.000009,0.000039,0.000025,0.000029,0.000019,0.000007,0.000014,0.000020,0.000025,0.000019,0.000024,0.000011 | |||
giUnmuted52 ftgen 0,0,4096,10,0.780315,0.602043,0.971703,0.598540,0.419892,0.250576,0.135924,0.028914,0.007076,0.002504,0.001073,0.002881,0.002091,0.001033,0.001393,0.001759,0.002069,0.001160,0.001046,0.000119,0.000300,0.000679,0.000689,0.000161,0.000393,0.000523,0.000306,0.000179,0.000312,0.000431,0.000186,0.000165,0.000492,0.000276,0.000209,0.000416,0.000299,0.000153,0.000254,0.000350,0.000169,0.000155,0.000291,0.000165,0.000059,0.000258,0.000299,0.000257,0.000195,0.000128,0.000254,0.000142,0.000138,0.000172,0.000115,0.000086,0.000226,0.000168,0.000117,0.000109,0.000203,0.000108,0.000106,0.000096,0.000163,0.000088,0.000138,0.000083,0.000076,0.000118,0.000119,0.000130,0.000104,0.000106,0.000157,0.000102,0.000046,0.000053,0.000071,0.000098,0.000102,0.000096,0.000078,0.000080,0.000075,0.000076,0.000080,0.000077,0.000073,0.000056,0.000081,0.000076,0.000093,0.000054,0.000098,0.000069,0.000047,0.000076,0.000050,0.000039 | |||
giUnmuted53 ftgen 0,0,4096,10,0.372046,0.398945,0.933433,0.303716,0.202319,0.090480,0.045828,0.011018,0.009763,0.001157,0.003828,0.006742,0.001634,0.000320,0.001952,0.001823,0.000292,0.001455,0.000996,0.000511,0.001143,0.001002,0.000470,0.000777,0.000907,0.000648,0.000685,0.000677,0.000506,0.000454,0.000526,0.000488,0.000439,0.000473,0.000508,0.000505,0.000540,0.000447,0.000407,0.000416,0.000398,0.000364,0.000198,0.000374,0.000324,0.000391,0.000404,0.000361,0.000265,0.000399,0.000341,0.000282,0.000274,0.000277,0.000232,0.000236,0.000232,0.000234,0.000221,0.000241,0.000245,0.000215,0.000179,0.000214,0.000247,0.000215,0.000207,0.000202,0.000207,0.000195,0.000189,0.000164,0.000193,0.000172,0.000163,0.000189,0.000196,0.000183,0.000169,0.000170,0.000159,0.000177,0.000172,0.000148,0.000148,0.000174,0.000160,0.000170,0.000159,0.000159,0.000153,0.000140,0.000152,0.000124,0.000137,0.000135,0.000132,0.000111,0.000136,0.000145 | |||
giUnmuted55 ftgen 0,0,4096,10,0.553293,0.970661,0.775964,0.469479,0.247296,0.167610,0.076609,0.033410,0.020341,0.014035,0.008333,0.004948,0.005841,0.001285,0.003257,0.000737,0.001858,0.001036,0.001645,0.001036,0.001103,0.001137,0.001058,0.001046,0.000830,0.000920,0.000754,0.000986,0.000805,0.000941,0.000725,0.000785,0.000639,0.000792,0.000693,0.000710,0.000502,0.000630,0.000647,0.000611,0.000541,0.000612,0.000564,0.000535,0.000526,0.000550,0.000561,0.000452,0.000489,0.000502,0.000455,0.000494,0.000395,0.000489,0.000391,0.000455,0.000426,0.000401,0.000395,0.000424,0.000366,0.000409,0.000441,0.000420,0.000368,0.000384,0.000385,0.000372,0.000378,0.000347,0.000334,0.000364,0.000324,0.000342,0.000334,0.000331,0.000328,0.000319,0.000317,0.000303,0.000307,0.000324,0.000295,0.000316,0.000284,0.000293,0.000301,0.000292,0.000308,0.000294,0.000306,0.000291,0.000290,0.000281,0.000282,0.000284,0.000276,0.000270,0.000271,0.000271 | |||
giUnmuted56 ftgen 0,0,4096,10,0.400932,0.968520,0.498998,0.389257,0.178633,0.106598,0.036188,0.017795,0.012342,0.000119,0.001239,0.002906,0.000849,0.000166,0.001155,0.001166,0.000733,0.000431,0.000261,0.000740,0.000954,0.000788,0.000425,0.000292,0.000215,0.000111,0.000367,0.000116,0.000157,0.000202,0.000291,0.000325,0.000311,0.000291,0.000228,0.000258,0.000334,0.000245,0.000207,0.000181,0.000101,0.000272,0.000256,0.000160,0.000202,0.000191,0.000135,0.000209,0.000287,0.000145,0.000174,0.000142,0.000151,0.000158,0.000211,0.000156,0.000085,0.000205,0.000120,0.000149,0.000178,0.000110,0.000128,0.000155,0.000127,0.000078,0.000172,0.000112,0.000089,0.000134,0.000141,0.000080,0.000122,0.000145,0.000057,0.000148,0.000118,0.000076,0.000098,0.000141,0.000071,0.000118,0.000134,0.000051,0.000121,0.000094,0.000107,0.000067,0.000125,0.000091,0.000070,0.000129,0.000072,0.000073,0.000102,0.000110,0.000065,0.000125,0.000102,0.000073 | |||
giUnmuted57 ftgen 0,0,4096,10,0.291306,0.935026,0.610503,0.348987,0.214608,0.091185,0.014377,0.010820,0.009119,0.004516,0.002313,0.001529,0.002367,0.001896,0.001988,0.001276,0.001387,0.001297,0.001665,0.001145,0.001069,0.001265,0.001014,0.000912,0.000914,0.000884,0.001057,0.000657,0.000966,0.000629,0.000867,0.000822,0.000934,0.000930,0.000759,0.000705,0.000586,0.000610,0.000554,0.000522,0.000534,0.000515,0.000527,0.000475,0.000482,0.000475,0.000461,0.000481,0.000430,0.000442,0.000430,0.000434,0.000438,0.000393,0.000406,0.000411,0.000359,0.000372,0.000357,0.000351,0.000349,0.000324,0.000336,0.000324,0.000314,0.000303,0.000301,0.000285,0.000290,0.000281,0.000290,0.000278,0.000275,0.000275,0.000263,0.000266,0.000238,0.000227,0.000236,0.000240,0.000236,0.000232,0.000222,0.000228,0.000230,0.000219,0.000211,0.000210,0.000218,0.000220,0.000216,0.000205,0.000201,0.000207,0.000204,0.000198,0.000198,0.000199,0.000198,0.000204 | |||
giUnmuted58 ftgen 0,0,4096,10,0.424856,0.955425,0.300308,0.167209,0.106790,0.022221,0.009677,0.003945,0.002919,0.000972,0.002109,0.001042,0.000179,0.000802,0.000783,0.000469,0.000622,0.000452,0.000340,0.000342,0.000529,0.000442,0.000227,0.000537,0.000344,0.000279,0.000438,0.000291,0.000255,0.000281,0.000355,0.000226,0.000212,0.000190,0.000247,0.000230,0.000217,0.000203,0.000212,0.000229,0.000161,0.000199,0.000193,0.000163,0.000189,0.000156,0.000148,0.000176,0.000153,0.000136,0.000144,0.000163,0.000148,0.000142,0.000156,0.000124,0.000124,0.000128,0.000131,0.000128,0.000116,0.000119,0.000096,0.000126,0.000103,0.000119,0.000108,0.000098,0.000108,0.000100,0.000109,0.000095,0.000104,0.000104,0.000089,0.000098,0.000092,0.000092,0.000094,0.000088,0.000084,0.000083,0.000085,0.000085,0.000078,0.000083,0.000080,0.000081,0.000078,0.000077,0.000082,0.000082,0.000079,0.000080,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted59 ftgen 0,0,4096,10,0.359547,0.978853,0.629720,0.355319,0.173057,0.062497,0.018952,0.015355,0.001883,0.003244,0.000776,0.001277,0.001682,0.000930,0.001021,0.000861,0.000797,0.000784,0.000905,0.000938,0.000691,0.000529,0.000651,0.000668,0.000567,0.000394,0.000564,0.000553,0.000563,0.000374,0.000399,0.000503,0.000337,0.000498,0.000410,0.000391,0.000452,0.000316,0.000406,0.000293,0.000417,0.000301,0.000349,0.000279,0.000358,0.000270,0.000271,0.000287,0.000270,0.000252,0.000235,0.000266,0.000229,0.000223,0.000239,0.000206,0.000237,0.000201,0.000212,0.000207,0.000197,0.000204,0.000185,0.000193,0.000174,0.000185,0.000168,0.000173,0.000159,0.000158,0.000167,0.000156,0.000160,0.000158,0.000153,0.000144,0.000156,0.000152,0.000147,0.000148,0.000140,0.000141,0.000134,0.000134,0.000132,0.000133,0.000132,0.000129,0.000139,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted60 ftgen 0,0,4096,10,0.261374,0.958638,0.539283,0.255231,0.147692,0.058306,0.039086,0.029455,0.008523,0.006366,0.003368,0.001295,0.000525,0.000726,0.000847,0.000590,0.000475,0.000526,0.000505,0.000443,0.000320,0.000407,0.000362,0.000443,0.000436,0.000378,0.000327,0.000302,0.000313,0.000302,0.000287,0.000249,0.000268,0.000271,0.000288,0.000219,0.000205,0.000188,0.000206,0.000244,0.000213,0.000204,0.000153,0.000138,0.000190,0.000183,0.000175,0.000180,0.000157,0.000145,0.000159,0.000168,0.000161,0.000138,0.000144,0.000137,0.000134,0.000133,0.000132,0.000126,0.000126,0.000129,0.000119,0.000120,0.000108,0.000109,0.000110,0.000111,0.000101,0.000092,0.000091,0.000098,0.000100,0.000096,0.000094,0.000096,0.000089,0.000087,0.000090,0.000085,0.000088,0.000082,0.000081,0.000085,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted61 ftgen 0,0,4096,10,0.417597,0.966833,0.416727,0.180794,0.059064,0.009951,0.012483,0.005985,0.000936,0.001803,0.000655,0.001165,0.001044,0.000808,0.000730,0.000802,0.000431,0.000761,0.000635,0.000600,0.000672,0.000449,0.000439,0.000419,0.000423,0.000466,0.000371,0.000301,0.000340,0.000369,0.000332,0.000355,0.000303,0.000303,0.000266,0.000327,0.000298,0.000235,0.000293,0.000250,0.000196,0.000286,0.000226,0.000187,0.000270,0.000214,0.000201,0.000218,0.000195,0.000204,0.000206,0.000186,0.000183,0.000183,0.000170,0.000171,0.000168,0.000166,0.000163,0.000161,0.000161,0.000147,0.000147,0.000142,0.000139,0.000140,0.000142,0.000142,0.000138,0.000137,0.000135,0.000131,0.000129,0.000130,0.000131,0.000129,0.000128,0.000128,0.000129,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted62 ftgen 0,0,4096,10,0.619523,0.961285,0.413119,0.108674,0.024175,0.002125,0.004476,0.003247,0.001352,0.001965,0.000417,0.001471,0.001777,0.000808,0.001622,0.001287,0.001022,0.001266,0.000711,0.000939,0.000934,0.000662,0.000613,0.000589,0.000621,0.000570,0.000567,0.000537,0.000348,0.000623,0.000348,0.000581,0.000430,0.000433,0.000451,0.000404,0.000403,0.000380,0.000391,0.000385,0.000372,0.000351,0.000360,0.000320,0.000325,0.000307,0.000314,0.000267,0.000307,0.000276,0.000259,0.000269,0.000263,0.000231,0.000245,0.000235,0.000254,0.000203,0.000228,0.000209,0.000210,0.000212,0.000201,0.000201,0.000200,0.000193,0.000197,0.000181,0.000186,0.000191,0.000187,0.000179,0.000186,0.000183,0.000156,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted63 ftgen 0,0,4096,10,0.930506,0.830293,0.419689,0.124916,0.038385,0.024593,0.004794,0.004719,0.003135,0.000873,0.001282,0.002043,0.001147,0.000967,0.000988,0.000678,0.000173,0.000513,0.000302,0.000290,0.000411,0.000762,0.000371,0.000406,0.000100,0.000164,0.000359,0.000407,0.000105,0.000293,0.000391,0.000246,0.000158,0.000094,0.000092,0.000176,0.000072,0.000179,0.000079,0.000130,0.000159,0.000270,0.000068,0.000103,0.000061,0.000031,0.000141,0.000112,0.000103,0.000058,0.000084,0.000104,0.000104,0.000093,0.000106,0.000081,0.000073,0.000109,0.000082,0.000051,0.000083,0.000073,0.000065,0.000063,0.000070,0.000082,0.000059,0.000073,0.000066,0.000057,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted64 ftgen 0,0,4096,10,0.972240,0.962179,0.327494,0.131881,0.030060,0.012594,0.010159,0.006424,0.001103,0.003403,0.002598,0.002451,0.001553,0.001352,0.001133,0.001503,0.001006,0.001536,0.001309,0.001202,0.000888,0.001138,0.001263,0.001203,0.001186,0.000543,0.000766,0.000841,0.000896,0.000659,0.000695,0.000682,0.000638,0.000554,0.000597,0.000599,0.000595,0.000633,0.000510,0.000491,0.000552,0.000483,0.000426,0.000553,0.000423,0.000448,0.000409,0.000425,0.000270,0.000375,0.000420,0.000306,0.000414,0.000322,0.000332,0.000333,0.000282,0.000349,0.000328,0.000344,0.000339,0.000347,0.000316,0.000285,0.000300,0.000263,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted65 ftgen 0,0,4096,10,0.946888,0.960545,0.184774,0.018883,0.010446,0.014745,0.001268,0.004635,0.003175,0.000946,0.004142,0.002215,0.000862,0.002500,0.001973,0.001800,0.000634,0.001025,0.001812,0.001970,0.001697,0.001360,0.000855,0.000747,0.001079,0.000849,0.000880,0.000574,0.000730,0.000688,0.000981,0.000337,0.000974,0.000733,0.000756,0.000555,0.000861,0.000545,0.000749,0.000475,0.000535,0.000441,0.000525,0.000483,0.000584,0.000565,0.000414,0.000551,0.000370,0.000472,0.000237,0.000446,0.000374,0.000619,0.000426,0.000403,0.000396,0.000408,0.000394,0.000340,0.000296,0.000324,0.000299,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted67 ftgen 0,0,4096,10,0.904104,0.687203,0.074239,0.008596,0.008832,0.003406,0.003870,0.000671,0.001852,0.001635,0.001087,0.000499,0.001292,0.000964,0.000856,0.000780,0.000614,0.000711,0.000618,0.000934,0.000903,0.000581,0.000840,0.000399,0.000489,0.000328,0.000505,0.000515,0.000432,0.000365,0.000364,0.000454,0.000390,0.000377,0.000361,0.000314,0.000378,0.000357,0.000330,0.000270,0.000342,0.000244,0.000217,0.000204,0.000235,0.000181,0.000230,0.000167,0.000212,0.000212,0.000203,0.000218,0.000163,0.000210,0.000170,0.000173,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted69 ftgen 0,0,4096,10,0.944934,0.293223,0.066919,0.017808,0.007234,0.002307,0.002545,0.000739,0.000556,0.000511,0.000549,0.000723,0.000242,0.000601,0.000453,0.000316,0.000324,0.000312,0.000164,0.000264,0.000131,0.000093,0.000233,0.000211,0.000152,0.000187,0.000090,0.000233,0.000171,0.000154,0.000116,0.000082,0.000095,0.000121,0.000103,0.000074,0.000094,0.000088,0.000098,0.000122,0.000105,0.000080,0.000084,0.000079,0.000074,0.000104,0.000062,0.000071,0.000065,0.000064,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
giUnmuted70 ftgen 0,0,4096,10,0.943312,0.441802,0.052080,0.022643,0.001043,0.002473,0.002554,0.002310,0.001720,0.000881,0.001191,0.001619,0.000857,0.000858,0.001539,0.000697,0.000554,0.000498,0.000409,0.000174,0.000105,0.000147,0.000252,0.000549,0.000348,0.000262,0.000426,0.000336,0.000226,0.000305,0.000193,0.000333,0.000263,0.000183,0.000164,0.000171,0.000202,0.000221,0.000188,0.000137,0.000129,0.000098,0.000100,0.000144,0.000071,0.000094,0.000086,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000 | |||
;GEN02 TABLE CONTAINING THE FUNCTION TABLE NUMBERS OF THE TABLES BETWEEN WHICH MORPHING WILL TAKE PLACE | |||
giwavemapUnmuted ftgen 0,0,128,-27, 0,0, 22,0, 23,1, 24,2, 25,3, 26,4, 27,5, 28,6, 30,7, 31,8, 32,9, 33,10, 34,11, 35,12, 37,13, 38,14, 39,15, 40,16, 41,17, 42,18, 43,19, 44,20, 45,21, 46,22, 48,23, 49,24, 50,25, 51,26, 52,27, 53,28, 55,29, 56,30, 57,31, 58,32, 59,33, 60,34, 61,35, 62,36, 63,37, 64,38, 65,39, 67,40, 69,41, 70,42, 127,42 | |||
gitabs4morfUnmuted ftgen 0,0,64,-2, giUnmuted22,giUnmuted23,giUnmuted24,giUnmuted25,giUnmuted26,giUnmuted27,giUnmuted28,giUnmuted30,giUnmuted31,giUnmuted32,giUnmuted33,giUnmuted34,giUnmuted35,giUnmuted37,giUnmuted38,giUnmuted39,giUnmuted40,giUnmuted41,giUnmuted42,giUnmuted43,giUnmuted44,giUnmuted45,giUnmuted46,giUnmuted48,giUnmuted49,giUnmuted50,giUnmuted51,giUnmuted52,giUnmuted53,giUnmuted55,giUnmuted56,giUnmuted57,giUnmuted58,giUnmuted59,giUnmuted60,giUnmuted61,giUnmuted62,giUnmuted63,giUnmuted64,giUnmuted65,giUnmuted67,giUnmuted69,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70,giUnmuted70 | |||
gisaw ftgen 0,0,4096,11,80,1,0.9 | |||
gisquare ftgen 0,0,4096,10, 1,0, 1/3,0, 1/5,0, 1/7,0, 1/9,0, 1/11,0, 1/13,0, 1/15,0, 1/17,0, 1/19,0, 1/21,0, 1/23,0, 1/25,0, 1/27,0, 1/29,0, 1/31,0, 1/33,0, 1/35,0, 1/37,0, 1/39 | |||
giorg ftgen 0,0,4096,9, 1,1,rnd(1), 2,1/2,rnd(1), 4,1/4,rnd(1), 8,1/8,rnd(1), 16,1/16,rnd(1), 32,1/32,rnd(1), 64,1/64,rnd(1), 128,1/128,rnd(1) | |||
gieee ftgen 0,0,4096,10, 0.430487,0.778043,0.090552,0.011467,0.030632,0.017911,0.006520,0.006820,0.007109,0.006437,0.008527,0.009083,0.016774,0.058922,0.070507,0.116728,0.045479,0.060107,0.069023,0.036487,0.047350,0.049526,0.036678,0.022550,0.022550 | |||
giooh ftgen 0,0,4096,10, 0.110941,0.606890,0.046168,0.040510,0.031310,0.007323,0.003115,0.002749,0.002420,0.002253,0.002853,0.002337,0.002672,0.002061,0.002202,0.002410,0.002615,0.005079,0.003192,0.002699,0.003708,0.003501,0.002264,0.001713,0.001713 | |||
gicos ftgen 0,0,4096,11,1 ;COSINE WAVE (USED BY THE LFOS) | |||
gieqffn ftgen 0,0,4097,7,-1,4096,1 | |||
gieqlfn ftgen 0,0,4097,7,-1,4096,1 | |||
gieqqfn ftgen 0,0,4097,7,-1,4096,1 | |||
gasendL,gasendR init 0 | |||
gkactive init 0 ; Will contain number of active instances of instr 3 when legato mode is chosen. NB. notes in release stage will not be regarded as active. | |||
opcode sspline,k,Kiii | |||
kdur,istart,iend,icurve xin ;READ IN INPUT ARGUMENTS | |||
imid = istart+((iend-istart)/2) ;SPLINE MID POINT VALUE | |||
isspline ftgentmp 0,0,4096,-16,istart,4096*0.5,icurve,imid,(4096/2)-1,-icurve,iend ;GENERATE 'S' SPLINE | |||
kspd = i(kdur)/kdur ;POINTER SPEED AS A RATIO (WITH REFERENCE TO THE ORIGINAL DURATION) | |||
kptr init 0 ;POINTER INITIAL VALUE | |||
kout tablei kptr,isspline ;READ VALUE FROM TABLE | |||
kptr limit kptr+((ftlen(isspline)/(i(kdur)*kr))*kspd), 0, ftlen(isspline)-1 ;INCREMENT THE POINTER BY THE REQUIRED NUMBER OF TABLE POINTS IN ONE CONTROL CYCLE AND LIMIT IT BETWEEN FIRST AND LAST TABLE POINT - FINAL VALUE WILL BE HELD IF POINTER ATTEMPTS TO EXCEED TABLE DURATION | |||
xout kout ;SEND VALUE BACK TO CALLER INSTRUMENT | |||
endop | |||
instr ReadWidgets | |||
kporttime linseg 0,0.001,0.1 | |||
;OSCILLATOR | |||
gkamp chnget "amp" | |||
gkNOscs chnget "NOscs" | |||
gkfmd chnget "fmd" | |||
gkmvt chnget "mvt" | |||
gkwaveform chnget "waveform" | |||
gkwaveform init 1 | |||
gkwidth chnget "width" | |||
gkWTableShift chnget "WTableShift" | |||
gkBendDown chnget "BendDown" | |||
gkBendUp chnget "BendUp" | |||
gkBendRange chnget "BendRange" | |||
gkPchBend portk (gkBendDown+gkBendUp)*gkBendRange, kporttime | |||
gkWTableShift portk gkWTableShift, kporttime | |||
gkFiltLayers chnget "FiltLayers" | |||
gkFlfoType chnget "FlfoType" | |||
gkFRte chnget "FRte" | |||
gkFDep chnget "FDep" | |||
gkFDel chnget "FDel" | |||
gkFRis chnget "FRis" | |||
gkcfoct chnget "cf" | |||
gkFEnvAmt chnget "FEnvAmt" | |||
gkFAtt chnget "FAtt" | |||
gkFDec chnget "FDec" | |||
gkFSus chnget "FSus" | |||
gkFRel chnget "FRel" | |||
gkRvbMix chnget "RvbMix" | |||
gkAAtt chnget "AAtt" | |||
gkADec chnget "ADec" | |||
gkASus chnget "ASus" | |||
gkARel chnget "ARel" | |||
gklegato chnget "legato" | |||
gkLegTim chnget "LegTim" | |||
gkmono chnget "mono" | |||
endin | |||
instr 1 ; triggered via midi | |||
gkNoteTrig init 1 ;at the beginning of a new note set note trigger flag to '1' | |||
inum notnum | |||
gknum = inum | |||
ivel veloc 0,1 ;read in midi note velocity | |||
if i(gklegato)==0 then ;if we are *not* in legato mode... | |||
;aL,aR subinstr p1+1,inum ;call voice instrument as a subinstrument. Audio will be fed back to this instrument before being sent to the outputs. | |||
; outs aL,aR ;send audio to outputs | |||
event_i "i",p1+1+(inum*0.001),0,-1,inum,ivel ; call sound producing instr | |||
krel release ; release flag (1 when note is released, 0 otherwise) | |||
if krel==1 then ; when note is released... | |||
turnoff2 p1+1+(inum*0.001),4,1 ; turn off the called instrument | |||
endif ; end of conditional | |||
else ;otherwise... (i.e. legato mode) | |||
iactive = i(gkactive) ;number of active notes of instr 3 (note in release are disregarded) | |||
if iactive==0 then ;...if no notes are active | |||
event_i "i",p1+1,0,3600,inum,ivel ;...start a new held note | |||
endif | |||
endif | |||
endin | |||
instr 2 ; triggered by instr 2 | |||
;print p4 | |||
;kporttime linseg 0,0.001,1 ;portamento time function rises quickly from zero to a held value | |||
kLegTime = gkLegTim;*kporttime ;scale portamento time function with value from GUI knob widget | |||
if i(gklegato)==1 then ;if we are in legato mode... | |||
krel release ;sense when note has been released | |||
gkactive = 1-krel ;if note is in release, gkactive=0, otherwise =1 | |||
if krel==0 then | |||
ktrig changed gknum ;...GENERATE A TRIGGER IS A NEW NOTE NUMBER IS GENERATED (FROM INSTR. 1) | |||
gkNoteTrig = 0 | |||
endif | |||
gkOldNum init p4 ;OLD NOTE NUMBER = FIRST NOTE NUMBER UPON INITIAL NOTE BEING PLAYED | |||
if ktrig=1 then ;IF A NEW (LEGATO) NOTE HAS BEEN PRESSED | |||
reinit S_CURVE_2 ;BEGIN A REINITIALISATION PASS FROM LABEL | |||
endif ;END OF CONDITIONAL BRANCH | |||
S_CURVE_2: ;A LABEL. REINITIALISATION BEGINS FROM HERE. | |||
idiff = 1+abs(i(gknum)-i(gkOldNum)) ;ABSOLUTE DIFFERENCE BETWEEN OLD NOTE AND NEW NOTE IN STEPS (+ 1) | |||
knum sspline (kLegTime*idiff)+ksmps/sr,i(gkOldNum),i(gknum),1 ;CALL sspline UDO (PORTASMENTO TIME MULTIPLIED BY NOTE GAP (idiff)) | |||
rireturn ;RETURN FROM INITIALISATION PASS | |||
gkOldNum = knum ;SET OLD NUMBER CURRENT NUMBER | |||
kactive active p1-1 ;...check number of active midi notes (previous instrument) | |||
if kactive==0 then ;if no midi notes are active... | |||
turnoff ;... turn this instrument off | |||
endif | |||
else ;otherwise... (polyphonic / non-legato mode) | |||
knum = p4 | |||
endif | |||
knum init p4 | |||
knum = knum + gkPchBend ;add pitch bend | |||
;AMPLITUDE ENVELOPE | |||
aenv linsegr 0.001,i(gkAAtt)+0.001,1,i(gkADec)+0.001,i(gkASus),i(gkARel)+0.001,0.001 ;AMPLITUDE ENVELOPE | |||
aenv = aenv-0.001 | |||
;FILTER AND FILTER ENVELOPE | |||
kFEnv linsegr 0,i(gkFAtt)+0.001,1,i(gkFDec)+0.001,i(gkFSus),i(gkFRel)+0.001,0 | |||
kFEnv = kFEnv * gkFEnvAmt | |||
;FILTER LFO | |||
kdepth linseg 0,i(gkFDel)+0.001,0,i(gkFRis)+0.001,1 ;DEPTH OF MODULATION ENVELOPE | |||
if gkFlfoType==1 then | |||
kFLFO lfo kdepth*gkFDep,gkFRte,0 ;LFO (sine) | |||
elseif gkFlfoType==2 then | |||
kFLFO jspline kdepth*gkFDep,gkFRte,gkFRte | |||
elseif gkFlfoType==3 then | |||
kFLFO randomh -kdepth*gkFDep,kdepth*gkFDep,gkFRte | |||
kFLFO port kFLFO,0.004 ;smooth out the clicks | |||
else | |||
kFLFO lfo kdepth*gkFDep,gkFRte,2 ;LFO (bi-square) | |||
kFLFO port kFLFO,0.004 ;smooth out the clicks | |||
endif | |||
kCFoct limit 4+kFEnv+gkcfoct+kFLFO,4,14 | |||
kCF = cpsoct(kCFoct) | |||
if i(gkwaveform)==6 then | |||
giwavemap = giwavemapClar | |||
gitabs4morf = gitabs4morfClar | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==7 then | |||
giwavemap = giwavemapBClar | |||
gitabs4morf = gitabs4morfBClar | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==8 then | |||
giwavemap = giwavemapCBClar | |||
gitabs4morf = gitabs4morfCBClar | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==9 then | |||
giwavemap = giwavemapOboe | |||
gitabs4morf = gitabs4morfOboe | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==10 then | |||
giwavemap = giwavemapBassoon | |||
gitabs4morf = gitabs4morfBassoon | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==11 then | |||
giwavemap = giwavemapCBassoon | |||
gitabs4morf = gitabs4morfCBassoon | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==12 then | |||
giwavemap = giwavemapViolin | |||
gitabs4morf = gitabs4morfViolin | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==13 then | |||
giwavemap = giwavemapCello | |||
gitabs4morf = gitabs4morfCello | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==14 then | |||
giwavemap = giwavemapPiccolo | |||
gitabs4morf = gitabs4morfPiccolo | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==15 then | |||
giwavemap = giwavemapFlute | |||
gitabs4morf = gitabs4morfFlute | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==16 then | |||
giwavemap = giwavemapAFlute | |||
gitabs4morf = gitabs4morfAFlute | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==17 then | |||
giwavemap = giwavemapBFlute | |||
gitabs4morf = gitabs4morfBFlute | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==18 then | |||
giwavemap = giwavemapAhh | |||
gitabs4morf = gitabs4morfAhh | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==19 then | |||
giwavemap = giwavemapHornP | |||
gitabs4morf = gitabs4morfHornP | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==20 then | |||
giwavemap = giwavemapHornF | |||
gitabs4morf = gitabs4morfHornF | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==21 then | |||
giwavemap = giwavemapharmon | |||
gitabs4morf = gitabs4morfharmon | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==22 then | |||
giwavemap = giwavemapMute1 | |||
gitabs4morf = gitabs4morfMute1 | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
elseif i(gkwaveform)==23 then | |||
giwavemap = giwavemapUnmuted | |||
gitabs4morf = gitabs4morfUnmuted | |||
imorphtab ftgentmp 0,0,4096,10,1 | |||
kndx limit knum+gkWTableShift,0,127 | |||
kftndx tablei kndx,giwavemap ;ftndx REMAPPED ACCORDING TO THE WAVETABLE MAP FOR THIS INSTRUMENT | |||
ftmorf kftndx, gitabs4morf, imorphtab ;CREATE THE MORPHED TABLE ACCORDING TO THE VALUE OF THE FUNCTION TABLE INDEX CREATED ABOVE | |||
kwave = imorphtab | |||
else | |||
kwave = gisaw+gkwaveform-1 ;DERIVE FUNCTION TABLE NUMBER OF WAVEFORM FOR THE OSCILLATORS | |||
endif | |||
ktrig changed gkNOscs,gkmono ;IF ANY OF THE CONTROLS WHICH MUST BE ENTERED AS I-RATE CONTROLLERS HAVE CHANGED GENERATE A TRIGGER IMPULSE AT THE OUTPUT | |||
if ktrig==1 then ;IF ANY I-RATE CONTROL HAS CHANGED... | |||
reinit UPDATE ;BEGIN A RE-INITILISATION PASS FROM LABEL 'UPDATE' | |||
endif | |||
UPDATE: ;BEGIN REINIT PASS FROM HERE | |||
kmvt jspline gkmvt,gkmvt,gkmvt | |||
kcps = cpsmidinn(knum) | |||
if i(gkmono)==1 then | |||
;OUTPUT OPCODE CPS | AMD | FMD | PMD | OVERLAPS | SEED | L1MINF | L1MAXF | L2MINF | L2MAXF | LFOMODE | EQMINF | EQMAXF | EQMINL | EQMAXL | EQMINQ | EQMAXQ | EQMODE | KFN | L1FN | L2FN | EQFFN | EQLF | EQQFN | TABL | OUTFN | |||
aL oscbnk kcps, 0, gkfmd*kcps, 0, i(gkNOscs), rnd(1), 0, kmvt, 0, 0, 238, 0, 8000, 1, 1, 1, 1, -1, kwave, gicos, gicos, gieqffn, gieqlfn, gieqqfn | |||
aR = aL | |||
else | |||
;TWO ITERATIONS OF oscbnk ARE CREATED, ONE FOR EACH OF THE STEREO AUDIO CHANNELS. THE OUTPUTS WILL BE DIFFERENT AS THE RANDOM NUMBER GENERATORS WILL BE SEEDED BY THE SYSTEM CLOCK | |||
;OUTPUT OPCODE CPS | AMD | FMD | PMD | OVERLAPS | SEED | L1MINF | L1MAXF | L2MINF | L2MAXF | LFOMODE | EQMINF | EQMAXF | EQMINL | EQMAXL | EQMINQ | EQMAXQ | EQMODE | KFN | L1FN | L2FN | EQFFN | EQLF | EQQFN | TABL | OUTFN | |||
aL oscbnk kcps, 0, gkfmd*kcps, 0, i(gkNOscs), rnd(1), 0, kmvt, 0, 0, 238, 0, 8000, 1, 1, 1, 1, -1, kwave, gicos, gicos, gieqffn, gieqlfn, gieqqfn | |||
aR oscbnk kcps, 0, gkfmd*kcps, 0, i(gkNOscs), rnd(1), 0, -kmvt, 0, 0, 238, 0, 8000, 1, 1, 1, 1, -1, kwave, gicos, gicos, gieqffn, gieqlfn, gieqqfn | |||
aL ntrpol (aL+aR)*0.66,aL,gkwidth | |||
aR ntrpol (aL+aR)*0.66,aR,gkwidth | |||
endif | |||
rireturn ;RETURN FROM REINIT PASS | |||
;aL clfilt aL, kCF,0,2 | |||
;aR clfilt aR, kCF,0,2 | |||
ktrig changed gkFiltLayers | |||
if ktrig=1 then | |||
reinit RESTART_TONEX | |||
endif | |||
RESTART_TONEX: | |||
aL tonex aL, kCF,i(gkFiltLayers) | |||
aR tonex aR, kCF,i(gkFiltLayers) | |||
rireturn | |||
aL = aL*aenv*gkamp*p5 | |||
aR = aR*aenv*gkamp*p5 | |||
outs aL, aR ;SEND AUDIO TO THE OUTPUTS. RESCALE EACH CHANNEL WITH NOTE VELOCITY, AMPLITUDE ENVELOPE AND AMP CONTROL WIDGET. | |||
gasendL = gasendL+(aL*gkRvbMix) | |||
gasendR = gasendR+(aR*gkRvbMix) | |||
endin | |||
instr 4 ;reverb | |||
gkRvbSize chnget "RvbSize" | |||
if gkRvbMix==0 goto SKIP_REVERB | |||
aL,aR reverbsc gasendL,gasendR,gkRvbSize,12000 | |||
outs aL,aR | |||
SKIP_REVERB: | |||
clear gasendL,gasendR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i "ReadWidgets" 0 [3600*24*7] | |||
i 4 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,100 @@ | |||
<Cabbage> | |||
form caption("Envelope Follower") size(440, 100), pluginID("envf") | |||
image pos(0, 0), size(440, 100), colour("brown"), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds(15, 70, 15, 15), channel("lev1"), value(0), colour(200,220,0,255),shape("ellipse") | |||
checkbox bounds(15, 55, 15, 15), channel("lev2"), value(0), colour(250,190,0,255),shape("ellipse") | |||
checkbox bounds(15, 40, 15, 15), channel("lev3"), value(0), colour(255,120,0,255),shape("ellipse") | |||
checkbox bounds(15, 25, 15, 15), channel("lev4"), value(0), colour(255, 60,0,255),shape("ellipse") | |||
checkbox bounds(15, 10, 15, 15), channel("lev5"), value(0), colour(255, 0,0,255),shape("ellipse") | |||
rslider bounds( 40, 11, 75, 75), text("Sensitivity"), channel("sens"), range(0, 1, 0.65), colour(255,100,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(110, 6, 45, 45), text("Att."), channel("att"), range(0.001, 0.5, 0.01, 0.5, 0.001), colour(255,200,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(110, 51, 45, 45), text("Dec."), channel("rel"), range(0.001, 0.5, 0.2, 0.5, 0.001), colour(255,200,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(150, 11, 75, 75), text("Frequency"), channel("freq"), range(10, 10000, 1000, 0.5), colour(255,100,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(220, 11, 75, 75), text("Resonance"), channel("res"), range(0, 1, 0.75), colour(255,100,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(290, 11, 75, 75), text("Distortion"), channel("dist"), range(0, 1.00, 0), colour(255,100,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
rslider bounds(360, 11, 75, 75), text("Level"), channel("level"), range(0, 1.00, 1), colour(255,200,100), fontcolour(255,255,200), trackercolour(255,255,150) | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
opcode EnvelopeFollower,a,akkkkkk | |||
ain,ksens,katt,krel,kfreq,kres,kdist xin ;READ IN INPUT ARGUMENTS | |||
setksmps 4 | |||
; ATTCK.REL. - ADJUST THE RESPONSE OF THE ENVELOPE FOLLOWER HERE | |||
aFollow follow2 ain, katt, krel ;AMPLITUDE FOLLOWING AUDIO SIGNAL | |||
kFollow downsamp aFollow ;DOWNSAMPLE TO K-RATE | |||
kFollow expcurve kFollow/0dbfs,0.5 ;ADJUSTMENT OF THE RESPONSE OF DYNAMICS TO FILTER FREQUENCY MODULATION | |||
kFrq = kfreq + (kFollow*ksens*10000) ;CREATE A LEFT CHANNEL MODULATING FREQUENCY BASE ON THE STATIC VALUE CREATED BY kfreq AND THE AMOUNT OF DYNAMIC ENVELOPE FOLLOWING GOVERNED BY ksens | |||
kFrq limit kFrq, 20,sr/2 ;LIMIT FREQUENCY RANGE TO PREVENT OUT OF RANGE FREQUENCIES | |||
aout lpf18 ain, kFrq, kres, kdist ;REDEFINE AUDIO SIGNAL AS FILTERED VERSION OF ITSELF | |||
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
opcode SwitchPort, k, kii | |||
kin,iupport,idnport xin | |||
kold init 0 | |||
kporttime = (kin<kold?idnport:iupport) | |||
kout portk kin, kporttime | |||
kold = kout | |||
xout kout | |||
endop | |||
instr 1 | |||
ksens chnget "sens" | |||
katt chnget "att" | |||
krel chnget "rel" | |||
kfreq chnget "freq" | |||
kres chnget "res" | |||
kdist chnget "dist" | |||
klevel chnget "level" | |||
a1,a2 ins | |||
;a1,a2 diskin2 "808loop.wav",1,0,1 | |||
;a1 = a1*0.4 | |||
;a2 = a2*0.4 | |||
/*level meter*/ | |||
amix sum a1,a2 | |||
krms rms amix*0.5 | |||
krms pow krms,0.75 | |||
krms SwitchPort krms,0.01,0.2 | |||
kon = 1 | |||
koff = 0 | |||
#define INDICATOR(LEV'N) | |||
# | |||
kOnTrig trigger krms,$LEV^1.5,0 | |||
kOffTrig trigger krms,$LEV^1.5,1 | |||
if kOnTrig==1 then | |||
chnset kon,"lev$N" | |||
elseif kOffTrig==1 then | |||
chnset koff,"lev$N" | |||
endif | |||
# | |||
$INDICATOR(1/6'1) | |||
$INDICATOR(2/6'2) | |||
$INDICATOR(3/6'3) | |||
$INDICATOR(4/6'4) | |||
$INDICATOR(5/6'5) | |||
a1 EnvelopeFollower a1,ksens,katt,krel,kfreq,kres*0.95,kdist*100 | |||
a2 EnvelopeFollower a2,ksens,katt,krel,kfreq,kres*0.95,kdist*100 | |||
a1 = a1 * klevel * (1 - ((kdist*0.3)^0.02)) ;scale amplitude according to distortion level (to compensate for gain increases it applies) | |||
a2 = a2 * klevel * (1 - ((kdist*0.3)^0.02)) | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,263 @@ | |||
; FrequencyShifter.csd | |||
; Iain McCurdy, 2013. | |||
; | |||
; Frequency shifting using the hilbert filter | |||
; | |||
; CONTROLS | |||
; -------- | |||
; Input -- Choose audio input: Live, sine tone or pink noise | |||
; Polarity -- 3 options: 'Positive' = multiply 'Freq.' by 1, 'Negative' = multiply 'Freq.' by -1, 'Dual' = sum of 'Positive' and 'Negative' outputs | |||
; Mix -- Dry/Wet mix control | |||
; Freq. -- Principle frequency of the shifting frequency (before modulation by other controls) | |||
; Mult. -- multipler of shifting frequency. Can be useful for finer control of shifting frequency around zero. | |||
; Feedback -- Amount of frequency shifter that is fed back into its input | |||
; Level -- Output level | |||
; Dual Mono / Stereo -- 'Dual Mono' = both channels treated in the same way. 'Stereo' = right channel 180 degrees out of phase with respect to the left | |||
; Stereo mode most apparent if shifting frequency is close to zero | |||
; zero freq -- set 'Freq.' to zero | |||
; [LFO~] | |||
; Modulate Frequency -- Switch to activate LFO modulation of shifting frequency | |||
; Shape -- Shape of the LFO: sine / triangle / square / random sample and hold / random splines | |||
; Rate -- Rate of LFO (in hertz) | |||
; Min -- Minimum frequency of the LFO modulation | |||
; Max -- Maximum frequency of the LFO modulation | |||
; Pan Mod -- Amount of panning modulation (strictly speaking, stereo balance modulation). Rate of modulation governed also by 'Rate' | |||
; Sync LFO -- Restart LFO. Can be useful if 'random spline' modulation becomes 'stuck' at a low frequency | |||
<Cabbage> | |||
form caption("Frequency Shifter (time domain)") size(500,180), pluginID("fshi") | |||
image bounds( 0, 0, 500,180), colour("darkslategrey"), outline("silver"), line(6), shape("rounded") | |||
label bounds(22, 7, 60, 11), text("INPUT"), fontcolour("white") | |||
combobox bounds(10, 18, 65, 20), channel("input"), value(1), text("Live","Tone","Noise") | |||
label bounds(14, 42, 60, 11), text("POLARITY"), fontcolour("white") | |||
combobox bounds(10, 53, 65, 20), channel("polarity"), value(1), text("Positive","Negative","Dual") | |||
rslider bounds( 75, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.5), colour("darkslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds(145, 10, 70, 70), text("Freq."), channel("freq"), range(-4000, 4000, -50), colour("darkslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds(215, 10, 70, 70), text("Mult."), channel("mult"), range(-1, 1.00, 0.1), colour("darkslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds(285, 10, 70, 70), text("Feedback"), channel("fback"), range(0, 0.75, 0.6), colour("darkslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds(355, 10, 70, 70), text("Level"), channel("level"), range(0, 1.00, 1), colour("darkslategrey"), fontcolour("white), trackercolour("yellow") | |||
checkbox bounds(425, 20, 12, 12), channel("r1") fontcolour("white") colour(yellow) value(1) | |||
checkbox bounds(425, 32, 12, 12), channel("r2") fontcolour("white") colour(yellow) | |||
label bounds(438, 21, 60, 9), text("DUAL MONO"), fontcolour("white") | |||
label bounds(438, 33, 60, 9), text("STEREO"), fontcolour("white") | |||
button bounds(425, 50, 65, 20), colour("Green"), text("Zero Freq", "Zero Freq"), channel("Zerofreq"), value(0) | |||
line bounds( 10, 90, 480, 2), colour("Grey") | |||
checkbox bounds( 10,100,150, 20), channel("ModOnOff") text("LFO Modulate Freq."), fontcolour("white") colour(lime) value(0) | |||
label bounds( 30,127, 75, 11), text("SHAPE"), fontcolour("white") | |||
combobox bounds( 10,138, 85, 20), channel("LFOShape"), value(7), text("Sine","Triangle","Square","Saw Up","Saw Down","Rand.S&H","Rand.Spline") | |||
rslider bounds( 145,100, 70, 70), text("Rate"), channel("LFORate"), range(0, 30, 1.5, 0.5, 0.001), colour("lightslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds( 215,100, 70, 70), text("Min"), channel("LFOMin"), range(-2000, 2000, -600), colour("lightslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds( 285,100, 70, 70), text("Max"), channel("LFOMax"), range(-2000, 2000, 600), colour("lightslategrey"), fontcolour("white), trackercolour("yellow") | |||
rslider bounds( 355,100, 70, 70), text("Pan Mod."), channel("PanSpread"),range(0, 1.00, 1), colour("lightslategrey"), fontcolour("white), trackercolour("yellow") | |||
button bounds(425,100, 65, 20), colour("Green"), text("Sync LFO", "Sync LFO"), channel("SyncLFO"), value(0) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Iain McCurdy, 2012 | |||
;http://iainmccurdy.org/csound.html | |||
;Frequency shifter effect based around the hilbert filter. | |||
gisine ftgen 0,0,4096,10,1 ;A SINE WAVE SHAPE | |||
gicos ftgen 0,0,4096,11,1 ;A COSINE WAVE SHAPE | |||
gishapes ftgen 0,0,8,-2,0,1,2,4,5 | |||
opcode FreqShifter,a,akkkki | |||
adry,kmix,kfreq,kmult,kfback,ifn xin ;READ IN INPUT ARGUMENTS | |||
iWet ftgenonce 0,0,1024,-7,0,512,1,512,1 ;RESCALING FUNCTION FOR WET LEVEL CONTROL | |||
iDry ftgenonce 0,0,1024,-7,1,512,1,512,0 ;RESCALING FUNCTION FOR DRY LEVEL CONTROL | |||
kWet table kmix, iWet, 1 ;RESCALE WET LEVEL CONTROL ACCORDING TO FUNCTION TABLE giWet | |||
kDry table kmix, iDry, 1 ;RESCALE DRY LEVEL CONTROL ACCORDING TO FUNCTION TABLE giWet | |||
aFS init 0 ;INITILISE FEEDBACK SIGNAL (FOR FIRST K-PASS) | |||
ain = adry + (aFS * kfback) ;ADD FEEDBACK SIGNAL TO INPUT (AMOUNT OF FEEDBACK CONTROLLED BY 'Feedback Gain' SLIDER) | |||
areal, aimag hilbert ain ;HILBERT OPCODE OUTPUTS TWO PHASE SHIFTED SIGNALS, EACH 90 OUT OF PHASE WITH EACH OTHER | |||
kfshift = kfreq*kmult | |||
;QUADRATURE OSCILLATORS. I.E. 90 OUT OF PHASE WITH RESPECT TO EACH OTHER | |||
;OUTUTS OPCODE AMPLITUDE | FREQ. | FUNCTION_TABLE | INITIAL_PHASE (OPTIONAL;DEFAULTS TO ZERO) | |||
asin oscili 1, kfshift, ifn, 0 | |||
acos oscili 1, kfshift, ifn, 0.25 | |||
;RING MODULATE EACH SIGNAL USING THE QUADRATURE OSCILLATORS AS MODULATORS | |||
amod1 = areal * acos | |||
amod2 = aimag * asin | |||
;UPSHIFTING OUTPUT | |||
aFS = (amod1 - amod2) | |||
aout sum aFS*kWet, adry*kDry ;CREATE WET/DRY MIX | |||
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
opcode CabbageRadio2,k,SS ; change opcode name and number is string variable inputs | |||
S1,S2 xin ; add string inputs for the required number of inputs | |||
kon = 0 | |||
koff = 0 | |||
ksum = 0 | |||
ktrigsum = 0 | |||
#define READ_CHANGES(NAME) # | |||
k$NAME chnget $NAME | |||
ksum = ksum + k$NAME | |||
kon$NAME trigger k$NAME,0.5,0 | |||
ktrigsum = ktrigsum + kon$NAME# | |||
#define WRITE_CHANGES(NAME'COUNT) # | |||
if kon$NAME!=1 then | |||
chnset koff,$NAME | |||
else | |||
kval = $COUNT | |||
endif# | |||
$READ_CHANGES(S1) | |||
$READ_CHANGES(S2) ; add macro expansions for the required number of radio buttons | |||
if ktrigsum>0 then | |||
$WRITE_CHANGES(S1'1) | |||
$WRITE_CHANGES(S2'2) ; add macro expansions for the required number of radio buttons | |||
endif | |||
kval = (ksum=0?0:kval) | |||
xout kval | |||
endop | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 | |||
koff = 0 | |||
kmix chnget "mix" ; read input widgets | |||
kfreq chnget "freq" | |||
kfreq portk kfreq,kporttime | |||
kmult chnget "mult" | |||
kmult portk kmult,kporttime | |||
kfback chnget "fback" | |||
klevel chnget "level" | |||
kpolarity chnget "polarity" | |||
kStereoMode CabbageRadio2 "r1","r2" ; call UDO | |||
kZeroFreq chnget "Zerofreq" | |||
ktrig changed kZeroFreq | |||
if ktrig=1 then | |||
chnset koff,"freq" | |||
endif | |||
kModOnOff chnget "ModOnOff" | |||
kLFOShape chnget "LFOShape" | |||
kLFORate chnget "LFORate" | |||
kLFOMin chnget "LFOMin" | |||
kLFOMax chnget "LFOMax" | |||
kPanSpread chnget "PanSpread" | |||
kSyncLFO chnget "SyncLFO" | |||
/* INPUT */ | |||
kinput chnget "input" | |||
if kinput=1 then | |||
a1,a2 ins | |||
elseif kinput=2 then | |||
a1 oscils 0.2, 300, 0 | |||
a2 = a1 | |||
else | |||
a1 pinkish 0.2 | |||
a2 pinkish 0.2 | |||
endif | |||
/* LFO */ | |||
if kModOnOff=1 then | |||
ktrig changed kLFOShape,kSyncLFO | |||
if ktrig=1 then | |||
reinit RESTART_LFO | |||
endif | |||
RESTART_LFO: | |||
if i(kLFOShape)=6 then | |||
kLFOFreq randomh kLFOMin,kLFOMax,kLFORate | |||
elseif i(kLFOShape)=7 then ; random spline | |||
;kLFOFreq randomi kLFOMin,kLFOMax,kLFORate,1 | |||
;kLFOFreq portk kLFOFreq,1/kLFORate | |||
kLFOFreq rspline kLFOMin,kLFOMax,kLFORate,kLFORate*2 | |||
else | |||
ishape table i(kLFOShape)-1,gishapes | |||
kLFOFreq lfo 1,kLFORate,ishape | |||
kLFOFreq scale (kLFOFreq*0.5)+0.5,kLFOMin,kLFOMax | |||
endif | |||
rireturn | |||
endif | |||
kfreq = kfreq+kLFOFreq | |||
/* FREQUENCY SHIFTERS */ | |||
ktrig changed kStereoMode | |||
if ktrig=1 then | |||
reinit RESTART_FREQUENCY_SHIFTERS | |||
endif | |||
RESTART_FREQUENCY_SHIFTERS: | |||
if kpolarity=1 then ; polarity is positive... | |||
a1 FreqShifter a1,kmix,kfreq,kmult,kfback,gisine | |||
if i(kStereoMode)=2 then | |||
a2 FreqShifter a2,kmix,kfreq,kmult,kfback,gicos ; cosine version | |||
else | |||
a2 FreqShifter a2,kmix,kfreq,kmult,kfback,gisine | |||
endif | |||
elseif kpolarity=2 then ; polarity is negative... | |||
a1 FreqShifter a1,kmix,-kfreq,kmult,kfback,gisine | |||
if i(kStereoMode)=2 then | |||
a2 FreqShifter a2,kmix,-kfreq,kmult,kfback,gicos ; cosine version | |||
else | |||
a2 FreqShifter a2,kmix,-kfreq,kmult,kfback,gisine | |||
endif | |||
else ; polarity is dual... | |||
aa FreqShifter a1,kmix,kfreq,kmult,kfback,gisine ; positive | |||
if i(kStereoMode)=2 then | |||
ab FreqShifter a2,kmix,kfreq,kmult,kfback,gicos ; cosine version | |||
else | |||
ab FreqShifter a2,kmix,kfreq,kmult,kfback,gisine | |||
endif | |||
ac FreqShifter a1,kmix,-kfreq,kmult,kfback,gisine ; negative | |||
if i(kStereoMode)=2 then | |||
ad FreqShifter a2,kmix,-kfreq,kmult,kfback,gicos ; cosine version | |||
else | |||
ad FreqShifter a2,kmix,-kfreq,kmult,kfback,gisine | |||
endif | |||
rireturn | |||
a1 = (aa+ac)*0.5 ; sum positive and negative and attenuate | |||
a2 = (ab+ad)*0.5 | |||
endif | |||
/* PANNING */ | |||
if kModOnOff=1 then | |||
kpan randomi 0.5-(kPanSpread*0.5),0.5+(kPanSpread*0.5),kLFORate,1 | |||
kpan portk kpan,1/kLFORate | |||
a1 = a1 * sin(kpan*$M_PI_2) | |||
a2 = a2 * cos(kpan*$M_PI_2) | |||
;a1 = a1*kpan | |||
;a2 = a2*(1-kpan) | |||
endif | |||
a1 = a1 * klevel ; scale using level control | |||
a2 = a2 * klevel | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,57 @@ | |||
<Cabbage> | |||
form size(230, 120), caption("Lo Fi"), pluginID("lofi") | |||
image pos(-40,-10), size(300,300), colour(0, 130,230,0), shape("ellipse"), outline(200, 30,100, 80), line(70) | |||
image pos( 0, 0), size(300,300), colour(200, 30, 30,0), shape("ellipse"), outline( 0,130, 30, 80), line(70) | |||
image pos( 40, 10), size(300,300), colour(250, 0, 30,0), shape("ellipse"), outline( 0, 0, 30, 50), line(70) | |||
image pos( 80, 20), size(300,300), colour( 0, 0,255,0), shape("ellipse"), outline( 0, 0,255, 50), line(70) | |||
image pos(120, 30), size(300,300), colour( 0,255,255,0), shape("ellipse"), outline( 0,255,255, 50), line(70) | |||
image pos(160, 40), size(300,300), colour(255,255, 0,0), shape("ellipse"), outline(255,255, 0, 50), line(70) | |||
image pos(0, 0), size(230, 120), colour("Chocolate"), shape("rounded"), outline("white"), line(5) | |||
rslider bounds( 5, 31, 80, 80), text("Bits"), channel("bits"), range(1, 16, 16), fontcolour("White"),colour("orange"), trackercolour("brown") | |||
rslider bounds( 75, 7, 80, 80), text("Foldover"), channel("fold"), range(1, 1024, 0, 0.25), fontcolour("White"),colour("orange"), trackercolour("brown") | |||
rslider bounds(145, 31, 80, 80), text("Level"), channel("level"), range(0, 1.00, 1), fontcolour("White"),colour("orange"), trackercolour("brown") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Iain McCurdy, 2012 | |||
;http://iainmccurdy.org/csound.html | |||
opcode LoFi,a,akk | |||
ain,kbits,kfold xin ;READ IN INPUT ARGUMENTS | |||
kvalues pow 2, kbits ;RAISES 2 TO THE POWER OF kbitdepth. THE OUTPUT VALUE REPRESENTS THE NUMBER OF POSSIBLE VALUES AT THAT PARTICULAR BIT DEPTH | |||
aout = (int((ain/0dbfs)*kvalues))/kvalues ;BIT DEPTH REDUCE AUDIO SIGNAL | |||
aout fold aout, kfold ;APPLY SAMPLING RATE FOLDOVER | |||
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 | |||
kbits chnget "bits" | |||
kfold chnget "fold" | |||
klevel chnget "level" | |||
a1,a2 ins | |||
kporttime linseg 0,0.001,0.01 | |||
kfold portk kfold,kporttime | |||
a1 LoFi a1,kbits*0.6,kfold | |||
a2 LoFi a2,kbits*0.6,kfold | |||
a1 = a1 * klevel | |||
a2 = a2 * klevel | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,121 @@ | |||
<Cabbage> | |||
form caption("Phaser") size(580, 90), pluginID("phsr") | |||
image bounds(0, 0, 580, 90), colour( 100, 110, 130), shape("rounded"), outline(black), line(4) | |||
label bounds(29, 8, 60, 10), text("INPUT"), fontcolour(0,10,30) | |||
combobox bounds(10, 18, 70, 20), channel("input"), value(1), text("Live","Tone","Noise") | |||
label bounds(19, 43, 60, 10), text("LFO SHAPE"), fontcolour(0,10,30) | |||
combobox bounds(10, 53, 70, 20), channel("shape"), value(1), text("Triangle","Sine","Square","Saw","Saw","Rand.Int","Rand.S&H") | |||
rslider bounds( 85, 10, 70, 70), text("Rate"), channel("rate"), range(0,14.00,0.5,0.5, 0.0001), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200), midiCtrl(1,1) | |||
rslider bounds(155, 10, 70, 70), text("Depth"), channel("depth"), range(0, 1.00, 0.5, 1, .01), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
rslider bounds(225, 10, 70, 70), text("Freq."), channel("freq"), range(0, 1.00, 0.4, 1, .01), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
rslider bounds(295, 10, 70, 70), text("Feedback"), channel("fback"), range(0, 1.00, 0.4, 1, .01), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
rslider bounds(365, 10, 70, 70), text("Stages"), channel("stages"), range(1, 64,8, 1, 1), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
rslider bounds(435, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00,0.5, 1, .01), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
rslider bounds(505, 10, 70, 70), text("Level"), channel("level"), range(0, 1.00, 1, 1, .01), colour(100,100,110), fontcolour(0,10,30), trackercolour(255,255,200) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
opcode Phaser,a,akkkKki | |||
ain,krate,kdepth,kfreq,kstages,kfback,ishape xin ;READ IN INPUT ARGUMENTS | |||
if ishape=1 then | |||
klfo lfo kdepth*0.5, krate, 1 ;LFO FOR THE PHASER (TRIANGULAR SHAPE) | |||
elseif ishape=2 then | |||
klfo lfo kdepth*0.5, krate, 0 ;LFO FOR THE PHASER (SINE SHAPE) | |||
elseif ishape=3 then | |||
klfo lfo kdepth*0.5, krate, 2 ;LFO FOR THE PHASER (SQUARE SHAPE) | |||
elseif ishape=4 then | |||
klfo lfo kdepth*0.5, krate, 4 ;LFO FOR THE PHASER (SAWTOOTH) | |||
elseif ishape=5 then | |||
klfo lfo kdepth*0.5, krate, 5 ;LFO FOR THE PHASER (SAWTOOTH) | |||
elseif ishape=6 then | |||
klfo randomi -kdepth*0.5, kdepth*0.5, krate*8 ;LFO FOR THE PHASER (RANDOMI SHAPE) | |||
klfo portk klfo, 1/(krate*8) ;SMOOTH CHANGES OF DIRECTION | |||
elseif ishape=7 then | |||
klfo randomh -kdepth*0.5, kdepth*0.5, krate ;LFO FOR THE PHASER (RANDOMH SHAPE) | |||
endif | |||
aout phaser1 ain, cpsoct((klfo+(kdepth*0.5)+kfreq)), kstages, kfback ;PHASER1 IS APPLIED TO THE INPUT AUDIO | |||
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
opcode PhaserSt,aa,aakkkKki | |||
ainL,ainR,krate,kdepth,kfreq,kstages,kfback,ishape xin ;READ IN INPUT ARGUMENTS | |||
if ishape=1 then | |||
klfo lfo kdepth*0.5, krate, 1 ;LFO FOR THE PHASER (TRIANGULAR SHAPE) | |||
elseif ishape=2 then | |||
klfo lfo kdepth*0.5, krate, 0 ;LFO FOR THE PHASER (SINE SHAPE) | |||
elseif ishape=3 then | |||
klfo lfo kdepth*0.5, krate, 2 ;LFO FOR THE PHASER (SQUARE SHAPE) | |||
elseif ishape=4 then | |||
klfo lfo kdepth*0.5, krate, 4 ;LFO FOR THE PHASER (SAWTOOTH) | |||
elseif ishape=5 then | |||
klfo lfo kdepth*0.5, krate, 5 ;LFO FOR THE PHASER (SAWTOOTH) | |||
elseif ishape=6 then | |||
klfo randomi -kdepth*0.5, kdepth*0.5, krate*8 ;LFO FOR THE PHASER (RANDOMI SHAPE) | |||
klfo portk klfo, 1/(krate*8) ;SMOOTH CHANGES OF DIRECTION | |||
elseif ishape=7 then | |||
klfo randomh -kdepth*0.5, kdepth*0.5, krate ;LFO FOR THE PHASER (RANDOMH SHAPE) | |||
endif | |||
aoutL phaser1 ainL, cpsoct((klfo+(kdepth*0.5)+kfreq)), kstages, kfback ;PHASER1 IS APPLIED TO THE INPUT AUDIO | |||
aoutR phaser1 ainR, cpsoct((klfo+(kdepth*0.5)+kfreq)), kstages, kfback ;PHASER1 IS APPLIED TO THE INPUT AUDIO | |||
xout aoutL,aoutR ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 | |||
krate chnget "rate" | |||
kdepth chnget "depth" | |||
kfreq chnget "freq" | |||
kfback chnget "fback" | |||
kstages chnget "stages" | |||
klevel chnget "level" | |||
kmix chnget "mix" | |||
kshape chnget "shape" | |||
kshape init 1 | |||
/* INPUT */ | |||
kinput chnget "input" | |||
if kinput=1 then | |||
a1,a2 ins | |||
elseif kinput=2 then | |||
a1 vco2 0.1,200 | |||
a2 = a1 | |||
else | |||
a1 pinkish 0.1 | |||
a2 pinkish 0.1 | |||
endif | |||
ktrig changed kshape,kstages ; reinitialise for i-rate parms | |||
if ktrig=1 then | |||
reinit RESTART_PHASER | |||
endif | |||
RESTART_PHASER: | |||
;aPhs1 Phaser a1,krate,kdepth*8,(kfreq*5)+6,kstages,kfback*0.9,i(kshape) ; call UDO | |||
;aPhs2 Phaser a2,krate,kdepth*8,(kfreq*5)+6,kstages,kfback*0.9,i(kshape) | |||
aPhs1,aPhs2 PhaserSt a1,a2,krate,kdepth*8,(kfreq*5)+6,kstages,kfback*0.9,i(kshape) ; use stereo version to ensure lfo sync for random lfos | |||
rireturn | |||
a1 ntrpol a1,aPhs1,kmix ; wet/dry mix | |||
a2 ntrpol a2,aPhs2,kmix | |||
outs a1* klevel, a2* klevel | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,59 @@ | |||
<Cabbage> | |||
form caption("Ping Pong Delay") size(350, 90), pluginID("ppdl") | |||
image bounds(0, 0,350, 90), colour("Maroon"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Time"), channel("time"), range(0.001, 10, 0.4, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver) | |||
rslider bounds(75, 11, 70, 70), text("Cutoff"), channel("cutoff"), range(20,20000,20000,0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver) | |||
rslider bounds(140, 11, 70, 70), text("Feedback"), channel("feedback"), range(0, 1.00, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver) | |||
rslider bounds(205, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver) | |||
rslider bounds(270, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
instr 1 | |||
ktime chnget "time" ;READ WIDGETS... | |||
kcutoff chnget "cutoff" ; | |||
kfeedback chnget "feedback" ; | |||
kmix chnget "mix" ; | |||
klevel chnget "level" ; | |||
asigL, asigR ins | |||
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME | |||
ktime portk ktime,kporttime ;PORTAMENTO SMOOTHING OF DELAT TIME | |||
atime interp ktime ;INTERPOLATED A-RATE VERSION OF DELAY TIME | |||
aL_OS vdelay asigL,(atime*1000)/2,(10*1000)/2 ;DELAYED OFFSET OF LEFT CHANNEL (FIRST 'PING') | |||
;LEFT CHANNEL | |||
abuf delayr 10 ;ESTABLISH DELAY BUFFER | |||
aDelL deltapi atime ;TAP BUFFER | |||
aDelL tone aDelL,kcutoff ;LOWPASS FILTER DELAY TAP | |||
delayw aL_OS+(aDelL*kfeedback) ;WRITE INPUT AUDIO INTO BUFFER | |||
;RIGHT CHANNEL | |||
abuf delayr 10 ;ESTABLISH DELAY BUFFER | |||
aDelR deltapi atime ;TAP BUFFER | |||
aDelR tone aDelR,kcutoff ;LOWPASS FILTER DELAY TAP | |||
delayw asigR+(aDelR*kfeedback) ;WRITE INPUT AUDIO INTO BUFFER | |||
amixL ntrpol asigL,aDelL+aL_OS,kmix ;MIX DRY AND WET SIGNALS (LEFT CHANNEL) | |||
amixR ntrpol asigR,aDelR,kmix ;MIX DRY AND WET SIGNALS (RIGHT CHANNEL) | |||
outs amixL*klevel, amixR*klevel ;PING PONG DELAY OUTPUTS ARE SENT OUT | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,94 @@ | |||
; Powershape.csd | |||
; Iain McCurdy 2012 | |||
; | |||
; Encapsulation of the powershape opcode used for wave distortion | |||
; | |||
; CONTROLS | |||
; -------- | |||
; Test Tone -- a glissandoing test tone | |||
; Amount -- amount of distortion | |||
; Level -- output level | |||
<Cabbage> | |||
form caption("Powershape") size(300,107), pluginID("pshp") | |||
image bounds(0, 0,300,107), colour("Brown"), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds(10, 8,130, 12), channel("TestTone"), FontColour("white"), value(0), text("Sine Tone"), colour(yellow) | |||
hslider bounds( 5, 15,290, 40), colour("white"), trackercolour("white"), channel("amount"), range(1, 500, 1, 0.5,0.001) | |||
label bounds(130, 47, 60, 11), text("Amount"), fontcolour("white") | |||
hslider bounds( 5, 55,290, 40), colour("white"), trackercolour("white"), channel("level"), range(0, 50, 0.5, 0.25,0.000001) | |||
label bounds(135, 87, 60, 11), text("Level"), fontcolour("white") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
gisine ftgen 0,0,4096,10,1 ;,0,1/2,0,1/4,0,1/8,0,1/16,0,1/32,0,1/64 | |||
instr 1 | |||
kporttime linseg 0,0.001,0.05 ; portamento time ramps up from zero | |||
gkshape chnget "amount" ; READ WIDGETS... | |||
gkshape portk gkshape,kporttime | |||
gklevel chnget "level" ; | |||
gklevel portk gklevel,kporttime | |||
gklevel portk gklevel,kporttime | |||
gkTestTone chnget "TestTone" | |||
if gkTestTone==1 then ; if test tone selected... | |||
koct rspline 4,8,0.2,0.5 | |||
asigL poscil 1,cpsoct(koct),gisine ; ...generate a tone | |||
asigR = asigL ; right channel equal to left channel | |||
else ; otherwise... | |||
asigL, asigR ins ; read live inputs | |||
endif | |||
ifullscale = 0dbfs ;DEFINE FULLSCALE AMPLITUDE VALUE | |||
aL powershape asigL, gkshape, ifullscale ;CREATE POWERSHAPED SIGNAL | |||
aR powershape asigR, gkshape, ifullscale ;CREATE POWERSHAPED SIGNAL | |||
alevel interp gklevel | |||
outs aL * alevel, aR * alevel ;WAVESET OUTPUT ARE SENT TO THE SPEAKERS | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,71 @@ | |||
<Cabbage> | |||
form caption("Ring Modulator") size(435, 90), pluginID("rmod") | |||
;label bounds(7, 3, 200, 11), text("Iain McCurdy [2013]"), FontColour("grey") | |||
image pos(0, 0), size(435, 90), colour("black"), shape("rounded"), outline("lime"), line(5) | |||
rslider bounds( 5, 12, 70, 70), text("Freq."), channel("freq"), range(0, 15000, 800, 0.25), colour("yellow") | |||
rslider bounds( 75, 12, 70, 70), text("Sine/Sq."), channel("wave"), range(0, 1.00, 0), colour("yellow") | |||
line bounds(150, 2, 3, 86), colour("lime") | |||
rslider bounds(160, 12, 70, 70), text("Env."), channel("env"), range(0, 1.00, 0.5, 0.5), colour("orange") | |||
rslider bounds(230, 6, 40, 40), text("Att."), channel("att"), range(0.001, 0.5, 0.01, 0.5), colour("orange") | |||
rslider bounds(230, 46, 40, 40), text("Dec."), channel("dec"), range(0.001, 0.5, 0.1, 0.5), colour("orange") | |||
line bounds(275, 2, 3, 86), colour("lime") | |||
rslider bounds(290, 12, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), colour("chocolate") | |||
rslider bounds(360, 12, 70, 70), text("Level"), channel("level"), range(0, 1.00, 1), colour("chocolate") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
opcode RingModulator,a,akkkkkk | |||
ain,kmix,kfreq,kwave,kenv,katt,kdec xin ;READ IN INPUT ARGUMENTS | |||
iWet ftgentmp 0,0,1024,-7,0,512,1,512,1 ;RESCALING FUNCTION FOR WET LEVEL CONTROL | |||
iDry ftgentmp 0,0,1024,-7,1,512,1,512,0 ;RESCALING FUNCTION FOR DRY LEVEL CONTROL | |||
isine ftgentmp 0,0,4096,10,1 ;SINE WAVE | |||
kWet table kmix, iWet, 1 ;RESCALE WET LEVEL CONTROL ACCORDING TO FUNCTION TABLE iWet | |||
kDry table kmix, iDry, 1 ;RESCALE DRY LEVEL CONTROL ACCORDING TO FUNCTION TABLE iDry | |||
kporttime linseg 0,0.001,0.02 ;PORTAMENTO VARIABLE | |||
kModFrq portk kfreq, kporttime ;SMOOTH VARIABLE CHANGES | |||
aFollow follow2 ain, katt, kdec ;AMPLITUDE FOLLOWING kModFrq + (cpsoct(kFollow*kenv*30)) ;CREATE A LEFT CHANNEL MODULATING FREQUENCY BASE ON THE STATIC VALUE CREATED BY kfreq AND THE AMOUNT OF DYNAMIC ENVELOPE FOLLOWING GOVERNED BY kenv | |||
kFollow downsamp aFollow | |||
kFollow logcurve kFollow/0dbfs,2 | |||
kModFrq = kModFrq + (kFollow*kenv*8000) ;CREATE A LEFT CHANNEL MODULATING FREQUENCY BASE ON THE STATIC VALUE CREATED BY kfreq AND THE AMOUNT OF DYNAMIC ENVELOPE FOLLOWING GOVERNED BY kenv | |||
aModSi poscil 1, kModFrq, isine ;CREATE RING MODULATING SIGNAL | |||
aModSq vco2 1, kModFrq, 10 ;CREATE RING MODULATING SIGNAL | |||
aMod ntrpol aModSi,aModSq,kwave | |||
aout sum ain*kDry, ain*aMod*kWet ;MIX DRY AND WET SIGNALS | |||
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 | |||
kmix chnget "mix" | |||
kfreq chnget "freq" | |||
kwave chnget "wave" | |||
kenv chnget "env" | |||
katt chnget "att" | |||
kdec chnget "dec" | |||
klevel chnget "level" | |||
a1,a2 ins | |||
;;a1,a2 diskin2 "808loop.wav",1,0,1 | |||
a1 RingModulator a1,kmix,kfreq,kwave,kenv,katt,kdec | |||
a2 RingModulator a2,kmix,kfreq,kwave,kenv,katt,kdec | |||
a1 = a1 * klevel | |||
a2 = a2 * klevel | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,57 @@ | |||
<Cabbage> | |||
form caption("Stereo Chorus") size(305, 100), pluginID("scho") | |||
image bounds(0, 0, 305, 100), colour("DarkSlateGrey"), shape("rounded"), outline("white"), line(6) | |||
rslider bounds( 10, 13, 75, 75), text("Rate"), channel("rate"), range(0.001, 7, 0.5,0.5), fontcolour("white"), colour("DarkSlateGrey"), trackercolour("Silver") | |||
rslider bounds( 80, 13, 75, 75), text("Depth"), channel("depth"), range(0, 1.00, 0.2), fontcolour("white"), colour("DarkSlateGrey"), trackercolour("Silver") | |||
rslider bounds(150, 13, 75, 75), text("Width"), channel("width"), range(0, 1.00, 0.75), fontcolour("white"), colour("DarkSlateGrey"), trackercolour("Silver") | |||
rslider bounds(220, 13, 75, 75), text("Level"), channel("level"), range(0, 1.00, .1), fontcolour("white"), colour("DarkSlateGrey"), trackercolour("Silver") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
opcode StChorus,aa,aakkk | |||
ainL,ainR,krate,kdepth,kwidth xin ;READ IN INPUT ARGUMENTS | |||
ilfoshape ftgentmp 0, 0, 131072, 19, 1, 0.5, 0, 0.5 ;POSITIVE DOMAIN ONLY SINE WAVE | |||
kporttime linseg 0,0.001,0.02 ;RAMPING UP PORTAMENTO VARIABLE | |||
kChoDepth portk kdepth*0.01, kporttime ;SMOOTH VARIABLE CHANGES WITH PORTK | |||
aChoDepth interp kChoDepth ;INTERPOLATE TO CREATE A-RATE VERSION OF K-RATE VARIABLE | |||
amodL osciliktp krate, ilfoshape, 0 ;LEFT CHANNEL LFO | |||
amodR osciliktp krate, ilfoshape, kwidth*0.5 ;THE PHASE OF THE RIGHT CHANNEL LFO IS ADJUSTABLE | |||
amodL = (amodL*aChoDepth)+.01 ;RESCALE AND OFFSET LFO (LEFT CHANNEL) | |||
amodR = (amodR*aChoDepth)+.01 ;RESCALE AND OFFSET LFO (RIGHT CHANNEL) | |||
aChoL vdelay ainL, amodL*1000, 1.2*1000 ;CREATE VARYING DELAYED / CHORUSED SIGNAL (LEFT CHANNEL) | |||
aChoR vdelay ainR, amodR*1000, 1.2*1000 ;CREATE VARYING DELAYED / CHORUSED SIGNAL (RIGHT CHANNEL) | |||
aoutL sum aChoL*0.6, ainL*0.6 ;MIX DRY AND WET SIGNAL (LEFT CHANNEL) | |||
aoutR sum aChoR*0.6, ainR*0.6 ;MIX DRY AND WET SIGNAL (RIGHT CHANNEL) | |||
xout aoutL,aoutR ;SEND AUDIO BACK TO CALLER INSTRUMENT | |||
endop | |||
instr 1 | |||
krate chnget "rate" | |||
kdepth chnget "depth" | |||
kwidth chnget "width" | |||
klevel chnget "level" | |||
a1,a2 ins | |||
a1,a2 StChorus a1,a2,krate,kdepth,kwidth | |||
a1 = a1 * klevel | |||
a2 = a2 * klevel | |||
outs a1,a2 | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,104 @@ | |||
<Cabbage> | |||
form caption("pvscale Pitch Shifter") size(510, 90), pluginID("scal") | |||
image bounds(0, 0, 510, 90), colour("SlateGrey"), outline("silver"), line(4) | |||
image bounds( 6, 23,498, 30), colour("silver"), shape("ellipse"), line(3) | |||
image bounds( 15, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) ; circles around rsliders | |||
image bounds( 85, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) | |||
image bounds(155, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) | |||
image bounds(295, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) | |||
image bounds(365, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) | |||
image bounds(435, 9, 60, 60), colour(30,30,30), shape("ellipse"), line(0) | |||
rslider bounds(10, 10, 70, 70), text("Semitones"), channel("semis"), range(-24, 24, 7, 1, 1), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
rslider bounds(80, 10, 70, 70), text("Cents"), channel("cents"), range(-100, 100, 0, 1, 1), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
rslider bounds(150, 10, 70, 70), text("Feedback"), channel("FB"), range(0.00, 0.99, 0), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
combobox bounds(220, 28, 70,20), channel("FB_mode"), value(0), text("F Sig.", "Audio") | |||
label bounds(220, 54, 70, 12), text("F.back Mode"), FontColour("black") | |||
rslider bounds(290, 10, 70, 70), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
rslider bounds(360, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.5), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
rslider bounds(430, 10, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5, 0.5), fontcolour("black"),colour("DarkSlateGrey"), trackercolour("LightBlue") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Iain McCurdy | |||
;http://iainmccurdy.org/csound.html | |||
;Pitch shifting effect using pvs scale opcode. | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvscale_module,a,akkkkkiiii | |||
ain,kscale,kfeedback,kFB_mode,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
if(kFB_mode==0) then | |||
f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_scale pvscale f_mix, kscale ;RESCALE FREQUENCIES | |||
f_FB pvsgain f_scale, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_scale ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
else | |||
aFB init 0 | |||
f_anal pvsanal ain+aFB, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_scale pvscale f_anal, kscale ;RESCALE FREQUENCIES | |||
aout pvsynth f_scale ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
aFB = aout*kfeedback | |||
endif | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
ainL,ainR ins | |||
;ainL,ainR diskin2 "SynthPad.wav",1,0,1 | |||
kmix chnget "mix" | |||
kFB chnget "FB" | |||
kFB_mode chnget "FB_mode" | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
kfeedback chnget "FB" | |||
ksemis chnget "semis" | |||
kcents chnget "cents" | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
kporttime linseg 0,0.001,0.02 | |||
kscale = semitone(ksemis)*cent(kcents) | |||
aoutL pvscale_module ainL,kscale,kfeedback,kFB_mode,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvscale_module ainR,kscale,kfeedback,kFB_mode,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,90 @@ | |||
pvsmooth | |||
FFT feedback is disabled if amplitude smoothing is increased beyond zero. If this is not done the instrument will fail. | |||
<Cabbage> | |||
form caption("pvSmooth") size(505, 90), pluginID("smoo") | |||
image bounds(0, 0, 505, 90), colour("Cream"), outline("silver"), line(5) | |||
label pos(-5, -30), size(815, 150), fontcolour(210,105, 30, 80), text("smooth"), shape("rounded"), outline("white"), line(4) | |||
rslider bounds( 10, 8, 75, 75), text("Amp.Smooth"), channel("acf"), range(0, 1.00, 0, 0.75, 0.001),fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
rslider bounds( 90, 8, 75, 75), text("Frq.Smooth"), channel("fcf"), range(0, 1.00, 0, 0.5, 0.0001),fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
rslider bounds(170, 8, 75, 75), text("Feedback"), channel("FB"), range(0, 0.999, 0, 1,0.001), fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
rslider bounds(250, 8, 75, 75), text("FFT Size"), channel("att_table"), range(1,10, 5, 1,1), fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
rslider bounds(330, 8, 75, 75), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
rslider bounds(410, 8, 75, 75), text("Level"), channel("lev"), range(0, 1.00, 0.5), fontcolour(138, 54, 15), colour("chocolate"), trackercolour(138, 54, 15) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Iain McCurdy | |||
;http://iainmccurdy.org/csound.html | |||
;Spectral smoothing effect. | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 128, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 256, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 2048,1024, 2048, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes9 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
giFFTattributes10 ftgen 0, 0, 4, -2,16384,4096,16384, 1 | |||
opcode pvsmooth_module,a,akkkkkiiii | |||
ain,kacf,kfcf,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_FB pvsinit iFFTsize,ioverlap,iwinsize,iwintype, 0 ;INITIALISE FEEDBACK FSIG | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_mix pvsmix f_anal, f_FB ;MIX AUDIO INPUT WITH FEEDBACK SIGNAL | |||
f_smooth pvsmooth f_mix, kacf, kfcf ;BLUR AMPLITUDE AND FREQUENCY VALUES OF AN F-SIGNAL | |||
f_FB pvsgain f_smooth, kfeedback ;CREATE FEEDBACK F-SIGNAL FOR NEXT PASS | |||
aout pvsynth f_smooth ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
ainL,ainR ins | |||
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING | |||
;ainL,ainR diskin "SynthPad.wav",1,0,1 ;USE FOR TESTING | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
kfeedback chnget "FB" | |||
kacf chnget "acf" | |||
kfcf chnget "fcf" | |||
kfeedback = (kacf>0?0:kfeedback) ; feedback + amplitude smoothing can cause failure so we must protect against this | |||
kacf = 1-kacf | |||
kfcf = 1-kfcf | |||
kporttime linseg 0,0.001,0.02 | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
aoutL pvsmooth_module ainL,kacf,kfcf,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsmooth_module ainR,kacf,kfcf,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,76 @@ | |||
<Cabbage> | |||
form caption("pvsBlur"), size(235,125) colour( 70, 90,100), pluginID("blur") | |||
image bounds(0, 0,235,125), colour( 70, 90,100), shape("rounded"), outline("white"), line(5) | |||
rslider bounds( 10, 10, 70, 70), text("FFT Size"), channel("att_table"), range(1, 7, 4, 1,1), fontcolour("white"),colour( 70, 90,100),trackercolour("white") | |||
rslider bounds( 80, 10, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white"),colour( 70, 90,100),trackercolour("white") | |||
rslider bounds(150, 10, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5, 0.5), fontcolour("white"),colour( 70, 90,100),trackercolour("white") | |||
hslider bounds( 10, 70,210, 40), channel("blurtime"), range(0, 2.00, 0.0, 0.5, 0.0001), fontcolour("white"),colour( 70, 90,100),trackercolour("white") | |||
label bounds( 92,103, 60, 11), text("Blur Time"), fontcolour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
; Author: Iain McCurdy (2012) | |||
; http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvsblur_module,a,akkkiiii | |||
ain,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
f_anal pvsanal ain, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE AUDIO INPUT SIGNAL AND OUTPUT AN FSIG | |||
f_blur pvsblur f_anal, kblurtime, 2 ;BLUR AMPLITUDE AND FREQUENCY VALUES OF AN F-SIGNAL | |||
aout pvsynth f_blur ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
amix ntrpol ain, aout, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
kblurtime chnget "blurtime" | |||
kmix chnget "mix" | |||
klev chnget "lev" | |||
ainL,ainR ins | |||
;ainL,ainR diskin "808loop.wav",1,0,1 ;USE FOR TESTING | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
kporttime linseg 0,0.001,0.02 | |||
kblurtime portk kblurtime,kporttime | |||
aoutL pvsblur_module ainL,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsblur_module ainR,kblurtime,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutR,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,114 @@ | |||
; pvsBuffer.csd (for Cabbage) | |||
; Writes audio into a circular FFT buffer. | |||
; Read speed can be modified as can the frequencies. | |||
; Take Care! Feedback values above 1 are intended to be used only when transposition if not unison. | |||
<Cabbage> | |||
form caption("pvsBuffer") size(580,90), pluginID("buff") | |||
image bounds(0, 0, 580, 90), colour(100, 80, 80,125), shape("rounded"), outline("white"), line(4) | |||
rslider bounds(10, 11, 70, 70), text("Speed"), channel("speed"), range(0, 4, 1, 0.5, 0.0001), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(80, 11, 70, 70), text("Buf. Size"), channel("buflen"), range(0.10, 8.00, 1, 0.5), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(150, 11, 70, 70), text("Semitones"), channel("semis"), range(-24, 24, 0, 1, 1), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(220, 11, 70, 70), text("Cents"), channel("cents"), range(-100, 100, 0, 1, 1), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(290, 11, 70, 70), text("Feedback"), channel("FB"), range(0, 1.50, 0), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(360, 11, 70, 70), text("FFT Size"), channel("att_table"), range(1, 8, 5, 1,1), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(430, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 1), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
rslider bounds(500, 11, 70, 70), text("Level"), channel("lev"), range(0, 1.00, 0.5), fontcolour("white"), colour(100, 80, 80, 5) trackercolour(silver) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
;Author: Iain McCurdy (2012) | |||
;http://iainmccurdy.org/csound.html | |||
/* FFT attribute tables */ | |||
giFFTattributes1 ftgen 0, 0, 4, -2, 64, 32, 64, 1 | |||
giFFTattributes2 ftgen 0, 0, 4, -2, 128, 64, 128, 1 | |||
giFFTattributes3 ftgen 0, 0, 4, -2, 256, 128, 256, 1 | |||
giFFTattributes4 ftgen 0, 0, 4, -2, 512, 128, 512, 1 | |||
giFFTattributes5 ftgen 0, 0, 4, -2, 1024, 256, 1024, 1 | |||
giFFTattributes6 ftgen 0, 0, 4, -2, 2048, 512, 2048, 1 | |||
giFFTattributes7 ftgen 0, 0, 4, -2, 4096,1024, 4096, 1 | |||
giFFTattributes8 ftgen 0, 0, 4, -2, 8192,2048, 8192, 1 | |||
opcode pvsbuffer_module,a,akkkkkkiiii | |||
ain,kspeed,kbuflen,kscale,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype xin | |||
kPhOffset = 0 | |||
ktrig changed kbuflen | |||
ibuflen init 1 | |||
kspeed init 1 | |||
kscale init 1 | |||
if ktrig==1 then | |||
reinit UPDATE | |||
endif | |||
UPDATE: | |||
ibuflen = i(kbuflen) | |||
iphasor ftgen 0, 0, 65536, 7, 0, 65536, 1 ;WAVE SHAPE FOR A MOVING PHASE POINTER | |||
aread osciliktp kspeed/ibuflen, iphasor, kPhOffset ;CREATE MOVING POINTER TO READ FROM BUFFER | |||
kread downsamp aread | |||
kread = kread * ibuflen ;RESCALE READ POINTER WITH PHASOR RANGE SLIDER | |||
aFB init 0 | |||
f_anal pvsanal ain+aFB, iFFTsize, ioverlap, iwinsize, iwintype ;ANALYSE THE AUDIO SIGNAL THAT WAS CREATED IN INSTRUMENT 1. OUTPUT AN F-SIGNAL. | |||
ibuffer,ktime pvsbuffer f_anal, ibuflen ;BUFFER FSIG | |||
rireturn | |||
khandle init ibuffer ;INITIALISE HANDLE TO BUFFER | |||
f_buf pvsbufread kread , khandle ;READ BUFFER | |||
f_scale pvscale f_buf, kscale ;RESCALE FREQUENCIES | |||
aresyn pvsynth f_scale ;RESYNTHESIZE THE f-SIGNAL AS AN AUDIO SIGNAL | |||
aFB dcblock2 aresyn * kfeedback ;CREATE FEEDBACK SIGNAL FOR NEXT PASS AND BLOCK DC OFFSET ACCUMULATION | |||
amix ntrpol ain, aresyn, kmix ;CREATE DRY/WET MIX | |||
xout amix*klev | |||
endop | |||
instr 1 | |||
ainL,ainR ins | |||
;ainL,ainR diskin "SynthPad.wav",1,0,1 ;USE FOR TESTING | |||
kspeed chnget "speed" | |||
kbuflen chnget "buflen" | |||
ksemis chnget "semis" | |||
kcents chnget "cents" | |||
ksemis init 0 | |||
kcents init 0 | |||
kscale = semitone(ksemis)*cent(kcents) | |||
kscale init 1 | |||
kbuflen init 1 | |||
kspeed init 1 | |||
kmix chnget "mix" | |||
kfeedback chnget "FB" | |||
klev chnget "lev" | |||
kmix init 1 | |||
kfeedback init 0 | |||
klev init 0.5 | |||
/* SET FFT ATTRIBUTES */ | |||
katt_table chnget "att_table" ; FFT atribute table | |||
katt_table init 5 | |||
ktrig changed katt_table | |||
if ktrig==1 then | |||
reinit update | |||
endif | |||
update: | |||
iFFTsize table 0, giFFTattributes1 + i(katt_table) - 1 | |||
ioverlap table 1, giFFTattributes1 + i(katt_table) - 1 | |||
iwinsize table 2, giFFTattributes1 + i(katt_table) - 1 | |||
iwintype table 3, giFFTattributes1 + i(katt_table) - 1 | |||
/*-------------------*/ | |||
aoutL pvsbuffer_module ainL,kspeed,kbuflen,kscale,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
aoutR pvsbuffer_module ainR,kspeed,kbuflen,kscale,kfeedback,kmix,klev,iFFTsize,ioverlap,iwinsize,iwintype | |||
outs aoutL,aoutR | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0.1 [60*60*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,432 @@ | |||
<Cabbage> | |||
form size(835, 445), caption("MIDI outbox"), pluginID("plu1") | |||
groupbox bounds(4, 4, 820, 400), colour(2, 2, 2), fontcolour("cornflowerblue"), text("Step Sequencer"), plant("8x16"){ | |||
checkbox bounds(11, 25, 49, 30), channel("AA") | |||
checkbox bounds(11, 60, 49, 30), channel("BA") | |||
checkbox bounds(11, 95, 49, 30), channel("CA") | |||
checkbox bounds(11, 130, 49, 30), channel("DA") | |||
checkbox bounds(11, 165, 49, 30), channel("EA") | |||
checkbox bounds(11, 200, 49, 30), channel("FA") | |||
checkbox bounds(11, 235, 49, 30), channel("GA") | |||
checkbox bounds(11, 270, 49, 30), channel("HA") | |||
checkbox bounds(60, 25, 49, 30), channel("AB") | |||
checkbox bounds(60, 60, 49, 30), channel("BB") | |||
checkbox bounds(60, 95, 49, 30), channel("CB") | |||
checkbox bounds(60, 130, 49, 30), channel("DB") | |||
checkbox bounds(60, 165, 49, 30), channel("EB") | |||
checkbox bounds(60, 200, 49, 30), channel("FB") | |||
checkbox bounds(60, 235, 49, 30), channel("GB") | |||
checkbox bounds(60, 270, 49, 30), channel("HB") | |||
checkbox bounds(109, 25, 49, 30), channel("AC") | |||
checkbox bounds(109, 60, 49, 30), channel("BC") | |||
checkbox bounds(109, 95, 49, 30), channel("CC") | |||
checkbox bounds(109, 130, 49, 30), channel("DC") | |||
checkbox bounds(109, 165, 49, 30), channel("EC") | |||
checkbox bounds(109, 200, 49, 30), channel("FC") | |||
checkbox bounds(109, 235, 49, 30), channel("GC") | |||
checkbox bounds(109, 270, 49, 30), channel("HC") | |||
checkbox bounds(160, 25, 49, 30), channel("AD") | |||
checkbox bounds(160, 60, 49, 30), channel("BD") | |||
checkbox bounds(160, 95, 49, 30), channel("CD") | |||
checkbox bounds(160, 130, 49, 30), channel("DD") | |||
checkbox bounds(160, 165, 49, 30), channel("ED") | |||
checkbox bounds(160, 200, 49, 30), channel("FD") | |||
checkbox bounds(160, 235, 49, 30), channel("GD") | |||
checkbox bounds(160, 270, 49, 30), channel("HD") | |||
checkbox bounds(209, 25, 49, 30), channel("AE") | |||
checkbox bounds(209, 60, 49, 30), channel("BE") | |||
checkbox bounds(209, 95, 49, 30), channel("CE") | |||
checkbox bounds(209, 130, 49, 30), channel("DE") | |||
checkbox bounds(209, 165, 49, 30), channel("EE") | |||
checkbox bounds(209, 200, 49, 30), channel("FE") | |||
checkbox bounds(209, 235, 49, 30), channel("GE") | |||
checkbox bounds(209, 270, 49, 30), channel("HE") | |||
checkbox bounds(259, 25, 49, 30), channel("AF") | |||
checkbox bounds(259, 60, 49, 30), channel("BF") | |||
checkbox bounds(259, 95, 49, 30), channel("CF") | |||
checkbox bounds(259, 130, 49, 30), channel("DF") | |||
checkbox bounds(259, 165, 49, 30), channel("EF") | |||
checkbox bounds(259, 200, 49, 30), channel("FF") | |||
checkbox bounds(259, 235, 49, 30), channel("GF") | |||
checkbox bounds(259, 270, 49, 30), channel("HF") | |||
checkbox bounds(308, 25, 49, 30), channel("AG") | |||
checkbox bounds(308, 60, 49, 30), channel("BG") | |||
checkbox bounds(308, 95, 49, 30), channel("CG") | |||
checkbox bounds(308, 130, 49, 30), channel("DG") | |||
checkbox bounds(308, 165, 49, 30), channel("EG") | |||
checkbox bounds(308, 200, 49, 30), channel("FG") | |||
checkbox bounds(308, 235, 49, 30), channel("GG") | |||
checkbox bounds(308, 270, 49, 30), channel("HG") | |||
checkbox bounds(357, 25, 49, 30), channel("AH") | |||
checkbox bounds(357, 60, 49, 30), channel("BH") | |||
checkbox bounds(357, 95, 49, 30), channel("CH") | |||
checkbox bounds(357, 130, 49, 30), channel("DH") | |||
checkbox bounds(357, 165, 49, 30), channel("EH") | |||
checkbox bounds(357, 200, 49, 30), channel("FH") | |||
checkbox bounds(357, 235, 49, 30), channel("GH") | |||
checkbox bounds(357, 270, 49, 30), channel("HH") | |||
checkbox bounds(406, 25, 49, 30), channel("AI") | |||
checkbox bounds(406, 60, 49, 30), channel("BI") | |||
checkbox bounds(406, 95, 49, 30), channel("CI") | |||
checkbox bounds(406, 130, 49, 30), channel("DI") | |||
checkbox bounds(406, 165, 49, 30), channel("EI") | |||
checkbox bounds(406, 200, 49, 30), channel("FI") | |||
checkbox bounds(406, 235, 49, 30), channel("GI") | |||
checkbox bounds(406, 270, 49, 30), channel("HI") | |||
checkbox bounds(455, 25, 49, 30), channel("AJ") | |||
checkbox bounds(455, 60, 49, 30), channel("BJ") | |||
checkbox bounds(455, 95, 49, 30), channel("CJ") | |||
checkbox bounds(455, 130, 49, 30), channel("DJ") | |||
checkbox bounds(455, 165, 49, 30), channel("EJ") | |||
checkbox bounds(455, 200, 49, 30), channel("FJ") | |||
checkbox bounds(455, 235, 49, 30), channel("GJ") | |||
checkbox bounds(455, 270, 49, 30), channel("HJ") | |||
checkbox bounds(506, 25, 49, 30), channel("AK") | |||
checkbox bounds(506, 60, 49, 30), channel("BK") | |||
checkbox bounds(506, 95, 49, 30), channel("CK") | |||
checkbox bounds(506, 130, 49, 30), channel("DK") | |||
checkbox bounds(506, 165, 49, 30), channel("EK") | |||
checkbox bounds(506, 200, 49, 30), channel("FK") | |||
checkbox bounds(506, 235, 49, 30), channel("GK") | |||
checkbox bounds(506, 270, 49, 30), channel("HK") | |||
checkbox bounds(555, 25, 49, 30), channel("AL") | |||
checkbox bounds(555, 60, 49, 30), channel("BL") | |||
checkbox bounds(555, 95, 49, 30), channel("CL") | |||
checkbox bounds(555, 130, 49, 30), channel("DL") | |||
checkbox bounds(555, 165, 49, 30), channel("EL") | |||
checkbox bounds(555, 200, 49, 30), channel("FL") | |||
checkbox bounds(555, 235, 49, 30), channel("GL") | |||
checkbox bounds(555, 270, 49, 30), channel("HL") | |||
checkbox bounds(605, 25, 49, 30), channel("AM") | |||
checkbox bounds(605, 60, 49, 30), channel("BM") | |||
checkbox bounds(605, 95, 49, 30), channel("CM") | |||
checkbox bounds(605, 130, 49, 30), channel("DM") | |||
checkbox bounds(605, 165, 49, 30), channel("EM") | |||
checkbox bounds(605, 200, 49, 30), channel("FM") | |||
checkbox bounds(605, 235, 49, 30), channel("GM") | |||
checkbox bounds(605, 270, 49, 30), channel("HM") | |||
checkbox bounds(654, 25, 49, 30), channel("AN") | |||
checkbox bounds(654, 60, 49, 30), channel("BN") | |||
checkbox bounds(654, 95, 49, 30), channel("CN") | |||
checkbox bounds(654, 130, 49, 30), channel("DN") | |||
checkbox bounds(654, 165, 49, 30), channel("EN") | |||
checkbox bounds(654, 200, 49, 30), channel("FN") | |||
checkbox bounds(654, 235, 49, 30), channel("GN") | |||
checkbox bounds(654, 270, 49, 30), channel("HN") | |||
checkbox bounds(703, 25, 49, 30), channel("AO") | |||
checkbox bounds(703, 60, 49, 30), channel("BO") | |||
checkbox bounds(703, 95, 49, 30), channel("CO") | |||
checkbox bounds(703, 130, 49, 30), channel("DO") | |||
checkbox bounds(703, 165, 49, 30), channel("EO") | |||
checkbox bounds(703, 200, 49, 30), channel("FO") | |||
checkbox bounds(703, 235, 49, 30), channel("GO") | |||
checkbox bounds(703, 270, 49, 30), channel("HO") | |||
checkbox bounds(752, 25, 49, 30), channel("AP") | |||
checkbox bounds(752, 60, 49, 30), channel("BP") | |||
checkbox bounds(752, 95, 49, 30), channel("CP") | |||
checkbox bounds(752, 130, 49, 30), channel("DP") | |||
checkbox bounds(752, 165, 49, 30), channel("EP") | |||
checkbox bounds(752, 200, 49, 30), channel("FP") | |||
checkbox bounds(752, 235, 49, 30), channel("GP") | |||
checkbox bounds(752, 270, 49, 30), channel("HP") | |||
line bounds(4, 302, 800, 2) colour("lime") | |||
checkbox bounds(11, 310, 49, 30), channel("step1"), colour("yellow") | |||
checkbox bounds(60, 310, 49, 30), channel("step2"), colour("yellow") | |||
checkbox bounds(109, 310, 49, 30), channel("step3"), colour("yellow") | |||
checkbox bounds(160, 310, 49, 30), channel("step4"), colour("yellow") | |||
checkbox bounds(209, 310, 49, 30), channel("step5"), colour("yellow") | |||
checkbox bounds(259, 310, 49, 30), channel("step6"), colour("yellow") | |||
checkbox bounds(308, 310, 49, 30), channel("step7"), colour("yellow") | |||
checkbox bounds(357, 310, 49, 30), channel("step8"), colour("yellow") | |||
checkbox bounds(406, 310, 49, 30), channel("step9"), colour("yellow") | |||
checkbox bounds(455, 310, 49, 30), channel("step10"), colour("yellow") | |||
checkbox bounds(506, 310, 49, 30), channel("step11"), colour("yellow") | |||
checkbox bounds(555, 310, 49, 30), channel("step12"), colour("yellow") | |||
checkbox bounds(605, 310, 49, 30), channel("step13"), colour("yellow") | |||
checkbox bounds(654, 310, 49, 30), channel("step14"), colour("yellow") | |||
checkbox bounds(703, 310, 49, 30), channel("step15"), colour("yellow") | |||
checkbox bounds(752, 310, 49, 30), channel("step16"), colour("yellow") | |||
checkbox bounds(688, 355, 164, 30), colour("green"), fontcolour("white"), text("Enable"), channel("enable") | |||
hslider bounds(360, 350, 311, 40), text("BPM"), textbox(1), range(10, 260, 180, 1, 1), channel("bpm") | |||
hslider bounds(16, 350, 328, 40), text("Duration"), textbox(1), range(0.1, 10, 2), channel("duration") | |||
} | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -+rtmidi=NULL -m0d -M0 -Q0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs=1 | |||
;freq 2 midi udo | |||
opcode F2M, i, i | |||
ifq xin | |||
inotenum = round(12 * (log(ifq/220)/log(2)) + 57) | |||
xout inotenum | |||
endop | |||
;simple UDO to toggle the 16 check boxes | |||
opcode toggleCheckBoxes, k, kSSSSSSSSSSSSSSSS | |||
kindex, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16 xin | |||
kOn = 1 | |||
kOff = 0 | |||
;turn off all check boxes first.. | |||
chnset kOff, S1 | |||
chnset kOff, S2 | |||
chnset kOff, S3 | |||
chnset kOff, S4 | |||
chnset kOff, S5 | |||
chnset kOff, S6 | |||
chnset kOff, S7 | |||
chnset kOff, S8 | |||
chnset kOff, S9 | |||
chnset kOff, S10 | |||
chnset kOff, S11 | |||
chnset kOff, S12 | |||
chnset kOff, S13 | |||
chnset kOff, S14 | |||
chnset kOff, S15 | |||
chnset kOff, S16 | |||
if(kindex==0) then | |||
chnset kOn, S1 | |||
elseif(kindex==1) then | |||
chnset kOn, S2 | |||
elseif(kindex==2) then | |||
chnset kOn, S3 | |||
elseif(kindex==3) then | |||
chnset kOn, S4 | |||
elseif(kindex==4) then | |||
chnset kOn, S5 | |||
elseif(kindex==5) then | |||
chnset kOn, S6 | |||
elseif(kindex==6) then | |||
chnset kOn, S7 | |||
elseif(kindex==7) then | |||
chnset kOn, S8 | |||
elseif(kindex==8) then | |||
chnset kOn, S9 | |||
elseif(kindex==9) then | |||
chnset kOn, S10 | |||
elseif(kindex==10) then | |||
chnset kOn, S11 | |||
elseif(kindex==11) then | |||
chnset kOn, S12 | |||
elseif(kindex==12) then | |||
chnset kOn, S13 | |||
elseif(kindex==13) then | |||
chnset kOn, S14 | |||
elseif(kindex==14) then | |||
chnset kOn, S15 | |||
elseif(kindex==15) then | |||
chnset kOn, S16 | |||
endif | |||
xout kindex | |||
endop | |||
;init tables to hold hits, for sampler tables see the score | |||
gif1 ftgen 100, 0, 16, 2, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 , 0, 0, 0, 0 | |||
gif2 ftgen 101, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif3 ftgen 102, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif4 ftgen 103, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif5 ftgen 104, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif6 ftgen 105, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif7 ftgen 106, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif8 ftgen 107, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif9 ftgen 108, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif10 ftgen 109, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif11 ftgen 110, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif12 ftgen 111, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif13 ftgen 112, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif14 ftgen 113, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif15 ftgen 114, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
gif16 ftgen 115, 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |||
instr 1000 | |||
kAA chnget "AA" | |||
kBA chnget "BA" | |||
kCA chnget "CA" | |||
kDA chnget "DA" | |||
kEA chnget "EA" | |||
kFA chnget "FA" | |||
kGA chnget "GA" | |||
kHA chnget "HA" | |||
kAB chnget "AB" | |||
kBB chnget "BB" | |||
kCB chnget "CB" | |||
kDB chnget "DB" | |||
kEB chnget "EB" | |||
kFB chnget "FB" | |||
kGB chnget "GB" | |||
kHB chnget "HB" | |||
kAC chnget "AC" | |||
kBC chnget "BC" | |||
kCC chnget "CC" | |||
kDC chnget "DC" | |||
kEC chnget "EC" | |||
kFC chnget "FC" | |||
kGC chnget "GC" | |||
kHC chnget "HC" | |||
kAD chnget "AD" | |||
kBD chnget "BD" | |||
kCD chnget "CD" | |||
kDD chnget "DD" | |||
kED chnget "ED" | |||
kFD chnget "FD" | |||
kGD chnget "GD" | |||
kHD chnget "HD" | |||
kAE chnget "AE" | |||
kBE chnget "BE" | |||
kCE chnget "CE" | |||
kDE chnget "DE" | |||
kEE chnget "EE" | |||
kFE chnget "FE" | |||
kGE chnget "GE" | |||
kHE chnget "HE" | |||
kAF chnget "AF" | |||
kBF chnget "BF" | |||
kCF chnget "CF" | |||
kDF chnget "DF" | |||
kEF chnget "EF" | |||
kFF chnget "FF" | |||
kGF chnget "GF" | |||
kHF chnget "HF" | |||
kAG chnget "AG" | |||
kBG chnget "BG" | |||
kCG chnget "CG" | |||
kDG chnget "DG" | |||
kEG chnget "EG" | |||
kFG chnget "FG" | |||
kGG chnget "GG" | |||
kHG chnget "HG" | |||
kAH chnget "AH" | |||
kBH chnget "BH" | |||
kCH chnget "CH" | |||
kDH chnget "DH" | |||
kEH chnget "EH" | |||
kFH chnget "FH" | |||
kGH chnget "GH" | |||
kHH chnget "HH" | |||
kAI chnget "AI" | |||
kBI chnget "BI" | |||
kCI chnget "CI" | |||
kDI chnget "DI" | |||
kEI chnget "EI" | |||
kFI chnget "FI" | |||
kGI chnget "GI" | |||
kHI chnget "HI" | |||
kAJ chnget "AJ" | |||
kBJ chnget "BJ" | |||
kCJ chnget "CJ" | |||
kDJ chnget "DJ" | |||
kEJ chnget "EJ" | |||
kFJ chnget "FJ" | |||
kGJ chnget "GJ" | |||
kHJ chnget "HJ" | |||
kAK chnget "AK" | |||
kBK chnget "BK" | |||
kCK chnget "CK" | |||
kDK chnget "DK" | |||
kEK chnget "EK" | |||
kFK chnget "FK" | |||
kGK chnget "GK" | |||
kHK chnget "HK" | |||
kAL chnget "AL" | |||
kBL chnget "BL" | |||
kCL chnget "CL" | |||
kDL chnget "DL" | |||
kEL chnget "EL" | |||
kFL chnget "FL" | |||
kGL chnget "GL" | |||
kHL chnget "HL" | |||
kAM chnget "AM" | |||
kBM chnget "BM" | |||
kCM chnget "CM" | |||
kDM chnget "DM" | |||
kEM chnget "EM" | |||
kFM chnget "FM" | |||
kGM chnget "GM" | |||
kHM chnget "HM" | |||
kAN chnget "AN" | |||
kBN chnget "BN" | |||
kCN chnget "CN" | |||
kDN chnget "DN" | |||
kEN chnget "EN" | |||
kFN chnget "FN" | |||
kGN chnget "GN" | |||
kHN chnget "HN" | |||
kAO chnget "AO" | |||
kBO chnget "BO" | |||
kCO chnget "CO" | |||
kDO chnget "DO" | |||
kEO chnget "EO" | |||
kFO chnget "FO" | |||
kGO chnget "GO" | |||
kHO chnget "HO" | |||
kAP chnget "AP" | |||
kBP chnget "BP" | |||
kCP chnget "CP" | |||
kDP chnget "DP" | |||
kEP chnget "EP" | |||
kFP chnget "FP" | |||
kGP chnget "GP" | |||
kHP chnget "HP" | |||
event "f", 100, 0, 16, 2, kAA, kAB, kAC, kAD, kAE, kAF, kAG, kAH, kAI, kAJ, kAK, kAL, kAM, kAN, kAO, kAP | |||
event "f", 101, 0, 16, 2, kBA, kBB, kBC, kBD, kBE, kBF, kBG, kBH, kBI, kBJ, kBK, kBL, kBM, kBN, kBO, kBP | |||
event "f", 102, 0, 16, 2, kCA, kCB, kCC, kCD, kCE, kCF, kCG, kCH, kCI, kCJ, kCK, kCL, kCM, kCN, kCO, kCP | |||
event "f", 103, 0, 16, 2, kDA, kDB, kDC, kDD, kDE, kDF, kDG, kDH, kDI, kDJ, kDK, kDL, kDM, kDN, kDO, kDP | |||
event "f", 104, 0, 16, 2, kEA, kEB, kEC, kED, kEE, kEF, kEG, kEH, kEI, kEJ, kEK, kEL, kEM, kEN, kEO, kEP | |||
event "f", 105, 0, 16, 2, kFA, kFB, kFC, kFD, kFE, kFF, kFG, kFH, kFI, kFJ, kFK, kFL, kFM, kFN, kFO, kFP | |||
event "f", 106, 0, 16, 2, kGA, kGB, kGC, kGD, kGE, kGF, kGG, kGH, kGI, kGJ, kGK, kGL, kGM, kGN, kGO, kGP | |||
event "f", 107, 0, 16, 2, kHA, kHB, kHC, kHD, kHE, kHF, kHG, kHH, kHI, kHJ, kHK, kHL, kHM, kHN, kHO, kHP | |||
endin | |||
instr 2000 | |||
kGO chnget "enable" | |||
if(kGO==1) then | |||
iNumTables = 8 | |||
kIndex, kIncr, kNoteTable init 0 | |||
ktempo chnget "bpm" | |||
kDuration chnget "duration" | |||
kTrig metro ktempo/60 ;trig notes every 1/5 of a second | |||
if(kTrig==1) then | |||
Main_Loop: | |||
k1 tablekt kIncr, kIndex+100 | |||
event "i", 1, 0, kDuration, k1, kIndex | |||
loop_lt kIndex, 1, iNumTables, Main_Loop | |||
kDummy toggleCheckBoxes, kIncr, "step1", "step2", "step3", "step4", "step5", "step6", "step7", "step8", "step9", "step10", "step11", "step12", "step13", "step14", "step15", "step16" | |||
kIncr = (kIncr>14 ? 0 : kIncr+1) | |||
kIndex=0 | |||
endif | |||
endif | |||
endin | |||
instr 1 | |||
if(p4!=0)then | |||
iNote tab_i p5, 1 | |||
iMIDINote F2M cpspch(iNote+8) | |||
noteondur 1, iMIDINote, 20, p3 | |||
;midiout 176, 1, 1, 1 | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 8 -2 1 .11 .09 .07 .05 .04 .02 .00 | |||
i1000 1 1000 | |||
i2000 1 1000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,160 @@ | |||
<Cabbage> | |||
form caption("Additive synthesizer") size(562, 340), colour("black"),pluginID("add1") | |||
rslider bounds(15, 10, 100, 100) channel("speed"), range(1,10,2), caption("Speed"), colour("lime ") | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-12,12,0), caption("Coarse"), colour("lime ") | |||
rslider bounds(225, 10, 100, 100) channel("partials"), range(3,8,4), caption("Partials"), colour("lime ") | |||
rslider bounds(330, 10, 100, 100) caption("Vib Amp"), colour("lime "), channel("lfoamp"), range(0,20, 0) | |||
rslider bounds(435, 10, 100, 100) caption("Vib Rate"), colour("lime "), channel("lforate"), range(0,20, 0) | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(0, .3, .6, .6), text("A"), colour("lime"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("lime "), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("lime "), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("lime "), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(285, 120, 250, 100), text("Filter/Reverb"), plant("filtrev"){ | |||
rslider bounds(0, .3, .6, .6), text("cutoff"), colour("lime "), channel("cutoff"), range(200,8000,1000) | |||
rslider bounds(.25, .3, .6, .6),text("level"), colour("lime "), channel("level"), range(0,1,.7) | |||
rslider bounds(.5, .3, .6, .6), text("size"), colour("lime "), channel("size"), range(.1,.99,.8) | |||
checkbox bounds(.75, .40, .60, .30),channel("onoff"), text("ON"), value(0) | |||
} | |||
keyboard pos(10, 240), size(540, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 -m0d | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
garev init 0 | |||
instr 1 | |||
;channel | |||
kspeed chnget "speed" | |||
ksemi1 chnget "semi" | |||
ktable chnget "partials" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
kcutoff chnget "cutoff" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kbasefreq = cpsmidinn(imidinn+kbend+int(ksemi1)) ;controllo midi | |||
;vibrato | |||
klfo vibr klfoamp,klforate,1 | |||
;additive | |||
kpartial init 3 | |||
iamptab = 2 ;tabella ampiezze | |||
kpartial = int(ktable) ;tabella parziali | |||
ktrig changed kpartial | |||
if ktrig = 1 then | |||
reinit play | |||
endif | |||
play: | |||
k1 randomh 1,7,kspeed ;indice della tabella letto in modo casuale | |||
k2 randomh 1,7,kspeed-.9 ;simile ad un arpeggio di armonici con rate indipendente | |||
k3 randomh 1,7,kspeed-.8 | |||
k4 randomh 1,7,kspeed-.7 | |||
k5 randomh 1,7,kspeed-.6 | |||
k6 randomh 1,7,kspeed-.5 | |||
k7 randomh 1,7,kspeed-.4 | |||
;tabella delle parziali | |||
kfreqtable1 table k1,i(kpartial) | |||
kfreqtable2 table k2,i(kpartial) | |||
kfreqtable3 table k3,i(kpartial) | |||
kfreqtable4 table k4,i(kpartial) | |||
kfreqtable5 table k5,i(kpartial) | |||
kfreqtable6 table k6,i(kpartial) | |||
kfreqtable7 table k7,i(kpartial) | |||
;tabella ampiezze | |||
iamptable1 table 1,iamptab | |||
iamptable2 table 2,iamptab | |||
iamptable3 table 3,iamptab | |||
iamptable4 table 4,iamptab | |||
iamptable5 table 5,iamptab | |||
iamptable6 table 6,iamptab | |||
iamptable7 table 7,iamptab | |||
;otto oscillatori | |||
a1 poscil iamp*2,(kbasefreq+klfo),1 ;frequenza fondamentale | |||
a2 poscil iamp*iamptable1,((kbasefreq+klfo)+klfo)*kfreqtable1,1 | |||
a3 poscil iamp*iamptable2,(kbasefreq+klfo)*kfreqtable2,1 | |||
a4 poscil iamp*iamptable3,(kbasefreq+klfo)*kfreqtable3,1 | |||
a5 poscil iamp*iamptable4,(kbasefreq+klfo)*kfreqtable4,1 | |||
a6 poscil iamp*iamptable5,(kbasefreq+klfo)*kfreqtable5,1 | |||
a7 poscil iamp*iamptable6,(kbasefreq+klfo)*kfreqtable6,1 | |||
a8 poscil iamp*iamptable7,(kbasefreq+klfo)*kfreqtable7,1 | |||
asum sum a1,a2,a3,a4,a5,a6,a7,a8 ;somma degli oscillatori | |||
afilt clfilt asum/8,kcutoff,0,4 | |||
aout clip afilt,0,0dbfs | |||
kenv mxadsr iatt,idec,isus,irel | |||
outs aout*kenv,aout*kenv ;uscita con inviluppo | |||
vincr garev,aout*kenv | |||
endin | |||
instr 3 ;reverb | |||
ktrig chnget "onoff" | |||
klevel chnget "level" | |||
ksize chnget "size" | |||
if ktrig = 1 then | |||
al,ar reverbsc garev,garev,ksize,16000,sr,0 | |||
adc1 dcblock2 al | |||
adc2 dcblock2 ar | |||
kpan1 randomi 0,1,4 | |||
kpan2 randomi 0,1,8 | |||
aout1,aout2 pan2 adc1,kpan1 | |||
aout3,aout4 pan2 adc2,1-kpan2 | |||
asum1 = (aout1+aout2)*klevel | |||
asum2 = (aout3+aout4)*klevel | |||
else | |||
asum1 = 0 | |||
asum2 = 0 | |||
endif | |||
outs asum1,asum2 | |||
clear garev | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 16384 10 1 | |||
f2 0 -7 -2 .9 .8 .7 .6 .5 .4 .3 .2 ;ampiezze parziali | |||
f3 0 -7 -2 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 ;parziali | |||
f4 0 -7 -2 1 2 3 4 5 6 7 8 | |||
f5 0 -7 -2 1 1.2 1.4 1.6 1.8 2 2.4 2.6 | |||
f6 0 -7 -2 1 2 4 5 7 8 10 11 | |||
f7 0 -7 -2 1 1.3 1.5 1.7 1.9 2.11 3.13 4.15 | |||
f8 0 -7 -2 1 1 3 5 7 9 11 13 | |||
i1 0 36000 | |||
i3 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,80 @@ | |||
<Cabbage> | |||
form caption("CrazyPluck"), size(300, 220), pluginID("cra1") | |||
groupbox bounds(0, 0, 300, 100), text("Parameters"), plant("control1"){ | |||
rslider bounds(.05, .3, .6, .6), text("ratio"), colour("white"), channel("ratio"), range(1, 1.2,1) | |||
rslider bounds(.28, .3, .6, .6), text("time"), colour("white"), channel("time"), range(.001,.1,.1) | |||
rslider bounds(.52, .3, .6, .6), text("random"), colour("white"), channel("random"), range(.001,.1,0) | |||
rslider bounds(.75, .3, .6, .6), text("Event number"), colour("white"), channel("number"), range(1,50,10) | |||
} | |||
keyboard bounds(0, 110, 300, 70) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-n -d -m0d -+rtmidi=NULL -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
;Author: Giorgio Zucco (2012) | |||
sr = 44100 | |||
ksmps = 32 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
instr 1 | |||
giamp ampmidi 1 ;controllo midi | |||
gifreq cpsmidi | |||
instrument = 10 ;strumento da controllare | |||
inum=1 ;per attivare la sezione loop | |||
idelay = 0 | |||
inumber chnget "number" ;numero di eventi da generare | |||
idur = 2 ;durata evento | |||
iratio chnget "ratio" ;1,1,1,1.2 ;slider che controlla il pitch transpose | |||
itime chnget "time" ;1,2,.001,.1 ;slider che controlla il delay tra un evento e il successivo | |||
irndtime chnget "random" ;1,3,.001,.1 ;slider che controlla la variazione random del ritardo | |||
loop: ;inizia la sezione da reiterare | |||
gifreq = gifreq*iratio ;pitch controllato da slider 1 | |||
idelay = idelay+itime+rnd(irndtime) ;delay controllato da slider 2 e 3 | |||
event_i "i",instrument,idelay,idur,giamp,gifreq,abs(inumber) | |||
loop_le inum,1,abs(inumber),loop ;ripete il processo per 20 istanze (inumber) | |||
endin | |||
instr 10 | |||
;a1 pluck (p4*1-p6)/p6,p5,p5,0,1 | |||
ival = (p4*1-p6) | |||
a1 pluck ival/p6,p5,p5,0,1 | |||
; Or using the new csound 6 function syntax | |||
;a1 = pluck((p4*1-p6)/p6,p5,p5,0,1) | |||
aout clip a1,0,0dbfs | |||
kenv adsr 0.01,.5,.2,.1 ;inviluppo | |||
outs aout*kenv,aout*kenv | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
;i1 0 36000 | |||
f0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,54 @@ | |||
<Cabbage> | |||
form caption("Dust"), size(300, 80), pluginID("dust") | |||
image bounds( 0, 0,300, 80), colour("brown"), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds( 10, 10, 80, 15), text("On/Off"), channel("onoff"), value(1), fontcolour("white") | |||
rslider bounds( 70, 10, 60, 60), text("Amplitude"), channel("amp"), range(0, 1.00, 0.5, 0.5, 0.001), fontcolour("white") | |||
rslider bounds(125, 10, 60, 60), text("Freq."), channel("freq"), range(0.1, 10000, 500, 0.5, 0.01), fontcolour("white") | |||
rslider bounds(180, 10, 60, 60), text("Spread"), channel("spread"), range(0, 1.00, 1), fontcolour("white") | |||
rslider bounds(235, 10, 60, 60), text("Tone Var."), channel("ToneVar"), range(0, 1.00, 0), fontcolour("white") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 0,0 | |||
instr 1 | |||
konoff chnget "onoff" ;read in on/off switch widget value | |||
if konoff==0 goto SKIP ;if on/off switch is off jump to skip label | |||
kamp chnget "amp" | |||
kfreq chnget "freq" | |||
kspread chnget "spread" | |||
asig dust2 kamp, kfreq ;GENERATE 'dust2' IMPULSES | |||
; tone variation | |||
kToneVar chnget "ToneVar" | |||
if(kToneVar>0) then | |||
kcfoct random 14-(kToneVar*10),14 | |||
asig tonex asig,cpsoct(kcfoct),1 | |||
endif | |||
kpan random 0.5-(kspread*0.5), 0.5+(kspread*0.5) | |||
asigL,asigR pan2 asig,kpan | |||
outs asigL,asigR ;SEND AUDIO SIGNAL TO OUTPUT | |||
SKIP: ;A label. Skip to here is on/off switch is off | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ;instrument that reads in widget data | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,135 @@ | |||
<Cabbage> | |||
form caption("HiperSaw synthesizer") size(552, 330), colour("black"),pluginID("hip1") | |||
rslider bounds(15, 10, 100, 100) channel("detune"), range(0,1,.5), caption("Depth"), colour("orange"), midictrl(1, 1) | |||
rslider bounds(120, 10, 100, 100) channel("semi"), range(-12,12,-12), caption("Coarse"), colour("orange") | |||
rslider bounds(225, 10, 100, 100) channel("cutoff"), range(60,22000,12000), caption("Cutoff"), colour("orange") | |||
rslider bounds(330, 10, 100, 100) channel("reso"), range(.1,.99,.2), caption("Resonance"), colour("orange") | |||
rslider bounds(435, 10, 100, 100) channel("spread"), range(0, 1, .5), caption("Stereo image"), colour("orange") | |||
groupbox bounds(15, 120, 240, 100), text("ADSR amplitude"), plant("ADSR"){ | |||
rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5) | |||
rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5) | |||
rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(270, 120, 130, 100), text("LFO"), plant("lfo"){ | |||
rslider bounds(0.05, .30, .60, .60), text("Lfo Amp"), colour("orange"), channel("lfoamp"), range(0,100, 0) | |||
rslider bounds(.5, .30, .60, .60), text("Lfo Rate"), colour("orange"), channel("lforate"), range(0,20, 0) | |||
;rslider bounds(115, 30, 60, 60), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
;rslider bounds(165, 30, 60, 60), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
groupbox bounds(410, 120, 130, 100), text("LFO filter"), plant("lfofilter"){ | |||
rslider bounds(0.05, .30, .60, .60), text("Lfo Amp"), colour("orange"), channel("lfoamp2"), range(0,1000, 0) | |||
rslider bounds(.5, .30, .60, .60), text("Lfo Rate"), colour("orange"), channel("lforate2"), range(0,10, 0) | |||
;rslider bounds(115, 30, 60, 60), text("S"), colour("orange"), channel("sus"), range(0,1,.8) | |||
;rslider bounds(165, 30, 60, 60), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2) | |||
} | |||
keyboard pos(1, 240), size(550, 60) | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n -+rtmidi=null -M0 -b1024 -m0d | |||
</CsOptions> | |||
<CsInstruments> | |||
; Initialize the global variables. | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 | |||
;Author: Giorgio Zucco (2012) | |||
;UDO Hipersaw | |||
opcode Hipersaw2,a,kkki | |||
kamp,kcps,kdetune,ifunc xin | |||
krnd1 poscil kdetune,.1,ifunc | |||
krnd2 poscil kdetune,.2,ifunc | |||
krnd3 poscil kdetune,.3,ifunc | |||
krnd4 poscil kdetune,.4,ifunc | |||
krnd5 poscil kdetune,.5,ifunc | |||
krnd6 poscil kdetune,.6,ifunc | |||
krnd7 poscil kdetune,.7,ifunc | |||
krnd8 poscil kdetune,.8,ifunc | |||
a1 vco2 kamp,kcps,0 | |||
a2 vco2 kamp,kcps+kdetune,0 | |||
a3 vco2 kamp,kcps+(kdetune+krnd1)*.1,0 | |||
a4 vco2 kamp,kcps+(kdetune+krnd2)*.1,0 | |||
a5 vco2 kamp,kcps+(kdetune+krnd3)*.1,0 | |||
a6 vco2 kamp,kcps+(kdetune+krnd4)*.1,0 | |||
a7 vco2 kamp,kcps+(kdetune+krnd5)*.1,0 | |||
a8 vco2 kamp,kcps+(kdetune+krnd6)*.1,0 | |||
a9 vco2 kamp,kcps+(kdetune+krnd7)*.1,0 | |||
a10 vco2 kamp,kcps+(kdetune+krnd8)*.1,0 | |||
asum sum a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 | |||
xout asum*.3 ; write output | |||
endop | |||
instr 1 | |||
;channel | |||
kdrive chnget "detune" | |||
ksemi1 chnget "semi" | |||
kcut chnget "cutoff" | |||
kreso chnget "reso" | |||
kspread chnget "spread" | |||
iatt chnget "att" | |||
idec chnget "dec" | |||
isus chnget "sus" | |||
irel chnget "rel" | |||
klfoamp chnget "lfoamp" | |||
klforate chnget "lforate" | |||
klfoamp2 chnget "lfoamp2" ;lfo x filter | |||
klforate2 chnget "lforate2" | |||
;midi | |||
imidinn notnum | |||
iamp ampmidi 1 | |||
kbend pchbend 0,2 ;pitch bend | |||
kfreq1 = cpsmidinn(imidinn+kbend+int(ksemi1)) ;controllo midi | |||
kfreq2 = cpsmidinn(imidinn+kbend+int(ksemi1)) ;controllo midi + detune | |||
;lfo | |||
klfo poscil klfoamp,klforate,1 | |||
;hipersaw waveform | |||
asig1 Hipersaw2 iamp,(kfreq1+klfo),kdrive*8,1 | |||
asig2 Hipersaw2 iamp,(kfreq2+klfo),(1-kdrive*8),1 | |||
;filter | |||
klfofilter lfo klfoamp2,klforate2,3 | |||
aout1 moogladder asig1,kcut+klfofilter,kreso | |||
aout2 moogladder asig2,kcut+klfofilter,kreso | |||
;aout1 balance amoog1,asig1 | |||
;aout2 balance amoog2,asig2 | |||
;master | |||
aL clip aout1,0,.9 | |||
aR clip aout2,0,.9 | |||
aoutL = ((aL * kspread) + (aR * (1 - kspread))) *.5 | |||
aoutR = ((aL * (1-kspread)) + (aR * kspread)) *.5 | |||
kadsr mxadsr iatt,idec,isus,irel | |||
outs aoutL*kadsr,aoutR*kadsr | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
f1 0 4096 10 1 | |||
i1 0 36000 | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,41 @@ | |||
<Cabbage> | |||
form caption("White Noise"), size(210, 80), pluginID("wnse") | |||
image bounds( 0, 0,210, 80), colour("white"), shape("rounded"), outline("black"), line(4) | |||
checkbox bounds( 20, 10, 80, 15), text("On/Off"), channel("onoff"), value(1), fontcolour("black") | |||
rslider bounds( 80, 10, 60, 60), text("Amplitude"), channel("amp"), range(0, 1, 0.1, 0.5, 0.001), fontcolour("black"), trackercolour("grey") | |||
rslider bounds(140, 10, 60, 60), text("Beta"), channel("beta"), range(-0.999, 0.999,0,1,0.001), fontcolour("black") , trackercolour("grey") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-dm0 -n -+rtmidi=null -M0 | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 | |||
ksmps = 64 | |||
nchnls = 2 | |||
0dbfs = 1 ;MAXIMUM AMPLITUDE | |||
massign 0,0 | |||
instr 1 | |||
konoff chnget "onoff" ;read in on/off switch widget value | |||
if konoff==0 goto SKIP ;if on/off switch is off jump to skip label | |||
kamp chnget "amp" ;read in widgets... | |||
kbeta chnget "beta" ; | |||
asigL noise kamp, kbeta ;GENERATE WHITE NOISE | |||
asigR noise kamp, kbeta ;GENERATE WHITE NOISE | |||
outs asigL,asigR ;SEND AUDIO SIGNAL TO OUTPUT | |||
SKIP: ;A label. Skip to here is on/off switch is off | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [60*60*24*7] ;instrument that reads in widget data | |||
</CsScore> | |||
</CsoundSynthesizer> |
@@ -0,0 +1,612 @@ | |||
<Cabbage> | |||
form caption("Bassline") size(615, 250), pluginID("basl") | |||
snapshot bounds( 80,185,200, 20), preset("bassline"), items("Preset 1", "Preset 2", "Preset 3", "Preset 4", "Preset 5", "Preset 6", "Preset 7", "Preset 8", "Preset 9", "Preset 10") | |||
image bounds( 0, 0,615,220), colour("grey"), shape("rounded"), outline("white"), line(4) | |||
checkbox bounds( 64, 8, 4, 4), channel("Act1"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds( 99, 8, 4, 4), channel("Act2"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(134, 8, 4, 4), channel("Act3"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(169, 8, 4, 4), channel("Act4"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(204, 8, 4, 4), channel("Act5"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(239, 8, 4, 4), channel("Act6"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(274, 8, 4, 4), channel("Act7"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(309, 8, 4, 4), channel("Act8"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(344, 8, 4, 4), channel("Act9"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(379, 8, 4, 4), channel("Act10"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(414, 8, 4, 4), channel("Act11"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(449, 8, 4, 4), channel("Act12"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(484, 8, 4, 4), channel("Act13"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(519, 8, 4, 4), channel("Act14"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(554, 8, 4, 4), channel("Act15"), value(0), colour("yellow"), shape("ellipse") | |||
checkbox bounds(589, 8, 4, 4), channel("Act16"), value(0), colour("yellow"), shape("ellipse") | |||
label bounds( 10, 23, 40, 12), text("Note"), FontColour("black"), colour("black") | |||
rslider bounds( 45, 15, 45, 45), text("1"), FontColour("black"), channel("Note1"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds( 80, 15, 45, 45), text("2"), channel("Note2"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(115, 15, 45, 45), text("3"), channel("Note3"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(150, 15, 45, 45), text("4"), channel("Note4"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(185, 15, 45, 45), text("5"), channel("Note5"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(220, 15, 45, 45), text("6"), channel("Note6"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(255, 15, 45, 45), text("7"), channel("Note7"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(290, 15, 45, 45), text("8"), channel("Note8"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(325, 15, 45, 45), text("9"), channel("Note9"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(360, 15, 45, 45), text("10"), channel("Note10"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(395, 15, 45, 45), text("11"), channel("Note11"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(430, 15, 45, 45), text("12"), channel("Note12"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(465, 15, 45, 45), text("13"), channel("Note13"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(500, 15, 45, 45), text("14"), channel("Note14"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(535, 15, 45, 45), text("15"), channel("Note15"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
rslider bounds(570, 15, 45, 45), text("16"), channel("Note16"), FontColour("black"), range(24, 96, 60, 1, 1), preset("bassline") | |||
label bounds( 10, 62, 40, 12), text("On/Off"), colour("black"), FontColour("black") | |||
checkbox bounds( 61, 62, 12, 12), channel("On1"), value(0), preset("bassline") | |||
checkbox bounds( 96, 62, 12, 12), channel("On2"), value(0), preset("bassline") | |||
checkbox bounds(131, 62, 12, 12), channel("On3"), value(0), preset("bassline") | |||
checkbox bounds(166, 62, 12, 12), channel("On4"), value(0), preset("bassline") | |||
checkbox bounds(201, 62, 12, 12), channel("On5"), value(0), preset("bassline") | |||
checkbox bounds(236, 62, 12, 12), channel("On6"), value(0), preset("bassline") | |||
checkbox bounds(271, 62, 12, 12), channel("On7"), value(0), preset("bassline") | |||
checkbox bounds(306, 62, 12, 12), channel("On8"), value(0), preset("bassline") | |||
checkbox bounds(341, 62, 12, 12), channel("On9"), value(0), preset("bassline") | |||
checkbox bounds(376, 62, 12, 12), channel("On10"), value(0), preset("bassline") | |||
checkbox bounds(411, 62, 12, 12), channel("On11"), value(0), preset("bassline") | |||
checkbox bounds(446, 62, 12, 12), channel("On12"), value(0), preset("bassline") | |||
checkbox bounds(481, 62, 12, 12), channel("On13"), value(0), preset("bassline") | |||
checkbox bounds(516, 62, 12, 12), channel("On14"), value(0), preset("bassline") | |||
checkbox bounds(551, 62, 12, 12), channel("On15"), value(0), preset("bassline") | |||
checkbox bounds(586, 62, 12, 12), channel("On16"), value(0), preset("bassline") | |||
label bounds( 11, 80, 40, 12), text("Hold"), colour("black"), FontColour("black") | |||
checkbox bounds( 61, 80, 12, 12), channel("Hold1"), value(0), preset("bassline") | |||
checkbox bounds( 96, 80, 12, 12), channel("Hold2"), value(0), preset("bassline") | |||
checkbox bounds(131, 80, 12, 12), channel("Hold3"), value(0), preset("bassline") | |||
checkbox bounds(166, 80, 12, 12), channel("Hold4"), value(0), preset("bassline") | |||
checkbox bounds(201, 80, 12, 12), channel("Hold5"), value(0), preset("bassline") | |||
checkbox bounds(236, 80, 12, 12), channel("Hold6"), value(0), preset("bassline") | |||
checkbox bounds(271, 80, 12, 12), channel("Hold7"), value(0), preset("bassline") | |||
checkbox bounds(306, 80, 12, 12), channel("Hold8"), value(0), preset("bassline") | |||
checkbox bounds(341, 80, 12, 12), channel("Hold9"), value(0), preset("bassline") | |||
checkbox bounds(376, 80, 12, 12), channel("Hold10"), value(0), preset("bassline") | |||
checkbox bounds(411, 80, 12, 12), channel("Hold11"), value(0), preset("bassline") | |||
checkbox bounds(446, 80, 12, 12), channel("Hold12"), value(0), preset("bassline") | |||
checkbox bounds(481, 80, 12, 12), channel("Hold13"), value(0), preset("bassline") | |||
checkbox bounds(516, 80, 12, 12), channel("Hold14"), value(0), preset("bassline") | |||
checkbox bounds(551, 80, 12, 12), channel("Hold15"), value(0), preset("bassline") | |||
checkbox bounds(586, 80, 12, 12), channel("Hold16"), value(0), preset("bassline") | |||
label bounds( 11, 98, 40, 12), text("Accent"), colour("black"), FontColour("black") | |||
checkbox bounds( 61, 98, 12, 12), channel("Acc1"), value(0), preset("bassline") | |||
checkbox bounds( 96, 98, 12, 12), channel("Acc2"), value(0), preset("bassline") | |||
checkbox bounds(131, 98, 12, 12), channel("Acc3"), value(0), preset("bassline") | |||
checkbox bounds(166, 98, 12, 12), channel("Acc4"), value(0), preset("bassline") | |||
checkbox bounds(201, 98, 12, 12), channel("Acc5"), value(0), preset("bassline") | |||
checkbox bounds(236, 98, 12, 12), channel("Acc6"), value(0), preset("bassline") | |||
checkbox bounds(271, 98, 12, 12), channel("Acc7"), value(0), preset("bassline") | |||
checkbox bounds(306, 98, 12, 12), channel("Acc8"), value(0), preset("bassline") | |||
checkbox bounds(341, 98, 12, 12), channel("Acc9"), value(0), preset("bassline") | |||
checkbox bounds(376, 98, 12, 12), channel("Acc10"), value(0), preset("bassline") | |||
checkbox bounds(411, 98, 12, 12), channel("Acc11"), value(0), preset("bassline") | |||
checkbox bounds(446, 98, 12, 12), channel("Acc12"), value(0), preset("bassline") | |||
checkbox bounds(481, 98, 12, 12), channel("Acc13"), value(0), preset("bassline") | |||
checkbox bounds(516, 98, 12, 12), channel("Acc14"), value(0), preset("bassline") | |||
checkbox bounds(551, 98, 12, 12), channel("Acc15"), value(0), preset("bassline") | |||
checkbox bounds(586, 98, 12, 12), channel("Acc16"), value(0), preset("bassline") | |||
button bounds( 10,120, 60, 25), colour("Green"), text("Run","Stop"), channel("OnOff"), value(1) | |||
combobox bounds( 10,150, 60, 15), channel("Waveform"), value(1), text("saw","square","triangle","PWM","noise"), preset("bassline") | |||
rslider bounds( 20,170, 40, 40), text("P.W."), channel("pw"), range(0.01,0.99, 0.25), preset("bassline"), FontColour("black") | |||
rslider bounds( 70,120, 60, 60), text("Vol."), channel("Vol"), range(0, 5.00, 1), preset("bassline"), FontColour("black") | |||
rslider bounds(120,120, 60, 60), text("Cutoff"), channel("CfBase"), range(4.00, 14, 8), preset("bassline"), FontColour("black") | |||
rslider bounds(170,120, 60, 60), text("Env.Mod"), channel("CfEnv"), range(0, 10.00, 4), preset("bassline"), FontColour("black") | |||
rslider bounds(220,120, 60, 60), text("Res."), channel("Res"), range(0,0.98, .4), preset("bassline"), FontColour("black") | |||
rslider bounds(270,120, 60, 60), text("Dist."), channel("Dist"), range(0,1.00, 0), preset("bassline"), FontColour("black") | |||
rslider bounds(320,120, 60, 60), text("Decay"), channel("Decay"), range(0.10, 5, .3, 0.25), preset("bassline"), FontColour("black") | |||
rslider bounds(370,120, 60, 60), text("Accent"), channel("Accent"), range(0, 1.00, .5), preset("bassline"), FontColour("black") | |||
rslider bounds(420,120, 60, 60), text("Tempo"), channel("Tempo"), range(1, 500, 110, 1, 1), FontColour("black"), FontColour("black") | |||
button bounds(480,120, 60, 15), text("Reset"), channel("Reset"), value(0) | |||
button bounds(540,120, 60, 15), text("Random"), channel("Rnd"), value(0) | |||
button bounds(480,140, 60, 15), text("-semi"), channel("SemiDn"), value(0) | |||
button bounds(540,140, 60, 15), text("+semi"), channel("SemiUp"), value(0) | |||
button bounds(480,160, 60, 15), text("-oct"), channel("OctDn"), value(0) | |||
button bounds(540,160, 60, 15), text("+oct"), channel("OctUp"), value(0) | |||
button bounds(280, 185, 80, 20), text("Internal","External"), channel("ClockSource"), value(0) | |||
label bounds(285, 205, 80, 12), text("Clock Source"), FontColour("black") | |||
image bounds(5, 225, 330, 20), colour(75, 85, 90, 100), plant("credit"){ | |||
label bounds(0.03, 0.1, .6, .7), text("Author: Iain McCurdy |2012|"), colour("white") | |||
} | |||
hostbpm channel("bpm") | |||
</Cabbage> | |||
<CsoundSynthesizer> | |||
<CsOptions> | |||
-d -n | |||
</CsOptions> | |||
<CsInstruments> | |||
sr = 44100 ;SAMPLE RATE | |||
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE | |||
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO) | |||
0dbfs = 1 | |||
seed 0 | |||
;Author: Iain McCurdy (2012) | |||
opcode moogladdersr,a,akk | |||
asig,kcf,kres xin | |||
setksmps 1 | |||
acf interp kcf | |||
kcf downsamp acf | |||
asig moogladder asig, kcf, kres | |||
xout asig | |||
endop | |||
opcode resonsr,a,akki | |||
asig,kcf,kbw,iscal xin | |||
setksmps 1 | |||
acf interp kcf | |||
kcf downsamp acf | |||
abw interp kbw | |||
kbw downsamp abw | |||
asig reson asig, kcf, kbw,iscal | |||
xout asig | |||
endop | |||
instr 1 ;BASSLINE INSTRUMENT | |||
kporttime linseg 0,0.001,0.01 ;PORTAMENTO TIME RAMPS UP QUICKLY FROM ZERO TO A HELD VALUE | |||
;READ IN WIDGETS... | |||
gkOnOff chnget "OnOff" | |||
gkNote1 chnget "Note1" | |||
gkNote2 chnget "Note2" | |||
gkNote3 chnget "Note3" | |||
gkNote4 chnget "Note4" | |||
gkNote5 chnget "Note5" | |||
gkNote6 chnget "Note6" | |||
gkNote7 chnget "Note7" | |||
gkNote8 chnget "Note8" | |||
gkNote9 chnget "Note9" | |||
gkNote10 chnget "Note10" | |||
gkNote11 chnget "Note11" | |||
gkNote12 chnget "Note12" | |||
gkNote13 chnget "Note13" | |||
gkNote14 chnget "Note14" | |||
gkNote15 chnget "Note15" | |||
gkNote16 chnget "Note16" | |||
gkOn1 chnget "On1" | |||
gkOn2 chnget "On2" | |||
gkOn3 chnget "On3" | |||
gkOn4 chnget "On4" | |||
gkOn5 chnget "On5" | |||
gkOn6 chnget "On6" | |||
gkOn7 chnget "On7" | |||
gkOn8 chnget "On8" | |||
gkOn9 chnget "On9" | |||
gkOn10 chnget "On10" | |||
gkOn11 chnget "On11" | |||
gkOn12 chnget "On12" | |||
gkOn13 chnget "On13" | |||
gkOn14 chnget "On14" | |||
gkOn15 chnget "On15" | |||
gkOn16 chnget "On16" | |||
gkHold1 chnget "Hold1" | |||
gkHold2 chnget "Hold2" | |||
gkHold3 chnget "Hold3" | |||
gkHold4 chnget "Hold4" | |||
gkHold5 chnget "Hold5" | |||
gkHold6 chnget "Hold6" | |||
gkHold7 chnget "Hold7" | |||
gkHold8 chnget "Hold8" | |||
gkHold9 chnget "Hold9" | |||
gkHold10 chnget "Hold10" | |||
gkHold11 chnget "Hold11" | |||
gkHold12 chnget "Hold12" | |||
gkHold13 chnget "Hold13" | |||
gkHold14 chnget "Hold14" | |||
gkHold15 chnget "Hold15" | |||
gkHold16 chnget "Hold16" | |||
gkAcc1 chnget "Acc1" | |||
gkAcc2 chnget "Acc2" | |||
gkAcc3 chnget "Acc3" | |||
gkAcc4 chnget "Acc4" | |||
gkAcc5 chnget "Acc5" | |||
gkAcc6 chnget "Acc6" | |||
gkAcc7 chnget "Acc7" | |||
gkAcc8 chnget "Acc8" | |||
gkAcc9 chnget "Acc9" | |||
gkAcc10 chnget "Acc10" | |||
gkAcc11 chnget "Acc11" | |||
gkAcc12 chnget "Acc12" | |||
gkAcc13 chnget "Acc13" | |||
gkAcc14 chnget "Acc14" | |||
gkAcc15 chnget "Acc15" | |||
gkAcc16 chnget "Acc16" | |||
gkVol chnget "Vol" | |||
gkCfBase chnget "CfBase" | |||
gkCfBase portk gkCfBase,kporttime*5 | |||
gkCfEnv chnget "CfEnv" | |||
gkCfEnv portk gkCfEnv,kporttime*5 | |||
gkRes chnget "Res" | |||
gkDist chnget "Dist" | |||
gkDecay chnget "Decay" | |||
gkAccent chnget "Accent" | |||
gkWaveform chnget "Waveform" | |||
kpw chnget "pw" | |||
gkReset chnget "Reset" | |||
gkRnd chnget "Rnd" | |||
kSemiDn chnget "SemiDn" | |||
kSemiUp chnget "SemiUp" | |||
kOctDn chnget "OctDn" | |||
kOctUp chnget "OctUp" | |||
kClockSource chnget "ClockSource" | |||
if kClockSource==0 then | |||
gkTempo chnget "Tempo" | |||
else | |||
gkTempo chnget "bpm" | |||
gkTempo limit gkTempo,1,2000 | |||
endif | |||
kNonActive init 0 | |||
kStop trigger gkOnOff,0.5,1 ; IS LOOP PLAYING TURNED OFF... | |||
if kStop==1 then | |||
chnset kNonActive,"Act1" | |||
chnset kNonActive,"Act2" | |||
chnset kNonActive,"Act3" | |||
chnset kNonActive,"Act4" | |||
chnset kNonActive,"Act5" | |||
chnset kNonActive,"Act6" | |||
chnset kNonActive,"Act7" | |||
chnset kNonActive,"Act8" | |||
chnset kNonActive,"Act9" | |||
chnset kNonActive,"Act10" | |||
chnset kNonActive,"Act11" | |||
chnset kNonActive,"Act12" | |||
chnset kNonActive,"Act13" | |||
chnset kNonActive,"Act14" | |||
chnset kNonActive,"Act15" | |||
chnset kNonActive,"Act16" | |||
reinit RESET_LOOP | |||
endif | |||
RESET_LOOP: | |||
if gkOnOff==0 kgoto SKIP | |||
kPhFreq = gkTempo/240 ;FREQUENCY WITH WHICH TO REPEAT THE ENTIRE PHRASE | |||
kBtFreq = gkTempo/15 ;FREQUENCY OF EACH 1/16TH NOTE | |||
kNewNote metro kBtFreq ;GENERATES A TRIGGER FOR EACH BEAT | |||
;ENVELOPES WITH HELD SEGMENTS | |||
; freq trig ph NOTE:1 (dur) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DUMMY | |||
kNoteLoop lpshold kPhFreq, 0, 0, gkNote1, 1, gkNote2, 1, gkNote3, 1, gkNote4, 1, gkNote5, 1, gkNote6, 1, gkNote7, 1, gkNote8, 1, gkNote9, 1, gkNote10, 1, gkNote11, 1, gkNote12, 1, gkNote13, 1, gkNote4, 1, gkNote15, 1, gkNote16, 1 ;,gkNote1 ;NEED AN EXTRA 'DUMMY' VALUE | |||
kOn lpshold kPhFreq, 0, 0, gkOn1, 1, gkOn2, 1, gkOn3, 1, gkOn4, 1, gkOn5, 1, gkOn6, 1, gkOn7, 1, gkOn8, 1, gkOn9, 1, gkOn10, 1, gkOn11, 1, gkOn12, 1, gkOn13, 1, gkOn14, 1, gkOn15, 1, gkOn16, 1 ;,1 ;NEED AN EXTRA 'DUMMY' VALUE | |||
kAcc lpshold kPhFreq, 0, 0, gkAcc1, 1, gkAcc2, 1, gkAcc3, 1, gkAcc4, 1, gkAcc5, 1, gkAcc6, 1, gkAcc7, 1, gkAcc8, 1, gkAcc9, 1, gkAcc10, 1, gkAcc11, 1, gkAcc12, 1, gkAcc13, 1, gkAcc14, 1, gkAcc15, 1, gkAcc16, 1 ;,1 ;NEED AN EXTRA 'DUMMY' VALUE | |||
kHoldLoop lpshold kPhFreq, 0, 0, gkHold1, 1, gkHold2, 1, gkHold3, 1, gkHold4, 1, gkHold5, 1, gkHold6, 1, gkHold7, 1, gkHold8, 1, gkHold9, 1, gkHold10, 1, gkHold11, 1, gkHold12, 1, gkHold13, 1, gkHold14, 1, gkHold15, 1, gkHold16, 1 ;,0 ;NEED AN EXTRA 'DUMMY' VALUE | |||
kStep lpshold kPhFreq, 0, 0, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 1 ;,0 ;NEED AN EXTRA 'DUMMY' VALUE | |||
kNewOn trigger kOn,0.5,0 ;SENSE A NOTE ON FOLLOWING A NOTE OFF | |||
kAcc portk kAcc*gkAccent,kporttime ;SCALE ACCENT USING ON-SCREEN KNOB AND SMOOTH CHANGES IN ACCENT VALUE TO PREVENT CLICKS | |||
;IGNORE PITCH VALUES AND HOLD VALUES FOR 'OFF' NOTES | |||
kNote init i(gkNote1) | |||
if kOn==1 then ;IF THIS IS AN 'ON' NOTE... | |||
kNote = kNoteLoop ;USE NOTE LOOP VALUE FOR PCH | |||
kHold = kHoldLoop ;USE HOLD LOOP VALUE FOR HOLD | |||
endif | |||
kHoldDel vdel_k kHold, 1/(kBtFreq*2), 1 ;OFFSET HOLD SO THAT ITS VALUE WILL OVERLAP THE NEXT NOTE | |||
kNote portk kNote, 0.01*kHoldDel*kOn ;APPLY PORTAMENTO TO PITCH CHANGES - IF NOTE IS NOT HELD, NO PORTAMENTO WILL BE APPLIED | |||
;FILTER ENVELOPE | |||
kFiltRetrig = (1-kHoldDel) * kNewNote * kOn ; + kOnTrig | |||
;CREATE A FILTER CUTOFF FREQUENCY ENVELOPE. FILTER ATTACK LEVEL IS A SUM OF BASE FREQUENCY, ENVELOPE DEPTH AND ACCENT | |||
; freq trig ph v t v t v t(?) | |||
kCfOct loopseg 1/3600, kFiltRetrig+kNewOn, 0, gkCfBase+gkCfEnv+(kAcc*2), gkDecay, gkCfBase, 3600-gkDecay, gkCfBase, 0 | |||
kCfOct limit kCfOct, 4, 14 ;LIMIT THE CUTOFF FREQUENCY TO BE WITHIN SENSIBLE LIMITS | |||
;AMPLITUDE ENVELOPE - SEPARATES NOTES THAT ARE NOT HELD | |||
katt = 0.02 * (60/gkTempo) | |||
kdec = 0.02 * (60/gkTempo) | |||
; freq trig ph v tim v t v t v t(?) | |||
kAmpEnv loopseg kBtFreq, 0, 0, 0, katt, 1, (1/kBtFreq)-katt-kdec, 1, kdec,0, 0 ;SUSTAIN SEGMENT DURATION (AND THEREFORE ATTACK AND DECAY SEGMENT DURATIONS) ARE DEPENDENT UPON TEMPO | |||
kAmp = (kHoldDel==1?1:kAmpEnv) | |||
;AUDIO OSCILLATOR | |||
kWavTrig changed gkWaveform ;GENERATE A 'BANG' IF WAVEFORM SELECTOR CHANGES | |||
if kWavTrig=1 then ;IF A 'BANG' HAS BEEN GENERATED... | |||
reinit REINIT_VCO ;BEGIN A REINITIALIZATION PASS FROM THE LABEL 'REINIT_VCO' | |||
endif | |||
REINIT_VCO: ;A LABEL | |||
if i(gkWaveform)==1 then ;SAWTOOTH | |||
imode = 0 | |||
elseif i(gkWaveform)==2 then ;SQUARE | |||
imode = 10 | |||
elseif i(gkWaveform)==3 then ;TRIANGLE | |||
imode = 12 | |||
elseif i(gkWaveform)==4 then ;PWM | |||
imode = 2 | |||
elseif i(gkWaveform)==5 then ;NOISE | |||
anoise pinkish 1 | |||
aSig resonsr anoise,cpsmidinn(kNote),cpsmidinn(kNote)*0.005,1 | |||
aSig = aSig*20 | |||
goto SKIP_VCO2 | |||
endif | |||
kpw portk kpw,kporttime | |||
aSig vco2 0.2, cpsmidinn(kNote), imode, kpw ;GENERATE AUDIO USING VCO OSCILLATOR | |||
SKIP_VCO2: | |||
rireturn ;RETURN FROM INITIALIZATION PASS TO PERFORMANCE PASSES | |||
;FILTER (CALLS UDO: A VERSION OF moogladder IN WHICH CUTOFF FREQUENCY IS MODULATED AT kr=sr) IN ORDER TO PREVENT QUANTISATION NOISE) | |||
kres limit gkRes+(kAcc*0.4),0,0.98 ;PREVENT EXCESSIVE RESONANCE THAT COULD RESULT FROM THE COMBINATION OF RESONANCE SETTING AND ACCENTING | |||
/* | |||
aFilt moogladdersr aSig, cpsoct(kCfOct), kres ;FILTER AUDIO | |||
aSig balance aFilt,aSig | |||
;DISTORTION | |||
if gkDist==0 kgoto SKIP_DISTORTION | |||
iSclLimit ftgentmp 0, 0, 1024, -16, 1, 1024, -8, 0.01 ;RESCALING CURVE FOR CLIP 'LIMIT' PARAMETER | |||
iSclGain ftgentmp 0, 0, 1024, -16, 1, 1024, 4, 10 ;RESCALING CURVE FOR GAIN COMPENSATION | |||
kLimit table gkDist, iSclLimit, 1 ;READ LIMIT VALUE FROM RESCALING CURVE | |||
kGain table gkDist, iSclGain, 1 ;READ GAIN VALUE FROM RESCALING CURVE | |||
kTrigDist changed kLimit ;IF LIMIT VALUE CHANGES GENERATE A 'BANG' | |||
if kTrigDist=1 then ;IF A 'BANG' HAS BEEN GENERATED... | |||
reinit REINIT_CLIP ;BEGIN A REINITIALIZATION PASS FROM LABEL 'REINIT_CLIP' | |||
endif | |||
REINIT_CLIP: | |||
aSig clip aSig, 0, i(kLimit) ;CLIP DISTORT AUDIO SIGNAL | |||
rireturn ; | |||
aSig = aSig * kGain ;COMPENSATE FOR GAIN LOSS FROM 'CLIP' PROCESSING | |||
*/ | |||
iSclGain ftgentmp 0, 0, 1024, -16, 1, 1024, -6, 0.1 ;RESCALING CURVE FOR GAIN COMPENSATION | |||
kGain table gkDist, iSclGain, 1 ;READ GAIN VALUE FROM RESCALING CURVE | |||
aSig lpf18 aSig,cpsoct(kCfOct),kres, (gkDist^2)*20 ;LOWPASS | |||
;aSig tone aSig,cpsoct(kCfOct) | |||
af1 resonz aSig,150,150,1 | |||
aSig = aSig+af1 | |||
aSig butlp aSig,4000 | |||
aSig = aSig * kGain ;COMPENSATE FOR GAIN LOSS FROM 'CLIP' PROCESSING | |||
SKIP_DISTORTION: | |||
kOn port kOn, 0.006 ;SMOOTH CHANGES IN ON OFF SWITCHING | |||
aAmp interp ((kAmp*kOn)*((kAcc*0.7)+1)*gkVol) ;COMBINE ALL FACTORS THAT CONTRIBUTE TO AMPLITUDE AND INTERPOLATE AND CREATE AN A-RATE VERSION OF THIS RESULT (TO PREVENT QUANTISATION NOISE) | |||
aSig = aSig * aAmp ;SCALE AUDIO USING AMPLITUDE CONTROL FUNCTION | |||
outs aSig, aSig ;AUDIO SENT TO OUTPUT, APPLY AMP. ENVELOPE, VOLUME CONTROL AND NOTE ON/OFF STATUS | |||
rireturn | |||
SKIP: | |||
;RESET SEQUENCE TO BLANK | |||
ktrig changed gkReset | |||
if ktrig==1 then | |||
kval = 60 | |||
chnset kval,"Note1" | |||
chnset kval,"Note2" | |||
chnset kval,"Note3" | |||
chnset kval,"Note4" | |||
chnset kval,"Note5" | |||
chnset kval,"Note6" | |||
chnset kval,"Note7" | |||
chnset kval,"Note8" | |||
chnset kval,"Note9" | |||
chnset kval,"Note10" | |||
chnset kval,"Note11" | |||
chnset kval,"Note12" | |||
chnset kval,"Note13" | |||
chnset kval,"Note14" | |||
chnset kval,"Note15" | |||
chnset kval,"Note16" | |||
kval = 0 | |||
chnset kval,"On1" | |||
chnset kval,"On2" | |||
chnset kval,"On3" | |||
chnset kval,"On4" | |||
chnset kval,"On5" | |||
chnset kval,"On6" | |||
chnset kval,"On7" | |||
chnset kval,"On8" | |||
chnset kval,"On9" | |||
chnset kval,"On10" | |||
chnset kval,"On11" | |||
chnset kval,"On12" | |||
chnset kval,"On13" | |||
chnset kval,"On14" | |||
chnset kval,"On15" | |||
chnset kval,"On16" | |||
chnset kval,"Hold1" | |||
chnset kval,"Hold2" | |||
chnset kval,"Hold3" | |||
chnset kval,"Hold4" | |||
chnset kval,"Hold5" | |||
chnset kval,"Hold6" | |||
chnset kval,"Hold7" | |||
chnset kval,"Hold8" | |||
chnset kval,"Hold9" | |||
chnset kval,"Hold10" | |||
chnset kval,"Hold11" | |||
chnset kval,"Hold12" | |||
chnset kval,"Hold13" | |||
chnset kval,"Hold14" | |||
chnset kval,"Hold15" | |||
chnset kval,"Hold16" | |||
chnset kval,"Acc1" | |||
chnset kval,"Acc2" | |||
chnset kval,"Acc3" | |||
chnset kval,"Acc4" | |||
chnset kval,"Acc5" | |||
chnset kval,"Acc6" | |||
chnset kval,"Acc7" | |||
chnset kval,"Acc8" | |||
chnset kval,"Acc9" | |||
chnset kval,"Acc10" | |||
chnset kval,"Acc11" | |||
chnset kval,"Acc12" | |||
chnset kval,"Acc13" | |||
chnset kval,"Acc14" | |||
chnset kval,"Acc15" | |||
chnset kval,"Acc16" | |||
endif | |||
;RANDOMISE SEQUENCE | |||
ktrig changed gkRnd | |||
if ktrig==1 then | |||
#define RANDOM_STEP(N) | |||
# | |||
kval random 48,72.999 | |||
chnset int(kval),"Note$N" | |||
kval random 0,1.999 | |||
chnset int(kval),"On$N" | |||
kval random 0,1.999 | |||
chnset int(kval),"Hold$N" | |||
kval random 0,1.999 | |||
chnset int(kval),"Acc$N" | |||
# | |||
$RANDOM_STEP(1) | |||
$RANDOM_STEP(2) | |||
$RANDOM_STEP(3) | |||
$RANDOM_STEP(4) | |||
$RANDOM_STEP(5) | |||
$RANDOM_STEP(6) | |||
$RANDOM_STEP(7) | |||
$RANDOM_STEP(8) | |||
$RANDOM_STEP(9) | |||
$RANDOM_STEP(10) | |||
$RANDOM_STEP(11) | |||
$RANDOM_STEP(12) | |||
$RANDOM_STEP(13) | |||
$RANDOM_STEP(14) | |||
$RANDOM_STEP(15) | |||
$RANDOM_STEP(16) | |||
endif | |||
;PROGRESS INDICATORS | |||
kStepChange changed kStep | |||
kActive = 1 | |||
kNonActive = 0 | |||
if kStepChange==1 then | |||
if kStep==1 then | |||
chnset kActive,"Act1" | |||
chnset kNonActive,"Act16" | |||
elseif kStep==2 then | |||
chnset kActive,"Act2" | |||
chnset kNonActive,"Act1" | |||
elseif kStep==3 then | |||
chnset kActive,"Act3" | |||
chnset kNonActive,"Act2" | |||
elseif kStep==4 then | |||
chnset kActive,"Act4" | |||
chnset kNonActive,"Act3" | |||
elseif kStep==5 then | |||
chnset kActive,"Act5" | |||
chnset kNonActive,"Act4" | |||
elseif kStep==6 then | |||
chnset kActive,"Act6" | |||
chnset kNonActive,"Act5" | |||
elseif kStep==7 then | |||
chnset kActive,"Act7" | |||
chnset kNonActive,"Act6" | |||
elseif kStep==8 then | |||
chnset kActive,"Act8" | |||
chnset kNonActive,"Act7" | |||
elseif kStep==9 then | |||
chnset kActive,"Act9" | |||
chnset kNonActive,"Act8" | |||
elseif kStep==10 then | |||
chnset kActive,"Act10" | |||
chnset kNonActive,"Act9" | |||
elseif kStep==11 then | |||
chnset kActive,"Act11" | |||
chnset kNonActive,"Act10" | |||
elseif kStep==12 then | |||
chnset kActive,"Act12" | |||
chnset kNonActive,"Act11" | |||
elseif kStep==13 then | |||
chnset kActive,"Act13" | |||
chnset kNonActive,"Act12" | |||
elseif kStep==14 then | |||
chnset kActive,"Act14" | |||
chnset kNonActive,"Act13" | |||
elseif kStep==15 then | |||
chnset kActive,"Act15" | |||
chnset kNonActive,"Act14" | |||
elseif kStep==16 then | |||
chnset kActive,"Act16" | |||
chnset kNonActive,"Act15" | |||
endif | |||
endif | |||
;TRANSPOSE | |||
ktrig1 changed kSemiDn | |||
ktrig2 changed kSemiUp | |||
ktrig3 changed kOctDn | |||
ktrig4 changed kOctUp | |||
if ktrig1+ktrig2+ktrig3+ktrig4==1 then | |||
#define TRANSPOSE(N) | |||
# | |||
kval limit gkNote$N+kInt,24,96 | |||
chnset kval,"Note$N" | |||
# | |||
if ktrig1==1 then | |||
kInt = -1 | |||
elseif ktrig2==1 then | |||
kInt = 1 | |||
elseif ktrig3==1 then | |||
kInt = -12 | |||
elseif ktrig4==1 then | |||
kInt = 12 | |||
endif | |||
$TRANSPOSE(1) | |||
$TRANSPOSE(2) | |||
$TRANSPOSE(3) | |||
$TRANSPOSE(4) | |||
$TRANSPOSE(5) | |||
$TRANSPOSE(6) | |||
$TRANSPOSE(7) | |||
$TRANSPOSE(8) | |||
$TRANSPOSE(9) | |||
$TRANSPOSE(10) | |||
$TRANSPOSE(11) | |||
$TRANSPOSE(12) | |||
$TRANSPOSE(13) | |||
$TRANSPOSE(14) | |||
$TRANSPOSE(15) | |||
$TRANSPOSE(16) | |||
endif | |||
endin | |||
</CsInstruments> | |||
<CsScore> | |||
i 1 0 [3600*24*7] | |||
</CsScore> | |||
</CsoundSynthesizer> | |||
@@ -0,0 +1,77 @@ | |||
------------------------ Instrument ID: bassline | |||
-------- Start of Preset: Preset 1 | |||
Note1: 48 | |||
Note2: 60 | |||
Note3: 60 | |||
Note4: 60 | |||
Note5: 60 | |||
Note6: 60 | |||
Note7: 60 | |||
Note8: 60 | |||
Note9: 60 | |||
Note10: 60 | |||
Note11: 60 | |||
Note12: 60 | |||
Note13: 60 | |||
Note14: 60 | |||
Note15: 60 | |||
Note16: 60 | |||
On1: 1 | |||
On2: 0 | |||
On3: 0 | |||
On4: 0 | |||
On5: 0 | |||
On6: 0 | |||
On7: 0 | |||
On8: 0 | |||
On9: 0 | |||
On10: 0 | |||
On11: 0 | |||
On12: 0 | |||
On13: 0 | |||
On14: 0 | |||
On15: 0 | |||
On16: 0 | |||
Hold1: 0 | |||
Hold2: 0 | |||
Hold3: 0 | |||
Hold4: 0 | |||
Hold5: 0 | |||
Hold6: 0 | |||
Hold7: 0 | |||
Hold8: 0 | |||
Hold9: 0 | |||
Hold10: 0 | |||
Hold11: 0 | |||
Hold12: 0 | |||
Hold13: 0 | |||
Hold14: 0 | |||
Hold15: 0 | |||
Hold16: 0 | |||
Acc1: 0 | |||
Acc2: 0 | |||
Acc3: 0 | |||
Acc4: 0 | |||
Acc5: 0 | |||
Acc6: 0 | |||
Acc7: 0 | |||
Acc8: 0 | |||
Acc9: 0 | |||
Acc10: 0 | |||
Acc11: 0 | |||
Acc12: 0 | |||
Acc13: 0 | |||
Acc14: 0 | |||
Acc15: 0 | |||
Acc16: 0 | |||
Waveform: 1 | |||
pw: 0.25 | |||
Vol: 1 | |||
CfBase: 8 | |||
CfEnv: 4 | |||
Res: 0.400000006 | |||
Dist: 0 | |||
Decay: 0.300000012 | |||
Accent: 0.5 | |||
-------- End of Preset: Preset 1 | |||
------------------------ End of Instrument ID: bassline |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_lv2_project("CabbagePluginEffectLv2") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "Cabbage_Plugin_LV2=1", "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_lv2_project("CabbagePluginSynthLv2") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "Cabbage_Plugin_Synth=1", "Cabbage_Plugin_LV2=1", "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_lv2_project("CabbagePluginMidiLv2") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "Cabbage_Plugin_Midi=1", "Cabbage_Plugin_LV2=1", "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_vst_project("CabbagePluginEffect") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_vst_project("CabbagePluginSynth") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "Cabbage_Plugin_Synth=1", "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,27 @@ | |||
dofile("../../../scripts/make-project.lua") | |||
package = make_juce_vst_project("CabbagePluginMidi") | |||
project.bindir = "../../../bin/cabbage" | |||
package.links = { package.links, "csound64", "sndfile", "FLAC", "vorbisenc", "vorbis", "ogg", "m" } | |||
package.defines = { package.defines, "Cabbage_Plugin_Midi=1", "USE_DOUBLE=1", "CSOUND6=1" } | |||
package.includepaths = { | |||
package.includepaths, | |||
"/opt/kxstudio/include/csound", | |||
"/usr/include/csound" | |||
} | |||
package.libpaths = { | |||
package.libpaths, | |||
"/opt/kxstudio/lib" | |||
} | |||
package.files = { | |||
matchfiles ( | |||
"../source/*.cpp", | |||
"../source/Plugin/*.cpp", | |||
"../../../libs/juce-plugin/JucePluginMain.cpp" | |||
) | |||
} |
@@ -0,0 +1,711 @@ | |||
/* ==================================== JUCER_BINARY_RESOURCE ==================================== | |||
This is an auto-generated file: Any edits you make may be overwritten! | |||
*/ | |||
namespace BinaryData | |||
{ | |||
//================== cabbageLogoHBlueText.png ================== | |||
static const unsigned char temp_5e47874a[] = | |||
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,162,0,0,0,50,8,6,0,0,0,223,148,0,88,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,23,18,0,0,23,18,1,103,159,210,82,0,0,0,7,116, | |||
73,77,69,7,221,2,2,20,36,27,210,31,29,92,0,0,29,180,73,68,65,84,120,218,237,125,121,124,27,213,189,253,57,35,121,137,29,156,125,39,9,73,112,201,194,18,32,96,67,28,104,109,1,65,74,75,67,23,74,91,74,121,60,74,99,91,238,190,209,246,117,161,125,45,180,60, | |||
64,138,77,91,246,182,180,101,121,45,75,36,10,145,194,98,39,177,11,165,64,32,97,203,70,18,178,39,118,98,199,171,230,188,63,102,70,26,201,178,73,154,184,191,95,193,243,249,200,139,60,186,115,231,222,115,207,247,251,61,223,239,29,19,71,113,212,54,150,161, | |||
170,180,1,181,77,101,35,170,74,26,246,215,61,87,6,36,56,163,178,180,126,125,119,79,231,136,253,29,155,142,47,200,25,117,138,65,207,217,45,237,91,166,27,70,206,36,130,69,32,33,153,137,132,186,91,32,115,219,240,33,39,108,232,74,180,54,181,116,110,91,55, | |||
182,112,214,142,33,57,69,123,48,120,188,175,14,30,109,3,117,77,11,70,74,88,75,154,55,64,198,1,16,183,73,230,117,149,37,13,245,173,93,187,175,56,212,181,47,214,99,118,236,156,88,116,218,78,0,251,1,180,3,232,6,144,7,96,40,128,145,27,247,215,143,207,247, | |||
14,155,52,36,103,228,162,67,93,123,206,108,239,110,217,62,118,232,73,183,23,229,79,248,61,0,72,2,201,193,217,26,4,98,191,172,248,44,201,5,16,0,10,16,5,10,9,179,251,115,141,91,155,30,152,63,229,188,227,0,237,3,96,0,240,74,72,24,6,122,150,156,93,159,108, | |||
195,52,77,24,134,145,252,93,210,194,245,251,158,9,153,234,41,158,54,188,236,170,230,142,45,127,24,51,180,184,43,219,185,131,199,32,16,81,215,84,246,105,128,247,73,18,93,148,37,1,36,0,233,77,129,197,162,62,75,241,37,64,119,146,104,145,240,14,132,109,36, | |||
150,85,150,54,172,118,183,233,102,63,73,11,94,217,249,72,165,65,99,65,65,238,152,165,211,70,156,243,243,65,48,14,2,209,109,142,97,154,42,32,17,7,89,154,165,17,57,109,203,249,81,137,17,128,231,102,80,51,36,108,49,160,173,162,97,82,56,3,52,227,74,120,254, | |||
167,234,220,103,123,28,191,51,3,156,179,214,237,138,62,159,80,231,174,147,199,45,158,75,178,101,208,92,191,183,142,35,162,21,73,0,128,202,146,122,208,224,92,102,7,97,26,192,9,130,16,8,35,94,85,90,127,21,132,111,26,192,90,209,232,132,4,81,113,137,69,52, | |||
204,191,215,54,46,248,47,8,147,28,176,187,24,114,221,236,113,129,66,0,241,151,182,63,208,252,198,158,216,213,36,209,214,181,111,112,6,223,111,140,152,201,64,181,77,11,94,33,48,231,176,63,14,17,194,15,64,222,73,105,35,200,28,200,33,78,37,89,84,64,23,136, | |||
154,170,146,134,95,103,187,246,222,182,13,23,174,219,189,236,137,153,163,47,190,127,244,208,226,79,13,6,51,239,67,211,252,143,55,247,92,52,231,132,81,95,187,239,229,15,255,186,189,167,249,33,11,55,135,219,134,4,145,130,230,144,252,52,160,239,66,200,134, | |||
32,203,229,4,158,20,248,153,170,210,250,61,181,77,11,80,85,82,159,4,92,123,87,243,249,79,174,255,209,83,39,142,44,95,215,209,211,242,231,89,163,3,143,22,228,141,120,110,112,58,223,195,64,116,38,191,254,197,237,53,173,237,221,183,126,96,214,223,167,253, | |||
245,181,95,70,9,206,194,145,176,144,32,81,36,176,17,74,156,44,120,119,145,40,236,243,84,144,146,182,147,92,84,89,82,255,66,102,132,157,232,233,158,247,244,230,95,60,183,110,215,99,24,85,112,98,226,130,19,127,88,61,186,112,198,175,6,217,241,61,233,35, | |||
126,11,36,177,97,91,203,194,77,219,15,222,186,240,236,201,103,70,214,254,236,51,164,113,100,32,180,157,69,130,0,56,13,240,84,17,154,15,57,86,57,203,169,22,89,142,23,180,178,182,177,172,212,242,27,231,195,48,12,72,130,199,155,243,252,233,19,62,83,49,118, | |||
232,108,236,107,223,224,105,218,122,251,109,237,93,45,83,72,38,125,217,193,227,61,3,196,27,32,201,247,68,211,214,199,207,153,89,124,97,221,115,231,94,226,245,228,253,36,43,122,142,36,232,1,126,14,96,191,160,31,169,207,182,104,127,97,62,200,229,181,141, | |||
243,207,173,44,89,137,186,198,5,32,9,211,52,49,178,96,234,138,138,233,215,253,212,99,228,98,253,190,21,216,176,255,153,149,0,6,25,241,189,102,154,37,141,184,55,250,230,139,87,250,139,127,250,203,134,89,237,133,185,163,239,77,1,4,71,11,198,125,70,103, | |||
215,4,229,230,108,22,56,30,132,216,103,187,18,192,46,65,115,170,74,26,214,215,54,46,64,85,105,61,18,137,110,120,60,57,216,218,252,143,53,127,89,183,228,100,210,64,85,201,202,74,146,183,13,78,237,123,136,17,223,218,218,242,165,217,39,140,126,246,251,177, | |||
162,167,10,114,199,220,9,145,199,8,132,34,48,210,204,205,249,170,192,47,216,226,119,127,235,133,146,242,40,60,108,253,102,2,0,60,158,28,0,192,164,97,115,23,124,96,212,133,251,9,226,233,13,55,92,41,41,111,112,106,255,141,129,104,154,102,50,64,145,204, | |||
69,111,239,108,251,234,89,179,71,124,125,194,113,167,189,74,33,71,196,49,113,190,8,208,206,198,44,161,193,39,37,173,102,255,246,84,4,19,2,110,170,109,42,251,117,101,201,74,212,54,149,37,251,76,178,121,206,248,75,127,70,120,181,183,125,253,25,91,154,159, | |||
159,152,72,36,6,103,247,223,13,136,142,115,79,114,196,235,155,247,255,120,251,222,67,111,109,124,231,224,163,229,103,78,188,241,127,86,158,86,77,34,167,127,211,249,79,128,209,2,222,20,153,230,34,146,63,238,39,192,176,19,216,88,69,98,31,133,47,212,54, | |||
149,249,171,74,172,236,139,147,234,155,116,220,105,161,185,19,47,219,179,247,208,250,28,193,252,176,199,227,25,156,221,127,39,32,74,194,198,119,14,64,18,119,238,107,127,201,99,24,241,183,119,181,222,186,117,87,91,243,173,107,121,75,190,183,232,154,35, | |||
211,11,143,192,68,75,0,241,83,8,171,72,238,236,11,179,2,14,146,184,0,226,205,86,64,205,159,212,54,46,24,90,103,179,162,45,217,116,158,51,121,73,48,63,103,56,14,116,108,187,210,205,240,255,191,28,190,96,164,207,191,85,4,163,239,107,32,122,109,185,131, | |||
187,155,219,95,105,235,72,84,205,56,190,104,231,35,127,220,28,42,157,51,229,63,216,50,239,211,244,112,220,128,69,74,164,0,156,36,168,128,192,86,128,99,147,128,119,100,109,169,27,192,124,16,127,4,49,29,128,72,157,14,225,131,149,37,13,203,234,26,231,195, | |||
145,108,72,222,191,114,115,221,141,187,15,189,126,134,155,45,143,26,64,53,209,161,128,78,77,58,38,86,15,15,66,124,37,22,246,31,182,187,18,11,7,80,17,140,156,79,171,12,206,105,43,33,240,185,120,200,111,190,175,129,8,0,91,118,28,188,167,176,32,231,247, | |||
211,39,14,125,236,206,199,94,223,190,102,195,190,3,95,189,252,148,7,94,250,91,254,238,1,143,218,45,174,61,3,224,142,52,214,181,64,72,144,139,9,125,1,192,98,36,139,41,8,17,15,1,200,175,44,93,9,183,100,83,148,55,241,198,87,90,86,47,149,228,35,25,59,70, | |||
212,61,71,228,74,183,212,32,161,17,212,135,0,116,28,217,13,243,105,165,251,203,93,144,70,0,56,244,190,54,205,7,219,58,39,121,188,198,180,81,195,134,252,108,211,142,131,255,241,167,229,235,199,158,54,99,236,75,15,174,251,196,121,2,134,0,24,96,117,88,160, | |||
56,13,208,214,100,206,89,142,111,136,50,2,83,0,86,35,237,143,2,164,188,186,166,178,96,102,176,117,242,184,75,158,105,239,222,223,222,222,221,50,255,159,53,147,89,168,219,36,208,69,34,169,227,147,232,178,93,150,35,85,12,224,180,99,183,213,145,222,175, | |||
104,54,70,62,172,182,203,143,228,158,6,248,40,175,94,118,68,247,97,116,39,52,223,52,117,191,36,227,137,213,91,3,9,83,198,121,167,77,105,216,117,224,237,79,240,24,105,134,239,50,201,0,148,3,176,205,137,153,64,116,1,56,11,210,229,0,110,75,49,161,221,33, | |||
207,193,235,71,141,217,186,120,244,232,221,47,166,221,140,97,128,228,43,31,24,117,193,182,205,205,43,79,239,229,135,213,68,210,204,100,255,230,56,210,27,65,217,205,54,142,10,240,202,52,223,254,222,38,61,228,71,69,63,215,241,93,107,93,99,197,187,220,83, | |||
95,109,188,91,31,125,53,81,84,28,166,127,235,171,137,192,23,92,142,21,75,23,101,189,15,0,168,168,238,221,150,183,179,43,177,176,39,161,186,215,55,55,123,119,53,119,148,230,120,13,156,49,171,240,185,213,77,222,159,184,74,92,7,148,17,65,182,195,52,135, | |||
195,48,32,96,19,19,152,38,143,30,167,97,44,180,187,64,89,190,226,87,182,199,235,127,227,25,247,194,221,127,121,101,231,247,123,122,76,84,4,83,210,38,169,239,198,66,129,255,62,105,116,224,207,235,247,197,23,187,7,50,22,242,195,76,16,21,193,136,135,228, | |||
98,72,191,1,57,34,243,22,5,53,80,184,18,38,55,166,193,132,89,148,80,187,226,210,87,19,157,2,97,133,160,25,73,55,65,90,37,224,194,88,56,208,230,76,86,60,11,200,156,181,238,171,94,6,144,227,65,46,147,112,38,9,192,4,64,172,19,116,62,118,123,118,59,19,29, | |||
11,5,146,223,1,0,121,164,175,58,58,89,212,189,148,62,40,195,0,211,145,126,0,66,13,164,223,249,106,162,166,3,108,218,224,136,133,3,240,125,41,154,11,83,247,2,250,148,229,253,216,85,81,194,103,99,33,255,125,246,56,78,21,48,156,73,143,5,166,132,55,226,97, | |||
127,167,47,24,181,22,81,66,128,209,198,138,154,232,127,81,250,161,173,189,57,51,180,87,194,66,18,127,207,92,130,124,237,237,230,149,39,77,30,118,233,125,79,188,217,242,210,91,251,218,189,134,129,239,44,121,109,222,239,154,126,243,24,201,9,3,141,65,219, | |||
225,90,8,242,27,146,10,64,84,81,252,157,168,57,180,163,245,174,68,235,163,151,204,186,249,246,155,239,42,186,122,237,230,29,31,77,36,76,24,6,221,169,60,171,132,76,86,4,61,115,202,184,229,159,248,200,250,226,15,158,244,201,233,23,212,68,21,11,7,224,171, | |||
137,122,36,132,1,44,233,103,105,41,233,183,2,155,68,93,17,15,5,26,124,53,145,179,0,54,0,200,117,157,187,2,64,165,160,91,41,94,36,10,78,127,173,170,34,171,63,36,126,19,11,249,175,117,177,135,50,174,223,2,224,12,72,63,6,249,25,59,232,114,106,55,236,251, | |||
18,8,254,25,212,167,4,118,67,72,130,218,87,19,189,10,194,117,0,78,116,194,60,219,183,206,24,155,164,68,247,61,201,184,33,30,94,216,227,114,7,174,7,240,61,27,48,105,181,121,246,103,215,1,184,144,228,205,0,62,158,49,102,39,199,66,254,87,237,190,20,64,250, | |||
57,128,160,195,12,105,110,181,156,53,138,183,65,93,30,15,5,86,57,11,138,27,183,29,120,235,132,137,199,205,94,183,169,121,228,210,135,94,221,62,111,230,24,180,78,59,105,186,167,181,108,13,201,194,1,102,67,187,115,156,9,225,75,0,190,12,232,77,17,83,104, | |||
207,108,194,236,122,186,186,180,241,207,139,190,254,228,77,29,93,61,57,14,227,88,147,147,12,106,210,89,77,66,142,23,123,37,227,172,132,169,141,0,242,36,109,36,49,33,109,168,83,31,112,62,111,67,200,5,72,226,120,73,19,8,174,4,109,32,90,231,191,8,97,50, | |||
136,81,112,183,232,20,164,203,233,154,64,242,229,88,200,127,154,61,233,202,96,215,14,0,207,3,44,75,219,114,145,90,164,246,132,138,16,223,138,133,253,197,14,195,251,170,35,223,16,113,131,93,80,146,44,90,114,128,152,217,149,36,168,169,95,3,158,37,177,208, | |||
197,242,85,71,30,133,193,15,163,15,129,206,213,167,54,0,255,43,232,115,76,157,216,38,224,44,0,235,40,76,4,176,10,196,84,119,83,110,84,211,94,37,86,61,11,33,233,130,120,56,16,243,5,35,48,18,130,9,192,232,238,49,123,104,16,163,134,229,189,209,217,90,56, | |||
146,224,144,129,118,104,237,21,146,168,44,169,127,29,166,190,45,96,35,200,41,132,3,194,158,181,213,243,26,191,127,205,207,235,111,233,232,234,241,146,116,150,148,232,120,251,142,204,147,113,116,39,56,170,199,212,239,98,33,63,4,221,66,112,66,114,120,82, | |||
181,184,207,64,250,139,200,135,1,53,88,254,169,50,25,225,9,144,45,105,147,100,1,99,46,168,81,176,104,216,154,245,148,40,47,27,7,54,30,116,138,175,38,250,165,172,174,166,152,47,161,12,201,217,201,128,181,197,42,148,213,250,137,190,96,228,238,88,200,15, | |||
95,48,58,13,6,111,36,73,166,221,151,222,6,249,8,128,135,9,253,69,192,1,186,157,11,18,144,113,173,100,142,175,8,70,63,34,131,139,236,229,151,238,121,36,3,171,228,224,22,66,248,28,179,4,104,220,177,3,32,254,12,98,42,28,240,75,72,153,7,219,92,57,33,128, | |||
189,232,9,44,247,213,68,103,197,194,1,120,19,102,98,55,128,225,155,182,31,108,30,146,235,65,209,208,220,45,232,40,58,14,6,6,124,119,146,221,157,135,173,72,131,143,2,152,152,50,37,230,190,75,206,188,226,170,155,31,90,179,122,253,182,131,134,199,112,49, | |||
158,181,156,126,73,226,118,57,193,142,112,5,192,111,129,201,21,44,0,243,125,193,232,53,16,62,110,19,172,211,66,55,192,47,10,188,55,30,246,39,44,166,250,43,193,196,247,32,254,216,153,50,219,160,205,33,56,209,42,235,77,245,192,38,76,17,218,35,224,35,128, | |||
246,219,202,210,36,8,241,100,28,230,80,173,116,29,128,91,251,16,176,44,116,11,165,36,154,109,36,76,4,185,194,46,40,150,141,55,65,184,180,162,102,217,247,33,213,166,186,1,218,188,249,178,136,249,241,144,191,213,101,118,79,19,244,87,146,227,236,37,228, | |||
12,196,217,20,110,17,210,204,56,4,36,8,149,83,216,109,165,248,53,4,228,111,41,157,44,50,27,105,182,98,220,184,16,128,18,57,4,145,106,237,60,137,123,8,36,64,38,36,252,138,144,15,46,210,7,116,155,47,24,89,104,20,228,121,95,125,103,79,219,228,211,63,48, | |||
202,204,207,245,110,41,42,200,221,75,13,25,142,127,65,37,149,172,137,251,83,93,99,89,64,212,249,118,255,40,8,134,167,231,15,91,214,125,236,230,7,226,27,221,32,180,108,185,240,187,120,56,240,13,136,111,196,67,254,55,40,190,26,11,7,190,45,154,119,164,108, | |||
181,213,14,136,90,16,163,221,67,40,97,107,44,236,191,43,30,242,39,82,209,234,66,197,66,129,235,197,222,146,187,164,113,233,164,107,179,130,212,17,155,60,121,108,60,28,104,140,135,3,175,147,120,61,30,242,175,0,229,3,213,147,34,64,137,228,216,138,96,244, | |||
163,89,200,155,16,187,98,33,63,227,97,127,147,164,215,1,190,30,11,7,158,146,204,145,74,95,65,20,89,4,241,66,16,23,39,23,140,253,197,4,62,29,15,5,90,51,162,240,151,64,172,78,49,162,237,187,130,149,130,78,112,24,78,150,19,41,72,23,196,194,129,103,65,174, | |||
139,133,252,175,197,195,129,127,196,67,254,83,4,238,177,87,84,58,119,10,179,5,6,237,123,164,181,72,209,25,15,7,24,15,5,234,1,115,93,44,236,127,67,192,122,131,88,36,224,101,119,150,151,226,121,34,102,24,5,249,222,199,77,83,231,78,30,55,180,123,204,240, | |||
188,149,94,175,135,132,103,232,191,68,108,34,122,4,196,68,94,227,178,89,34,136,249,147,190,181,250,87,15,175,155,91,56,196,43,164,113,33,33,232,26,183,212,225,124,239,150,249,197,164,97,180,117,32,8,57,146,174,144,180,216,126,93,74,242,115,189,37,136, | |||
136,203,46,185,59,67,244,42,182,77,25,178,114,124,243,212,228,103,173,104,52,130,120,40,16,183,89,145,206,233,182,163,246,149,94,41,117,193,4,241,237,84,100,29,176,252,191,96,4,241,240,162,253,128,110,148,219,162,91,254,204,53,146,46,145,176,216,117, | |||
95,159,92,17,14,188,218,135,136,222,220,219,43,210,133,22,38,69,7,21,146,30,138,135,3,79,57,62,168,91,158,34,229,83,210,95,117,231,104,113,185,45,125,184,237,220,149,142,44,20,15,91,50,78,60,228,199,242,144,191,147,150,28,151,214,57,10,151,113,243,246, | |||
3,19,115,188,158,123,39,142,41,188,96,237,250,125,159,242,230,120,46,121,100,203,220,63,20,122,143,127,116,192,3,102,105,141,58,116,26,135,48,225,142,54,36,173,157,216,182,124,233,93,127,125,182,174,189,51,145,233,60,223,19,15,7,174,170,168,94,134,120, | |||
22,173,170,34,24,185,88,212,112,183,206,109,192,120,60,22,242,31,232,71,235,35,128,92,145,223,166,240,195,100,152,146,58,46,131,240,91,16,174,242,50,189,5,240,12,64,7,147,50,74,186,246,86,14,32,238,14,95,156,160,49,163,237,67,0,230,197,66,254,117,125, | |||
104,120,231,64,120,6,68,142,107,12,58,227,225,64,254,187,141,113,69,48,154,15,234,68,2,177,180,244,105,246,180,63,73,115,110,44,180,232,165,108,154,106,44,20,128,47,24,221,6,106,98,42,11,139,14,2,27,64,204,118,181,116,0,66,57,12,172,205,50,231,2,48,140, | |||
226,142,140,96,241,21,239,212,9,69,239,108,223,211,246,206,150,157,173,215,77,30,55,244,191,37,141,212,166,220,110,120,6,86,66,180,18,120,124,149,67,120,134,91,236,16,4,193,188,107,79,235,246,75,14,117,244,164,87,91,91,163,245,8,128,172,32,180,181,172, | |||
199,223,117,130,106,162,11,8,148,3,24,34,203,206,78,32,116,9,133,162,148,248,146,57,136,153,111,242,45,65,29,241,80,118,17,57,22,242,175,176,217,132,112,5,191,25,173,8,66,143,160,117,253,172,216,53,32,18,128,13,68,65,36,243,42,106,30,203,139,135,62,220, | |||
153,202,170,68,39,26,196,165,146,142,183,131,232,60,1,31,34,120,106,255,146,124,202,210,196,66,139,94,170,8,214,33,30,174,204,184,151,128,51,105,175,74,152,232,202,46,229,8,152,146,86,18,67,22,0,184,31,66,79,214,152,0,232,206,162,88,204,246,2,192,132, | |||
209,133,87,190,177,165,185,69,50,155,72,214,213,54,150,149,3,52,129,129,12,88,68,136,207,3,10,88,128,39,83,1,109,87,253,254,131,135,190,209,75,101,33,65,105,109,223,69,5,126,244,181,154,207,9,70,80,64,174,19,80,76,152,180,216,201,190,164,35,112,56,76, | |||
200,195,146,63,247,16,236,201,206,68,17,196,195,1,200,122,206,207,16,186,162,79,119,41,157,36,130,104,233,11,204,246,61,181,250,130,17,51,149,91,180,175,111,26,99,1,108,169,168,137,132,40,86,138,34,156,123,162,232,10,253,29,61,153,253,79,133,172,66,12, | |||
158,208,223,173,239,206,8,70,12,8,133,214,5,146,129,160,23,224,140,254,69,90,23,116,73,9,50,12,199,247,41,62,126,216,148,205,59,218,110,222,189,255,208,229,173,221,91,119,130,26,224,36,60,65,154,47,8,244,165,47,86,66,198,193,205,93,221,221,189,170,126, | |||
236,238,183,30,238,21,42,130,81,196,66,1,84,212,68,191,84,104,209,209,76,3,242,0,134,65,199,53,74,42,199,2,164,71,148,202,117,103,246,54,115,101,247,201,48,241,84,170,173,141,239,146,221,164,181,224,81,145,37,55,235,142,209,123,37,69,137,226,138,96,228, | |||
77,138,65,16,30,138,134,101,77,64,231,177,6,182,191,187,17,208,107,253,79,133,64,49,199,21,134,245,181,2,189,25,115,101,169,71,174,79,9,174,100,108,198,43,131,111,92,247,67,24,174,18,170,150,230,214,174,179,143,43,200,253,65,160,248,166,9,146,14,12,180, | |||
136,8,24,91,1,77,67,122,68,11,192,240,244,179,128,39,244,237,235,69,51,0,225,71,69,48,122,50,165,91,108,210,147,28,141,140,162,164,63,138,156,39,105,6,133,241,177,112,96,113,42,185,208,219,52,167,251,232,40,236,203,98,56,185,87,74,163,251,219,1,97,135, | |||
171,69,125,185,26,118,126,188,15,54,227,3,4,79,20,83,130,157,37,242,104,155,164,75,37,20,75,154,76,154,179,37,196,251,221,137,33,74,20,42,130,209,105,217,172,138,107,65,76,79,15,154,33,1,61,110,150,167,216,44,233,106,73,139,142,228,229,117,50,21,166, | |||
105,162,245,80,119,71,126,158,119,230,138,13,191,48,64,163,217,214,245,6,174,216,65,58,196,244,180,25,72,129,230,208,201,121,185,222,29,0,198,247,2,131,88,6,224,239,125,153,102,95,48,178,16,192,52,219,36,117,130,168,116,91,52,203,125,82,163,225,245,158, | |||
251,228,205,23,37,167,231,252,234,71,220,94,123,191,140,104,35,122,50,165,220,242,224,178,246,21,225,69,89,22,64,100,170,173,187,185,147,10,116,4,106,167,77,17,57,21,53,209,177,241,144,127,87,118,178,226,116,0,70,6,20,69,98,148,83,39,103,39,85,186,40, | |||
93,28,11,7,158,202,178,64,13,165,215,54,59,22,219,113,69,28,147,126,13,128,235,236,200,63,89,40,17,15,249,225,171,142,14,7,52,79,233,30,110,15,137,61,110,114,176,229,214,85,177,112,224,181,35,129,131,225,174,92,25,90,96,249,195,229,211,191,97,18,88,133, | |||
1,220,31,44,107,40,76,48,157,85,172,21,231,253,208,168,227,134,254,131,189,176,75,16,168,73,151,91,122,85,203,252,86,64,157,45,19,220,5,96,94,154,79,98,93,247,210,39,111,190,72,238,54,158,89,122,9,82,233,67,244,203,136,54,69,157,37,50,223,96,159,110, | |||
244,18,246,214,53,54,246,98,55,33,31,192,57,253,12,213,135,4,229,100,247,251,29,101,152,32,117,125,108,105,224,169,138,234,108,21,54,154,154,225,248,82,194,129,244,190,8,18,191,92,17,124,108,140,219,103,53,28,217,153,120,50,149,41,74,50,100,23,164,183, | |||
50,6,108,152,132,201,239,226,50,229,148,87,71,70,151,87,71,71,89,175,101,163,210,70,49,173,162,89,186,35,153,44,29,16,66,20,32,154,89,253,21,120,174,28,93,52,250,177,130,124,111,54,13,124,122,69,48,186,48,30,14,160,220,101,138,109,95,240,82,144,99,72, | |||
59,161,148,122,188,29,221,68,28,15,5,182,103,248,114,142,84,114,145,197,136,253,251,136,41,37,145,33,71,111,115,107,110,21,193,200,88,18,215,218,180,3,217,9,86,1,247,100,58,160,4,188,132,174,173,168,142,208,89,96,142,139,225,11,70,242,64,92,77,246,66, | |||
187,178,132,1,27,44,19,239,119,203,82,240,213,68,10,64,22,43,3,45,36,239,200,120,7,36,134,144,158,191,84,4,35,39,148,87,71,115,42,106,162,94,19,28,231,171,137,254,26,192,89,201,250,139,212,84,9,224,114,89,46,182,146,149,71,6,190,154,233,46,165,149,160, | |||
17,93,134,129,221,134,129,61,52,180,135,228,245,253,198,135,117,141,101,219,68,78,28,48,17,199,52,143,135,97,60,15,96,156,43,6,16,64,206,159,242,133,43,110,186,125,242,109,219,118,183,21,166,167,60,37,129,187,33,93,28,15,7,146,143,34,169,168,94,182,16, | |||
228,195,32,243,156,51,187,123,76,25,6,232,49,140,244,0,92,250,104,44,28,120,196,87,19,5,76,32,182,212,15,95,48,154,7,226,5,192,165,137,165,186,115,153,164,223,146,204,235,245,23,153,181,177,240,162,106,87,196,92,64,226,25,137,243,232,14,17,45,231,116, | |||
24,12,180,100,18,145,93,102,241,167,67,61,250,204,170,219,2,38,0,248,150,68,135,200,171,7,73,6,210,171,50,112,136,192,219,0,102,102,116,36,18,11,5,22,185,149,2,251,231,47,67,184,9,110,48,91,163,81,41,233,28,0,87,184,198,214,22,17,212,9,112,37,128,30, | |||
18,37,16,134,89,111,91,78,168,107,44,219,0,205,147,240,12,201,177,201,132,150,229,174,254,1,192,146,184,75,191,173,8,70,103,0,122,20,192,108,59,103,69,1,61,144,78,237,23,99,181,141,243,63,79,240,238,62,114,140,71,109,155,69,206,132,20,1,49,35,93,93,19, | |||
122,208,118,219,121,163,226,39,86,255,178,225,130,188,92,79,250,131,64,147,207,165,53,247,89,15,254,52,70,145,40,74,195,184,132,51,62,48,218,220,178,171,117,223,238,253,29,163,13,195,165,104,88,217,140,175,1,248,21,104,38,96,242,34,144,247,219,1,72,182, | |||
190,94,14,242,110,0,249,233,10,142,195,51,234,33,185,13,64,30,192,241,174,188,52,83,218,61,238,140,135,253,255,153,81,6,230,144,166,69,177,38,0,106,11,65,195,206,89,195,37,174,91,62,38,184,70,80,136,228,237,105,98,185,149,128,111,146,240,49,26,220,11, | |||
153,35,65,254,9,224,2,100,136,232,178,170,226,127,4,226,14,8,47,138,26,197,190,54,200,165,210,41,38,137,77,146,166,187,166,162,13,210,233,32,11,37,253,131,174,138,31,39,21,40,112,23,97,182,129,28,1,96,184,75,115,176,61,102,51,42,120,63,220,167,131,179, | |||
180,113,62,8,62,44,96,27,7,98,187,128,5,238,51,64,44,239,5,115,82,30,20,92,217,54,236,59,223,185,122,209,204,45,142,57,72,214,212,9,20,37,210,24,41,25,211,72,21,201,101,243,4,41,215,107,96,241,249,83,190,179,121,251,193,143,27,6,225,50,41,4,229,1,116, | |||
11,128,14,152,236,6,177,76,82,161,203,23,84,198,130,25,155,105,217,32,237,4,104,146,20,105,120,5,78,181,64,40,59,30,114,138,184,68,73,173,160,85,36,154,89,125,4,235,233,185,135,40,128,134,64,114,50,168,73,22,205,185,106,67,172,105,235,22,245,9,116,240, | |||
110,59,35,67,165,10,181,36,160,4,196,86,64,237,160,177,77,226,2,100,212,27,217,1,16,68,140,139,133,252,91,37,93,78,112,143,237,190,40,153,255,72,46,20,218,21,121,186,22,64,60,51,144,19,233,141,133,252,47,18,248,158,85,7,32,39,40,148,149,30,213,88,209, | |||
152,6,113,184,69,128,178,11,6,64,74,187,69,227,154,120,120,161,217,39,16,171,75,87,162,178,180,161,25,192,239,51,18,221,199,48,205,167,243,1,252,193,149,116,119,185,48,70,193,139,27,94,89,249,249,69,197,31,156,127,234,184,150,158,132,169,100,206,151, | |||
206,131,154,82,178,20,237,90,25,73,74,36,192,123,190,183,224,209,249,167,78,184,113,232,144,220,103,33,221,153,86,240,145,20,183,82,22,207,214,18,31,36,120,119,186,114,71,16,40,78,87,216,4,144,247,193,52,35,142,45,163,43,160,74,138,2,41,253,122,82,60, | |||
20,216,154,41,160,217,191,188,1,224,231,182,207,153,234,95,38,109,146,157,146,230,197,67,129,215,227,183,251,19,146,230,218,86,221,169,53,162,93,38,231,244,70,246,112,29,16,244,85,119,161,151,245,57,205,182,124,202,192,114,8,83,65,222,11,137,114,228, | |||
111,203,149,160,128,173,0,166,198,194,129,59,0,20,246,245,172,162,88,56,240,83,72,85,174,104,143,105,249,1,151,133,96,50,112,99,113,60,228,127,199,87,19,61,140,204,9,119,124,7,228,142,119,79,19,253,51,169,21,156,91,85,210,80,15,160,165,247,147,30,36, | |||
194,200,91,218,120,206,227,63,190,198,252,244,226,243,138,235,199,141,200,71,103,119,2,9,51,157,158,36,169,171,59,33,73,40,153,51,182,243,193,159,148,255,112,252,168,161,151,252,239,211,111,34,22,246,43,22,14,252,167,132,159,0,248,155,195,108,74,141, | |||
203,30,136,203,37,243,107,241,80,224,147,146,30,149,240,172,132,152,132,152,128,184,132,66,65,241,228,123,98,76,210,166,216,210,69,31,129,84,13,178,30,74,37,0,236,75,108,164,116,15,18,137,97,241,112,224,128,19,161,11,248,155,211,14,164,167,64,190,16, | |||
11,7,174,151,112,173,160,167,37,29,80,122,67,59,40,61,42,104,86,60,28,120,185,34,24,65,185,85,28,241,38,197,51,5,61,2,96,175,83,94,129,228,78,5,188,96,154,120,144,196,100,130,181,130,86,37,175,11,198,220,69,156,177,176,255,80,60,228,255,124,44,28,32, | |||
137,25,166,105,158,111,146,103,155,52,11,227,97,255,228,120,40,240,182,221,31,79,102,208,230,108,141,245,5,151,33,190,116,81,29,164,41,32,239,3,244,114,150,136,239,144,132,122,144,55,197,66,254,233,177,176,191,197,41,176,232,223,71,108,42,67,85,73,3, | |||
106,155,202,166,18,220,132,99,190,205,94,0,48,11,224,69,146,110,73,207,43,59,92,35,10,106,46,204,45,250,129,127,76,116,229,27,123,119,172,190,63,190,33,231,111,175,238,6,8,152,2,142,43,200,193,85,129,98,204,158,54,226,134,169,227,135,222,58,102,248,144, | |||
237,27,182,182,224,132,137,199,225,130,47,255,21,113,167,146,36,24,205,23,52,150,100,62,172,255,112,208,78,170,13,38,246,198,150,6,18,0,80,94,21,133,93,96,160,100,71,12,88,89,193,244,206,153,51,91,159,51,235,238,249,1,124,193,72,46,128,209,34,10,8,230, | |||
11,106,167,184,47,22,246,239,79,85,213,88,125,40,175,142,166,181,109,24,84,204,46,71,43,175,89,230,165,137,209,52,140,66,64,249,86,96,194,214,88,200,191,59,179,29,231,248,96,77,148,94,96,140,160,66,2,133,16,59,64,117,74,216,27,15,7,146,139,35,253,186, | |||
64,194,148,249,76,93,224,93,247,82,151,215,44,131,97,18,177,165,1,248,106,34,47,75,60,197,101,93,90,36,77,142,135,173,210,51,95,48,146,220,148,86,81,19,29,10,105,36,192,33,36,188,146,58,72,182,75,218,19,15,7,186,92,181,1,192,225,192,202,121,184,122,93, | |||
99,89,37,200,90,244,222,19,113,180,65,75,28,228,39,32,189,9,98,100,239,74,11,217,238,145,152,48,19,107,223,105,95,253,177,47,158,119,253,176,227,61,151,207,109,57,148,127,252,136,130,73,91,1,172,36,249,10,0,96,78,45,204,53,75,250,220,92,159,89,226,228, | |||
150,95,142,230,200,108,171,207,205,82,71,209,230,177,58,215,62,255,227,18,30,76,211,233,133,158,88,216,159,147,165,144,4,190,234,72,177,200,55,232,202,111,82,122,43,22,14,20,31,139,62,29,17,154,106,27,203,190,73,224,6,145,199,234,57,56,182,187,98,46, | |||
128,97,124,22,192,181,217,81,158,254,174,100,182,153,74,116,246,168,237,243,95,57,119,205,99,238,0,111,240,217,136,135,153,135,255,114,132,76,208,68,250,86,31,2,248,69,60,236,255,102,122,154,49,58,5,50,27,73,99,66,170,128,17,148,116,117,60,28,184,203, | |||
41,242,56,186,202,131,195,60,234,26,203,80,89,218,128,218,166,5,223,162,228,118,174,121,244,80,212,26,169,232,116,242,64,143,93,108,174,236,53,48,118,76,106,1,174,166,178,164,62,236,184,15,131,199,17,48,109,117,20,177,165,126,84,212,68,151,18,168,2,210, | |||
133,34,9,205,36,30,18,176,145,192,121,128,46,114,43,81,182,28,181,54,30,246,207,113,82,128,71,45,162,28,201,201,75,27,203,80,93,218,128,218,198,178,79,18,188,255,200,91,200,106,154,237,141,124,184,76,210,59,36,235,209,183,162,69,107,147,26,46,171,42, | |||
109,120,96,16,132,71,99,246,35,144,80,4,160,145,228,44,151,176,158,220,199,152,97,246,82,187,159,132,125,0,78,143,133,253,111,31,51,53,239,72,63,80,215,84,134,202,146,6,212,53,205,31,10,112,21,128,147,113,12,20,111,73,48,104,228,75,10,129,248,130,251, | |||
255,87,165,228,20,110,150,116,106,85,105,195,129,65,16,30,67,80,6,163,113,80,229,189,96,231,174,119,147,99,164,244,188,136,179,250,171,161,252,151,0,49,75,246,165,138,52,174,21,112,10,29,205,254,8,219,117,253,23,129,87,73,150,1,88,109,167,176,156,173, | |||
234,59,0,253,70,202,249,81,85,233,211,230,210,198,249,168,46,93,57,136,160,99,16,96,161,7,136,213,249,225,11,46,59,31,48,62,14,224,100,16,39,2,40,176,245,248,253,34,222,134,105,174,131,97,60,22,15,249,159,176,252,198,84,133,206,255,83,32,186,25,169,174, | |||
105,129,23,210,124,129,119,144,56,49,229,106,28,62,85,166,192,136,95,146,248,46,128,221,0,138,4,125,29,226,175,170,74,235,219,220,81,252,224,49,80,236,24,201,1,153,35,39,58,148,76,2,61,177,112,160,123,32,175,123,76,66,76,199,92,91,64,89,48,135,80,165, | |||
160,185,164,49,93,210,120,119,198,33,61,233,153,246,31,32,109,216,10,18,190,40,211,252,99,245,185,171,14,12,66,227,253,113,12,152,214,81,215,180,32,71,208,104,8,195,0,156,76,242,108,88,149,45,83,32,141,5,112,156,189,209,166,7,208,65,129,123,41,109,22, | |||
176,6,196,211,85,37,13,143,12,78,207,251,231,248,63,7,93,252,0,5,39,158,172,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; | |||
const char* cabbageLogoHBlueText_png = (const char*) temp_5e47874a; | |||
//================== logo_cabbage_Black.png ================== | |||
static const unsigned char temp_195998d4[] = | |||
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,67,0,0,2,136,8,6,0,0,0,178,152,33,44,0,0,0,9,112,72,89,115,0,0,23,18,0,0,23,18,1,103,159,210,82,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,97,103,101,82,101,97, | |||
100,121,113,201,101,60,0,0,125,114,73,68,65,84,120,218,236,221,13,116,212,245,189,239,251,223,86,158,73,0,19,132,0,209,4,33,17,81,19,196,86,241,161,13,184,206,86,92,184,15,224,210,91,142,221,128,158,218,85,233,233,62,64,143,246,182,158,163,128,118,219, | |||
238,218,189,129,181,187,171,174,218,139,64,235,209,91,151,192,190,114,43,118,93,33,214,7,112,87,32,161,69,77,160,36,18,30,66,9,2,9,207,88,111,62,191,240,27,39,147,255,127,50,147,76,102,254,51,243,126,173,21,39,201,36,113,242,159,153,240,255,204,247,251, | |||
251,254,254,198,24,243,185,1,0,0,0,128,236,178,233,34,142,1,0,0,0,128,108,68,24,2,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0, | |||
0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134, | |||
0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16, | |||
134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0, | |||
16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0, | |||
0,0,128,48,4,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134, | |||
0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134, | |||
0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,64,172,122,113,8,0,0,61,161,188,188,220,12,25,50,36,234,215,108,223,190,221,28,59,118,140,131,5,0,32,12,1,0,130,105,240,224,193,102,194,132,9,54,220,232,82,220,199,145,239,119,215,166,77,155,218,133, | |||
165,163,71,143,218,55,247,126,85,85,21,119,8,0,32,33,254,166,245,237,115,14,3,0,64,84,205,41,46,46,182,225,70,111,238,253,174,56,126,230,128,105,62,115,48,234,215,140,26,116,93,151,126,182,11,71,117,117,117,246,77,1,138,160,4,0,136,211,38,194,16,0,100, | |||
113,240,153,60,121,114,40,248,116,22,122,246,29,223,102,47,247,55,111,183,151,205,97,97,39,183,111,65,135,224,147,63,96,172,233,219,43,215,247,231,29,62,81,107,206,126,214,210,238,115,103,90,63,238,123,113,78,232,227,145,23,194,210,208,214,159,213,167, | |||
245,243,250,255,12,234,59,34,250,191,108,173,193,72,1,73,97,73,111,149,149,149,220,217,0,0,194,16,0,164,147,254,57,23,155,5,207,148,153,245,191,248,196,84,191,213,212,237,159,87,81,81,97,195,143,123,243,226,170,57,10,60,10,59,103,206,127,17,86,134,14, | |||
44,177,65,69,33,199,5,148,104,97,167,187,194,43,75,46,128,185,0,165,207,43,24,233,182,40,28,233,50,218,237,81,64,82,48,114,151,245,245,245,60,192,0,0,132,33,0,232,9,37,19,7,155,242,138,124,243,202,210,63,119,249,103,220,179,240,10,115,219,172,81,246, | |||
253,85,79,124,108,54,175,63,20,215,247,187,202,143,222,102,204,152,209,225,250,51,231,155,109,200,56,124,114,151,217,127,124,91,187,202,75,103,225,34,146,107,87,11,231,90,217,252,120,5,50,191,144,230,69,183,95,183,189,169,245,77,193,73,151,46,36,169, | |||
162,164,219,239,194,146,215,237,85,48,210,219,218,181,107,25,226,0,0,132,33,0,64,34,168,162,243,228,218,27,204,128,220,94,102,111,77,139,89,54,175,218,156,106,249,44,174,159,81,88,50,208,60,250,171,137,237,62,23,75,32,154,62,125,122,40,252,104,189,79, | |||
56,5,134,253,199,183,183,6,160,109,182,226,163,208,48,116,64,137,13,13,170,250,248,113,131,11,220,96,3,119,169,64,209,147,21,22,55,141,206,13,109,136,188,244,227,130,145,218,250,116,169,192,52,50,119,130,253,29,117,233,181,78,201,85,141,20,140,104,171, | |||
3,0,194,16,0,160,139,190,245,147,171,76,121,197,208,208,199,39,155,207,219,64,212,80,123,34,230,159,177,224,231,215,154,210,235,59,78,103,139,22,136,150,46,93,106,22,44,88,16,250,216,85,126,246,124,250,251,80,248,81,16,80,32,240,170,248,184,129,4,46, | |||
24,244,116,216,73,84,88,114,235,158,162,13,123,112,193,72,151,58,38,10,128,170,30,141,30,114,107,135,32,168,224,167,80,164,55,29,7,170,70,0,64,24,2,0,196,160,236,171,249,230,161,167,199,119,248,188,2,209,43,75,119,199,212,234,54,229,107,35,205,189,223, | |||
29,227,123,253,210,214,96,85,187,213,251,4,125,197,138,21,230,254,251,239,183,239,87,31,252,141,109,125,27,125,201,173,29,194,143,171,244,184,224,147,73,213,16,173,141,114,3,33,20,148,34,43,100,46,28,185,160,168,214,58,5,196,209,151,124,165,53,32,77, | |||
232,208,86,231,130,17,237,116,0,64,24,2,0,68,241,228,154,47,155,252,145,253,124,175,127,239,181,70,27,138,252,218,230,38,77,27,102,230,60,126,101,212,255,71,103,149,166,240,64,20,25,126,220,91,54,141,160,46,42,42,10,5,35,87,69,10,167,10,218,158,79,223, | |||
182,193,72,1,73,21,180,113,67,239,12,181,214,69,6,163,23,94,120,193,172,91,183,142,7,59,0,16,134,0,0,206,180,7,47,55,211,190,89,212,233,215,41,204,108,124,105,159,121,111,125,163,57,114,224,140,253,156,214,8,77,153,53,202,220,116,215,240,152,254,95,177, | |||
4,34,157,244,187,138,6,251,239,180,15,71,225,131,37,34,55,139,85,40,106,123,123,219,78,207,43,190,228,86,27,142,194,131,145,107,165,91,182,108,25,199,22,0,8,67,0,144,221,194,135,38,36,75,87,214,34,161,35,173,61,82,37,205,107,232,196,71,127,249,173,13, | |||
70,117,71,223,54,185,125,10,76,89,193,189,54,28,133,183,210,169,213,80,213,34,189,209,70,7,0,132,33,0,200,58,177,86,133,8,68,193,166,170,145,66,145,194,81,120,59,157,90,233,62,62,252,186,249,232,240,111,237,32,6,181,208,93,57,244,206,118,235,177,168, | |||
22,1,0,97,8,0,178,78,222,136,190,230,135,107,111,72,217,255,159,64,212,51,252,42,70,218,248,181,186,241,55,182,141,78,20,136,202,134,223,219,174,141,78,235,178,84,41,90,185,114,37,7,18,0,8,67,0,144,185,34,71,105,19,136,50,143,38,212,41,24,133,15,166, | |||
112,131,23,254,176,111,133,105,62,123,48,84,45,26,119,233,157,161,175,209,120,114,85,138,104,161,3,0,194,16,0,100,156,146,137,131,205,194,103,202,2,113,91,8,68,61,111,240,224,193,54,16,105,63,167,240,106,145,70,117,43,20,105,26,157,198,153,107,109,81, | |||
217,240,123,218,181,208,41,20,233,141,80,4,0,193,9,67,23,183,254,103,49,199,1,0,226,167,161,9,223,89,118,77,82,135,38,68,211,187,239,69,230,43,119,143,176,161,168,238,79,205,157,222,246,25,255,109,180,249,206,242,107,76,222,136,126,166,250,173,38,238, | |||
208,24,156,57,115,198,108,217,178,197,44,95,190,220,182,194,105,18,221,184,113,227,236,64,5,85,132,180,137,235,217,207,90,204,142,198,87,204,182,3,47,154,230,51,7,76,254,128,177,102,112,206,165,118,122,221,67,15,61,100,250,245,235,103,135,46,232,103, | |||
1,0,82,170,142,48,4,0,93,116,199,156,203,76,249,228,161,129,187,93,87,223,148,103,43,86,77,7,206,132,70,119,59,90,223,164,65,15,218,203,168,244,250,182,145,210,151,149,230,152,254,173,129,110,231,230,79,185,83,227,80,95,95,111,94,126,249,101,219,2,39, | |||
10,69,121,131,70,217,205,91,175,28,58,213,134,34,13,93,80,48,82,40,82,197,104,216,224,209,132,34,0,8,80,24,162,77,14,0,186,32,213,67,19,98,213,180,255,116,107,40,58,109,223,207,31,209,47,234,134,176,171,158,248,216,108,94,127,200,247,247,157,243,88,105, | |||
232,99,181,226,157,106,62,111,223,87,37,202,181,230,53,212,180,248,110,40,155,233,212,66,167,246,57,189,185,189,139,142,183,134,32,181,207,41,20,137,214,21,125,105,212,3,102,212,160,235,236,199,180,207,1,64,74,177,102,8,0,186,98,193,207,175,13,85,86, | |||
50,133,66,205,83,179,183,118,168,38,57,247,44,188,194,220,54,107,84,76,63,107,175,66,209,133,144,164,64,166,203,108,9,74,46,20,105,109,145,91,87,20,75,40,90,188,120,177,109,191,3,0,16,134,0,32,176,38,77,27,102,219,204,50,145,66,204,143,102,111,243,188, | |||
78,235,140,30,93,61,49,106,117,169,51,174,82,85,187,245,152,169,105,125,203,228,128,228,85,41,210,88,238,119,62,249,87,59,104,65,212,78,167,80,228,54,113,213,244,57,125,253,186,117,235,120,162,1,0,97,8,0,130,231,201,53,95,238,86,32,8,186,245,191,168, | |||
55,235,159,255,196,243,186,158,152,158,167,0,214,80,115,162,53,32,29,181,1,201,175,50,149,73,161,72,211,231,54,254,249,71,118,36,183,11,69,183,92,254,15,161,233,115,26,206,160,175,103,243,86,0,232,217,48,196,0,5,0,136,195,180,7,47,15,228,208,132,68,82, | |||
251,95,85,101,147,57,126,228,92,135,235,20,84,52,108,97,244,53,131,18,23,22,242,251,216,33,14,218,171,73,109,120,101,21,249,166,160,120,128,233,213,231,34,211,88,127,42,237,143,167,6,36,84,86,86,154,103,159,125,214,14,77,152,52,105,146,173,4,105,252, | |||
118,223,139,115,76,99,203,78,115,232,196,78,243,167,67,255,110,62,251,252,172,25,58,96,172,25,123,197,149,118,200,130,194,211,230,205,155,25,178,0,0,61,131,1,10,0,16,43,181,137,61,185,246,134,192,140,210,238,73,61,221,46,23,43,173,99,82,197,72,225,76, | |||
111,153,208,82,87,84,84,100,7,38,204,152,49,163,45,44,157,111,182,173,115,110,61,81,110,159,2,115,75,209,63,216,169,116,162,245,68,170,18,173,92,185,146,39,33,0,36,22,109,114,0,16,43,85,133,52,150,58,91,68,107,151,43,44,25,104,30,253,213,196,164,223, | |||
166,170,202,195,25,19,140,42,42,42,236,88,110,55,100,33,178,117,78,67,22,166,92,241,131,208,122,34,181,206,105,40,131,70,122,3,0,18,19,134,104,147,3,128,24,168,26,242,95,127,120,149,221,216,52,91,168,93,238,189,245,141,158,161,195,181,208,37,123,162, | |||
158,218,231,212,78,119,199,220,203,76,97,233,64,115,238,204,231,105,219,74,167,80,227,166,199,77,152,48,193,238,65,164,214,57,209,128,5,133,34,237,81,36,174,117,78,97,72,173,118,106,187,3,0,116,27,109,114,0,16,139,108,171,10,57,53,31,28,53,203,190,189, | |||
195,247,250,31,172,190,206,174,247,137,149,27,185,237,156,106,57,111,135,39,196,34,111,68,63,27,128,34,255,127,106,165,219,220,26,218,222,124,105,95,218,14,95,80,235,156,170,68,218,144,85,52,117,238,205,61,63,50,77,39,119,217,143,213,58,167,42,145,27, | |||
197,173,205,90,21,140,24,176,0,0,221,66,155,28,0,116,38,155,214,10,121,249,205,191,236,54,27,95,222,239,19,80,250,218,245,67,210,54,38,187,45,220,244,228,70,172,106,209,155,116,215,112,83,254,213,252,14,235,150,20,222,20,140,252,54,143,13,186,233,211, | |||
167,219,80,228,166,206,253,199,190,21,118,127,34,39,114,234,156,246,38,90,178,100,9,79,82,0,32,12,1,64,207,200,214,170,144,163,96,179,108,94,117,40,220,4,73,89,107,32,42,175,200,55,55,181,134,163,112,218,207,200,85,139,210,109,109,145,70,113,43,16,185, | |||
1,11,170,18,189,94,251,63,67,107,137,250,92,156,99,110,187,226,7,161,1,11,172,37,2,128,174,135,33,214,12,1,64,20,217,184,86,40,146,126,247,226,107,114,205,219,107,14,6,238,182,105,189,80,245,91,77,54,244,28,111,58,107,10,138,6,216,10,158,222,180,158, | |||
233,43,119,143,48,131,242,251,152,131,245,39,211,38,20,105,140,246,203,47,191,108,91,225,166,78,157,106,242,6,141,178,21,161,147,231,142,216,182,57,141,223,222,117,228,77,59,133,110,120,206,248,208,90,162,131,7,15,210,54,7,0,241,169,35,12,1,64,20,119, | |||
204,185,204,92,125,83,94,214,31,7,237,5,164,253,133,118,110,254,52,144,183,239,252,217,207,77,221,159,154,109,59,223,222,154,19,173,1,168,183,109,161,83,144,211,158,72,218,191,72,107,142,26,106,91,210,38,20,125,252,241,199,230,165,151,94,178,195,21,20, | |||
120,84,9,210,32,133,79,142,189,111,3,145,246,38,218,213,244,166,201,111,253,156,134,47,168,146,164,201,116,170,20,177,47,17,0,196,22,134,104,147,3,128,40,158,92,243,229,164,236,167,147,46,158,125,100,167,173,196,196,75,235,124,250,95,88,115,149,63,162, | |||
111,235,91,199,99,170,235,245,117,142,223,112,133,240,245,72,82,187,245,152,231,255,83,235,153,166,61,88,100,219,232,194,215,123,189,247,90,163,89,255,124,125,90,13,91,88,180,104,145,93,31,36,199,207,28,176,109,115,110,184,130,124,105,212,3,230,203,173, | |||
111,246,95,246,186,58,27,140,168,18,1,64,167,88,51,4,0,126,38,77,27,102,230,60,126,37,7,34,34,136,116,182,126,232,158,133,87,132,194,79,60,147,230,186,203,77,170,211,109,211,101,77,107,72,210,101,211,129,211,182,50,52,165,245,45,157,67,81,121,121,185, | |||
89,187,118,173,173,254,68,110,212,42,145,251,18,169,117,142,141,90,1,128,48,4,0,93,66,85,200,63,116,40,16,249,181,155,77,249,218,72,115,239,119,199,4,238,54,43,24,169,34,21,121,159,106,115,217,116,25,180,16,57,92,225,163,191,252,214,108,220,243,163,208, | |||
245,145,195,21,244,181,11,22,44,48,199,142,29,227,129,11,0,30,97,136,53,67,0,224,65,85,161,155,238,42,224,64,120,157,144,231,247,49,5,197,253,205,7,191,59,236,121,189,214,238,148,76,28,28,168,32,169,219,172,219,227,53,30,221,13,90,56,119,230,175,246, | |||
182,7,153,27,174,32,218,147,104,232,192,18,51,122,200,173,118,160,130,214,17,185,225,10,162,61,137,180,222,72,67,24,94,127,253,117,2,17,0,120,252,147,69,24,2,0,15,179,31,47,181,39,208,240,86,80,60,192,182,204,249,133,7,181,168,77,154,54,60,109,166,240, | |||
233,118,106,80,134,110,179,218,236,130,222,58,87,89,89,217,110,218,220,213,195,254,179,29,172,112,234,220,17,123,253,254,230,237,102,255,241,109,102,244,37,183,154,194,145,69,182,101,78,129,168,177,177,145,7,47,0,16,134,0,192,159,170,26,119,204,189,140, | |||
3,209,9,133,135,170,202,38,115,252,200,185,14,215,169,229,236,96,221,41,243,165,219,47,77,171,223,73,149,35,237,89,84,88,58,208,236,249,99,115,160,91,231,52,109,78,1,103,210,164,73,54,240,140,205,187,45,52,126,91,180,47,145,166,205,105,45,145,2,211,67, | |||
15,61,100,135,43,48,88,1,0,8,67,0,224,107,206,99,165,172,21,138,209,248,73,151,216,205,77,53,218,58,146,246,0,82,168,80,21,41,221,232,54,219,202,86,159,139,124,167,213,5,129,42,61,26,191,61,110,220,56,115,205,248,114,187,86,72,195,21,52,118,91,206,126, | |||
214,98,219,230,6,244,206,179,45,117,90,107,52,100,200,16,179,97,195,6,30,188,0,64,24,2,128,246,52,5,109,198,119,70,115,32,98,164,74,138,90,204,252,246,31,82,117,37,157,218,229,194,233,54,107,61,81,89,69,190,169,107,253,61,188,42,96,65,224,214,17,105, | |||
202,156,214,8,93,62,228,70,147,219,167,192,212,29,125,219,94,175,117,68,238,125,173,35,82,37,137,253,136,0,128,48,4,32,203,104,18,215,143,127,252,99,179,121,243,102,223,147,192,233,255,109,116,82,199,65,103,2,109,106,170,141,78,85,9,138,164,54,51,13, | |||
38,72,231,141,107,181,118,76,3,22,36,200,85,162,117,235,214,133,246,24,82,21,40,124,131,86,209,58,162,230,51,7,108,245,200,13,86,80,85,137,64,4,32,155,195,208,69,28,3,0,217,160,162,162,194,158,40,106,204,176,246,106,241,162,77,58,181,94,4,241,155,243, | |||
120,169,233,159,115,177,231,117,27,95,222,111,106,62,56,154,246,191,227,180,111,22,153,31,172,190,174,221,198,176,65,163,125,133,52,44,225,232,209,163,54,244,76,31,183,220,142,219,118,180,47,209,186,15,255,187,109,165,83,32,82,117,72,47,18,0,64,182,34, | |||
12,1,200,120,75,151,46,181,39,125,90,43,33,122,223,243,100,247,193,34,14,86,23,169,93,78,97,193,207,170,39,107,50,226,247,84,213,240,209,95,77,108,125,172,92,30,232,64,164,177,219,10,68,170,16,69,6,34,85,136,214,125,52,63,20,136,244,34,129,54,116,5,128, | |||
108,196,166,171,0,50,150,94,241,86,21,72,39,134,142,78,16,181,94,34,114,207,21,85,133,126,184,246,6,14,90,119,131,231,188,106,223,86,50,5,136,104,129,41,221,168,218,165,144,23,212,49,220,10,56,238,69,128,195,39,106,109,0,210,64,5,71,235,138,166,150,252, | |||
163,13,76,122,94,44,91,182,204,134,35,125,189,62,214,232,110,125,191,198,120,3,64,134,218,68,24,2,144,145,194,79,4,195,45,94,188,216,44,89,178,164,195,215,207,126,172,148,22,185,4,104,218,127,218,60,53,123,171,239,72,234,39,215,124,57,163,38,245,105, | |||
175,165,85,79,212,152,234,183,154,2,251,60,208,11,2,122,1,64,149,32,5,34,55,122,91,84,49,82,229,72,129,200,143,130,145,126,198,11,47,188,64,48,2,144,113,97,136,1,10,0,50,206,220,185,115,237,194,112,5,161,93,13,199,205,135,117,71,205,229,195,115,108,59, | |||
208,204,153,51,59,124,189,246,21,186,247,187,99,56,112,9,160,118,185,243,103,255,234,91,29,210,134,166,153,20,58,53,113,78,123,41,245,111,253,189,253,38,234,165,146,70,111,43,196,104,88,130,219,139,40,124,115,86,13,87,208,232,237,225,57,227,77,243,153, | |||
131,166,250,224,111,204,182,3,191,54,251,155,183,217,143,251,247,206,51,131,115,46,181,21,35,173,69,210,112,134,131,7,15,218,61,142,0,32,3,212,81,25,2,144,81,22,45,90,100,171,63,242,78,117,163,121,181,178,206,252,243,63,220,104,63,86,187,156,215,43,219, | |||
11,126,126,173,29,161,140,196,121,234,239,183,218,224,227,229,91,63,185,202,148,87,12,205,184,223,121,111,77,139,89,54,175,58,144,27,181,170,101,84,149,82,133,26,175,10,81,52,249,3,198,154,178,225,247,154,209,151,220,106,250,246,202,181,159,211,207,210, | |||
48,18,54,112,5,144,230,54,49,64,1,64,198,88,177,98,69,40,8,109,216,210,96,22,255,114,171,153,51,117,172,253,88,109,62,94,65,168,236,171,249,4,161,30,112,207,194,43,124,175,83,91,153,218,203,50,141,134,43,60,185,246,134,64,78,155,211,26,57,189,24,160, | |||
117,64,10,52,106,141,83,200,137,133,66,211,198,61,63,50,191,170,250,154,249,143,125,43,108,152,210,207,82,32,82,21,22,0,210,25,109,114,0,210,158,94,245,126,246,217,103,109,27,143,60,253,235,106,179,250,245,93,102,102,69,145,249,187,91,139,236,154,7,181, | |||
247,68,14,77,208,40,232,135,126,50,222,182,118,33,177,180,46,72,129,167,238,79,205,29,174,59,127,246,243,180,223,123,200,143,218,230,180,39,81,211,129,211,190,149,177,84,209,126,66,106,31,117,45,115,195,7,142,183,45,114,110,31,162,206,232,235,52,137, | |||
110,87,211,155,54,72,13,27,60,218,62,175,180,30,73,123,28,1,64,26,98,211,85,0,233,31,132,244,10,181,78,240,92,16,122,227,253,125,102,204,168,92,179,228,193,235,237,231,190,255,253,239,155,13,27,54,116,248,222,59,230,92,102,202,39,15,229,32,246,16,109, | |||
198,250,135,223,253,197,179,109,76,33,73,107,181,50,105,152,66,56,181,1,230,141,232,23,184,193,10,225,129,232,138,203,175,54,151,15,190,33,174,64,36,154,72,167,253,138,100,212,160,235,108,235,29,129,8,0,97,8,0,82,20,132,116,50,214,114,242,156,249,239, | |||
75,223,51,127,248,232,176,25,216,191,151,89,252,141,235,77,222,160,190,246,250,121,243,230,117,248,94,181,50,125,227,31,175,226,32,246,32,85,73,242,71,244,53,31,252,238,176,231,245,13,53,39,108,21,37,83,169,109,78,129,175,170,178,201,86,195,130,20,136, | |||
94,127,253,117,91,73,205,27,52,170,75,129,72,84,37,106,62,115,192,110,238,74,32,2,64,24,2,128,20,6,161,135,127,182,197,236,222,215,214,146,53,255,255,184,218,220,48,254,82,219,30,55,105,210,36,123,242,23,233,191,45,191,198,12,206,239,195,129,236,97,5, | |||
197,3,204,222,214,208,211,88,127,170,195,117,199,143,156,179,151,153,188,102,75,149,175,241,55,93,98,39,205,5,105,176,130,90,70,21,136,102,205,154,21,10,68,59,255,242,239,113,255,28,173,39,34,16,1,72,231,48,196,0,5,0,25,21,132,110,191,97,148,185,227, | |||
198,66,251,190,215,58,33,209,230,159,122,213,30,201,49,231,241,82,187,62,203,203,155,47,237,179,123,19,101,50,61,214,30,93,61,49,112,131,21,52,9,78,131,16,244,162,129,246,25,154,50,250,7,93,250,57,106,153,123,243,207,79,217,247,85,109,98,168,2,128,116, | |||
66,24,2,144,49,65,168,108,108,158,121,228,235,101,246,125,141,253,245,154,30,167,19,210,105,223,44,226,64,38,145,6,84,220,179,208,123,31,39,85,75,86,61,89,147,21,199,96,193,51,101,129,12,68,122,209,64,198,93,122,103,183,2,145,38,205,137,246,53,210,102, | |||
175,0,64,24,2,128,4,211,136,108,175,32,100,7,38,124,99,98,232,100,108,249,242,229,29,190,87,213,137,111,253,100,60,7,49,5,180,209,170,214,207,120,209,6,173,170,16,101,75,32,154,52,109,88,160,110,151,94,52,112,147,24,21,136,174,28,58,181,75,63,231,15, | |||
173,97,104,207,167,191,183,239,235,5,11,189,112,1,0,65,199,154,33,0,105,67,251,8,233,85,108,175,32,244,211,239,220,104,114,6,244,182,251,168,220,121,231,157,158,223,255,95,254,207,18,246,20,74,161,210,214,48,180,121,125,163,231,48,129,61,127,60,110,135, | |||
41,104,232,66,38,211,239,167,73,115,65,27,189,237,54,79,85,219,156,214,255,28,62,81,107,142,158,254,36,238,159,243,201,177,247,205,216,252,219,204,224,156,75,205,184,113,227,204,203,47,191,204,3,31,64,144,49,64,1,64,122,88,186,116,169,121,232,161,135, | |||
236,251,255,184,114,187,169,222,245,169,103,16,210,201,156,215,192,132,41,95,27,105,238,152,123,25,7,50,133,84,25,81,24,208,48,129,72,10,72,123,254,216,108,43,72,217,32,136,129,72,21,34,13,64,80,229,85,3,21,20,108,78,157,59,18,215,207,112,123,17,93,61, | |||
108,186,13,67,122,78,126,252,241,199,60,248,1,4,54,12,209,38,7,32,240,180,32,91,107,128,68,251,8,189,187,227,144,125,191,109,132,246,196,118,65,200,107,96,130,214,105,220,251,221,49,28,200,0,184,109,214,168,172,111,151,115,230,60,126,101,224,90,230,30, | |||
120,224,1,251,92,234,219,43,215,76,45,249,71,211,231,226,248,7,141,104,194,92,248,250,33,218,229,0,4,25,97,8,64,160,85,84,84,216,19,42,89,245,219,90,187,161,170,11,66,170,8,21,228,15,232,52,8,105,157,6,2,20,2,30,243,159,46,183,254,23,245,25,63,93,46, | |||
232,129,72,207,165,186,186,58,51,168,239,8,27,136,186,66,235,135,212,106,55,100,200,144,208,243,23,0,130,136,54,57,0,129,85,84,84,100,23,98,247,235,215,207,108,216,210,96,158,93,243,81,187,32,52,182,112,144,29,11,172,147,183,198,198,198,14,223,111,7, | |||
38,60,61,222,12,29,217,143,131,25,32,157,181,203,169,66,148,201,155,177,70,10,90,203,156,218,76,245,188,211,30,68,195,6,143,54,125,47,206,49,123,143,189,31,247,207,105,60,177,51,212,46,167,159,87,95,95,207,131,31,64,208,176,102,8,64,48,169,181,70,155, | |||
66,106,13,195,174,134,227,230,169,85,219,205,185,243,127,245,12,66,94,107,18,20,132,84,17,98,63,161,96,26,125,205,32,83,211,26,122,142,28,232,184,190,43,27,54,99,13,122,32,210,139,11,7,15,30,180,3,75,134,231,92,109,55,86,85,251,91,60,180,222,72,65,74, | |||
223,175,231,169,215,132,71,0,32,12,1,128,135,103,159,125,214,76,157,58,213,78,142,123,232,233,119,204,137,83,231,61,131,144,155,130,69,16,74,63,209,166,203,169,58,84,86,145,111,6,231,247,33,16,165,136,158,91,106,115,155,52,105,146,25,153,59,161,75,3, | |||
21,26,91,84,29,250,207,102,104,94,219,96,12,175,189,191,0,32,149,97,136,53,67,0,2,103,254,252,249,161,125,79,22,253,114,171,13,66,242,200,125,101,4,161,12,146,63,178,95,212,13,112,87,63,81,147,117,199,68,107,136,130,180,49,235,194,133,11,109,139,155, | |||
6,42,220,54,250,7,113,15,84,56,251,89,139,121,231,147,127,181,239,107,8,10,195,20,0,4,13,149,33,0,129,162,157,235,181,177,170,252,252,213,157,166,114,219,65,251,254,195,247,93,107,166,92,63,50,106,16,178,129,233,151,19,8,66,105,132,118,185,142,174,255, | |||
219,75,205,206,247,62,13,253,254,169,166,231,163,198,218,231,13,26,101,6,244,206,51,117,71,223,142,235,251,213,94,55,122,200,173,246,251,237,250,191,13,27,120,224,3,8,10,42,67,0,130,67,175,26,187,201,83,239,84,55,154,53,149,109,11,174,103,79,29,107,238, | |||
184,177,208,190,175,87,151,253,130,208,236,199,74,9,66,105,40,234,116,185,231,63,49,123,107,90,178,234,120,104,192,132,170,155,121,35,250,6,226,246,104,74,163,214,14,201,184,75,239,52,87,14,157,26,247,207,8,175,14,105,48,10,0,4,5,149,33,0,129,241,227, | |||
31,255,216,158,116,105,157,208,195,63,219,98,7,38,220,126,195,40,243,237,187,199,219,235,213,58,183,114,229,74,223,32,148,45,27,118,102,226,201,191,223,116,57,169,251,99,115,86,77,151,19,29,15,237,199,244,193,239,254,226,185,166,42,217,220,36,56,85,101, | |||
181,126,104,87,211,155,182,5,46,86,205,103,15,218,239,211,184,110,173,67,90,183,110,29,15,124,0,65,64,101,8,64,48,104,63,33,183,177,170,91,39,52,102,84,174,121,228,235,109,123,4,45,91,182,140,32,148,193,162,109,198,170,129,2,217,180,25,171,163,42,103, | |||
144,246,200,90,178,100,73,187,13,89,227,245,135,11,27,177,234,69,13,170,67,0,130,130,48,4,32,229,212,30,231,214,9,189,186,169,206,84,239,58,18,154,28,39,186,78,11,185,189,104,195,74,130,80,102,96,51,86,239,64,164,176,31,20,170,220,106,221,222,208,129, | |||
37,230,75,163,30,136,235,123,247,55,111,55,251,142,111,179,239,47,94,188,152,7,60,0,194,16,0,184,19,35,181,206,28,108,58,105,86,189,94,107,63,183,228,27,19,77,206,128,222,246,149,104,55,89,206,43,8,105,250,22,50,67,180,233,114,167,90,62,51,191,89,250, | |||
231,172,60,46,10,251,83,190,54,50,16,183,69,237,114,174,130,251,229,214,48,148,63,96,108,92,223,79,117,8,64,208,176,102,8,64,74,169,61,78,123,10,137,218,227,26,14,157,8,13,76,208,43,208,122,37,218,107,231,122,141,31,254,175,63,188,202,174,173,64,230, | |||
136,54,93,174,177,254,148,41,44,29,104,10,138,7,100,221,113,185,250,166,60,179,183,230,132,61,6,169,166,1,38,19,38,76,48,227,198,141,51,195,7,142,55,59,255,242,239,49,127,111,248,218,33,97,178,28,128,20,99,205,16,128,212,114,211,227,92,123,92,217,216, | |||
60,51,231,206,18,251,57,191,201,113,106,165,250,214,79,198,219,133,247,200,60,115,162,180,133,101,107,117,200,30,151,199,75,3,179,7,145,42,59,93,109,151,11,175,14,177,239,16,128,84,35,12,1,72,153,69,139,22,153,226,226,98,59,61,78,237,113,90,39,244,200, | |||
125,215,134,66,146,223,192,4,5,33,181,84,33,51,217,118,185,7,47,247,188,78,21,35,173,31,202,70,10,255,179,31,247,95,87,149,76,26,183,237,218,87,227,109,151,211,218,161,227,103,14,216,214,88,191,22,88,0,32,12,1,200,104,90,47,224,214,30,60,253,98,181,157, | |||
30,247,200,125,101,166,32,127,128,169,171,171,11,93,23,233,158,133,87,100,221,38,156,217,104,202,172,81,190,251,236,104,178,220,201,230,243,89,121,92,52,80,225,158,133,99,2,113,91,52,30,219,13,62,185,109,244,15,226,250,94,87,29,242,123,158,3,0,97,8,64, | |||
70,211,168,108,189,50,92,85,219,100,222,221,113,200,220,124,237,48,115,75,89,219,84,56,173,19,210,43,207,145,202,190,154,111,71,48,35,243,169,10,50,237,65,255,97,10,175,44,221,157,181,199,38,72,3,21,186,218,46,247,241,225,215,205,153,243,205,182,50,60, | |||
125,250,116,30,240,0,8,67,0,178,135,134,38,184,29,237,159,89,243,225,133,246,184,182,253,84,52,89,206,107,157,144,170,4,90,51,129,236,58,233,247,219,123,104,243,250,67,89,57,106,219,185,247,187,99,2,177,126,72,47,90,184,234,78,217,240,123,76,110,159, | |||
130,184,2,145,11,84,0,64,24,2,144,53,220,30,35,27,182,52,152,221,251,154,109,16,114,99,180,181,177,163,23,45,170,103,96,66,246,241,91,59,36,235,159,207,206,181,67,46,4,106,237,92,16,214,15,105,109,223,166,77,155,236,102,172,83,174,136,189,93,174,250, | |||
224,111,236,165,94,24,97,204,54,0,194,16,128,172,48,119,238,92,51,121,242,100,59,52,65,85,33,77,143,115,237,113,126,175,16,171,37,136,117,66,217,73,247,59,213,161,47,104,189,212,170,39,107,236,251,26,52,17,148,106,169,123,238,142,26,116,157,41,30,114, | |||
107,76,223,163,49,219,110,19,86,87,41,6,0,194,16,128,140,230,170,66,175,86,214,217,75,55,61,78,107,136,188,218,227,212,10,164,150,32,100,47,170,67,109,52,52,66,147,244,106,183,30,11,77,212,43,175,24,106,55,31,78,53,237,5,230,158,219,183,20,253,131,233, | |||
115,113,78,76,223,247,241,225,223,218,75,6,41,0,32,12,1,200,120,170,10,185,81,218,10,67,119,87,20,135,166,199,185,19,169,72,179,89,39,148,245,168,14,93,8,126,173,1,72,195,35,218,66,224,39,166,230,131,163,246,125,77,151,243,155,188,151,76,122,65,67,207, | |||
101,109,168,90,86,112,111,76,223,179,231,211,183,67,131,20,202,203,203,121,176,3,32,12,1,200,28,58,185,81,0,90,186,116,169,217,182,109,219,23,27,172,182,6,161,156,254,189,219,109,174,234,53,61,78,21,1,141,18,6,178,189,58,164,192,183,241,229,253,237,62, | |||
247,220,247,118,218,106,145,214,210,69,219,168,54,89,186,50,76,225,236,103,45,54,16,9,131,20,0,16,134,0,164,61,45,132,86,248,217,179,103,143,29,136,160,0,164,19,164,9,19,38,216,235,223,169,110,180,97,104,222,204,171,236,199,90,120,173,253,74,34,233,149, | |||
238,41,140,209,198,5,217,94,29,114,235,132,194,21,150,230,132,134,138,232,248,4,97,220,182,158,203,110,152,66,172,163,182,247,124,250,123,123,201,186,33,0,132,33,0,105,75,21,160,141,27,55,134,54,76,117,237,112,10,63,171,126,91,107,126,254,234,78,251, | |||
214,120,228,148,249,233,119,110,236,116,104,2,211,227,16,41,90,117,104,243,250,198,140,253,189,223,123,173,209,174,19,234,236,120,76,251,102,81,32,218,229,92,117,104,220,165,119,154,145,185,19,58,253,250,186,163,180,202,1,72,29,205,228,92,204,97,0,208, | |||
157,16,164,93,232,21,106,116,50,35,26,153,189,250,245,90,243,238,142,70,219,14,55,121,226,8,51,229,250,145,230,203,87,93,106,174,42,30,98,242,6,181,157,176,169,106,164,177,188,145,180,185,234,29,115,47,227,224,162,29,77,79,123,175,53,244,184,117,51,225, | |||
154,14,156,206,200,13,121,213,6,247,111,11,254,104,206,159,253,188,221,231,53,52,225,182,255,82,216,238,115,189,251,94,100,7,142,168,82,150,74,141,141,141,246,111,129,170,193,185,125,11,66,251,9,69,51,164,95,145,221,184,245,244,233,211,102,195,134,13, | |||
60,216,1,36,75,29,149,33,0,93,162,93,227,213,10,167,64,227,170,64,170,0,253,143,127,221,98,175,215,222,65,75,30,188,222,220,61,185,109,72,66,36,237,90,239,55,65,234,222,133,87,112,128,225,105,218,131,222,251,209,28,57,112,198,84,85,30,206,184,223,247, | |||
149,165,187,59,132,63,237,45,164,161,9,94,130,210,46,167,129,40,122,142,107,212,118,44,213,33,90,229,0,164,10,97,8,64,92,180,38,72,237,112,170,6,185,16,244,244,175,171,237,158,65,55,95,59,220,252,243,63,220,104,238,184,177,208,110,162,170,150,57,77,152, | |||
114,39,70,225,244,121,191,161,9,170,0,0,94,202,43,242,125,55,26,125,239,181,67,25,245,187,106,90,156,87,149,71,237,112,209,90,72,131,208,46,167,81,219,122,142,75,44,27,177,210,42,7,128,48,4,32,240,230,207,159,111,3,142,219,52,85,149,160,85,175,215,154, | |||
217,83,199,154,71,190,94,102,198,22,14,178,161,71,213,34,181,200,140,30,61,218,14,81,80,24,26,50,228,139,77,83,245,53,238,68,41,156,78,114,25,154,128,104,20,2,20,136,188,84,191,213,100,219,202,50,129,126,15,207,161,9,37,3,59,109,7,212,49,10,66,117,85, | |||
207,113,61,215,53,106,251,202,161,83,59,253,122,55,85,142,234,16,0,194,16,128,64,25,60,120,176,173,6,185,0,83,85,219,100,158,126,177,218,148,143,205,51,223,190,123,188,109,131,211,73,143,66,143,94,217,125,224,129,7,236,6,170,90,79,228,198,105,107,29, | |||
145,2,148,59,73,242,170,10,169,245,135,161,9,232,76,180,192,156,41,131,20,180,167,144,90,255,34,197,186,239,150,54,99,213,218,187,84,210,115,220,253,205,136,101,178,220,254,230,109,132,33,0,132,33,0,193,162,150,149,200,106,208,238,125,205,118,61,80,121, | |||
73,126,187,16,180,100,201,146,80,200,137,12,66,213,187,142,216,214,57,191,170,144,218,122,110,186,107,56,7,28,157,210,222,83,126,109,96,155,95,75,255,48,164,181,79,145,123,10,73,188,251,110,169,58,228,215,82,152,44,241,84,135,92,101,72,85,101,189,0,3, | |||
0,132,33,0,41,165,64,163,54,55,181,184,237,106,56,30,90,23,164,161,8,162,117,67,58,113,9,15,65,94,65,232,167,47,238,176,173,116,238,228,200,123,173,80,17,7,28,49,187,105,154,119,112,110,168,61,145,214,123,14,217,246,184,39,188,219,227,180,22,40,30,90, | |||
123,151,234,9,123,241,84,135,180,1,235,225,19,181,246,125,170,67,0,8,67,0,82,106,209,162,69,237,2,205,27,239,55,180,91,23,164,147,149,153,51,103,218,133,210,145,1,202,125,159,246,21,82,16,186,253,134,81,161,86,58,170,66,72,132,73,211,252,31,47,53,30, | |||
123,242,164,139,231,190,183,211,115,116,120,172,237,113,29,94,100,8,192,48,133,184,170,67,71,219,170,67,170,68,3,0,97,8,64,74,172,88,177,194,182,190,201,171,155,234,236,165,214,6,137,155,34,167,157,230,35,133,7,33,125,223,154,202,182,160,52,179,162,56, | |||
116,82,68,85,8,137,160,170,135,223,73,126,85,101,83,90,254,78,111,190,180,207,119,115,213,120,218,227,34,165,122,152,66,60,213,33,55,98,155,48,4,128,48,4,32,101,65,72,27,168,138,42,59,99,70,229,218,81,217,162,128,164,106,144,87,160,209,190,67,225,149, | |||
36,181,212,73,217,216,188,80,53,137,170,16,18,169,220,103,64,64,237,214,163,105,247,187,236,173,105,49,175,44,253,115,135,207,151,76,28,28,119,123,92,135,227,84,49,212,254,156,84,10,175,14,21,15,185,213,247,235,154,78,238,98,196,54,0,194,16,128,96,4, | |||
161,219,111,40,12,13,73,80,91,156,214,6,121,158,108,181,158,180,68,174,17,114,238,190,80,21,82,69,137,170,16,18,105,146,79,136,86,155,153,246,232,73,23,90,39,180,108,94,117,135,207,107,248,193,156,199,74,19,242,255,184,39,64,213,161,178,130,123,163,126, | |||
237,254,230,237,246,146,234,16,0,194,16,128,164,209,30,66,145,65,200,85,116,116,82,226,213,22,39,154,250,164,160,227,134,44,132,7,161,225,121,253,205,45,101,109,39,172,174,237,46,28,85,33,116,135,90,199,252,166,165,213,166,209,186,33,191,117,66,115,30, | |||
47,77,216,6,196,58,86,147,166,13,75,233,239,233,194,208,168,65,215,153,145,185,19,124,191,110,223,241,109,132,33,0,132,33,0,201,163,181,62,238,68,197,43,8,105,207,32,63,170,8,169,165,229,96,211,73,243,240,207,182,180,187,46,188,42,20,57,104,65,110,154, | |||
70,16,66,247,148,76,28,226,249,249,116,25,162,240,155,127,217,237,25,220,166,124,109,164,109,111,75,164,84,87,97,85,29,114,21,228,43,135,222,233,251,117,84,134,0,16,134,0,36,141,90,220,92,16,82,139,219,152,81,131,98,14,66,170,38,185,17,184,139,127,185, | |||
213,156,56,117,190,221,245,154,34,231,2,147,151,41,41,30,251,139,244,87,122,189,247,90,152,134,154,150,192,223,246,247,94,107,244,220,79,72,99,180,239,253,238,152,132,255,255,84,101,210,48,134,84,114,21,226,113,151,222,105,114,251,20,120,126,141,91,55, | |||
164,106,115,81,17,109,180,0,8,67,0,122,72,120,139,219,59,213,141,54,204,184,97,9,157,5,161,240,16,165,106,146,54,98,141,12,66,218,100,85,27,182,122,181,216,169,101,103,64,110,47,238,4,116,139,223,96,0,181,157,5,121,191,33,13,76,88,253,100,199,253,132, | |||
212,246,183,224,153,178,30,251,255,234,5,136,84,110,196,170,10,241,166,77,155,236,251,209,214,14,29,110,13,68,238,239,16,0,16,134,0,244,136,240,22,183,170,93,77,161,205,84,181,118,40,90,16,114,223,43,10,81,110,132,118,100,24,10,255,58,175,147,50,160, | |||
187,162,141,156,110,168,13,102,117,72,65,200,107,96,130,40,8,245,228,139,4,250,217,169,222,136,213,85,135,180,231,80,159,139,189,239,63,90,229,0,16,134,0,244,168,240,22,183,213,175,239,50,115,166,150,216,247,85,237,89,185,114,101,212,239,213,134,172, | |||
19,38,76,48,45,39,207,153,167,95,236,120,82,167,193,9,154,66,231,23,134,212,6,212,157,125,83,128,112,126,213,161,134,154,19,129,187,173,154,28,183,250,137,26,239,141,85,31,43,77,202,243,34,213,213,161,202,202,74,91,49,238,219,43,215,140,190,196,123,204, | |||
246,254,11,67,20,244,119,6,0,8,67,0,18,74,125,248,238,213,89,181,184,105,83,84,181,180,169,125,101,225,194,133,49,127,175,130,80,228,58,33,113,85,33,191,193,9,84,133,144,72,10,215,94,130,54,68,193,141,208,110,168,237,24,210,52,48,33,89,147,21,131,80, | |||
29,10,141,217,30,238,221,42,231,218,228,8,67,0,8,67,0,18,78,213,26,173,19,170,170,109,50,5,121,3,66,3,19,92,165,168,179,239,21,125,239,187,59,14,121,126,77,120,24,138,164,87,164,203,43,242,185,19,144,184,48,228,83,77,57,213,124,62,80,183,83,35,180,189, | |||
130,144,214,207,245,196,192,132,104,82,93,29,210,223,17,253,205,25,58,176,196,228,15,24,219,225,250,179,159,181,152,195,39,106,237,251,21,21,21,60,200,1,16,134,0,36,134,198,104,171,15,95,45,110,111,188,191,175,221,58,33,175,77,81,195,233,164,196,245, | |||
240,63,29,182,159,80,184,49,163,114,77,65,254,0,123,162,227,213,110,167,32,196,224,4,36,82,254,136,190,158,159,247,10,30,169,178,234,137,143,61,71,104,171,170,53,231,241,43,147,126,123,82,93,29,210,223,26,247,98,73,103,213,33,214,13,1,32,12,1,72,8,77, | |||
143,115,237,41,175,86,214,217,246,56,209,73,137,223,166,170,225,92,85,104,213,111,107,77,227,145,83,158,95,163,61,138,220,207,244,50,137,189,133,144,96,133,81,214,217,4,97,162,156,130,208,230,245,135,60,131,80,79,78,142,235,76,170,171,67,238,111,145, | |||
214,13,121,13,82,56,124,178,173,50,164,33,47,0,64,24,2,208,109,11,22,44,176,237,113,154,30,215,114,234,92,168,61,78,85,161,206,168,162,164,147,18,85,148,20,164,252,220,124,237,48,223,48,148,55,162,175,41,189,126,8,119,4,18,42,90,165,177,233,64,106,195, | |||
80,103,65,40,149,85,82,253,191,83,217,178,170,137,149,209,6,41,52,177,110,8,0,97,8,64,162,104,240,129,194,144,60,179,230,195,208,244,56,13,67,232,172,61,206,125,157,40,8,121,13,77,144,240,22,57,175,74,83,249,87,89,43,132,158,225,191,223,80,234,214,13, | |||
249,5,33,189,40,144,234,32,228,76,123,48,181,155,154,70,27,164,224,198,107,19,134,0,16,134,0,116,155,194,140,27,154,48,102,212,160,208,134,168,203,151,47,239,244,123,167,79,159,30,83,85,168,211,22,185,187,104,145,67,114,165,106,188,182,95,16,82,91,218, | |||
183,126,50,62,48,235,230,242,71,246,179,3,28,82,197,181,222,106,144,66,110,159,130,14,215,31,63,115,192,94,50,68,1,0,97,8,64,151,169,42,228,90,225,20,102,238,190,176,86,40,150,246,56,113,21,165,104,85,33,233,172,69,142,189,133,208,99,39,245,62,67,20, | |||
130,22,132,84,17,10,218,243,32,149,235,248,218,13,82,40,232,88,29,106,62,115,208,94,178,110,8,0,97,8,64,151,185,208,19,94,21,210,158,66,218,252,176,51,229,229,229,161,105,78,209,170,66,174,69,78,104,145,67,242,195,80,191,148,223,6,237,35,244,212,223, | |||
111,141,186,70,40,136,47,8,104,29,159,95,155,97,50,184,234,80,177,199,186,33,215,42,71,24,2,64,24,2,208,37,154,32,231,42,59,118,148,246,133,170,144,91,3,212,25,247,189,27,182,52,68,173,10,149,141,205,179,151,180,200,33,72,146,181,241,106,180,13,85,131, | |||
28,132,66,207,207,20,86,135,244,226,137,214,25,14,234,59,162,195,158,67,205,23,218,228,24,175,13,128,48,4,160,75,180,145,170,155,32,55,176,127,47,91,21,218,190,125,123,76,85,33,5,41,183,17,235,154,40,85,33,185,229,218,225,190,97,72,237,65,180,200,33, | |||
83,237,173,105,49,79,205,222,26,53,8,5,125,111,173,155,238,26,158,210,49,219,238,239,198,184,161,119,70,132,33,218,228,0,16,134,0,116,67,248,122,31,87,21,114,19,156,226,9,82,187,247,53,71,253,218,242,146,182,54,56,181,223,117,184,174,130,22,57,100,110, | |||
16,82,69,232,200,129,51,105,27,132,156,84,110,194,234,194,80,100,171,28,109,114,0,8,67,0,186,76,235,125,220,88,90,181,184,185,177,215,43,87,174,140,57,12,185,32,21,141,27,156,160,138,83,125,125,61,97,8,73,215,63,5,129,227,189,215,26,205,143,102,111,51, | |||
167,90,62,235,112,157,38,180,165,83,16,106,187,205,193,108,149,59,115,190,57,244,247,12,0,18,173,23,135,0,200,92,110,112,130,214,251,184,53,61,110,177,114,103,194,91,228,222,221,113,40,122,232,26,235,95,21,146,146,137,108,180,138,158,165,42,76,50,253, | |||
230,95,118,155,141,47,239,247,9,21,195,204,156,199,175,12,244,241,170,249,224,168,189,84,107,223,169,230,243,118,115,218,38,143,234,86,50,169,58,164,191,89,106,149,123,231,147,127,13,125,254,240,201,93,102,212,160,235,108,149,26,0,8,67,0,98,246,69,152, | |||
105,52,143,220,87,22,87,24,114,223,187,171,225,184,105,60,114,42,234,215,186,160,229,21,134,116,146,154,78,175,142,35,61,37,107,115,85,13,74,120,101,233,110,207,137,113,114,207,194,43,82,218,110,230,23,124,106,183,30,51,123,107,78,180,134,159,22,207, | |||
150,190,32,112,97,72,173,114,225,97,200,173,27,210,16,133,88,214,58,2,0,97,8,128,109,41,113,27,165,138,219,100,181,170,170,42,174,48,244,198,251,13,81,191,78,67,25,198,22,14,242,13,67,180,200,33,25,146,177,185,106,180,137,113,50,251,177,82,59,136,32, | |||
213,154,246,159,54,85,111,53,181,134,160,99,166,186,245,50,93,184,86,185,33,67,218,90,229,154,78,238,106,11,67,103,15,242,0,7,64,24,2,16,31,55,138,182,106,215,17,115,115,148,73,111,157,125,127,231,45,114,109,85,33,173,23,210,6,138,145,82,185,127,9,144, | |||
40,110,80,130,215,250,160,32,108,166,234,2,208,230,215,26,125,195,90,58,208,11,42,122,33,102,100,238,132,47,194,80,216,120,237,37,75,150,240,96,4,64,24,2,208,185,240,22,185,121,51,175,178,239,199,218,34,87,81,81,17,154,34,215,89,139,156,54,113,117,39, | |||
49,94,180,161,35,144,206,52,40,65,173,113,94,65,72,109,160,179,31,47,77,89,16,170,170,60,220,122,251,14,117,169,2,164,234,177,158,231,225,123,248,184,231,177,170,200,94,195,80,122,154,94,176,209,223,174,209,151,124,197,236,104,124,229,66,24,162,50,4, | |||
128,48,4,32,78,238,4,167,229,212,57,219,34,167,246,147,88,91,228,194,171,74,157,158,80,69,89,47,68,85,8,233,110,253,47,234,205,250,231,63,241,188,78,143,239,111,253,100,124,210,215,196,169,93,111,243,250,70,243,230,75,251,98,94,255,163,23,56,52,89,82, | |||
207,109,93,198,50,170,90,95,147,236,64,228,170,215,26,152,208,231,226,28,115,246,179,150,80,24,114,147,49,1,128,48,4,160,211,19,31,209,240,131,225,121,253,125,195,74,103,97,168,58,150,48,116,97,127,33,181,201,69,42,37,12,33,197,186,243,24,92,245,196, | |||
199,190,131,18,82,49,49,78,33,104,99,107,0,82,8,242,170,82,133,43,42,42,178,21,22,189,133,87,126,194,185,202,175,246,16,179,47,154,244,239,109,198,140,202,181,127,51,52,134,95,195,12,146,221,150,166,86,91,253,45,81,240,81,171,92,221,209,183,67,107,134, | |||
152,38,7,128,48,4,32,174,48,179,123,223,241,78,199,94,123,113,175,192,118,86,25,210,137,147,248,181,212,20,150,14,228,206,64,82,236,77,224,0,133,32,14,74,136,214,170,23,25,128,20,98,34,171,40,10,62,122,62,235,111,130,194,79,180,23,58,110,191,97,148,121, | |||
228,235,101,41,9,67,238,111,149,110,191,90,229,20,134,68,123,13,245,237,149,107,127,199,84,180,239,1,32,12,1,72,195,48,164,19,30,183,94,40,214,48,164,147,13,189,2,171,41,116,177,174,23,242,170,10,9,251,11,33,89,18,53,90,91,131,8,158,251,222,78,207,32, | |||
164,65,9,115,30,47,53,229,21,67,147,246,123,105,44,246,170,39,107,162,182,195,205,157,59,215,6,151,200,10,208,59,213,141,118,205,160,66,80,103,207,229,118,223,167,117,134,173,207,127,181,201,105,93,81,172,237,181,137,162,86,185,5,11,22,152,145,131,190, | |||
8,116,110,175,161,84,180,238,1,32,12,1,72,51,110,61,128,91,47,36,177,158,208,184,87,148,245,10,114,103,162,133,161,188,17,125,217,95,8,41,151,55,162,95,204,95,27,109,98,156,30,207,90,31,148,172,65,9,157,237,103,164,77,145,21,24,244,22,222,62,230,2,144, | |||
2,205,137,83,93,11,136,250,62,125,255,29,55,22,218,144,181,112,225,194,164,222,103,110,47,161,65,125,71,152,220,62,5,140,214,6,208,163,46,226,16,0,153,69,39,73,95,132,161,182,147,161,174,180,200,169,149,166,243,48,148,235,251,243,11,75,114,184,51,144, | |||
52,218,84,212,75,126,107,136,233,110,16,210,196,184,71,87,79,76,90,16,210,132,184,199,102,188,239,25,132,244,252,94,180,104,145,109,77,93,188,120,113,104,234,227,170,223,214,154,191,95,178,201,44,254,229,86,243,198,251,251,186,28,132,28,5,42,113,83,41, | |||
147,205,253,77,113,213,33,134,40,0,232,41,188,108,11,100,24,119,178,160,225,9,225,123,0,197,202,5,169,131,71,78,118,250,181,110,120,130,78,204,34,93,198,122,33,4,64,255,24,170,147,10,31,171,158,168,241,12,66,201,156,24,23,173,26,228,85,9,170,170,109, | |||
178,193,71,111,137,166,253,197,90,82,216,42,167,48,164,182,191,145,185,215,153,143,15,191,206,16,5,0,132,33,0,241,133,153,19,23,166,67,137,198,106,199,251,253,157,85,134,92,85,72,63,219,171,135,159,177,218,72,22,173,171,241,211,89,53,71,131,9,86,63,89, | |||
227,121,93,50,39,198,169,50,181,186,53,144,121,173,85,154,62,125,186,89,182,108,89,232,185,169,16,180,234,245,93,49,77,123,236,10,55,81,206,181,217,166,162,85,206,85,134,134,14,24,203,3,28,0,97,8,64,252,97,72,139,166,163,237,1,228,199,85,150,20,166,162, | |||
113,35,187,253,170,78,133,165,180,201,33,181,52,240,32,29,130,144,95,101,74,195,76,20,130,92,171,154,218,225,86,183,134,160,68,86,130,6,246,239,101,110,185,118,184,93,255,87,214,250,247,98,108,225,160,14,95,227,55,154,187,39,185,117,67,67,7,150,216,253, | |||
134,52,77,46,252,239,19,0,16,134,0,120,10,111,35,25,120,161,50,212,149,239,239,188,50,228,63,60,65,39,161,12,79,64,178,248,173,23,138,22,200,163,5,161,100,142,206,246,219,212,85,19,226,20,132,220,243,81,107,130,94,173,172,235,246,90,160,182,231,110,174, | |||
185,185,53,0,233,205,43,252,168,237,85,111,122,110,171,242,27,79,155,109,34,133,239,55,212,116,114,87,135,191,111,0,64,24,2,208,65,248,30,65,115,238,44,177,239,187,87,89,19,201,85,134,188,214,11,81,21,66,50,53,29,56,237,249,121,191,225,9,65,9,66,94,155, | |||
186,106,109,208,11,47,188,16,170,6,105,237,223,79,95,172,142,105,160,73,52,170,0,105,255,160,219,111,40,236,16,128,20,58,52,206,90,21,100,189,175,141,79,131,192,237,55,164,145,218,123,62,253,61,15,116,0,132,33,0,61,75,11,165,69,237,56,157,41,136,210, | |||
38,167,233,91,64,242,194,208,25,159,48,212,47,144,65,200,111,80,130,158,127,10,66,238,5,13,85,131,212,22,215,29,170,2,205,172,40,182,99,178,195,41,252,184,183,160,132,31,175,48,164,129,17,249,3,198,18,134,0,16,134,0,244,60,215,130,18,203,6,141,209,38, | |||
201,229,143,236,199,193,68,210,52,212,180,120,126,190,48,98,162,97,80,130,144,70,120,71,14,74,208,144,4,5,33,183,225,241,162,95,110,237,214,128,4,173,255,153,51,117,108,232,121,234,94,184,80,235,93,144,3,80,56,247,66,139,42,67,127,216,183,130,7,58,0, | |||
194,16,128,206,185,87,149,11,58,25,112,144,40,94,147,228,168,12,33,89,154,246,159,246,28,137,221,246,56,252,162,93,83,211,218,84,141,9,98,16,210,250,32,5,33,81,91,220,195,63,219,210,229,181,65,106,95,125,228,190,107,219,133,32,253,108,133,160,100,143, | |||
199,78,196,223,22,189,216,162,161,48,35,91,3,17,0,16,134,0,116,202,85,119,14,94,168,238,196,51,86,59,86,101,157,236,95,228,213,158,4,244,72,24,242,89,47,100,31,135,23,42,148,209,54,84,77,230,26,33,175,32,180,116,233,82,219,10,38,27,182,52,152,159,190, | |||
184,163,75,63,91,107,130,230,76,45,49,119,79,46,110,23,130,180,49,171,215,11,22,233,66,127,99,20,134,220,136,109,6,40,0,72,180,139,56,4,0,226,149,211,191,87,212,160,69,155,28,146,197,111,146,156,219,231,74,149,163,32,4,33,13,75,136,12,66,43,86,172,8, | |||
5,33,173,15,234,106,16,186,249,218,97,230,217,71,110,9,5,33,181,193,41,64,60,240,192,3,105,29,132,92,24,146,51,231,219,90,33,85,249,118,107,27,1,32,17,168,12,1,136,91,180,177,218,180,200,33,153,246,214,156,240,252,188,30,135,106,75,123,238,123,59,3,17, | |||
132,34,135,37,40,8,105,51,83,121,250,215,213,93,218,59,72,213,160,121,51,175,10,13,71,80,75,153,126,102,79,76,143,76,21,183,71,218,232,75,110,181,123,13,245,237,149,107,63,167,189,143,210,173,237,15,64,48,81,25,2,208,101,94,149,161,254,236,47,132,36, | |||
106,168,245,27,158,144,99,131,80,100,53,38,217,65,72,67,27,34,131,208,252,249,243,187,29,132,52,37,78,213,32,23,132,180,38,72,85,147,76,10,66,162,223,71,47,186,40,4,233,77,212,42,167,64,164,49,228,0,64,24,2,224,201,181,178,245,132,242,11,107,134,60,247, | |||
24,162,50,132,36,81,11,220,17,159,177,218,27,95,218,231,217,66,55,105,218,176,164,5,161,154,15,142,118,152,94,231,54,83,237,78,16,210,126,65,63,253,206,141,166,32,127,128,125,14,170,74,178,112,225,194,180,152,16,215,21,250,253,212,250,23,142,64,4,128, | |||
48,4,192,147,107,43,201,233,223,59,116,34,209,83,188,194,208,0,42,67,72,18,191,170,80,219,117,39,60,131,208,156,199,175,76,90,80,83,101,42,92,69,69,69,104,106,156,134,37,116,37,8,169,45,238,145,175,151,153,156,1,189,67,155,146,102,90,53,40,146,66,222, | |||
204,153,51,67,235,171,28,253,238,238,120,2,0,97,8,64,59,7,99,216,43,40,146,91,3,20,62,150,215,203,192,11,65,203,11,109,114,72,90,24,242,89,47,228,69,21,203,123,22,142,73,218,109,139,92,171,84,84,84,20,170,110,116,117,106,220,195,247,93,27,26,146,160, | |||
234,210,148,41,83,50,182,26,228,101,249,242,229,246,197,157,240,246,220,25,51,102,152,69,139,22,241,100,0,64,24,2,208,125,177,158,88,141,45,108,27,160,224,245,138,52,109,114,72,150,154,173,177,61,94,251,231,92,108,22,60,83,150,180,170,229,111,254,101, | |||
119,135,202,148,130,144,90,187,180,143,208,51,107,62,236,82,16,114,235,131,180,222,72,109,113,217,72,127,115,20,136,194,135,183,104,124,184,54,173,5,0,194,16,128,80,235,154,22,88,107,39,123,233,202,40,218,129,253,169,240,32,216,106,99,8,67,201,14,66, | |||
90,39,180,241,229,253,237,62,167,189,132,212,210,165,231,227,226,95,110,141,123,67,85,23,132,84,17,81,16,90,185,114,101,86,223,239,154,34,23,25,136,212,46,199,250,33,0,132,33,0,161,48,164,53,67,187,247,29,183,239,199,179,81,161,91,115,228,198,103,199, | |||
27,146,52,197,11,72,70,232,136,133,90,227,46,75,210,99,82,163,188,87,69,12,76,80,197,194,173,117,121,250,197,106,211,24,103,251,106,120,16,82,0,200,246,32,228,168,138,29,30,136,244,55,142,245,67,0,8,67,0,66,253,244,195,243,250,155,150,11,175,64,107,3, | |||
198,120,249,77,163,115,33,201,133,166,72,12,80,64,50,196,82,21,74,230,228,56,89,255,139,250,118,211,237,84,169,112,39,232,175,110,170,51,239,238,56,212,165,32,36,90,27,195,190,58,209,3,145,142,145,166,245,1,0,97,8,200,98,238,196,160,160,53,12,185,202, | |||
80,60,97,168,179,202,16,16,4,157,173,23,74,246,192,4,175,246,56,5,161,174,174,19,154,89,81,212,110,141,80,166,79,140,235,78,32,82,8,114,47,2,105,176,4,237,114,0,8,67,64,22,115,109,114,154,8,231,90,114,226,25,175,237,78,42,8,67,8,178,104,149,33,173,19, | |||
154,253,120,105,82,171,148,175,44,253,115,187,143,213,30,167,147,116,249,233,139,213,113,253,172,155,175,29,102,190,125,247,248,80,16,162,53,46,186,250,250,250,208,148,57,133,79,183,143,19,0,16,134,128,44,61,49,112,90,78,181,13,80,136,167,50,228,42,75, | |||
106,179,139,87,201,68,94,145,69,207,235,108,189,208,180,111,22,37,109,157,144,188,247,90,99,187,233,113,225,237,113,171,126,91,107,118,239,107,142,249,103,233,121,247,200,125,101,246,125,253,12,130,80,108,212,66,168,224,168,191,95,154,46,7,0,132,33,32, | |||
139,69,174,231,81,24,138,181,117,196,181,227,184,241,217,145,202,199,230,217,75,175,13,87,129,100,136,86,21,82,32,191,109,214,168,164,221,22,13,77,120,101,233,238,118,159,211,201,184,42,20,7,155,78,154,213,175,239,138,235,231,45,254,198,68,187,161,170, | |||
78,234,31,120,224,1,238,236,56,172,91,183,206,92,119,221,117,237,94,16,2,0,194,16,144,133,92,117,71,173,110,85,181,77,246,253,120,90,229,220,247,151,93,8,62,94,8,67,72,149,104,235,133,230,60,86,154,212,219,178,241,165,125,29,54,87,253,98,122,92,124,27, | |||
171,206,158,58,214,190,8,161,118,47,215,98,7,0,32,12,1,232,98,24,82,21,199,181,232,116,37,12,149,71,9,67,64,170,248,85,134,166,61,120,185,201,31,217,47,105,183,67,85,161,55,91,195,80,56,183,94,69,47,66,84,239,58,18,243,207,210,190,96,115,238,44,177,239, | |||
43,76,81,221,0,0,194,16,128,46,114,109,114,26,162,80,181,43,254,202,80,232,251,9,67,8,152,104,235,133,38,77,27,158,212,219,18,89,21,170,168,168,8,85,116,226,173,10,205,155,121,149,189,92,187,118,45,235,132,0,128,48,4,160,59,244,170,114,100,27,219,132, | |||
9,19,98,94,55,20,30,166,128,32,241,171,10,105,148,118,170,171,66,110,225,254,134,45,13,113,109,174,122,251,13,163,236,115,77,237,113,174,197,14,0,64,24,2,208,13,95,84,119,242,237,62,39,18,235,58,132,240,48,165,49,191,177,210,9,41,208,147,252,214,11,37, | |||
123,146,161,87,85,200,85,95,227,25,154,48,176,127,47,187,86,72,212,98,71,123,28,0,16,134,0,36,128,218,109,68,67,16,222,120,191,33,174,48,20,254,253,10,83,177,74,230,190,46,200,62,170,198,248,85,134,74,175,79,110,24,122,111,125,99,187,143,93,69,39,222, | |||
170,208,221,21,197,166,32,127,128,125,241,97,201,146,37,220,201,0,64,24,2,144,8,174,50,164,233,84,238,228,76,97,40,222,86,185,120,42,67,64,79,170,221,234,191,94,168,100,226,144,228,5,161,215,26,205,145,3,103,66,31,107,130,156,123,161,33,222,170,144,194, | |||
144,176,55,14,0,16,134,0,36,208,177,99,199,66,213,29,109,228,168,61,79,92,32,138,133,246,236,208,26,6,189,106,173,73,87,64,170,213,124,224,223,34,151,204,170,228,102,159,170,208,59,213,141,113,175,21,210,158,66,170,10,49,52,1,0,8,67,0,18,204,133,33,189, | |||
250,252,106,101,157,125,95,187,180,199,251,253,51,47,188,122,13,164,146,111,139,92,18,215,11,53,237,63,221,238,118,168,210,234,158,83,238,57,22,43,170,66,0,64,24,2,208,195,97,200,85,119,220,43,214,90,228,173,182,158,88,188,240,194,11,246,242,150,107, | |||
135,115,48,145,82,90,47,212,80,123,194,243,186,100,14,79,136,172,10,169,210,58,100,200,16,91,121,141,103,95,33,181,159,234,121,169,231,39,85,33,0,32,12,1,232,1,225,173,114,55,183,6,26,181,241,72,172,227,123,43,43,43,109,11,143,90,121,212,210,211,153, | |||
189,53,39,56,232,232,17,85,149,77,190,215,149,94,159,196,245,66,17,97,168,171,85,161,219,111,40,180,151,110,147,86,0,0,97,8,64,15,8,175,238,188,187,163,49,116,2,23,235,32,5,119,178,22,75,24,58,213,114,158,3,142,30,225,55,60,33,153,85,161,189,53,45,29, | |||
6,39,184,113,218,239,238,56,20,243,207,209,26,190,91,202,134,183,123,126,2,0,8,67,0,122,128,170,59,219,183,111,183,213,29,55,72,65,109,61,177,86,135,220,201,154,54,133,212,152,110,32,21,106,2,176,94,104,243,107,29,91,228,164,170,182,41,174,193,9,110, | |||
66,163,38,54,178,175,16,0,16,134,0,244,176,240,234,142,27,253,27,107,117,72,173,118,46,16,197,82,29,2,18,77,67,11,194,43,50,225,202,42,242,147,118,59,34,7,56,184,48,244,198,251,251,226,250,57,110,13,30,85,33,0,32,12,1,72,2,45,208,214,218,31,45,216,22, | |||
85,135,138,139,139,99,174,14,185,105,87,119,220,88,24,250,220,132,9,19,56,176,72,10,191,170,80,255,156,139,205,101,165,57,73,11,100,225,3,28,244,66,130,107,145,171,138,99,112,130,246,22,82,149,85,220,94,94,0,0,194,16,128,30,230,2,205,236,169,99,67,213, | |||
33,133,161,88,170,67,106,229,137,172,14,169,213,14,72,6,255,245,66,201,123,12,214,248,84,133,118,53,28,143,171,69,206,85,133,212,186,74,139,28,0,16,134,0,36,73,120,117,72,175,78,187,181,67,177,238,113,226,190,206,85,151,188,52,29,56,205,129,70,143,7, | |||
17,167,244,250,228,173,23,138,12,100,95,12,78,104,140,235,231,184,117,119,110,202,35,0,128,48,4,32,73,92,160,153,51,181,196,60,179,230,67,251,190,170,67,229,229,229,157,126,111,120,117,200,143,223,186,14,160,171,162,173,23,42,44,25,152,178,64,214,149, | |||
22,57,25,51,106,144,189,164,69,14,0,8,67,0,146,76,213,33,55,89,174,124,108,126,104,223,161,88,247,58,9,175,34,105,205,17,208,211,26,106,91,124,175,75,214,254,66,145,129,76,35,181,221,227,191,58,206,245,66,99,11,219,194,144,166,60,2,0,8,67,0,146,204,13, | |||
77,184,123,114,177,121,227,253,6,211,114,242,156,125,149,123,254,252,249,157,126,175,170,67,46,16,17,134,144,12,53,31,120,183,200,37,115,127,161,200,64,230,134,135,104,164,118,60,92,85,72,47,72,0,0,8,67,0,82,64,175,72,187,245,10,179,167,150,152,85,175, | |||
215,218,247,21,114,98,105,151,83,21,73,129,202,111,154,92,205,7,71,57,200,72,152,218,0,236,47,212,80,115,194,51,12,237,222,215,28,103,24,202,181,151,90,187,7,0,32,12,1,72,17,237,49,116,244,232,81,219,178,147,211,191,183,125,133,91,195,20,180,38,168,179, | |||
233,114,218,119,104,249,242,229,166,170,170,138,3,137,158,15,34,181,39,60,63,159,204,202,208,222,136,48,228,214,11,237,222,119,60,174,159,83,144,215,54,124,132,202,16,0,16,134,0,164,144,2,141,2,145,204,185,179,196,188,90,89,103,219,229,244,138,119,172, | |||
235,135,252,156,106,57,207,1,70,66,68,171,50,22,38,105,127,161,182,64,214,190,77,206,181,136,30,140,99,164,182,184,202,16,97,8,0,8,67,0,82,108,221,186,117,161,118,185,121,51,175,50,79,191,88,109,223,87,72,154,59,119,110,215,79,28,107,78,112,112,145,16, | |||
126,45,114,154,34,55,32,183,87,210,110,71,228,52,187,174,12,79,8,167,170,44,0,128,48,4,32,197,20,124,220,222,67,119,87,20,155,159,191,186,211,126,94,237,114,211,167,79,231,0,33,165,246,250,4,235,194,210,228,141,212,214,36,185,112,110,93,157,246,233,138, | |||
87,121,73,190,189,100,205,16,0,16,134,0,4,128,218,229,102,204,152,97,95,169,214,137,154,214,52,108,216,210,16,10,68,177,12,84,136,228,183,65,38,16,47,191,177,218,201,108,145,139,220,72,88,107,235,164,49,206,22,185,112,154,202,8,0,32,12,1,8,0,13,66,8, | |||
31,183,173,214,31,55,80,65,27,67,118,37,16,1,221,117,178,249,124,32,54,91,141,92,3,231,38,201,29,236,70,24,2,0,16,134,0,4,136,54,99,117,251,7,61,242,245,50,243,206,142,70,179,171,225,120,151,2,81,45,149,33,36,64,67,77,234,55,91,109,187,29,237,91,245, | |||
18,81,25,2,0,16,134,0,4,204,146,37,75,108,107,156,124,251,238,241,118,67,214,174,6,34,160,187,162,13,79,0,0,128,48,4,32,225,30,120,224,1,223,64,164,113,192,177,78,153,99,227,85,116,87,228,90,29,39,111,68,191,148,222,46,215,38,215,114,234,28,119,18,0, | |||
16,134,0,100,67,32,122,167,186,209,126,172,207,47,90,180,40,134,19,217,51,28,72,116,51,12,121,63,134,46,43,29,152,228,219,225,61,64,97,247,190,102,238,36,0,32,12,1,200,134,64,84,181,171,41,52,101,78,107,139,54,110,220,104,6,15,30,236,251,253,71,124,94, | |||
213,7,98,229,219,38,151,244,48,68,176,7,0,194,16,128,172,15,68,242,244,175,171,77,203,201,115,102,242,228,201,118,175,148,138,138,10,207,239,221,203,198,171,232,78,0,217,239,31,166,83,221,38,7,0,32,12,1,200,162,64,228,198,110,223,113,99,161,153,89,81, | |||
108,158,126,177,186,221,96,5,175,182,57,42,67,232,86,24,138,242,248,185,44,137,123,12,37,154,94,72,144,162,162,34,238,100,0,32,12,1,72,7,203,151,47,183,149,32,109,204,58,182,112,144,121,228,190,50,179,166,178,46,212,54,167,77,91,35,53,212,82,25,66,215, | |||
249,61,126,242,70,244,77,235,223,107,247,190,227,246,178,184,184,152,59,25,0,8,67,0,210,69,101,101,165,157,162,165,137,114,57,3,122,219,189,136,10,242,250,219,235,220,116,173,72,76,148,67,87,157,106,62,239,249,249,252,20,180,200,229,247,64,0,35,12,1, | |||
0,97,8,64,154,169,175,175,55,215,93,119,93,104,115,214,242,146,252,208,117,94,107,135,168,14,161,171,106,2,180,199,80,100,0,211,90,57,25,51,42,55,238,159,85,181,235,8,97,8,0,8,67,0,210,153,54,103,117,85,34,199,171,58,212,80,211,194,193,66,66,13,200,237, | |||
149,242,219,224,194,80,78,255,222,113,127,111,227,145,83,190,207,23,0,0,97,8,64,154,168,170,170,178,85,34,13,87,208,90,34,239,48,68,101,8,93,227,23,164,211,125,146,220,65,194,16,0,16,134,0,100,14,13,87,80,203,207,218,181,107,59,158,208,210,38,135,46, | |||
58,213,242,153,231,231,243,83,48,64,33,114,95,35,133,127,25,51,106,80,220,63,171,58,172,77,46,218,62,93,0,0,194,16,128,52,113,236,216,49,179,110,221,58,207,235,24,162,128,120,157,244,25,158,144,42,253,115,218,183,230,185,246,208,156,254,93,107,217,211, | |||
88,122,209,132,70,0,0,97,8,64,6,171,245,89,8,15,248,137,182,214,172,48,5,123,12,69,14,80,112,149,161,225,23,166,41,198,203,85,135,8,67,0,64,24,2,144,225,106,8,67,72,160,84,12,80,200,31,217,62,12,105,189,156,20,228,15,232,210,207,171,218,213,100,47,189, | |||
246,231,2,0,16,134,0,100,16,38,202,33,19,68,142,244,118,19,229,202,198,230,197,253,179,222,221,113,200,94,106,221,80,81,81,17,7,23,0,8,67,0,50,149,22,194,239,37,16,33,158,0,29,192,193,27,145,83,236,220,186,161,130,46,182,202,189,83,221,104,47,169,14, | |||
1,0,97,8,64,134,171,174,108,226,32,32,246,0,237,51,64,161,127,206,197,41,187,77,151,69,76,148,115,97,168,43,19,229,228,221,29,109,97,232,254,251,239,231,14,7,0,194,16,128,76,198,186,33,36,66,42,134,39,56,37,19,219,143,193,222,180,105,147,189,236,74,155, | |||
156,188,115,33,12,105,191,161,242,242,114,238,92,0,32,12,1,200,84,154,40,23,180,113,201,64,119,130,152,171,12,141,45,28,100,6,118,97,196,246,137,83,231,205,134,45,13,246,125,109,92,12,0,32,12,1,200,232,64,196,126,67,72,95,154,98,151,23,182,225,171,246, | |||
214,114,129,168,188,139,213,161,55,222,223,103,47,181,110,136,13,88,1,128,48,4,32,131,85,177,110,8,105,174,212,167,85,174,124,108,126,151,126,158,246,27,58,216,116,210,12,25,50,132,234,16,0,16,134,0,100,50,214,13,33,221,149,76,28,226,25,134,110,190,118, | |||
88,151,127,230,234,215,119,217,75,6,41,0,0,97,8,64,6,59,114,224,12,35,182,145,214,202,43,218,87,128,214,173,91,103,47,181,249,234,240,46,142,216,86,171,156,170,67,218,115,104,209,162,69,28,100,0,32,12,1,200,84,155,95,107,228,32,160,203,82,189,129,175, | |||
214,13,69,110,190,186,118,237,90,123,153,136,234,144,90,229,88,59,148,120,43,86,172,176,65,147,99,11,128,48,4,32,165,170,222,98,221,16,186,78,27,248,166,218,164,187,134,123,134,161,219,111,40,236,242,207,116,213,33,214,14,37,222,244,233,211,109,11,226, | |||
226,197,139,237,241,5,0,194,16,128,148,161,85,14,233,174,252,171,249,158,97,72,35,182,199,140,202,237,242,207,125,250,197,29,246,82,39,237,236,59,148,24,170,4,45,91,182,204,190,175,245,93,245,245,245,28,20,0,132,33,0,169,69,171,28,58,19,185,193,105,144, | |||
228,143,236,215,174,85,78,35,182,95,120,225,5,251,126,119,170,67,154,44,247,78,117,219,115,195,157,192,163,123,20,44,181,22,75,220,125,4,0,132,33,0,41,69,171,28,186,35,8,155,247,250,183,202,141,234,214,207,125,102,205,135,166,229,228,57,51,121,242,100, | |||
51,127,254,124,238,236,110,168,168,168,8,181,28,30,61,122,212,172,92,185,146,131,2,128,48,4,32,245,104,149,67,119,52,4,224,177,51,105,90,251,48,164,169,114,117,117,117,38,103,64,239,110,5,162,198,35,167,204,170,215,107,237,251,170,14,209,46,215,53,106, | |||
143,11,175,4,81,105,3,64,24,2,16,40,27,95,218,199,65,128,175,252,17,253,2,125,251,52,85,110,210,180,246,211,227,220,9,247,236,169,99,187,245,179,215,84,214,135,218,229,116,66,207,4,180,248,233,184,185,246,56,85,133,8,67,0,8,67,0,2,165,170,146,86,57,68, | |||
9,67,35,253,195,80,211,129,51,129,184,141,145,213,33,157,128,235,196,91,123,14,149,141,205,235,214,207,126,250,197,106,59,93,110,194,132,9,172,117,137,147,70,104,207,152,49,163,93,72,213,186,46,0,136,230,226,214,183,197,28,6,0,201,114,254,236,231,38, | |||
111,68,63,115,89,105,14,7,3,158,222,124,105,159,125,156,68,186,172,116,160,41,189,62,245,35,146,21,216,20,234,143,31,57,103,63,62,115,230,140,233,215,175,159,93,239,83,144,215,223,142,203,238,170,115,231,255,106,7,42,220,117,203,229,102,220,184,113,118, | |||
36,244,134,13,27,120,80,116,98,238,220,185,237,170,64,10,167,179,102,205,178,247,13,0,68,81,71,101,8,64,210,109,94,207,84,57,248,43,244,9,202,77,7,78,7,230,54,78,153,213,126,125,144,78,196,117,2,94,94,146,223,237,234,208,238,125,205,230,233,95,87,219, | |||
247,53,8,64,39,250,240,167,245,85,145,237,112,84,133,0,196,138,48,4,32,233,106,183,30,51,77,251,79,115,32,224,169,127,78,47,159,48,20,156,87,249,111,186,107,184,201,27,209,55,244,177,78,188,221,9,249,35,247,93,219,237,159,175,234,210,171,155,234,236, | |||
251,106,151,35,16,249,7,33,237,35,20,190,169,170,6,90,176,86,8,0,97,8,64,160,173,127,158,77,16,225,77,237,112,94,26,2,54,137,112,218,131,69,237,62,118,213,33,173,29,234,238,168,109,209,184,237,13,91,26,8,68,49,4,33,141,37,119,84,77,163,42,4,128,48,4, | |||
32,208,180,230,34,8,251,198,32,120,242,124,38,202,157,106,249,44,80,143,25,175,234,144,54,251,148,121,51,175,50,3,251,247,234,246,255,227,167,47,238,32,16,117,18,132,118,53,28,55,7,143,156,178,159,215,231,52,238,28,0,98,197,0,5,0,41,161,5,242,131,242, | |||
251,152,209,215,12,226,96,160,125,232,105,13,60,155,215,31,242,188,110,252,164,75,162,78,156,75,182,252,214,48,244,193,239,14,135,62,222,178,101,139,157,104,118,249,101,163,204,37,185,125,205,187,59,14,117,251,255,161,159,49,60,175,191,25,91,56,200,254, | |||
108,85,159,244,255,201,86,211,167,79,183,155,221,186,32,244,238,142,70,51,229,250,145,246,184,76,157,58,149,170,16,128,120,48,64,1,64,234,188,201,158,67,240,16,109,98,92,67,237,137,64,221,214,242,138,161,166,100,98,251,253,128,212,166,37,119,220,88,216, | |||
237,97,10,78,120,133,72,237,120,43,86,172,200,202,199,198,252,249,243,67,65,168,170,182,201,182,18,222,93,81,108,175,83,85,174,190,158,246,91,0,241,33,12,1,72,153,35,7,206,152,247,94,99,178,28,58,42,44,73,143,117,67,114,207,194,43,218,125,92,89,89,217, | |||
110,152,66,34,218,229,92,32,114,83,230,238,191,255,126,179,109,219,54,83,84,84,148,21,143,7,109,64,171,0,232,142,171,130,225,195,63,123,223,182,35,230,12,232,109,219,227,150,47,95,206,19,7,0,97,8,64,122,217,72,117,8,94,97,200,119,136,194,137,192,221, | |||
86,237,153,53,229,107,35,219,125,78,85,10,77,53,211,48,5,157,176,39,138,166,204,253,143,127,221,98,7,6,104,99,214,237,219,183,219,182,177,76,230,214,7,41,0,202,207,95,221,105,131,225,195,173,65,83,173,131,106,143,11,223,108,21,0,8,67,0,210,134,218,158, | |||
106,62,56,202,129,64,68,24,202,241,125,188,4,113,240,198,180,111,22,117,24,166,224,78,222,213,46,151,136,233,114,142,54,101,125,232,233,119,236,122,25,181,139,169,109,108,205,154,53,182,122,146,105,22,45,90,100,3,159,130,159,2,160,130,224,154,202,122, | |||
123,60,117,92,69,65,136,117,66,0,186,138,1,10,0,82,78,251,199,104,50,23,224,156,59,243,215,180,25,162,32,189,251,94,100,91,251,194,111,179,91,191,50,121,242,100,83,62,54,207,252,225,163,191,152,79,155,207,38,228,255,119,226,212,121,179,254,221,189,246, | |||
125,109,244,58,110,220,56,243,208,67,15,153,131,7,15,154,170,170,170,180,191,255,43,42,42,108,200,155,53,107,150,253,248,157,234,70,243,240,207,182,152,134,67,39,204,152,81,185,230,71,243,190,108,63,175,10,220,202,149,43,121,194,0,232,170,58,194,16,128, | |||
148,211,218,33,45,66,15,218,9,46,82,71,143,133,245,207,127,226,125,221,136,126,81,135,44,164,242,54,171,106,85,247,167,230,208,231,180,126,72,97,168,180,100,140,249,210,184,161,182,205,237,220,249,191,38,236,255,169,42,81,85,235,219,152,81,131,204,200, | |||
97,131,109,149,68,255,63,181,232,165,227,48,1,173,129,210,186,32,189,21,20,20,216,106,208,243,255,207,199,230,217,53,31,217,227,166,32,244,211,239,220,104,250,244,190,216,134,165,121,243,230,241,100,1,64,24,2,144,254,168,14,33,82,205,214,99,54,40,71, | |||
210,232,237,175,220,61,34,144,183,249,234,155,242,236,30,90,199,143,124,177,9,168,171,112,20,142,188,180,53,16,93,106,54,109,59,144,208,64,212,120,228,84,168,74,164,80,164,224,165,22,189,116,10,69,106,241,251,254,247,191,111,247,82,154,52,105,146,253, | |||
156,134,36,60,250,220,31,90,3,223,167,246,99,13,162,80,16,202,27,220,207,182,206,41,248,157,57,115,134,39,10,128,110,133,33,214,12,1,8,132,218,214,19,95,214,14,33,92,233,68,239,53,48,65,93,55,228,204,126,188,212,244,207,185,56,244,177,214,179,184,253, | |||
129,180,224,63,145,3,21,194,173,126,125,151,93,75,228,70,112,43,12,105,240,192,198,141,27,109,219,89,16,169,18,164,41,113,58,54,106,121,115,35,179,181,54,72,67,18,212,14,24,30,132,52,144,66,65,72,191,27,235,132,0,36,194,223,180,190,125,206,97,0,16,4, | |||
90,115,241,232,175,38,114,32,96,41,28,47,251,246,14,207,235,190,245,147,171,236,30,63,65,85,85,121,216,60,247,189,15,219,125,78,83,209,116,34,47,10,44,58,217,239,41,218,164,117,246,212,177,161,33,3,162,42,145,218,207,84,169,74,117,181,104,238,220,185, | |||
161,234,85,232,152,181,134,160,85,173,129,78,173,127,225,92,16,114,147,227,244,61,153,176,46,10,64,32,108,162,77,14,64,96,168,181,40,111,68,63,59,170,24,208,26,28,109,204,123,254,108,199,215,236,122,247,185,40,208,97,168,160,120,128,189,84,197,211,105, | |||
108,108,180,129,68,85,34,157,216,43,176,188,187,227,80,143,252,255,85,81,209,207,214,26,37,185,108,216,64,51,236,210,124,51,117,234,84,187,41,172,110,67,191,126,253,236,192,133,100,84,88,212,6,167,255,183,107,133,83,219,96,113,113,177,189,78,195,17,150, | |||
255,223,127,178,149,45,181,252,17,132,0,36,81,29,149,33,0,129,162,241,196,143,174,158,104,6,228,246,226,96,192,60,251,200,78,83,253,86,147,231,227,228,135,107,111,8,252,237,95,245,196,199,29,166,226,169,42,162,64,32,61,93,33,10,167,113,212,55,95,59,220, | |||
220,82,214,126,109,158,2,154,218,233,244,166,202,85,34,194,134,218,223,52,14,91,111,10,48,225,21,32,57,216,116,210,6,53,189,69,6,32,71,195,18,22,127,99,162,109,141,35,8,1,232,33,155,8,67,0,2,103,218,131,151,219,125,91,128,247,94,107,52,171,159,172,241, | |||
188,238,7,171,175,75,139,42,226,210,121,213,237,42,68,145,129,72,149,145,167,95,172,14,173,143,233,105,170,182,220,210,26,138,188,130,145,163,80,164,0,162,128,36,122,223,181,248,133,211,26,31,5,30,209,165,251,88,151,145,180,47,146,90,224,222,120,191, | |||
193,236,222,215,28,245,54,186,169,113,57,3,122,135,170,105,4,33,0,132,33,0,89,65,139,207,85,29,98,212,54,52,40,225,225,255,244,158,231,117,83,190,54,210,220,251,221,49,105,241,59,44,107,13,68,26,252,16,25,136,180,134,71,193,65,65,65,251,232,36,43,16, | |||
133,43,27,155,103,247,65,210,36,58,133,16,85,98,18,65,107,128,20,122,170,118,53,217,241,223,177,254,110,170,96,61,242,245,178,80,40,99,88,2,0,194,16,128,172,83,246,213,124,243,208,211,227,57,16,240,172,172,72,186,180,202,69,11,68,26,170,160,234,139,2, | |||
145,246,212,89,244,203,173,29,6,8,36,155,42,71,10,70,57,23,46,69,235,155,10,90,223,60,67,207,133,219,219,114,234,156,13,63,106,123,243,107,125,235,204,195,247,93,27,26,250,160,65,15,26,178,64,16,2,64,24,2,144,149,22,252,252,218,64,110,174,137,228,210, | |||
16,133,87,150,254,217,243,186,116,105,149,139,22,136,180,190,70,39,254,174,221,108,213,111,107,237,48,129,108,162,138,212,195,247,149,217,65,9,162,49,219,75,150,44,225,193,15,160,199,195,16,211,228,0,4,150,54,221,156,52,109,184,233,221,151,45,209,178, | |||
217,160,188,62,102,227,203,251,61,175,211,84,57,109,116,154,14,244,56,190,254,111,47,53,199,155,206,182,11,68,170,124,188,244,210,75,166,160,160,192,6,162,242,146,124,219,182,22,79,107,89,58,155,89,81,100,30,105,13,66,110,80,130,38,205,61,247,220,115, | |||
60,240,1,36,67,29,97,8,64,96,157,106,249,204,158,236,82,29,202,110,154,44,184,183,230,132,105,172,239,216,122,213,88,127,210,220,49,247,178,180,249,93,20,136,52,18,188,233,192,233,118,129,232,204,153,51,102,221,186,117,118,88,128,214,200,20,143,202,179, | |||
107,103,206,158,255,204,124,84,159,153,109,98,170,6,253,207,185,19,204,223,221,90,100,250,244,190,216,182,11,78,154,52,137,65,9,0,8,67,0,224,104,173,72,89,69,190,25,156,223,135,131,145,197,206,157,253,171,231,136,109,237,65,84,88,58,48,180,175,79,186, | |||
80,32,210,158,90,145,191,147,130,128,170,68,170,16,149,150,140,49,95,190,234,82,59,245,109,239,161,19,93,94,135,19,52,90,147,244,224,223,93,105,135,36,184,106,144,246,31,154,55,111,158,13,133,0,64,24,2,128,240,191,84,127,108,54,95,185,123,4,7,34,139, | |||
229,183,6,135,223,191,122,192,115,3,214,115,103,62,55,95,186,253,210,180,251,157,180,214,73,65,255,131,223,253,165,221,239,165,182,185,149,43,87,218,144,160,74,201,200,97,131,237,80,1,13,51,248,176,254,104,218,182,206,41,4,205,250,79,87,216,106,144,90, | |||
1,69,107,165,52,54,123,195,134,13,60,200,1,16,134,0,192,203,241,35,231,236,37,237,114,217,75,237,101,106,137,139,28,62,32,106,159,211,218,178,116,220,168,87,21,79,5,253,61,173,129,255,200,129,246,85,145,45,91,182,152,103,159,125,54,180,150,232,242,225, | |||
57,230,238,201,197,118,178,155,166,182,165,75,40,10,15,65,95,30,127,169,109,137,115,123,7,253,211,63,253,19,211,226,0,16,134,0,160,51,106,151,43,153,56,152,189,135,178,152,218,202,222,94,115,208,243,58,5,161,116,13,203,10,122,55,221,53,220,244,111,253, | |||
29,246,252,241,120,187,42,145,91,75,164,13,90,221,134,166,154,184,166,80,164,33,11,26,103,173,22,186,32,82,104,155,51,181,196,14,71,8,15,65,11,22,44,48,15,60,240,128,169,175,175,231,65,13,32,229,97,136,209,218,0,210,232,100,184,175,221,140,53,29,43,0, | |||
72,140,167,254,126,171,103,117,72,27,245,254,243,255,119,115,218,255,126,77,251,79,155,85,79,214,120,238,171,36,26,195,173,177,211,218,127,199,57,216,116,210,188,187,227,144,121,227,253,6,91,49,74,37,85,129,110,185,118,184,29,254,224,90,225,236,217,70, | |||
107,8,210,237,86,251,31,0,4,8,251,12,1,72,47,108,198,154,221,222,123,173,209,172,110,13,11,94,102,63,86,106,43,44,153,242,123,190,178,116,183,157,168,232,23,138,20,136,84,101,81,197,40,50,24,189,179,163,49,105,155,183,170,2,164,42,149,6,61,220,82,214, | |||
254,248,107,77,208,178,101,203,76,101,101,37,15,94,0,132,33,0,72,132,123,22,94,97,110,155,53,138,3,145,133,180,113,233,99,51,222,247,12,9,170,28,254,112,237,13,25,245,187,110,124,105,159,221,116,214,47,20,201,244,233,211,237,250,155,240,106,145,83,85, | |||
219,100,247,43,218,189,239,184,173,26,37,98,34,93,89,107,240,209,88,108,13,116,80,8,210,68,184,112,219,183,111,183,109,125,10,66,180,194,1,32,12,1,64,15,248,193,234,235,236,52,46,100,159,245,191,168,55,235,159,255,196,243,186,5,63,191,54,227,6,109,168, | |||
117,110,253,243,245,102,243,250,67,157,126,173,11,70,118,175,162,226,98,207,175,81,64,18,133,35,173,57,10,125,254,66,37,169,32,175,191,173,246,56,122,223,125,46,50,248,132,206,38,54,109,178,225,135,0,4,128,48,4,0,73,160,53,34,79,174,189,129,245,67,89, | |||
72,225,224,177,153,255,225,121,157,134,108,44,124,166,44,99,127,111,85,137,54,175,111,140,90,41,114,212,74,167,80,164,161,11,122,211,251,137,160,245,63,170,254,232,77,33,136,22,56,0,132,33,0,72,129,194,146,129,230,209,95,77,228,64,100,161,85,79,124,236, | |||
91,41,201,196,234,80,56,181,207,41,16,41,24,69,142,227,238,204,224,193,131,109,48,114,147,233,156,240,143,181,191,145,130,142,227,62,214,165,54,133,5,0,194,16,0,4,196,164,105,195,204,156,199,175,228,64,100,153,108,173,14,69,218,91,211,98,54,191,214,24, | |||
115,181,8,0,208,62,12,177,207,16,128,180,166,49,203,218,159,101,244,53,131,56,24,89,68,237,145,77,7,78,123,142,217,86,181,36,91,246,164,210,166,173,87,223,148,103,238,152,123,153,41,171,200,55,189,251,92,100,206,159,253,107,104,163,98,0,64,84,108,186, | |||
10,32,253,237,220,252,169,221,144,147,129,10,217,165,127,78,47,223,86,185,166,214,64,148,41,99,182,227,13,70,95,185,123,132,153,50,107,148,25,125,77,174,41,40,106,27,120,112,170,249,124,187,205,92,1,0,109,97,136,54,57,0,25,131,9,115,217,103,233,188,106, | |||
223,13,74,51,125,237,80,188,180,214,168,161,166,197,156,106,209,229,137,176,224,120,218,134,71,23,48,171,223,106,226,96,1,200,22,172,25,2,144,57,52,97,110,193,51,101,4,162,44,162,53,51,63,154,189,205,243,186,108,90,59,148,168,176,180,172,53,92,122,181, | |||
30,2,64,166,134,33,218,228,0,100,12,181,1,125,240,187,191,152,241,55,93,98,91,134,144,249,116,63,71,91,59,68,251,36,65,8,0,162,168,187,136,99,0,32,147,104,162,150,78,234,84,49,64,118,152,246,96,145,239,117,218,172,20,4,33,0,240,67,101,8,64,198,161,66, | |||
148,93,162,77,150,115,227,166,89,59,228,239,151,255,235,35,83,187,237,24,7,2,64,54,162,50,4,32,51,81,33,202,46,247,44,28,99,215,140,121,209,230,164,170,126,160,35,109,94,203,192,4,0,217,140,202,16,128,140,69,133,40,123,244,238,219,182,191,142,215,100, | |||
57,61,14,142,55,157,53,229,21,67,57,80,17,65,200,111,52,57,0,100,9,42,67,0,50,27,21,162,236,49,237,155,69,38,111,68,95,207,235,116,210,95,243,193,81,14,146,105,91,35,244,212,223,111,37,8,1,64,43,194,16,0,2,17,50,198,189,11,175,240,189,238,149,165,127, | |||
38,8,49,44,1,0,218,161,77,14,64,86,80,171,212,219,107,14,50,106,57,195,21,20,15,48,53,91,143,217,177,218,145,142,31,57,103,47,179,117,152,2,65,8,0,58,160,77,14,64,118,89,253,100,141,93,80,143,204,53,231,177,82,223,235,116,223,55,237,63,157,117,199,68, | |||
85,81,130,16,0,116,68,101,8,64,214,217,185,249,83,59,138,153,5,245,153,73,163,182,197,111,152,130,2,193,77,119,13,207,186,32,116,228,224,25,30,28,0,208,94,29,97,8,64,86,210,9,177,218,169,202,43,242,237,36,50,100,150,194,210,28,243,135,223,253,37,180, | |||
207,80,56,181,208,101,75,187,228,123,175,53,154,255,235,127,125,228,121,28,0,0,180,201,1,200,98,170,28,60,53,123,43,131,21,50,144,170,67,209,218,229,94,89,186,59,227,247,30,82,75,160,218,66,9,66,0,224,143,202,16,128,172,166,19,69,237,69,52,40,191,15, | |||
131,21,50,76,254,200,126,54,240,212,253,169,185,195,117,106,151,59,88,119,202,124,233,246,75,51,238,247,214,239,252,191,255,169,214,188,177,170,129,7,1,0,68,71,155,28,0,232,196,184,250,173,38,187,142,168,100,226,16,218,230,50,200,232,107,6,153,223,191, | |||
122,192,222,199,145,26,235,79,153,254,185,189,236,215,100,10,13,135,248,183,5,127,52,59,55,179,167,18,0,16,134,0,32,14,90,71,180,243,189,79,77,241,53,185,102,112,126,31,14,72,6,80,176,45,40,238,111,62,248,221,97,207,235,247,252,241,184,249,210,223,94, | |||
26,26,186,144,206,180,169,236,178,111,51,40,1,0,8,67,0,208,69,218,139,70,109,115,58,137,206,164,138,65,54,211,222,67,123,107,78,216,74,80,164,76,153,46,183,254,23,245,102,245,147,181,158,21,48,0,0,97,8,0,98,166,19,74,141,223,214,9,244,248,155,46,161, | |||
109,46,3,232,126,140,54,93,78,210,113,51,86,173,15,250,217,130,63,154,205,235,15,113,39,3,0,97,8,0,18,71,149,4,173,55,81,155,149,170,11,72,95,10,180,133,37,3,125,67,131,38,11,150,76,28,108,135,46,164,139,170,202,195,118,255,32,175,138,23,0,128,48,4,0, | |||
221,166,42,145,214,155,80,37,74,127,209,166,203,137,246,157,154,52,109,120,224,239,99,253,14,107,255,109,143,121,101,217,30,218,226,0,128,48,4,0,61,207,85,137,24,193,157,222,180,14,76,67,50,180,54,44,146,90,232,130,62,110,91,67,18,212,22,247,33,211,226, | |||
0,128,48,4,0,201,228,70,112,171,130,80,88,58,144,137,115,105,72,85,31,77,11,212,144,140,116,26,183,237,170,65,47,253,100,55,155,168,2,0,97,8,0,82,71,11,238,223,94,115,208,158,160,234,164,153,214,185,244,162,16,171,251,76,67,50,188,232,243,101,21,249, | |||
129,9,187,90,27,244,220,247,118,82,13,2,0,194,16,0,4,232,47,232,159,154,105,157,75,83,10,177,126,227,182,93,32,74,245,250,33,109,160,186,234,137,26,243,255,62,255,9,213,32,0,232,161,127,202,255,166,245,63,172,190,4,128,110,210,164,178,123,22,94,145,150, | |||
227,153,179,149,42,123,79,205,222,26,26,173,29,73,211,229,22,62,83,150,146,219,166,125,131,222,124,105,31,33,8,0,122,214,38,42,67,0,144,0,90,144,175,177,205,90,79,148,63,162,111,90,141,104,206,86,170,250,40,240,168,229,209,139,66,146,2,211,213,55,229, | |||
37,237,54,169,37,78,3,18,170,223,58,194,164,56,0,232,121,180,201,1,64,34,233,4,90,161,168,233,192,105,83,88,146,99,6,228,246,226,160,4,152,214,5,105,96,130,223,250,33,181,66,230,141,232,215,227,109,144,154,18,183,234,201,26,243,198,170,6,170,65,0,64, | |||
24,2,128,244,214,80,123,194,108,124,121,63,161,40,13,104,253,144,238,39,221,103,94,106,183,30,181,123,76,245,196,64,5,173,11,122,101,233,110,187,103,144,95,187,30,0,160,231,194,16,107,134,0,32,9,212,142,53,237,193,203,89,83,20,80,106,135,91,54,175,218, | |||
55,16,229,141,232,107,30,93,61,49,97,161,86,33,104,253,243,245,182,138,8,0,72,153,77,132,33,0,72,114,40,186,109,214,72,83,94,49,148,131,17,48,10,40,26,168,224,215,166,166,33,25,143,254,106,34,33,8,0,8,67,0,128,238,80,165,225,182,89,163,236,248,102,90, | |||
232,130,67,107,119,150,125,123,135,239,245,147,166,13,51,115,30,191,50,238,159,187,183,166,197,108,124,105,31,33,8,0,2,22,134,88,51,4,0,41,160,234,131,22,237,107,159,162,198,250,147,118,145,126,80,54,249,204,102,154,2,24,109,160,130,218,232,116,189,214, | |||
25,197,66,211,225,254,247,63,237,50,235,126,94,231,219,130,7,0,72,25,214,12,1,64,80,168,13,107,202,172,81,166,188,34,159,106,81,138,173,122,226,227,168,85,156,217,143,149,154,155,238,26,238,121,157,214,31,109,94,223,104,247,9,98,40,2,0,4,26,109,114,0, | |||
16,52,253,115,46,182,129,168,237,141,181,69,169,208,217,64,5,221,71,11,158,41,107,55,114,91,45,118,10,65,180,194,1,0,97,8,0,144,0,90,91,84,254,213,124,51,233,174,225,61,190,215,13,58,6,162,199,102,188,239,59,80,65,129,104,206,227,165,166,161,230,132, | |||
121,175,53,4,81,5,2,0,194,16,0,128,96,148,49,52,248,64,21,34,54,66,5,0,194,16,0,32,64,193,168,116,226,96,90,233,146,64,67,16,158,251,222,135,28,8,0,32,12,1,0,130,168,236,171,249,166,244,250,193,182,114,164,137,104,72,172,247,94,107,52,171,159,172,225, | |||
64,0,0,97,8,0,16,100,225,85,163,146,137,67,152,76,151,32,157,77,152,3,0,16,134,0,0,1,163,145,221,133,165,3,109,48,82,72,162,114,68,32,2,0,16,134,0,32,43,105,10,154,130,209,101,54,32,13,110,13,74,57,84,143,98,196,64,5,0,32,12,1,0,50,140,90,235,10,75,114, | |||
108,64,82,21,73,239,83,65,106,27,175,221,208,26,128,106,183,30,51,85,149,77,190,251,14,1,0,8,67,0,128,12,163,202,81,126,107,80,202,31,209,207,134,164,254,57,189,76,233,245,67,50,242,119,85,213,231,200,129,211,118,223,160,189,173,111,13,181,45,236,29, | |||
4,0,132,33,0,0,188,131,146,148,94,184,116,97,169,127,110,175,64,238,131,212,180,255,180,105,106,13,59,167,90,206,219,192,99,171,62,181,39,236,231,8,61,0,64,24,2,0,32,161,180,62,169,48,44,24,185,42,147,95,176,138,43,220,180,6,24,85,114,34,169,170,163, | |||
192,35,167,46,4,30,0,0,8,67,0,0,0,0,112,33,12,93,196,49,0,0,0,0,144,141,8,67,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16, | |||
134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,144,22,122,113,8,128,236,83,94, | |||
94,110,150,45,91,150,212,255,231,130,5,11,76,85,85,21,7,63,6,27,55,110,76,234,255,111,251,246,237,102,225,194,133,28,120,0,0,97,8,64,230,27,50,100,136,153,60,121,114,210,255,159,136,77,178,239,27,0,0,178,21,109,114,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0, | |||
0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,0,97,8,0,0,0,0,8,67,0,0,0,0,64,24,2,0,0,0,0,194,16,0,0,0,0,16,134,0,0,0,0,128,48,4,0,0,0,0,132,33,0,0,0,0,32,12,1,0,0,0,64,252,122,113,8,130,173,162,162,162,221,199,19,38,76, | |||
48,67,134,12,105,247,185,77,155,54,181,251,184,178,178,146,3,215,77,229,229,229,237,142,179,222,215,177,143,20,121,236,101,251,246,237,230,216,177,99,28,196,0,61,119,34,159,55,225,247,27,207,151,212,62,191,34,159,91,122,254,28,61,122,148,231,82,55,12, | |||
30,60,184,195,223,171,226,226,98,251,22,78,199,89,199,56,242,115,85,85,85,28,196,56,143,113,228,223,152,240,199,49,199,52,216,255,190,79,158,60,185,221,245,117,117,117,246,45,252,227,250,250,122,14,28,97,8,61,169,168,168,200,254,33,213,155,158,148,126, | |||
39,222,241,114,127,140,117,226,167,39,179,62,230,15,242,23,127,12,117,98,160,227,236,78,18,188,78,22,18,117,31,184,63,174,238,228,131,63,174,137,189,47,245,188,113,247,101,228,63,108,177,112,247,139,158,43,238,146,147,240,196,252,109,115,247,141,123, | |||
139,124,49,39,22,238,126,113,247,13,207,157,182,176,239,254,102,185,227,218,213,227,219,217,243,34,252,111,153,187,204,166,23,17,116,172,195,255,198,116,245,223,103,119,252,120,44,39,47,172,234,126,115,207,147,174,252,219,224,21,146,194,239,67,206,169, | |||
50,195,223,180,190,125,206,97,72,254,9,194,140,25,51,236,19,211,133,159,100,210,31,96,247,150,13,255,160,69,158,144,117,247,15,98,162,79,52,82,113,2,174,127,220,189,170,90,61,73,199,61,17,143,183,100,61,127,116,124,214,174,93,107,223,146,125,194,242, | |||
249,231,159,39,253,111,194,148,41,83,18,242,179,166,79,159,30,186,127,18,253,226,66,248,73,137,238,151,23,94,120,33,43,78,70,92,224,15,63,33,15,2,119,98,232,254,61,201,148,251,66,39,210,122,12,187,183,158,62,134,217,244,88,238,73,250,219,19,254,60,73, | |||
22,221,127,238,223,11,194,109,90,218,68,24,74,226,63,102,247,223,127,191,253,195,26,148,127,200,220,9,121,248,19,57,83,94,13,119,127,20,131,118,188,131,114,2,158,110,97,200,157,156,44,88,176,32,169,255,200,133,255,99,167,147,149,117,235,214,17,134,162, | |||
4,32,253,141,75,197,9,249,178,101,203,236,253,147,41,127,191,194,79,198,83,241,130,89,182,254,123,162,199,177,251,119,58,85,225,178,59,143,101,87,193,74,214,109,93,185,114,101,96,238,179,160,60,79,244,226,128,238,63,130,81,122,133,33,115,33,12,241,214, | |||
3,111,173,255,160,125,62,119,238,220,207,183,109,219,246,121,58,248,244,211,79,63,95,177,98,197,231,173,127,80,211,242,120,235,118,235,246,235,247,200,4,122,220,204,159,63,223,62,142,122,226,88,37,91,87,30,87,229,229,229,246,62,13,138,61,123,246,216, | |||
231,116,79,63,150,147,109,227,198,141,93,250,251,182,104,209,34,123,76,130,244,247,171,168,168,40,173,255,189,88,179,102,205,231,153,66,247,71,235,201,106,224,143,189,142,123,80,30,199,238,177,172,231,86,188,127,251,245,61,65,254,155,145,168,55,61,199, | |||
151,46,93,26,248,127,235,245,92,78,215,243,169,44,123,219,72,24,234,161,127,212,244,71,41,157,79,202,147,117,210,151,168,19,136,32,253,67,150,14,39,121,65,15,67,10,65,255,63,123,103,143,30,213,209,180,225,145,63,7,206,120,119,128,181,2,65,246,102,152, | |||
204,153,204,10,132,87,32,88,129,196,10,36,86,32,148,189,153,32,116,36,17,58,2,86,0,132,142,176,86,48,223,60,99,55,62,140,103,70,103,102,206,233,170,234,186,239,235,58,151,248,149,230,244,79,117,61,85,213,221,90,108,179,206,15,207,98,40,130,125,147,163, | |||
52,70,16,97,44,199,174,165,32,206,186,249,226,173,79,188,175,29,26,19,10,136,33,134,254,89,183,34,6,11,212,86,136,34,196,16,34,40,184,35,174,119,162,173,253,68,90,135,16,69,94,197,144,250,213,83,38,168,79,246,78,194,45,139,24,146,99,22,101,206,233,115, | |||
122,14,232,20,17,148,9,47,235,137,247,96,203,178,249,217,199,238,183,42,134,180,118,68,234,175,117,109,54,198,122,193,131,24,114,243,68,114,18,162,103,138,90,111,235,62,108,83,66,225,93,12,169,156,38,106,191,14,237,224,121,19,67,90,192,163,148,251,46, | |||
123,55,79,25,137,140,34,104,217,122,98,85,62,87,83,48,12,45,36,239,178,161,173,137,161,86,231,74,164,204,53,98,136,167,183,83,25,213,73,24,51,66,69,91,215,113,40,182,141,50,121,19,67,45,44,120,26,155,67,205,13,79,98,72,65,144,232,193,7,125,126,15,123, | |||
87,50,102,179,215,161,146,167,90,78,161,230,102,11,235,199,186,160,100,75,98,40,67,128,153,210,57,196,80,19,143,212,125,86,54,169,99,166,173,253,245,133,23,49,36,71,168,37,129,171,197,123,136,50,8,47,98,168,181,121,103,85,162,21,57,179,230,57,168,211, | |||
247,137,156,117,222,68,16,181,32,134,178,205,21,178,68,136,161,176,15,11,219,63,198,112,236,73,220,74,52,111,108,148,89,137,38,134,90,19,66,125,163,183,81,196,80,171,165,92,155,206,149,33,54,233,147,13,186,59,136,48,86,230,78,193,162,44,54,38,186,24, | |||
202,90,2,63,100,85,1,15,98,136,133,45,112,36,124,149,232,164,173,199,113,242,172,197,80,203,66,104,8,65,100,45,134,90,223,211,82,171,60,139,140,118,221,32,66,22,65,95,88,20,144,81,197,144,230,98,75,71,202,123,243,165,120,16,67,108,188,12,186,136,233, | |||
251,193,120,130,200,82,12,101,16,66,187,206,11,75,49,148,197,129,215,24,28,83,16,101,63,36,193,122,45,201,208,254,139,14,116,68,49,68,165,205,184,190,20,15,98,136,133,45,232,36,70,8,237,134,156,89,207,98,40,91,4,112,155,121,97,37,134,178,205,61,141,69, | |||
214,139,246,34,228,153,218,191,43,234,163,137,33,170,63,16,68,94,196,208,119,19,184,147,153,97,157,60,125,250,148,134,184,131,87,175,94,77,102,147,120,167,239,113,120,120,56,255,62,176,61,207,158,61,155,183,163,71,142,143,143,39,191,252,242,11,243,194, | |||
33,51,199,100,114,126,126,158,170,111,52,22,101,223,89,47,252,240,159,255,252,103,242,250,245,235,201,204,193,223,234,255,207,4,65,170,246,127,240,224,193,228,244,244,52,220,231,214,26,117,115,115,51,239,111,136,185,102,180,6,170,144,8,147,139,168,6, | |||
81,162,97,163,171,235,54,100,90,100,134,90,221,200,60,70,180,219,34,51,148,185,84,101,168,83,230,216,35,100,155,181,203,92,85,32,155,30,37,51,68,245,7,25,34,202,228,16,66,41,216,244,100,32,165,249,117,196,42,212,89,172,44,196,80,118,52,190,251,238,81, | |||
1,27,103,114,151,245,66,54,15,236,214,145,236,193,52,217,151,8,98,136,181,167,174,93,226,161,76,110,39,178,165,218,199,72,243,170,236,166,47,42,139,248,241,199,31,105,184,1,249,233,167,159,38,51,67,74,67,56,65,227,155,18,80,191,236,82,154,117,255,254, | |||
125,250,118,4,250,150,109,170,223,212,127,153,75,174,100,95,84,34,237,25,249,4,234,39,216,204,46,109,226,75,193,118,32,134,150,160,90,205,136,53,184,158,208,162,36,231,160,143,115,161,125,36,114,220,97,120,24,199,190,208,30,21,141,119,240,105,179,182, | |||
117,212,178,59,226,99,58,248,125,246,78,72,52,17,76,155,184,30,131,10,24,176,71,104,92,95,10,16,67,131,145,113,19,241,88,244,217,216,41,3,137,195,62,30,18,153,106,99,240,37,80,233,19,191,243,101,211,141,203,18,183,178,117,48,14,119,101,59,180,17,159, | |||
42,14,223,144,185,219,221,151,194,47,29,151,189,201,95,245,114,240,247,132,85,228,130,133,109,120,7,227,237,219,183,75,255,206,219,201,75,239,223,191,159,143,1,61,127,254,249,231,202,207,221,29,51,26,47,50,242,250,170,71,239,235,201,232,203,136,62,127, | |||
254,252,155,63,83,249,156,222,17,108,144,99,240,228,201,147,149,127,63,157,98,150,173,208,188,87,150,225,246,246,182,215,154,241,233,211,39,55,243,93,159,93,243,186,216,49,253,254,195,135,15,107,255,143,2,128,250,252,122,231,98,191,188,173,129,250,108, | |||
159,63,127,94,218,254,122,87,178,66,245,209,248,122,252,248,113,175,127,123,117,117,149,238,20,209,49,80,27,190,121,243,134,134,24,97,56,79,38,108,156,226,36,32,163,141,227,58,237,204,203,231,211,73,103,235,78,95,155,108,177,153,90,27,76,61,160,83,194, | |||
38,108,98,13,181,49,22,108,233,115,87,215,196,209,69,220,178,53,155,30,90,179,238,145,45,212,187,121,57,212,70,246,217,115,251,115,64,207,234,39,243,41,162,67,163,3,66,198,188,40,58,241,115,77,102,40,64,164,188,68,250,20,229,43,95,11,37,35,81,50,48,37, | |||
75,225,13,149,6,189,120,241,226,155,63,155,57,28,166,27,62,213,142,250,249,151,151,151,163,142,43,213,251,90,71,46,53,38,186,145,238,200,153,33,205,1,61,138,200,47,206,7,181,115,247,241,188,23,77,159,253,225,195,135,77,101,134,74,159,116,237,85,151,210, | |||
31,158,109,213,93,217,8,79,89,33,205,97,217,214,187,50,216,187,160,195,132,172,75,153,151,101,82,85,106,170,246,247,156,57,137,190,110,239,154,25,82,31,233,221,61,189,91,119,237,40,239,177,72,177,83,165,218,195,83,230,241,174,170,2,32,51,180,245,227, | |||
237,88,103,169,127,29,235,189,109,164,79,81,61,69,99,60,221,27,178,236,222,27,203,99,80,117,135,69,173,8,139,126,142,117,95,44,102,33,162,101,134,212,95,154,15,155,246,153,254,189,254,159,215,99,242,87,221,35,17,9,141,237,109,51,171,58,14,89,89,24,143, | |||
71,34,107,204,120,142,120,175,202,150,140,241,88,31,91,173,159,61,113,126,245,69,89,183,183,61,10,89,109,236,109,221,222,53,51,228,165,58,162,248,83,219,174,249,250,127,178,213,90,135,188,87,21,240,112,207,208,214,143,151,84,187,140,169,62,203,144,78, | |||
186,12,172,151,9,220,45,61,177,188,147,227,46,39,167,69,65,180,120,169,100,20,49,164,190,26,170,124,81,223,199,155,3,165,32,76,84,49,36,71,103,200,69,89,206,134,55,81,180,110,236,89,206,231,33,75,226,162,8,162,110,95,120,41,177,30,107,221,214,188,242, | |||
34,36,182,21,67,214,193,130,49,250,197,203,58,178,106,221,224,65,12,237,52,176,61,44,192,50,44,67,238,89,89,102,92,173,179,95,221,122,87,171,253,89,219,220,106,62,164,32,178,26,107,139,2,208,187,24,26,115,62,200,169,243,20,125,93,150,29,242,140,198,240, | |||
88,206,184,230,136,167,189,155,171,2,39,150,206,184,229,173,244,150,65,172,174,240,246,18,212,24,187,194,64,237,237,245,50,242,117,98,200,114,173,43,129,215,177,43,63,100,3,44,5,107,205,204,48,98,40,193,227,193,168,46,70,237,199,116,198,173,223,183,76, | |||
96,11,3,239,97,243,161,28,25,15,11,151,103,49,84,107,62,120,113,186,151,29,112,225,89,164,214,152,67,114,2,189,100,137,150,137,114,171,168,119,223,131,29,198,124,172,28,192,34,192,189,100,133,106,57,163,154,111,94,170,59,250,138,33,43,63,67,126,69,237, | |||
18,50,171,119,229,48,5,196,208,160,202,222,99,84,184,101,1,40,199,207,170,221,45,35,170,221,199,66,8,70,16,67,50,238,181,251,200,74,156,174,139,122,123,21,67,181,203,75,173,203,178,214,9,16,11,231,212,139,243,99,101,59,74,144,196,186,172,93,253,160,177, | |||
153,181,156,255,46,49,100,181,190,203,183,176,154,31,86,193,145,90,129,67,196,16,89,161,102,157,115,203,119,183,48,28,158,106,108,45,50,18,222,197,144,149,131,225,69,16,45,10,141,236,66,200,211,225,54,203,54,239,91,136,52,79,142,143,69,159,148,247,183, | |||
62,200,193,202,78,121,10,222,172,19,67,22,190,133,149,125,178,126,111,178,67,136,161,65,22,217,172,66,200,122,3,112,118,71,194,66,136,44,58,116,222,196,144,197,134,112,111,78,70,119,81,67,8,249,202,16,117,237,181,62,143,5,99,238,41,141,224,248,201,134, | |||
91,238,89,90,150,193,205,90,218,191,74,12,89,100,133,150,149,25,103,242,169,188,84,188,68,23,67,223,101,61,84,220,242,126,27,221,217,48,230,221,54,125,121,250,244,169,201,207,181,184,115,64,119,253,120,97,204,59,65,60,181,249,38,115,209,250,86,109,205, | |||
199,243,243,243,148,243,113,237,229,11,55,55,147,95,127,253,213,244,51,124,248,240,193,252,246,250,110,223,88,220,57,162,59,81,214,221,121,100,241,121,178,205,17,217,41,11,219,189,136,230,163,215,59,226,106,223,71,165,251,130,60,221,37,39,59,213,189, | |||
79,170,197,54,111,153,148,74,208,170,244,162,239,173,205,147,164,117,200,173,151,200,89,70,254,61,102,134,44,79,247,243,148,45,93,140,112,122,41,93,244,84,130,97,109,171,74,102,198,226,115,120,219,27,96,97,63,44,15,60,241,102,167,172,79,107,91,230,203, | |||
88,84,219,120,188,111,199,194,62,112,239,16,153,161,173,56,60,60,52,137,238,41,98,224,45,250,171,104,120,237,72,134,69,116,155,207,228,15,143,243,193,242,243,232,166,115,221,216,238,169,45,110,111,111,221,124,158,23,47,94,152,101,36,74,212,215,42,51, | |||
132,189,152,152,101,7,101,167,44,43,73,150,161,121,233,45,35,80,219,118,202,119,241,144,169,91,102,167,148,177,202,178,110,181,66,74,49,100,101,84,53,121,61,149,58,20,163,250,250,245,235,166,251,187,182,97,130,126,200,193,240,228,108,11,149,100,89,58, | |||
25,214,229,96,93,231,219,186,116,113,213,152,201,40,134,44,69,160,23,44,218,221,235,186,45,94,190,124,233,106,92,212,156,155,18,168,158,203,195,106,127,54,217,166,123,247,238,225,84,32,134,250,163,1,99,161,162,229,144,43,98,224,17,235,189,18,53,28,59, | |||
240,39,80,61,236,155,91,53,31,172,178,165,94,234,223,189,70,26,21,9,182,218,255,167,190,177,114,56,188,5,13,178,32,59,224,121,125,244,146,177,58,56,56,168,42,86,213,39,158,231,132,214,182,154,65,88,237,9,246,18,72,139,202,247,217,94,216,106,192,120,142, | |||
98,40,26,174,8,147,202,116,106,58,195,181,156,26,143,153,33,171,40,167,23,60,207,7,45,178,90,108,45,62,163,135,5,77,243,210,99,36,188,59,118,172,196,154,4,145,218,167,102,128,133,204,182,29,222,157,110,5,7,52,62,172,215,147,154,243,209,187,64,237,218, | |||
209,154,107,136,214,14,175,1,198,40,112,183,80,194,13,252,19,227,187,111,60,29,135,57,73,114,172,251,196,201,1,10,17,230,131,229,6,101,235,195,45,60,29,225,60,113,118,188,240,178,11,88,51,62,86,151,76,90,30,119,239,245,177,186,22,160,123,128,66,205,3, | |||
169,60,220,41,212,231,169,125,204,248,178,251,208,120,56,64,193,85,228,213,211,177,206,171,168,189,111,168,102,22,138,49,232,47,218,234,29,69,131,45,203,177,172,80,198,195,115,86,200,218,166,122,58,198,215,146,12,237,160,49,22,161,60,209,122,207,111, | |||
237,18,185,40,123,156,101,71,107,126,86,149,202,61,122,244,8,227,180,37,169,196,144,38,109,246,59,110,86,97,177,17,51,235,196,205,126,47,64,132,249,96,41,218,44,3,5,81,250,166,148,7,101,234,27,79,235,104,134,128,78,20,167,219,250,16,164,218,194,216,227, | |||
193,46,171,168,189,95,153,125,67,136,33,151,147,182,24,212,8,145,86,25,84,106,211,199,231,226,226,34,245,126,33,205,135,40,155,193,53,111,45,130,4,150,14,119,164,147,37,173,132,91,230,232,171,14,144,136,34,152,163,57,178,81,231,109,77,7,60,218,97,72, | |||
181,251,133,204,53,98,200,181,24,138,194,254,254,254,100,111,111,175,218,227,241,142,128,177,133,80,246,251,0,162,29,227,110,241,121,173,196,114,36,161,106,57,150,178,102,135,116,7,150,156,209,12,239,175,247,140,52,23,44,69,66,77,191,42,154,24,170,29, | |||
80,35,115,141,24,114,43,134,56,214,25,20,73,126,247,238,29,23,163,77,136,236,209,55,195,161,83,48,45,178,217,25,51,187,199,199,199,213,79,28,101,46,108,230,116,91,204,5,149,76,214,36,226,125,91,181,199,18,251,134,16,67,107,81,84,171,246,126,33,77,220, | |||
8,37,114,48,158,81,186,190,190,78,19,77,109,113,62,200,225,182,186,115,8,225,231,211,105,205,50,151,85,18,119,116,116,52,249,248,241,227,124,255,156,197,126,91,196,144,111,161,80,123,46,68,44,229,175,221,47,148,202,33,134,220,45,96,100,133,114,33,231, | |||
225,240,240,112,114,118,118,54,119,32,212,255,24,38,219,197,58,243,231,222,4,9,190,136,129,27,11,27,219,114,102,72,65,67,9,160,171,171,171,249,152,208,254,160,140,153,48,156,110,159,126,149,130,83,244,139,63,95,183,5,210,92,186,106,49,64,50,56,81,153, | |||
81,230,71,142,130,198,150,68,15,70,168,205,224,64,6,81,139,80,205,39,134,20,188,145,205,42,143,198,120,246,203,160,11,4,6,124,250,85,127,93,151,7,25,236,19,98,8,49,4,142,196,78,49,46,122,84,38,162,113,84,126,15,155,17,245,180,194,12,243,56,170,80,181, | |||
138,20,75,72,120,223,96,95,196,78,89,255,100,191,138,237,42,191,135,118,230,130,69,57,47,235,32,190,46,98,40,24,22,134,63,98,74,55,155,216,41,2,103,241,43,12,79,212,211,3,51,136,161,200,239,104,177,177,95,63,207,122,60,171,164,173,43,108,22,191,66,46, | |||
44,252,13,196,144,79,116,176,5,254,39,98,104,41,181,203,92,200,10,249,160,91,10,82,28,7,156,133,250,68,190,195,42,195,33,40,145,15,137,104,253,128,11,137,158,110,57,155,108,23,123,17,89,187,87,205,133,90,107,27,66,200,47,248,55,136,33,22,232,228,40,219, | |||
211,221,195,131,193,70,12,13,229,32,181,156,49,140,124,231,151,197,158,46,217,149,49,218,76,193,155,98,187,202,87,28,27,214,238,77,236,84,173,185,192,218,234,23,15,153,107,196,144,67,106,159,133,95,140,18,212,17,63,50,254,229,1,28,12,62,63,68,113,4,37, | |||
126,126,249,229,151,175,194,135,18,93,0,216,21,2,40,136,33,55,3,3,231,105,28,138,243,80,30,136,65,244,224,64,203,243,57,122,223,68,251,252,10,206,21,251,133,248,1,0,196,16,98,168,89,16,67,195,162,12,208,211,167,79,231,15,128,133,195,221,170,248,38,107, | |||
55,62,37,136,243,236,217,51,4,16,140,106,167,168,144,0,108,12,98,200,141,74,166,76,110,24,116,1,224,233,233,41,245,201,0,16,14,137,32,9,32,61,68,107,129,192,0,0,98,8,149,12,189,81,38,40,235,237,231,45,66,112,0,178,113,114,114,130,8,2,0,64,12,1,108,134, | |||
34,169,18,65,236,7,106,11,34,150,144,5,2,57,0,0,177,248,142,38,0,79,78,132,142,96,70,8,1,64,68,206,206,206,230,71,125,35,132,0,0,16,67,0,27,113,124,124,60,119,34,178,148,148,144,41,1,104,7,101,180,175,175,175,231,101,113,16,155,200,101,245,108,9,0,64, | |||
12,65,80,46,46,46,38,231,231,231,41,222,181,100,190,178,237,161,33,82,14,45,11,33,139,139,95,173,208,187,182,124,170,103,228,128,28,251,211,0,16,67,16,84,8,101,56,46,91,34,72,239,169,200,221,155,55,111,210,245,51,98,8,90,22,66,25,34,242,175,95,191,158, | |||
11,190,199,143,31,207,237,25,98,8,0,90,129,3,20,48,168,102,232,216,236,150,133,144,156,36,61,114,34,62,124,248,64,135,3,52,66,17,3,202,104,183,42,132,84,202,91,236,151,158,219,219,219,20,125,27,185,63,185,99,8,0,49,116,231,194,85,219,160,102,204,0,244, | |||
69,183,176,235,196,165,86,80,217,155,198,153,190,202,129,120,251,246,45,157,220,16,45,59,25,209,179,118,22,159,95,115,93,251,28,91,10,230,200,110,201,126,149,39,115,0,71,235,83,180,247,191,127,255,62,134,26,0,49,228,75,12,193,106,84,90,162,72,99,68,103, | |||
65,209,210,178,223,167,252,158,172,79,63,49,241,226,197,11,26,2,49,209,196,231,87,176,43,218,62,199,98,187,180,30,118,31,253,89,150,172,207,38,99,42,154,93,167,20,25,0,49,228,14,78,117,89,205,233,233,169,107,195,93,34,163,114,20,36,120,244,245,243,231, | |||
207,116,28,243,185,89,20,160,136,234,16,91,148,36,123,63,53,174,148,232,22,193,67,166,122,243,249,30,173,178,35,67,137,28,101,128,253,224,180,90,196,144,155,129,193,158,161,229,232,46,33,111,142,132,156,5,101,170,138,3,65,148,148,69,44,219,124,150,243, | |||
23,213,97,182,16,170,222,130,57,101,111,143,190,146,169,30,198,94,69,203,100,215,182,177,242,171,106,219,69,68,61,32,134,118,192,98,113,32,130,177,28,101,133,188,8,32,237,89,210,67,214,167,14,81,179,15,18,240,173,19,89,12,101,45,15,146,240,145,253,202, | |||
116,184,65,203,2,123,87,219,90,219,231,80,245,68,237,159,169,125,81,172,215,48,6,105,142,214,182,200,14,177,161,241,223,237,97,45,18,203,17,215,251,251,251,243,200,31,134,21,7,3,103,59,246,59,102,19,67,229,78,35,29,113,125,121,121,137,16,26,1,101,60, | |||
34,5,65,172,214,213,218,126,21,251,162,0,49,180,35,22,151,92,178,111,232,91,116,217,168,37,229,24,92,57,16,144,103,193,102,30,183,251,142,25,178,118,93,199,83,54,84,34,136,114,161,246,215,171,77,176,58,213,176,182,95,197,246,3,24,139,52,7,40,112,188, | |||
118,63,206,206,206,70,115,140,44,29,46,45,22,136,32,28,110,196,80,91,66,53,75,57,114,41,73,34,11,84,87,12,61,127,254,220,253,231,84,137,156,149,112,171,237,87,113,101,9,32,134,6,88,76,44,22,234,104,155,48,189,159,146,180,237,162,134,1,197,113,221,214, | |||
209,200,226,112,43,203,18,45,227,144,65,168,34,132,108,80,73,214,225,225,161,251,181,195,114,205,174,45,134,40,147,131,177,160,76,14,231,239,43,45,238,113,210,66,225,113,49,203,120,192,134,74,28,116,153,33,2,142,119,165,127,250,81,74,227,16,66,249,132, | |||
70,31,20,172,177,252,140,218,191,86,19,182,30,0,98,104,71,172,34,158,138,44,225,88,216,25,234,151,47,95,50,203,29,17,169,14,63,226,231,205,244,174,178,173,173,239,33,208,233,155,30,15,121,201,18,161,215,154,232,121,95,154,132,144,229,28,168,29,100,70, | |||
12,1,98,40,224,196,141,230,96,180,38,134,188,28,227,189,136,162,121,136,33,62,239,58,17,111,129,28,141,72,217,225,214,133,170,74,144,188,6,115,50,149,43,121,93,71,52,87,173,51,87,202,88,214,246,171,50,29,154,2,136,161,102,156,12,196,144,157,240,245,186, | |||
255,33,115,116,75,239,30,165,84,206,42,243,96,17,180,41,88,157,74,181,77,64,161,117,49,228,213,9,207,134,214,69,143,21,30,58,29,213,67,102,180,182,95,149,41,91,15,136,161,102,196,144,140,213,209,209,145,251,182,145,131,218,82,180,79,23,17,130,79,162, | |||
28,210,97,37,12,172,50,67,145,196,144,28,162,214,75,228,44,199,65,31,129,80,27,139,187,2,11,186,220,214,83,70,255,248,248,216,141,40,64,12,1,98,40,24,218,72,111,97,80,35,56,24,81,156,32,28,137,248,104,49,243,94,42,168,18,20,171,69,215,114,236,42,32,18, | |||
33,120,211,122,214,68,37,114,158,47,132,182,8,156,89,6,184,36,188,37,136,60,160,192,165,167,241,95,219,94,105,236,69,59,136,7,16,67,56,201,19,255,155,48,229,152,182,38,134,44,75,141,238,34,251,38,80,57,22,222,179,67,86,206,134,198,173,245,201,97,222, | |||
133,134,196,90,235,123,86,44,238,197,219,100,189,176,104,127,181,137,165,93,87,112,228,228,228,196,92,8,201,135,241,148,21,149,189,170,45,84,35,94,1,162,59,28,167,211,233,168,207,187,119,239,80,53,136,161,126,88,69,119,60,59,24,45,150,156,120,62,138, | |||
54,123,102,168,44,102,94,179,67,202,10,101,44,145,43,120,207,14,101,216,75,99,89,18,214,103,189,200,182,126,119,199,158,213,220,240,40,132,10,181,197,80,132,234,130,197,0,66,141,53,197,75,246,18,49,20,0,171,82,57,175,217,33,77,82,54,234,214,35,195,113, | |||
192,125,80,27,104,3,176,71,44,23,20,47,123,221,100,19,60,58,27,218,43,145,225,36,51,207,153,109,75,49,228,97,126,200,62,104,28,214,68,190,131,87,33,100,209,47,17,170,11,186,212,58,2,157,189,210,136,161,16,3,198,163,243,167,73,202,173,206,245,104,173, | |||
28,113,215,182,240,22,32,144,88,181,202,220,41,72,227,229,4,68,217,4,111,65,146,76,129,27,175,54,217,250,20,63,237,163,242,224,240,105,45,191,184,184,168,18,48,80,105,158,103,33,36,84,137,81,59,136,36,91,16,225,42,0,101,244,106,8,55,141,17,207,251,12, | |||
17,67,14,177,18,37,218,43,98,93,115,188,56,73,201,10,213,195,114,83,190,87,60,157,210,164,254,33,43,244,15,90,192,61,137,85,181,79,150,172,170,87,49,228,33,26,239,165,20,72,193,28,57,160,99,205,17,125,95,237,1,137,178,70,91,244,139,247,178,48,173,109, | |||
250,140,53,236,22,37,114,187,51,205,248,92,95,95,79,173,56,60,60,52,127,255,217,36,157,206,12,237,180,85,102,11,137,187,49,119,113,113,97,218,38,221,207,162,246,241,130,230,34,243,97,58,61,56,56,248,250,121,188,240,229,203,151,233,76,36,154,247,207,217, | |||
217,217,52,19,26,139,222,236,151,230,136,198,131,21,39,39,39,95,63,203,199,143,31,93,245,151,108,251,80,243,68,182,217,210,63,217,197,110,91,244,75,119,92,120,155,47,181,214,20,205,203,172,190,252,64,207,117,90,49,100,233,12,106,224,118,29,159,140,142, | |||
249,216,28,31,31,187,26,111,234,111,107,188,138,161,226,76,100,158,15,114,34,186,159,199,155,99,174,133,221,170,111,142,142,142,92,136,194,218,88,182,249,178,71,78,167,37,93,167,215,195,152,88,37,16,244,217,54,21,70,178,199,18,252,222,68,222,166,98,200, | |||
170,95,244,115,179,10,33,161,177,131,160,65,12,109,253,88,26,30,75,65,212,186,16,242,146,109,232,62,30,178,112,158,197,144,165,32,242,48,31,22,23,115,143,153,10,11,231,220,131,211,171,241,97,17,169,247,228,224,121,8,230,44,102,0,188,11,7,173,241,26,55, | |||
26,63,250,236,139,207,213,213,85,136,12,208,166,107,172,85,191,120,153,47,18,194,181,215,123,15,217,123,196,16,217,161,157,140,101,237,114,174,12,66,200,155,129,240,210,230,222,197,80,113,60,107,57,221,250,57,30,156,17,217,129,197,119,246,136,156,156, | |||
154,1,28,101,119,61,96,85,182,228,37,160,163,177,233,65,120,44,138,33,175,217,161,44,172,26,159,150,253,98,157,33,209,22,136,218,89,100,235,170,10,196,16,123,135,6,163,70,73,151,22,52,69,162,50,161,247,181,30,95,158,22,236,8,98,168,100,33,198,118,186, | |||
245,253,189,236,153,91,86,243,238,57,218,61,118,4,214,147,173,42,14,159,85,64,195,122,127,169,167,189,165,203,230,73,228,204,74,171,98,200,58,107,87,99,253,88,54,79,172,108,4,89,33,196,80,19,217,161,174,97,25,107,80,203,121,177,220,248,106,137,101,234, | |||
220,186,198,62,170,24,234,58,63,67,103,137,244,253,188,245,203,178,121,31,33,208,48,134,189,146,243,239,169,252,169,136,17,171,49,179,44,107,152,245,144,157,101,98,200,67,249,30,98,200,111,121,235,216,66,161,172,39,86,254,21,89,33,196,80,179,165,99,67, | |||
77,96,77,82,25,36,15,142,133,181,16,171,29,93,181,140,18,181,36,134,202,216,25,66,20,149,69,203,227,41,84,203,62,111,20,134,178,87,154,163,222,162,252,221,67,45,244,249,44,35,221,181,5,145,68,134,183,185,178,234,212,176,108,39,13,70,16,67,158,178,118, | |||
10,220,12,237,3,200,230,105,220,89,251,54,100,133,16,67,77,29,25,186,106,1,84,249,220,38,123,138,244,111,245,127,188,149,195,105,17,179,142,48,214,58,93,78,125,224,117,99,111,68,49,180,184,168,73,224,247,45,129,208,191,211,191,247,90,30,186,238,216,234, | |||
104,104,126,107,158,247,181,87,178,185,114,80,36,166,188,102,173,187,14,148,250,201,186,125,107,149,254,120,203,156,222,37,134,90,191,38,34,170,24,242,150,181,147,157,209,90,80,236,212,38,1,6,205,127,217,3,9,32,47,99,141,19,228,134,21,67,123,127,255, | |||
34,61,186,121,222,219,165,135,93,62,125,250,52,127,150,161,11,250,188,94,210,167,207,172,203,102,117,113,156,245,133,125,186,32,79,159,227,237,219,183,131,127,111,93,216,169,239,173,139,248,188,178,183,183,247,245,215,186,208,79,237,17,153,247,239,223, | |||
79,254,252,243,207,127,253,185,46,184,211,152,243,142,198,203,139,23,47,150,95,254,54,141,109,150,215,217,171,159,126,250,201,253,231,215,220,120,252,248,241,55,127,246,241,227,71,115,59,171,49,163,75,195,111,111,111,7,255,222,71,71,71,243,239,239,117, | |||
45,89,55,95,116,129,184,236,65,118,228,195,212,186,216,123,217,28,89,68,151,204,123,191,52,246,174,117,208,163,189,210,186,167,121,58,134,29,72,202,13,153,161,164,39,173,213,142,174,90,150,153,172,202,186,237,154,98,86,228,75,223,39,74,84,50,122,102, | |||
168,37,148,61,92,23,153,4,91,150,101,184,188,149,83,203,166,238,90,62,23,233,126,155,187,50,17,217,79,151,43,71,118,123,233,143,137,163,107,37,90,195,219,189,74,100,134,26,99,182,176,204,163,4,17,162,202,81,162,84,79,158,60,249,250,251,47,95,190,204, | |||
163,246,222,34,44,138,40,150,44,195,170,136,182,198,132,62,123,201,58,148,223,71,162,181,204,80,100,20,189,125,243,230,205,202,191,143,158,25,138,140,50,47,207,159,63,255,215,159,123,173,30,40,54,171,204,231,85,25,211,18,225,150,237,82,84,57,218,58,215, | |||
39,19,49,19,137,174,179,243,99,161,62,127,248,240,97,213,76,76,159,254,16,170,154,208,231,139,182,94,70,158,7,176,121,179,126,79,27,252,131,82,142,50,164,26,108,76,220,221,69,198,226,162,244,234,213,43,243,82,185,69,212,207,114,18,34,148,238,236,138, | |||
22,165,207,159,63,51,56,29,4,9,214,9,33,176,181,91,171,156,73,245,153,254,222,219,218,80,202,164,51,216,176,187,248,245,215,95,231,95,51,9,162,101,107,173,39,180,230,104,221,215,250,15,187,247,117,173,50,200,108,124,71,19,124,203,135,15,31,220,57,236, | |||
17,209,132,93,172,103,85,196,21,108,157,38,192,113,129,213,168,111,214,213,225,99,195,98,8,162,76,142,183,252,21,249,45,158,185,188,188,100,238,84,176,79,128,24,26,124,226,226,176,236,54,97,151,29,82,160,8,17,209,33,32,72,192,98,230,17,57,107,119,101, | |||
236,244,111,150,149,160,193,248,108,146,249,202,34,136,148,197,148,191,18,1,149,158,178,254,143,107,159,0,49,52,138,32,34,146,177,57,50,118,235,140,179,247,147,101,90,198,50,51,196,34,56,25,237,36,195,33,22,217,236,104,79,195,178,125,66,139,72,200,210, | |||
94,49,104,93,16,233,221,86,157,174,231,185,79,56,245,111,115,84,90,221,199,62,1,98,104,20,136,100,108,110,156,75,205,246,42,148,29,194,153,200,39,134,36,4,50,71,212,61,59,46,90,104,51,31,166,161,113,185,73,214,129,236,144,29,58,228,104,83,231,187,197, | |||
178,119,217,211,187,214,90,175,104,174,33,136,250,163,182,162,82,9,49,100,142,12,14,217,140,97,132,80,215,144,175,186,131,4,218,68,34,56,235,60,210,98,230,221,33,211,98,155,209,193,47,66,104,147,210,197,114,208,14,212,103,155,19,240,94,190,124,57,255, | |||
127,45,172,57,101,207,97,180,140,208,226,252,65,16,245,95,59,54,181,79,128,24,26,13,25,30,22,191,97,132,16,206,196,183,134,174,38,214,167,77,201,41,241,124,177,113,230,197,172,156,248,148,81,8,109,179,249,92,181,251,217,171,6,44,196,243,182,39,249,169, | |||
143,37,136,34,87,37,20,91,18,101,143,80,31,65,68,229,13,66,8,49,20,12,25,32,13,76,202,35,190,69,139,203,54,233,122,237,157,200,156,113,147,24,172,45,12,60,28,9,172,247,206,18,17,140,182,152,201,198,101,113,78,118,17,66,5,137,199,172,209,109,189,183,196, | |||
69,237,247,223,229,110,36,205,67,149,190,71,203,74,148,227,222,117,143,144,247,83,227,54,237,15,249,14,148,205,35,132,16,67,193,144,3,111,177,0,120,53,208,114,108,119,217,212,167,140,91,182,200,80,185,39,64,142,103,237,178,13,15,151,44,150,172,96,235, | |||
65,133,168,139,89,134,13,206,67,8,161,50,150,51,6,200,202,216,86,54,177,246,187,15,177,239,81,235,184,132,133,236,144,247,210,57,173,143,178,219,145,203,226,238,66,62,68,214,50,221,85,125,174,241,137,16,66,12,185,70,11,128,6,106,230,104,198,144,233,250, | |||
76,119,66,104,225,85,187,149,227,49,45,22,226,131,131,3,243,118,144,19,218,178,19,169,241,28,57,170,215,114,61,127,177,93,67,69,216,179,9,162,197,177,29,41,51,180,136,214,175,253,253,125,119,162,72,99,73,237,44,225,167,245,49,195,69,217,234,139,236,129, | |||
230,18,96,142,122,48,70,11,76,121,182,123,30,61,122,52,253,248,241,227,52,19,103,103,103,163,180,229,197,197,69,211,237,118,117,117,53,189,119,239,222,55,239,172,223,215,230,248,248,248,235,216,173,201,178,62,159,9,179,230,230,207,201,201,201,32,243, | |||
161,38,26,11,139,63,95,99,83,99,182,37,174,175,175,255,53,7,135,122,238,223,191,63,125,247,238,93,179,246,235,203,151,47,211,163,163,163,127,189,183,236,73,109,198,92,207,181,14,233,93,45,208,248,81,27,239,50,70,101,127,106,206,167,49,250,65,239,96,213, | |||
7,86,168,239,181,30,226,87,155,61,215,136,33,38,175,155,201,170,133,160,69,39,226,240,240,112,229,59,215,22,3,114,112,189,136,161,226,116,107,81,141,142,250,113,153,168,136,42,134,44,156,171,8,34,117,221,211,162,128,44,78,175,196,222,42,1,81,155,117, | |||
246,116,168,71,63,67,129,191,177,5,174,218,86,130,114,85,251,102,20,67,37,184,208,194,186,208,199,63,40,1,74,30,196,80,19,143,38,111,139,217,13,57,121,203,34,130,99,61,18,92,173,68,88,53,30,238,138,242,213,118,158,100,124,61,137,161,22,156,238,62,253, | |||
28,85,12,69,207,128,91,68,92,229,220,180,16,28,91,149,13,178,28,171,98,172,234,132,117,34,87,115,64,54,74,115,93,78,250,166,243,65,109,169,255,167,255,175,241,49,100,224,164,69,49,212,181,61,173,138,162,49,214,13,30,196,16,162,104,4,17,36,195,106,53, | |||
89,35,103,219,212,255,125,35,125,22,101,38,138,122,122,19,67,17,163,129,114,180,199,114,106,60,137,161,226,16,70,154,147,214,17,215,200,145,109,181,221,38,182,191,246,123,106,109,242,180,230,75,108,107,14,45,123,106,175,159,18,138,45,101,91,91,20,69, | |||
155,248,7,60,136,161,240,79,113,30,162,69,84,75,221,50,194,178,142,145,211,191,175,141,22,21,143,98,168,187,240,121,46,55,170,145,45,245,38,134,186,227,85,14,151,87,81,180,169,35,143,19,247,237,184,150,128,220,180,237,44,178,186,94,214,40,111,79,205, | |||
177,86,83,12,45,238,235,138,26,96,64,4,33,134,82,63,138,196,123,118,238,52,81,229,224,120,221,192,231,217,1,83,191,238,186,233,213,66,48,215,118,96,118,233,119,47,1,5,57,26,181,156,48,175,98,168,27,236,81,91,120,41,105,221,214,145,175,233,196,121,92, | |||
3,100,83,229,92,238,178,15,71,235,134,69,127,227,91,216,138,33,203,204,171,230,185,126,190,247,146,122,205,249,26,123,220,120,118,23,67,123,127,255,2,42,48,155,192,243,59,102,116,52,169,190,90,94,130,169,35,44,111,110,110,230,71,120,70,186,200,109,102, | |||
88,230,109,103,213,126,58,130,85,237,166,71,151,166,14,113,124,178,142,187,174,253,46,58,198,179,230,207,212,221,30,187,182,145,142,29,213,220,169,121,95,146,250,91,253,172,163,244,107,30,113,59,115,158,171,218,130,93,198,241,76,180,126,157,147,234,159, | |||
154,99,88,125,163,167,28,87,239,157,210,86,26,203,86,247,126,21,219,175,118,219,117,94,90,140,215,161,108,74,139,204,196,109,53,187,174,185,238,161,15,202,156,42,126,149,37,99,248,7,80,133,27,196,144,33,114,240,138,115,87,158,177,156,134,178,0,150,175, | |||
45,76,82,45,192,106,191,210,134,99,44,2,165,205,74,187,101,184,243,33,130,67,169,254,46,253,62,180,3,94,22,50,125,109,233,198,247,22,230,101,153,135,122,162,8,160,85,40,56,86,218,105,44,145,47,231,172,235,160,237,42,124,193,247,120,170,121,223,149,198, | |||
171,71,251,40,251,83,214,5,221,213,52,102,208,65,115,170,204,47,205,45,214,11,196,16,12,40,144,228,60,20,7,79,147,185,239,173,219,69,244,20,167,161,252,62,203,226,39,39,185,24,63,181,225,38,109,87,218,171,56,15,122,16,62,113,251,94,79,159,69,176,244, | |||
181,250,95,95,89,204,198,113,210,212,23,221,249,216,71,192,22,251,85,190,102,200,4,200,254,119,29,184,190,66,127,153,237,39,115,146,47,8,33,167,188,22,123,123,123,41,252,170,238,156,42,243,12,255,0,49,4,0,0,0,0,142,56,57,57,153,156,158,158,86,249,89, | |||
18,3,251,251,251,52,58,52,35,134,190,163,13,0,0,0,0,226,82,115,191,94,201,66,2,180,194,247,52,1,0,0,0,120,167,246,97,51,42,139,138,80,58,91,246,159,33,134,0,16,67,0,0,0,208,40,58,213,177,182,211,255,240,225,67,247,237,82,251,20,53,196,16,180,6,101,114, | |||
0,0,0,0,11,232,32,11,29,206,226,157,103,207,158,33,134,0,16,67,0,0,0,208,50,218,184,95,27,235,187,107,238,162,28,37,93,179,15,56,73,13,16,67,0,0,0,0,9,196,80,237,172,203,166,212,58,65,174,80,243,248,110,0,196,16,0,0,0,128,161,35,174,251,104,142,142,142, | |||
92,182,199,225,225,97,213,61,84,136,33,104,21,238,25,2,0,0,0,247,232,212,52,157,240,86,27,143,247,234,168,45,180,119,103,147,203,67,135,64,167,249,101,185,200,29,210,192,61,67,0,0,0,224,31,57,225,22,155,247,37,56,116,169,169,39,94,189,122,85,93,8,189, | |||
126,253,26,33,4,77,130,24,2,0,0,128,16,88,149,105,105,111,142,202,210,60,112,124,124,108,114,176,131,4,24,64,139,80,38,7,0,0,0,33,208,197,171,86,71,59,171,68,79,123,116,44,47,98,213,254,37,11,81,226,177,84,16,96,32,40,147,3,0,0,128,24,72,136,88,156,42, | |||
39,180,95,70,66,204,234,64,5,101,132,172,178,51,181,79,173,3,168,9,98,8,0,0,0,194,96,93,174,165,159,127,117,117,85,237,66,86,253,28,253,188,243,243,115,147,247,149,248,188,188,188,100,224,1,98,8,0,0,0,192,26,137,2,139,83,229,186,104,207,142,68,194,197, | |||
197,197,104,162,72,39,198,233,224,6,101,163,44,47,127,37,43,4,25,152,242,240,240,240,240,240,240,240,68,121,102,34,97,234,137,235,235,235,233,209,209,209,116,38,96,118,126,183,131,131,131,233,76,100,77,191,124,249,226,226,189,24,111,60,141,63,215,28, | |||
160,0,0,0,0,161,80,214,68,153,25,237,227,241,134,50,57,58,245,78,159,79,191,214,215,207,159,63,47,253,183,143,30,61,154,127,213,193,12,15,30,60,152,127,245,242,78,202,190,233,51,173,250,236,0,141,112,131,24,2,0,0,128,112,88,157,172,150,133,103,207,158, | |||
77,94,190,124,73,67,0,98,8,0,0,0,192,35,215,215,215,243,108,10,12,139,46,88,125,242,228,9,13,1,136,33,0,0,0,0,175,120,46,151,139,138,218,83,229,113,183,183,183,52,6,164,16,67,156,38,7,0,0,0,33,145,195,78,102,104,56,180,79,72,39,215,33,132,32,19,136,33, | |||
0,0,0,8,139,46,98,125,250,244,41,13,49,128,16,146,176,84,123,2,100,226,255,102,207,41,205,0,0,0,0,145,5,145,156,249,159,127,254,153,198,64,8,1,108,194,39,196,16,0,0,0,132,231,247,223,127,159,239,29,250,239,127,255,75,99,32,132,0,122,139,33,202,228,0, | |||
0,0,160,9,158,63,127,78,201,220,6,232,30,36,132,16,100,135,204,16,0,0,0,52,131,28,123,157,136,38,39,255,135,31,126,160,65,86,160,227,179,117,88,2,151,170,66,114,200,12,1,0,0,64,91,92,94,94,206,197,144,50,31,240,45,42,139,211,133,170,186,71,136,83,227, | |||
0,200,12,1,0,0,64,131,252,241,199,31,147,255,253,239,127,243,236,16,251,136,254,226,230,230,102,126,200,196,111,191,253,70,99,0,252,5,153,33,0,0,0,104,19,101,62,180,143,72,89,34,149,206,165,245,246,102,239,174,189,84,143,31,63,166,44,14,96,1,196,16,0, | |||
0,0,52,205,219,183,111,39,251,251,251,243,242,48,149,137,101,65,239,122,122,122,58,121,240,224,193,188,116,16,0,254,205,222,236,153,210,12,0,0,0,144,129,123,247,238,205,69,145,30,29,197,221,170,8,58,63,63,159,63,236,11,2,88,203,13,98,8,0,0,0,82,138,34, | |||
149,142,73,20,253,248,227,143,77,188,147,202,225,94,189,122,133,8,2,64,12,1,0,0,0,244,227,209,163,71,115,97,164,163,166,35,102,139,116,76,182,68,208,155,55,111,232,76,0,196,16,0,0,0,192,230,40,91,164,195,22,36,138,60,11,35,149,193,73,0,233,116,56,125, | |||
37,11,4,128,24,2,0,0,0,24,148,131,131,131,185,56,210,163,67,8,172,202,233,116,95,82,121,36,128,116,177,44,0,32,134,0,0,0,0,170,161,204,145,68,145,196,145,132,81,247,217,217,35,155,137,156,34,124,148,249,209,87,237,1,66,248,0,32,134,0,0,0,0,220,163,76, | |||
82,223,210,58,9,29,238,252,1,64,12,1,0,0,0,0,0,152,136,33,46,93,5,0,0,0,0,128,148,32,134,0,0,0,0,0,0,49,4,0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,32,134,0,0,0,0,0,0,16,67,0,0,0,0,0,0,136,33,0,0,0,0,0,0,196,16,0,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4, | |||
0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,32,134,0,0,0,0,0,0,16,67,0,0,0,0,0,0,136,33,0,0,0,0,0,0,196,16,0,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4,0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4,0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1, | |||
0,0,0,0,0,32,134,0,0,0,0,0,0,16,67,0,0,0,0,0,0,136,33,0,0,0,0,0,0,196,16,0,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4,0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,32,134,0,0,0,0,0,0,16,67,0,0,0,0,0,0,136,33,0,0,0,0,0,0,196,16,0,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4, | |||
0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,98,8,0,0,0,0,0,0,49,4,0,0,0,0,0,128,24,2,0,0,0,0,0,64,12,1,0,0,0,0,0,32,134,0,0,0,0,0,0,16,67,0,0,0,0,0,0,209,248,126,246,220,208,12,0,0,0,0,0,144,140,247,255,47,192,0,85,164,109,9,9,221,131,21,0,0,0,0,73, | |||
69,78,68,174,66,96,130,0,0 }; | |||
const char* logo_cabbage_Black_png = (const char*) temp_195998d4; | |||
//================== logo_cabbage_black_no_text.png ================== | |||
static const unsigned char temp_95a301a0[] = | |||
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,120,0,0,0,105,8,6,0,0,0,241,238,231,236,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,97,103,101,82,101, | |||
97,100,121,113,201,101,60,0,0,29,171,73,68,65,84,120,218,236,93,9,120,147,85,214,190,217,151,102,239,94,74,232,198,86,40,84,150,178,8,136,12,40,130,131,136,140,11,163,254,232,184,0,226,62,42,227,194,175,14,226,50,14,163,200,239,194,168,48,140,242,160, | |||
226,128,128,138,192,176,43,88,182,66,177,182,208,125,13,77,154,180,217,247,252,231,180,55,52,148,165,73,155,180,73,240,62,207,121,190,36,95,242,125,95,238,123,207,122,207,61,151,65,162,172,121,60,30,9,28,68,64,82,60,186,61,46,153,197,161,83,58,92,22, | |||
145,155,184,148,12,194,84,112,89,194,214,239,194,57,98,115,25,8,147,193,214,50,9,171,154,195,18,24,5,28,121,53,147,193,106,134,211,70,74,90,6,131,97,138,212,254,96,135,219,3,189,255,243,68,30,28,248,139,198,28,104,185,196,185,155,224,80,14,231,74,58, | |||
128,154,14,135,97,64,131,90,172,245,3,28,110,75,18,139,193,81,122,136,27,143,113,110,143,19,65,36,30,183,157,184,60,54,35,131,193,212,194,143,220,112,158,15,192,199,1,224,108,194,100,19,171,83,79,236,46,19,0,239,212,184,61,110,21,156,83,137,121,9,165, | |||
112,253,82,184,54,82,17,80,37,0,238,136,20,128,25,97,8,240,29,112,184,23,232,121,0,242,164,207,231,41,112,200,7,58,2,244,24,156,171,129,142,31,13,175,23,55,91,106,134,219,92,198,68,224,188,56,62,91,198,230,178,4,22,224,206,66,167,219,86,10,96,21,178, | |||
153,60,53,229,76,59,124,31,201,130,227,130,14,112,100,103,166,211,109,23,0,167,167,187,220,246,36,38,147,61,144,197,224,230,0,144,89,6,171,138,107,117,182,216,93,30,167,86,202,239,163,142,21,102,52,208,231,216,2,231,143,252,6,112,96,224,198,193,1,185, | |||
83,129,162,17,232,105,160,99,20,132,255,5,186,137,126,21,59,248,214,133,121,251,17,168,215,77,118,109,110,12,87,81,8,175,15,34,65,199,151,5,81,228,95,11,135,60,36,141,233,108,142,206,82,21,199,98,114,99,97,192,176,129,74,88,12,246,166,24,110,220,78,144, | |||
16,120,127,13,220,219,243,27,192,151,6,151,5,135,87,145,115,125,62,70,110,171,70,145,13,132,28,204,244,57,183,14,232,89,0,25,191,195,133,142,61,215,3,250,125,48,170,1,167,203,54,172,201,82,54,10,196,249,100,144,244,168,231,141,98,94,226,246,88,97,230, | |||
94,56,191,3,158,229,236,111,0,95,12,240,24,56,252,11,104,160,159,63,49,163,152,68,144,81,92,251,92,39,19,222,151,133,24,104,28,140,9,32,214,135,154,236,234,89,0,242,188,70,83,177,194,226,208,26,149,178,177,21,114,65,191,207,225,252,218,158,24,116,17, | |||
1,48,128,130,28,250,2,208,51,64,188,0,126,106,164,32,191,7,132,157,62,23,40,11,104,21,128,252,131,23,112,20,247,240,94,23,34,160,147,112,80,182,88,107,159,50,217,155,166,53,24,78,114,133,220,56,85,186,124,194,97,62,91,242,33,128,252,195,111,0,255,60, | |||
113,58,28,62,167,186,55,24,237,12,208,221,212,32,67,145,255,18,21,243,70,106,9,87,208,35,26,113,200,253,104,177,215,193,32,176,118,19,112,28,76,139,203,181,251,231,54,24,78,165,36,137,115,152,10,65,122,129,152,155,184,130,205,226,237,128,115,141,61,173, | |||
163,195,5,224,239,225,48,61,136,151,116,2,125,6,244,103,10,236,135,64,51,58,232,112,239,247,26,169,158,63,12,116,26,232,56,0,125,162,155,64,223,100,178,107,110,175,213,31,159,173,183,213,201,248,44,41,136,238,188,237,82,126,42,138,237,111,175,42,128, | |||
1,220,209,212,250,229,6,249,210,122,160,71,168,100,152,65,65,78,189,18,46,64,6,32,116,131,142,2,125,1,180,179,43,92,13,0,227,65,14,52,86,103,169,94,94,111,40,200,109,52,22,185,51,21,215,215,43,101,99,86,163,10,1,160,117,81,15,48,128,27,3,135,13,64,55, | |||
135,232,22,232,106,141,3,144,206,192,189,102,211,232,150,138,82,245,165,244,50,124,79,78,117,249,44,170,50,54,1,161,30,45,131,239,155,187,200,209,143,170,77,37,11,10,26,190,28,32,23,40,217,153,138,201,5,34,110,226,139,28,22,127,71,168,131,38,189,13,240, | |||
45,148,179,146,66,120,27,28,64,79,0,56,231,224,126,2,120,157,77,129,75,185,194,111,220,212,69,203,166,17,50,25,138,110,42,246,79,195,181,28,1,2,140,198,216,40,139,163,101,81,145,122,203,189,58,75,37,233,39,27,167,234,31,59,245,13,188,38,128,220,20,117, | |||
0,83,78,89,65,163,86,204,16,222,10,185,14,59,242,111,64,24,167,126,29,104,26,144,184,19,113,109,161,32,219,128,146,105,176,5,141,183,159,241,90,0,242,175,93,224,228,56,171,211,240,116,77,75,254,83,69,141,91,184,25,242,73,250,65,241,51,54,112,88,130,165, | |||
161,114,169,122,19,224,41,112,248,42,136,150,115,103,238,20,114,241,39,112,223,223,193,235,127,2,165,119,83,244,127,130,186,20,173,112,184,174,39,0,144,113,48,223,170,183,214,191,178,187,226,245,33,114,126,63,50,36,225,150,194,184,152,254,56,208,79,6, | |||
219,202,102,246,20,160,240,199,134,0,221,8,36,160,31,221,211,67,224,98,195,217,165,165,0,110,95,56,238,165,1,149,238,52,5,245,217,17,228,57,84,244,251,199,81,12,134,27,232,107,9,63,229,225,241,202,71,242,109,46,35,249,185,118,117,78,147,185,12,175,53, | |||
3,250,39,38,226,56,152,78,10,124,0,116,0,3,26,31,228,79,234,79,45,103,81,15,11,142,143,128,30,165,247,205,167,65,145,110,253,53,32,20,173,159,2,253,53,80,139,219,233,114,228,53,91,171,254,126,180,110,237,4,171,83,239,25,221,231,190,138,20,73,46,6,110, | |||
10,208,47,7,58,212,221,169,74,70,136,129,21,153,44,142,123,212,205,214,87,18,21,2,149,128,199,254,31,0,183,18,78,237,6,202,237,5,205,128,162,245,89,160,181,64,183,80,14,148,5,233,218,255,165,1,149,35,0,180,51,192,224,200,59,251,43,87,220,220,96,56,69, | |||
226,133,3,8,147,201,33,18,94,50,73,17,231,170,164,252,62,107,5,28,249,123,0,116,125,87,30,138,29,66,112,57,22,155,243,133,99,197,154,249,118,167,59,62,45,89,252,230,145,186,53,24,61,122,170,151,192,245,138,214,7,128,126,2,218,3,180,17,104,126,144,250, | |||
225,122,52,45,128,150,1,125,29,128,200,46,131,190,122,34,55,249,46,153,221,101,154,80,166,219,71,156,110,75,43,239,73,120,41,73,96,136,45,201,73,156,155,1,223,65,67,172,36,44,116,48,117,11,102,159,46,215,61,116,166,166,37,41,35,69,140,192,126,121,180, | |||
110,77,26,245,47,123,179,229,210,168,25,102,109,108,166,62,113,176,236,25,188,246,179,160,147,175,13,72,140,2,200,49,156,216,183,7,196,222,80,172,148,230,181,38,39,160,244,215,219,234,200,233,198,205,228,76,211,15,51,44,14,221,2,232,215,216,94,7,152, | |||
90,137,115,170,84,134,55,55,236,42,87,100,167,203,181,41,241,49,47,130,104,198,120,239,2,160,107,122,25,96,62,21,211,232,250,236,2,218,74,218,98,209,193,106,56,119,252,30,128,124,35,144,223,253,203,98,114,191,235,35,25,177,116,84,159,251,242,227,64,76, | |||
159,215,211,192,205,5,13,27,68,37,154,29,15,216,93,230,7,123,29,96,171,205,121,195,201,179,77,203,87,127,83,146,62,127,70,255,134,241,57,137,139,11,213,235,182,193,169,135,129,22,145,192,102,139,66,213,48,176,178,146,130,253,20,13,134,4,179,225,32,94, | |||
143,234,128,206,115,251,195,197,14,54,139,251,85,172,48,227,169,105,153,75,79,201,192,125,242,54,155,75,79,142,215,175,19,213,233,143,191,14,12,116,125,175,1,140,6,67,173,218,252,247,173,63,86,103,77,190,38,201,158,147,169,192,224,194,22,16,205,232,243, | |||
46,33,193,143,55,119,167,161,63,140,51,78,46,160,215,72,219,236,82,176,245,61,6,85,22,3,200,156,0,196,245,143,224,66,189,152,151,250,39,173,152,155,228,3,178,129,28,169,251,148,152,236,77,47,66,63,247,235,113,128,225,166,24,153,90,186,229,64,85,246,144, | |||
116,185,61,111,72,2,130,251,1,136,230,92,250,71,21,36,188,154,140,170,140,44,154,48,240,6,13,136,4,27,100,52,186,22,6,248,187,111,83,37,35,223,29,28,127,179,157,205,108,119,177,155,204,165,164,88,253,45,38,70,204,166,170,176,103,220,36,184,89,162,209, | |||
226,120,108,219,143,213,79,242,185,44,199,236,73,105,248,167,222,3,112,145,75,222,9,130,191,25,202,182,29,232,47,64,152,102,179,20,232,241,16,168,17,116,207,94,198,8,154,191,190,50,50,140,195,101,89,254,99,245,170,251,127,85,111,61,47,249,144,171,39, | |||
246,123,178,180,159,124,220,157,192,237,199,66,206,193,240,32,60,155,221,117,119,193,153,166,123,93,46,183,96,250,152,84,204,149,250,20,192,77,143,0,112,9,181,168,31,135,142,55,209,128,197,47,33,114,207,208,176,251,125,0,162,90,199,97,9,86,141,76,185, | |||
167,192,87,31,27,237,106,82,163,63,146,101,118,104,231,246,148,136,30,94,84,169,91,112,78,103,73,157,48,60,169,144,207,99,191,2,224,98,96,254,173,8,0,215,219,238,64,171,151,180,77,38,188,31,162,123,224,92,244,219,52,253,215,223,86,36,230,37,189,54,34, | |||
249,143,196,43,170,61,96,50,84,234,14,18,131,237,220,61,254,132,53,153,221,228,94,142,170,201,188,180,74,101,204,82,38,136,74,251,37,137,31,0,112,113,170,13,179,35,111,34,145,211,176,247,48,45,87,137,19,18,84,108,135,162,41,129,214,209,152,184,63,92, | |||
236,1,218,162,148,141,89,153,29,127,179,179,205,63,38,196,96,87,145,10,221,129,62,84,236,135,148,131,167,212,170,77,211,146,20,66,213,176,44,197,199,164,45,199,9,19,215,81,124,176,72,100,181,28,52,94,168,91,243,33,13,132,132,106,48,45,130,251,136,253, | |||
254,1,71,190,58,43,118,74,129,156,159,118,254,179,179,77,59,112,37,198,3,104,255,4,29,96,184,40,159,78,32,44,169,172,55,178,134,100,200,55,242,184,172,117,192,189,177,212,80,17,145,200,107,248,204,179,169,40,197,252,172,189,33,184,71,41,213,197,152,68, | |||
48,53,128,223,149,196,9,7,174,29,16,119,67,75,187,46,110,36,213,205,135,209,19,152,21,52,128,1,84,41,208,211,96,84,85,84,171,140,249,251,78,52,76,158,116,77,210,89,177,144,243,49,136,18,204,101,122,133,132,54,59,35,212,109,50,208,88,204,254,160,98,58, | |||
216,110,211,27,20,100,59,181,81,252,53,184,156,44,38,251,179,220,228,59,127,21,176,219,189,205,252,90,20,154,87,6,152,225,39,176,137,0,234,157,54,135,107,113,179,193,150,110,115,184,213,9,114,129,80,42,226,162,152,121,21,56,247,21,106,141,174,38,87,78, | |||
108,139,132,118,8,104,2,105,75,8,248,138,4,39,180,138,118,9,198,189,31,161,253,244,17,13,250,96,74,239,91,48,160,92,126,226,48,227,244,185,77,91,126,170,254,63,150,203,99,111,253,236,214,193,239,151,36,137,135,222,5,131,224,68,192,28,12,23,100,0,141, | |||
209,155,236,43,117,6,219,10,56,146,88,41,255,189,140,20,241,70,54,139,161,119,186,220,200,181,56,207,155,1,116,59,185,114,158,83,164,180,145,64,3,233,234,136,67,65,186,102,61,117,193,144,161,158,241,137,232,221,15,52,42,128,235,236,236,35,25,113,44,81, | |||
148,125,254,131,154,150,252,68,42,242,187,36,162,111,4,96,63,53,90,28,183,197,240,217,91,83,19,68,247,198,8,56,223,156,169,110,153,117,240,148,42,213,106,119,161,222,85,147,182,172,200,25,164,7,51,68,66,216,176,243,103,122,35,74,65,186,38,26,109,251, | |||
73,219,98,186,108,159,207,209,106,186,23,12,46,137,159,162,218,33,226,38,172,234,39,27,127,62,194,213,96,44,148,56,92,150,97,104,23,249,13,48,53,162,102,0,184,95,187,92,30,69,188,148,255,156,56,134,59,7,191,95,175,49,173,254,232,155,98,165,84,196,59, | |||
35,18,112,48,231,24,215,18,97,62,81,2,137,158,118,27,116,58,166,216,238,238,166,30,70,209,139,121,91,111,2,205,161,253,228,219,216,244,51,191,211,134,57,44,193,206,190,210,188,239,20,130,126,173,185,91,6,155,138,89,167,47,24,1,47,19,253,2,152,206,229, | |||
222,165,214,89,254,225,114,185,181,113,50,254,159,57,28,22,58,255,125,43,26,12,47,255,243,155,146,76,208,189,206,156,12,249,119,164,109,9,200,212,43,137,136,8,109,184,140,117,16,13,43,30,236,198,117,48,167,26,87,87,12,7,122,2,40,254,50,214,251,227,1, | |||
76,72,156,139,21,102,108,87,74,199,97,146,62,184,74,45,96,81,171,6,209,103,246,139,131,39,171,154,204,207,185,221,158,204,56,153,0,103,89,190,4,209,96,1,227,234,177,157,63,215,78,250,185,72,205,28,147,29,223,8,162,122,23,205,23,122,144,132,97,165,128, | |||
96,0,76,95,31,235,226,53,14,210,224,9,246,205,242,78,152,0,245,254,52,127,131,31,104,225,15,136,187,177,28,197,52,86,36,48,59,154,18,156,46,219,128,78,1,6,238,77,3,206,93,194,100,16,165,68,196,125,23,46,134,171,227,28,240,249,164,194,114,221,83,91,127, | |||
172,225,74,98,56,100,242,136,20,204,9,222,11,163,110,6,13,16,68,91,67,255,114,0,157,176,239,202,52,34,250,208,243,73,219,82,24,116,183,110,232,196,62,65,169,249,28,220,47,222,79,144,171,164,252,148,175,70,245,193,91,120,136,214,82,201,52,216,85,99,58, | |||
5,216,108,117,222,229,116,121,38,11,249,156,47,4,60,246,74,175,239,11,46,210,147,95,236,42,39,96,84,17,224,94,34,228,179,119,130,113,133,226,235,54,18,189,13,109,10,140,245,86,161,36,12,48,152,241,34,229,220,149,212,229,242,167,13,69,67,213,223,4,1,104, | |||
255,30,28,63,179,153,199,18,19,189,173,30,56,217,156,115,69,128,113,122,202,229,246,60,233,114,187,43,249,60,22,186,62,222,69,213,147,243,139,26,199,158,173,105,33,224,26,145,113,67,19,189,186,5,93,163,209,87,1,192,184,50,66,19,0,184,79,248,128,60,35, | |||
128,251,201,233,247,7,249,201,197,53,124,182,100,91,186,124,34,49,217,212,128,159,43,175,51,14,94,12,186,87,10,174,208,103,108,22,243,4,38,104,35,232,32,178,231,110,62,80,149,228,6,201,159,150,44,34,113,50,222,49,56,135,179,46,227,209,240,138,98,128, | |||
209,117,225,209,32,133,63,105,176,223,211,168,210,41,210,182,40,253,110,18,88,6,11,131,2,140,137,244,254,218,52,47,103,42,166,88,156,30,43,198,165,69,128,87,223,75,2,140,145,42,173,222,54,29,124,221,74,120,187,205,103,197,155,242,151,10,221,132,218,198, | |||
182,69,117,233,41,18,2,174,209,183,52,147,63,151,118,194,213,222,156,52,74,245,40,29,12,40,150,243,186,112,29,43,149,20,74,202,205,254,112,113,153,144,35,223,135,73,122,26,115,107,89,144,139,166,103,189,35,101,168,86,111,77,237,155,32,194,209,87,220, | |||
174,147,29,105,53,141,166,84,140,96,49,193,242,74,144,243,157,96,100,225,42,59,5,21,37,204,171,28,92,59,13,96,44,167,64,47,33,129,77,34,168,104,127,35,85,146,246,165,173,126,47,83,229,177,37,7,101,124,229,116,179,3,147,70,46,158,7,56,15,176,199,67,18, | |||
120,92,214,78,223,165,18,154,102,219,245,101,117,6,54,24,94,4,173,231,4,153,160,22,12,176,202,14,110,196,213,220,80,20,63,79,185,239,3,234,234,248,35,150,81,71,175,167,191,71,174,213,44,204,219,143,243,187,233,148,121,114,22,17,198,97,127,30,32,134,27, | |||
123,8,252,98,227,57,99,145,136,92,98,65,29,27,173,228,58,181,41,87,26,195,229,119,12,205,153,172,206,153,101,117,250,214,215,112,158,36,197,10,138,233,3,229,210,48,91,180,139,94,247,101,206,33,187,252,155,180,197,149,39,1,253,195,15,119,17,35,98,5,12, | |||
194,124,227,166,1,175,31,238,39,27,151,172,211,219,198,235,12,182,153,118,167,123,202,190,19,13,162,138,122,3,177,128,167,50,110,104,2,170,205,41,192,108,123,58,123,72,38,131,93,6,28,124,180,94,95,48,25,222,246,185,20,7,43,172,54,87,150,72,198,81,249, | |||
22,16,195,116,144,19,103,154,178,154,90,108,173,239,197,66,14,201,72,17,151,210,63,55,225,42,224,78,13,21,149,104,77,243,59,124,142,211,126,171,169,33,245,172,31,210,12,251,237,99,133,32,115,195,29,57,107,114,53,205,150,101,63,158,82,77,41,56,163,29, | |||
80,222,96,32,53,231,140,68,103,176,159,255,114,181,202,72,114,251,199,98,210,196,30,127,158,51,62,102,96,49,152,104,147,169,254,190,8,96,17,143,203,76,2,64,59,58,244,74,224,108,226,112,182,13,226,120,57,223,46,19,243,176,88,137,133,70,94,162,189,161, | |||
232,194,209,45,244,9,3,226,255,199,121,220,181,212,98,126,243,50,225,199,142,17,173,167,231,100,127,164,75,20,13,126,2,128,189,227,135,159,235,18,75,107,245,76,117,243,133,238,53,159,203,66,59,135,200,37,173,82,126,36,26,191,126,44,12,55,9,56,178,98, | |||
46,75,100,33,151,72,180,104,5,216,225,244,36,153,109,174,125,29,206,101,53,234,44,231,223,164,196,9,241,15,87,195,13,113,241,118,118,148,131,139,163,26,107,120,24,225,191,166,209,126,66,112,255,64,218,179,50,48,189,86,218,137,4,88,9,186,117,133,217,234, | |||
252,99,121,189,254,133,127,110,60,161,220,119,162,125,41,20,26,174,241,50,62,73,75,18,185,166,143,77,173,207,78,151,55,40,36,188,114,58,40,74,136,31,19,29,136,7,12,132,130,20,113,238,37,7,2,62,56,151,197,98,136,156,46,119,93,135,115,10,13,21,207,62,0, | |||
215,210,210,11,125,162,28,96,35,105,95,148,150,77,173,92,180,144,113,106,20,11,182,61,68,174,156,150,132,224,46,155,53,232,93,12,89,46,219,87,208,176,104,243,254,42,46,234,216,243,81,13,49,151,76,202,77,114,142,24,24,119,122,120,150,98,87,140,128,131, | |||
117,180,142,119,177,94,71,105,31,201,8,173,205,105,224,162,106,245,53,148,91,173,104,46,155,73,92,46,143,246,74,87,72,84,8,240,71,141,87,1,184,216,90,40,199,18,42,130,151,80,125,136,150,47,46,195,233,108,69,255,203,0,238,193,62,146,107,150,173,223,81, | |||
58,253,63,123,43,217,45,38,7,53,138,8,25,156,38,35,119,78,205,180,12,84,74,255,33,151,240,48,143,188,10,64,233,78,17,54,149,152,151,168,182,58,244,131,168,15,190,231,2,128,177,172,147,167,19,243,30,196,136,141,234,165,235,174,2,128,113,32,159,166,175, | |||
49,189,6,197,38,206,172,205,244,195,47,254,4,196,242,118,181,206,178,114,249,191,10,102,236,57,222,112,254,36,151,195,36,183,77,78,179,222,50,177,223,222,88,41,127,105,176,202,17,195,117,92,192,185,47,241,57,18,28,44,111,195,235,133,240,89,190,55,146, | |||
229,4,51,221,10,250,160,163,5,166,85,136,219,49,151,75,248,70,170,240,227,175,2,128,207,81,144,177,161,241,185,152,180,205,14,117,166,183,119,131,203,242,119,77,139,245,249,77,251,171,110,56,116,186,241,2,3,234,247,215,42,201,188,105,153,31,3,184,11, | |||
130,93,107,154,94,239,110,250,220,47,120,147,226,17,96,51,136,13,13,143,195,236,8,92,29,40,252,214,23,34,97,235,92,180,215,226,82,94,5,0,31,247,73,132,155,70,1,238,44,21,24,243,174,86,221,62,116,205,136,227,197,154,187,190,59,84,195,198,217,55,47,231, | |||
206,28,223,151,204,185,46,109,61,159,199,70,206,173,10,213,115,211,103,37,212,78,104,5,216,104,115,184,85,192,193,29,203,42,20,101,245,149,186,112,6,9,77,119,106,213,17,18,94,75,64,67,213,90,87,54,208,74,181,159,144,203,100,75,116,104,239,130,104,86, | |||
213,156,179,46,251,96,115,177,192,100,105,159,159,152,58,42,197,62,127,70,255,15,19,20,130,197,161,44,97,72,87,66,96,44,3,87,51,230,224,114,222,86,14,230,176,24,26,22,136,104,223,196,45,84,250,96,124,169,229,226,139,22,218,69,59,192,168,71,139,104,10, | |||
205,124,226,223,178,87,109,172,32,115,35,184,67,55,239,58,90,151,102,52,183,23,194,139,147,242,200,173,215,165,149,2,231,174,239,177,250,148,109,5,91,158,70,176,17,96,141,68,196,45,54,152,28,130,142,1,12,54,139,121,48,57,78,216,241,247,209,46,162,139, | |||
104,13,75,116,143,230,250,249,155,213,183,231,172,225,21,150,105,103,131,159,203,109,239,63,6,89,60,55,155,164,37,139,113,134,233,167,158,252,19,222,193,196,132,23,54,224,210,83,38,171,163,165,99,8,18,70,223,193,140,228,139,150,208,136,162,28,224,157, | |||
244,136,42,203,159,85,26,232,78,109,210,52,91,111,62,242,171,122,104,163,174,221,219,185,238,154,100,146,151,157,128,226,30,235,81,186,122,227,207,120,167,251,242,185,28,86,157,201,226,184,29,196,244,121,63,87,38,230,237,207,206,144,213,122,141,173,171, | |||
160,161,120,222,73,183,246,65,128,59,171,161,133,150,243,246,129,113,211,171,26,155,45,207,31,249,85,195,118,187,219,42,17,74,69,92,50,107,130,82,203,97,51,231,247,230,190,75,94,128,139,65,140,28,174,109,52,41,59,112,113,117,255,190,210,131,73,10,65, | |||
199,78,136,214,86,78,173,97,127,167,67,113,5,226,254,41,25,207,231,21,150,234,20,245,154,246,105,220,107,250,43,8,72,198,141,189,189,111,3,211,235,40,163,24,145,137,185,138,70,157,101,58,173,183,209,106,60,164,198,199,108,31,59,36,193,55,202,85,17,197, | |||
0,123,167,67,253,5,216,27,16,153,117,224,164,234,130,128,6,48,134,61,86,202,219,210,219,127,136,233,163,148,247,8,120,236,29,46,151,103,158,221,225,186,133,198,52,91,115,112,199,12,73,56,234,19,158,179,68,41,184,56,200,177,70,164,154,130,155,230,199, | |||
111,74,193,53,106,110,208,152,71,149,84,183,151,218,194,56,51,24,167,199,65,237,21,135,13,192,52,218,178,138,193,32,90,147,213,249,12,128,60,137,2,143,34,102,69,20,3,235,109,104,117,22,131,5,237,38,254,207,119,227,172,79,214,177,18,205,5,174,148,88,200, | |||
37,32,249,188,115,231,225,3,48,140,184,125,50,17,119,99,139,209,62,208,238,112,191,233,227,23,227,26,157,191,121,71,109,20,3,92,78,95,251,59,223,141,97,76,101,245,57,227,5,211,134,2,30,139,244,137,23,162,117,221,18,86,0,3,183,26,193,33,95,150,32,227, | |||
127,223,108,180,245,183,217,93,95,162,85,141,89,150,62,213,78,213,81,10,176,138,6,56,112,80,143,243,243,55,56,216,149,53,141,166,11,0,142,149,242,109,192,44,184,205,157,59,172,0,246,138,100,161,128,243,162,36,134,187,173,197,104,251,157,217,234,88,214, | |||
161,178,90,180,26,89,21,180,148,146,223,75,113,178,227,103,53,234,12,54,153,217,114,97,218,180,144,199,178,132,131,120,110,13,182,92,38,10,114,18,64,197,26,142,74,117,179,117,158,66,226,137,135,247,15,81,46,46,138,82,128,11,233,209,111,128,175,75,255, | |||
179,179,180,182,69,102,115,184,194,246,79,93,54,175,185,117,105,4,151,245,170,52,134,91,93,215,104,198,73,110,44,132,153,73,71,121,52,26,92,222,140,150,128,106,123,121,3,27,190,205,233,242,96,184,82,20,214,0,99,227,113,217,223,202,196,188,233,131,210, | |||
100,219,192,63,198,10,233,115,232,166,79,199,162,16,224,2,122,28,216,221,11,169,154,204,66,151,203,141,137,140,140,176,6,152,114,50,78,63,61,156,32,23,160,21,141,161,26,12,227,229,71,33,192,213,116,101,95,156,191,63,40,209,252,128,209,42,35,135,125,97, | |||
55,218,28,110,210,168,179,38,133,3,23,251,87,177,180,109,102,2,1,198,186,202,14,31,125,21,53,141,170,30,239,138,66,191,218,222,138,55,147,226,229,2,45,88,204,23,124,110,48,59,8,184,78,40,234,21,17,1,48,5,217,142,25,127,212,244,47,36,193,43,133,31,14, | |||
205,55,153,193,239,10,125,110,143,19,87,213,87,167,167,136,245,190,159,107,245,54,82,167,54,143,2,49,157,25,49,0,119,104,24,175,45,142,34,128,187,106,52,226,156,113,109,106,188,240,2,128,49,85,167,162,193,32,210,25,236,211,34,21,96,12,95,158,34,191,53, | |||
12,105,22,15,203,82,92,180,64,252,196,153,38,162,105,177,206,11,246,70,87,61,2,176,79,245,25,245,85,14,112,58,150,78,206,72,145,252,50,80,121,225,34,135,115,90,11,57,120,82,133,211,175,239,96,85,222,222,120,56,111,78,86,87,27,102,240,53,68,9,80,93,205, | |||
51,195,157,91,176,70,213,166,137,195,47,78,254,216,145,95,71,126,41,215,97,42,235,244,94,0,23,83,113,22,116,7,224,74,210,182,85,93,84,112,34,61,98,50,67,32,97,41,204,248,24,123,164,110,205,193,156,44,185,54,165,67,254,26,174,24,92,185,241,23,190,182, | |||
197,250,12,221,225,172,39,219,88,160,169,93,6,152,230,13,255,43,192,14,9,215,38,192,73,6,248,79,40,145,2,169,19,141,253,55,253,104,221,154,212,4,153,96,249,232,193,113,78,92,80,230,219,202,235,12,228,253,77,191,142,7,145,189,28,203,84,245,16,247,98,197, | |||
30,92,222,186,187,91,37,24,160,67,48,155,190,46,74,184,216,155,45,26,232,36,1,250,187,19,226,100,252,93,67,51,228,181,50,209,197,210,254,120,73,19,235,208,233,115,179,205,86,231,3,151,171,41,25,36,96,145,112,1,195,95,232,71,219,131,81,99,99,109,148,137, | |||
233,174,4,113,22,239,171,120,91,59,122,112,252,198,241,67,19,46,202,89,195,192,199,166,125,85,220,3,39,85,88,17,224,17,172,170,16,170,255,96,182,58,222,50,152,237,184,118,249,63,64,251,131,1,48,230,29,69,67,18,128,119,205,115,87,254,75,86,145,122,203, | |||
29,49,2,206,218,187,110,200,44,141,149,94,156,133,138,9,121,159,108,45,225,126,127,168,230,37,171,205,249,70,103,165,248,187,98,49,107,245,182,207,11,206,106,231,129,164,192,32,212,91,152,18,29,12,128,113,27,26,220,197,211,28,225,0,79,4,61,140,10,116, | |||
95,23,237,138,199,193,101,202,144,75,200,226,167,238,28,170,197,133,221,29,27,26,93,171,190,46,146,174,220,88,180,160,168,66,119,16,128,158,139,64,119,117,82,2,11,199,2,13,214,155,108,127,41,44,211,30,90,247,253,153,113,60,14,171,62,81,33,188,199,155, | |||
205,217,109,128,169,79,140,0,239,142,112,128,49,169,33,5,254,15,206,121,119,37,169,1,139,161,63,246,241,177,27,107,7,167,201,87,252,97,74,186,17,43,19,117,108,118,135,155,236,4,247,233,221,175,126,201,218,126,184,118,77,189,218,132,181,164,31,184,84, | |||
17,179,43,0,27,3,132,59,156,190,120,186,76,251,217,215,123,43,95,253,104,115,113,124,94,118,130,102,228,160,56,220,148,236,252,108,95,176,170,196,22,80,144,177,250,157,34,66,1,198,137,134,161,212,104,220,73,2,223,243,9,153,5,19,21,151,139,133,156,135, | |||
39,143,72,86,184,61,158,133,31,110,42,190,228,98,113,180,174,215,124,119,70,180,251,88,253,236,97,89,138,235,111,26,215,119,33,128,86,72,251,18,103,235,42,188,105,82,116,27,59,92,144,128,201,8,227,108,118,87,94,81,165,46,235,191,71,235,149,69,21,205, | |||
108,22,88,238,119,79,207,34,163,6,197,189,12,231,55,248,20,178,11,222,14,224,116,177,22,46,150,190,47,66,1,70,177,140,123,44,226,254,19,215,81,219,66,216,197,107,173,74,140,201,94,62,103,200,135,247,85,171,140,143,190,245,249,169,164,242,122,195,249, | |||
130,54,151,106,184,142,73,153,36,34,253,18,69,36,61,89,76,50,83,197,132,231,51,75,133,19,24,170,38,11,57,85,214,68,48,69,215,96,118,182,214,248,24,57,48,214,117,247,141,89,101,217,233,242,191,2,176,159,117,188,110,80,39,164,1,228,193,164,45,132,25,169, | |||
92,140,251,9,223,79,37,27,174,150,239,106,185,40,172,241,177,65,202,239,251,214,188,97,159,103,151,213,233,151,236,200,175,27,181,231,88,61,219,183,92,82,183,124,186,196,152,214,181,79,83,71,167,108,73,137,139,193,197,109,251,125,57,55,36,0,83,144,145, | |||
3,150,70,40,192,232,3,99,233,125,92,9,136,226,238,57,210,245,13,190,236,116,176,63,180,48,111,63,183,169,197,122,127,205,57,211,131,95,237,169,144,30,47,209,96,90,79,151,46,138,245,202,102,140,75,37,19,135,39,105,211,146,197,175,242,184,44,84,141,245, | |||
116,145,2,233,9,128,49,35,2,147,3,254,8,196,137,64,144,63,1,67,11,55,118,198,212,89,172,102,23,140,16,35,214,178,252,244,222,220,255,176,121,76,197,115,103,106,90,174,221,119,162,161,111,97,153,78,160,51,216,176,78,55,49,219,46,54,220,25,140,182,210, | |||
15,184,70,59,41,86,64,6,245,147,181,220,50,81,89,172,144,240,177,156,243,106,127,214,27,135,36,103,8,58,7,247,40,192,93,155,70,69,40,23,163,79,140,33,75,180,112,231,7,225,154,152,87,139,203,127,54,200,249,105,219,238,28,182,14,99,216,227,65,63,143,7, | |||
241,61,200,96,118,100,52,233,109,146,22,163,253,188,158,22,242,217,4,163,98,124,30,75,213,55,65,84,60,64,41,45,134,247,120,141,29,152,16,233,239,141,67,5,48,94,23,171,174,126,67,58,47,57,20,142,109,9,112,241,155,240,63,48,96,127,40,136,215,53,210,184, | |||
1,90,233,235,65,116,227,226,53,148,120,114,187,195,37,107,54,218,211,29,14,119,107,172,83,192,103,27,21,18,94,41,253,141,134,146,9,11,159,5,210,66,154,245,7,29,132,69,195,150,69,32,192,88,233,117,58,128,220,2,255,225,0,9,93,109,206,163,212,189,44,128, | |||
123,253,16,138,27,132,26,96,57,53,184,30,234,134,203,209,27,13,185,6,75,242,227,158,71,56,151,139,201,134,61,145,33,105,167,62,240,125,0,120,80,194,191,33,45,232,77,107,93,120,43,179,70,82,243,221,137,20,59,124,27,185,124,105,225,96,130,139,190,55,86, | |||
213,43,11,214,69,67,94,177,157,238,228,137,27,70,175,143,48,144,81,255,226,38,215,106,234,19,215,135,248,126,168,151,177,200,233,79,208,103,158,96,93,180,199,50,239,169,184,94,66,197,181,44,66,64,70,139,122,36,116,120,37,60,255,75,116,160,134,66,29,124, | |||
1,180,152,198,245,35,71,7,95,2,228,24,234,118,160,126,139,148,125,134,223,167,156,133,214,45,78,168,228,6,121,0,225,245,223,1,112,155,66,241,240,61,186,169,6,93,61,128,250,24,55,99,220,23,33,0,207,165,22,53,218,19,184,85,93,176,50,88,44,116,224,188,21, | |||
42,112,123,156,131,59,112,51,110,201,131,27,38,227,222,135,233,97,14,50,206,240,224,36,74,49,213,203,24,196,233,106,188,29,197,48,134,66,95,0,96,15,135,250,193,89,189,213,99,223,126,92,109,155,249,96,63,12,34,20,82,113,141,211,97,225,186,201,37,62,31, | |||
14,72,12,17,86,83,151,15,211,101,3,13,197,162,190,197,137,129,151,0,220,95,122,226,193,25,225,208,123,192,205,56,217,62,135,138,172,112,213,205,232,198,252,9,128,249,12,158,23,7,227,90,18,216,30,73,5,212,72,219,65,85,21,185,106,0,238,96,105,63,79,117, | |||
116,6,9,191,194,167,88,6,248,53,10,110,60,53,186,6,118,194,177,24,176,192,121,242,127,247,36,176,97,9,48,5,25,213,198,80,26,104,152,71,129,14,23,209,141,193,14,172,196,131,53,153,119,80,3,108,5,13,136,116,212,179,168,95,113,203,187,205,0,108,85,111,61, | |||
112,216,1,220,193,165,66,144,39,211,160,195,160,48,1,218,187,87,225,99,20,72,148,56,11,72,123,40,19,57,118,27,253,206,97,0,215,214,155,15,27,182,0,83,144,241,128,57,196,41,20,100,180,184,71,134,129,232,70,96,63,5,240,30,129,103,196,245,73,56,173,136, | |||
57,92,24,173,195,234,178,197,189,33,142,35,14,224,203,128,142,217,135,184,57,198,173,84,52,98,7,203,123,233,113,22,81,160,109,225,218,95,17,7,176,15,208,232,162,12,160,238,74,46,213,213,131,122,216,56,171,167,162,122,179,207,30,15,191,1,28,2,176,185, | |||
148,139,113,242,28,87,12,224,58,163,28,74,233,36,240,20,216,206,90,107,85,60,160,255,2,109,5,58,29,204,9,130,96,182,255,23,96,0,39,6,154,199,185,141,173,49,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; | |||
const char* logo_cabbage_black_no_text_png = (const char*) temp_95a301a0; | |||
const char* getNamedResource (const char*, int&) throw(); | |||
const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() | |||
{ | |||
unsigned int hash = 0; | |||
if (resourceNameUTF8 != 0) | |||
while (*resourceNameUTF8 != 0) | |||
hash = 31 * hash + (unsigned int) *resourceNameUTF8++; | |||
switch (hash) | |||
{ | |||
case 0x9971560d: numBytes = 7732; return cabbageLogoHBlueText_png; | |||
case 0xb3347c97: numBytes = 32229; return logo_cabbage_Black_png; | |||
case 0xdb211163: numBytes = 7710; return logo_cabbage_black_no_text_png; | |||
default: break; | |||
} | |||
numBytes = 0; | |||
return 0; | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
/* ========================================================================================= | |||
This is an auto-generated file: Any edits you make may be overwritten! | |||
*/ | |||
#ifndef BINARYDATA_INCLUDED | |||
#define BINARYDATA_INCLUDED | |||
namespace BinaryData | |||
{ | |||
extern const char* cabbageLogoHBlueText_png; | |||
const int cabbageLogoHBlueText_pngSize = 7732; | |||
extern const char* logo_cabbage_Black_png; | |||
const int logo_cabbage_Black_pngSize = 32229; | |||
extern const char* logo_cabbage_black_no_text_png; | |||
const int logo_cabbage_black_no_text_pngSize = 7710; | |||
// If you provide the name of one of the binary resource variables above, this function will | |||
// return the corresponding data and its size (or a null pointer if the name isn't found). | |||
const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); | |||
} | |||
#endif |
@@ -0,0 +1,197 @@ | |||
/* | |||
modified version of juceCalloutbox | |||
*/ | |||
#include "CabbageCallOutBox.h" | |||
CabbageCallOutBox::CabbageCallOutBox (Component& c, const Rectangle<int>& area, Component* const parent) | |||
: borderSpace (2), arrowSize (1.0f), content (c) | |||
{ | |||
addAndMakeVisible (&content); | |||
if (parent != nullptr) | |||
{ | |||
parent->addChildComponent (this); | |||
updatePosition (area, parent->getLocalBounds()); | |||
setVisible (true); | |||
} | |||
else | |||
{ | |||
setAlwaysOnTop (true); | |||
updatePosition (area, Desktop::getInstance().getDisplays() | |||
.getDisplayContaining (area.getCentre()).userArea); | |||
addToDesktop (ComponentPeer::windowIsTemporary); | |||
} | |||
} | |||
CabbageCallOutBox::~CabbageCallOutBox() | |||
{ | |||
} | |||
//============================================================================== | |||
class CallOutBoxCallback : public ModalComponentManager::Callback | |||
{ | |||
public: | |||
CallOutBoxCallback (Component* c, const Rectangle<int>& area, Component* parent) | |||
: content (c), callout (*c, area, parent) | |||
{ | |||
callout.setVisible (true); | |||
callout.enterModalState (true, this); | |||
} | |||
void modalStateFinished (int) {} | |||
ScopedPointer<Component> content; | |||
CabbageCallOutBox callout; | |||
JUCE_DECLARE_NON_COPYABLE (CallOutBoxCallback) | |||
}; | |||
CabbageCallOutBox& CabbageCallOutBox::launchAsynchronously (Component* content, | |||
const Rectangle<int>& area, | |||
Component* parent) | |||
{ | |||
jassert (content != nullptr); // must be a valid content component! | |||
return (new CallOutBoxCallback (content, area, parent))->callout; | |||
} | |||
//============================================================================== | |||
void CabbageCallOutBox::paint (Graphics& g) | |||
{ | |||
g.fillAll(Colours::black); | |||
// getLookAndFeel().drawCallOutBoxBackground (*this, g, outline, background); | |||
} | |||
void CabbageCallOutBox::resized() | |||
{ | |||
content.setTopLeftPosition (0, 0); | |||
refreshPath(); | |||
} | |||
void CabbageCallOutBox::moved() | |||
{ | |||
refreshPath(); | |||
} | |||
void CabbageCallOutBox::childBoundsChanged (Component*) | |||
{ | |||
updatePosition (targetArea, availableArea); | |||
} | |||
bool CabbageCallOutBox::hitTest (int x, int y) | |||
{ | |||
return outline.contains ((float) x, (float) y); | |||
} | |||
enum { callOutBoxDismissCommandId = 0x4f83a04b }; | |||
void CabbageCallOutBox::inputAttemptWhenModal() | |||
{ | |||
const Point<int> mousePos (getMouseXYRelative() + getBounds().getPosition()); | |||
if (targetArea.contains (mousePos)) | |||
{ | |||
// if you click on the area that originally popped-up the callout, you expect it | |||
// to get rid of the box, but deleting the box here allows the click to pass through and | |||
// probably re-trigger it, so we need to dismiss the box asynchronously to consume the click.. | |||
postCommandMessage (callOutBoxDismissCommandId); | |||
} | |||
else | |||
{ | |||
exitModalState (0); | |||
setVisible (false); | |||
} | |||
} | |||
void CabbageCallOutBox::handleCommandMessage (int commandId) | |||
{ | |||
Component::handleCommandMessage (commandId); | |||
if (commandId == callOutBoxDismissCommandId) | |||
{ | |||
exitModalState (0); | |||
setVisible (false); | |||
} | |||
} | |||
bool CabbageCallOutBox::keyPressed (const KeyPress& key) | |||
{ | |||
if (key.isKeyCode (KeyPress::escapeKey)) | |||
{ | |||
inputAttemptWhenModal(); | |||
return true; | |||
} | |||
return false; | |||
} | |||
void CabbageCallOutBox::updatePosition (const Rectangle<int>& newAreaToPointTo, const Rectangle<int>& newAreaToFitIn) | |||
{ | |||
targetArea = newAreaToPointTo; | |||
availableArea = newAreaToFitIn; | |||
Rectangle<int> newBounds (content.getWidth(), | |||
content.getHeight()); | |||
const int hw = newBounds.getWidth() / 2; | |||
const int hh = newBounds.getHeight() / 2; | |||
const float hwReduced = 0;//(float) (hw - borderSpace); | |||
const float hhReduced = 0;//(float) (hh - borderSpace); | |||
const float arrowIndent = 0;//borderSpace - arrowSize; | |||
Point<float> targets[4] = { Point<float> ((float) targetArea.getCentreX(), (float) targetArea.getBottom()), | |||
Point<float> ((float) targetArea.getRight(), (float) targetArea.getCentreY()), | |||
Point<float> ((float) targetArea.getX(), (float) targetArea.getCentreY()), | |||
Point<float> ((float) targetArea.getCentreX(), (float) targetArea.getY()) }; | |||
Line<float> lines[4] = { Line<float> (targets[0].translated (-hwReduced, hh - arrowIndent), targets[0].translated (hwReduced, hh - arrowIndent)), | |||
Line<float> (targets[1].translated (hw - arrowIndent, -hhReduced), targets[1].translated (hw - arrowIndent, hhReduced)), | |||
Line<float> (targets[2].translated (-(hw - arrowIndent), -hhReduced), targets[2].translated (-(hw - arrowIndent), hhReduced)), | |||
Line<float> (targets[3].translated (-hwReduced, -(hh - arrowIndent)), targets[3].translated (hwReduced, -(hh - arrowIndent))) }; | |||
const Rectangle<float> centrePointArea (newAreaToFitIn.reduced (hw, hh).toFloat()); | |||
const Point<float> targetCentre (targetArea.getCentre().toFloat()); | |||
float nearest = 1.0e9f; | |||
for (int i = 0; i < 4; ++i) | |||
{ | |||
Line<float> constrainedLine (centrePointArea.getConstrainedPoint (lines[i].getStart()), | |||
centrePointArea.getConstrainedPoint (lines[i].getEnd())); | |||
const Point<float> centre (constrainedLine.findNearestPointTo (targetCentre)); | |||
float distanceFromCentre = centre.getDistanceFrom (targets[i]); | |||
if (! (centrePointArea.contains (lines[i].getStart()) || centrePointArea.contains (lines[i].getEnd()))) | |||
distanceFromCentre += 1000.0f; | |||
if (distanceFromCentre < nearest) | |||
{ | |||
nearest = distanceFromCentre; | |||
targetPoint = targets[i]; | |||
newBounds.setPosition ((int) (centre.x - hw), | |||
(int) (centre.y - hh)); | |||
} | |||
} | |||
setBounds (newBounds); | |||
} | |||
void CabbageCallOutBox::refreshPath() | |||
{ | |||
repaint(); | |||
background = Image::null; | |||
outline.clear(); | |||
outline.addRectangle(1, 1, getWidth()-2, getHeight()-2); | |||
/* | |||
const float gap = 4.5f; | |||
outline.addBubble (content.getBounds().toFloat().expanded (gap, gap), | |||
getLocalBounds().toFloat(), | |||
targetPoint - getPosition().toFloat(), | |||
9.0*/ | |||
} |
@@ -0,0 +1,66 @@ | |||
#ifndef __CABBAGE_CALLOUTBOX | |||
#define __CABBAGE_CALLOUTBOX | |||
#include "JuceHeader.h" | |||
/* | |||
Copyright (C) 2031 Rory Walsh | |||
Cabbage is free software; you can redistribute it | |||
and/or modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
Cabbage is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with Csound; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA | |||
*/ | |||
class CabbageCallOutBox : public Component | |||
{ | |||
public: | |||
//============================================================================== | |||
CabbageCallOutBox (Component& contentComponent, | |||
const Rectangle<int>& areaToPointTo, | |||
Component* parentComponent); | |||
~CabbageCallOutBox(); | |||
void updatePosition (const Rectangle<int>& newAreaToPointTo, | |||
const Rectangle<int>& newAreaToFitIn); | |||
static CabbageCallOutBox& launchAsynchronously (Component* contentComponent, | |||
const Rectangle<int>& areaToPointTo, | |||
Component* parentComponent); | |||
//============================================================================== | |||
void paint (Graphics& g); | |||
void resized(); | |||
void moved(); | |||
void childBoundsChanged (Component*); | |||
bool hitTest (int x, int y); | |||
void inputAttemptWhenModal(); | |||
bool keyPressed (const KeyPress& key); | |||
void handleCommandMessage (int commandId); | |||
private: | |||
//============================================================================== | |||
int borderSpace; | |||
float arrowSize; | |||
Component& content; | |||
Path outline; | |||
Point<float> targetPoint; | |||
Rectangle<int> availableArea, targetArea; | |||
Image background; | |||
void refreshPath(); | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CabbageCallOutBox) | |||
}; | |||
#endif // __JUCE_CALLOUTBOX_JUCEHEADER__ |
@@ -0,0 +1,304 @@ | |||
/* | |||
Copyright (C) 2007 Rory Walsh | |||
Cabbage is free software; you can redistribute it | |||
and/or modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
Cabbage is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU Lesser General Public License for more details. | |||
// You should have received a copy of the GNU Lesser General Public | |||
License along with Csound; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA | |||
*/ | |||
#ifndef CABBPARSE_H | |||
#define CABBPARSE_H | |||
#include <stdio.h> | |||
#include <string> | |||
#include <iostream> | |||
#include <vector> | |||
#include <string> | |||
#include <cctype> | |||
#include <algorithm> | |||
#include <fstream> | |||
#include <sstream> | |||
#include "CabbageUtils.h" | |||
namespace CabbageIDs | |||
{ | |||
static const Identifier top = "top"; | |||
static const Identifier left = "left"; | |||
static const Identifier width = "width"; | |||
static const Identifier height = "height"; | |||
static const Identifier min = "min"; | |||
static const Identifier max = "max"; | |||
static const Identifier value = "value"; | |||
static const Identifier channel = "channel"; | |||
static const Identifier colour = "colour"; | |||
static const Identifier tablecolour = "tablecolour"; | |||
static const Identifier fontcolour= "fontcolour"; | |||
static const Identifier items = "items"; | |||
static const Identifier text = "text"; | |||
static const Identifier range = "range"; | |||
static const Identifier sliderrange = "sliderrange"; | |||
static const Identifier amprange = "amprange"; | |||
static const Identifier caption = "caption"; | |||
static const Identifier basetype = "basetype"; | |||
static const Identifier textbox = "textbox"; | |||
static const Identifier name = "name"; | |||
static const Identifier type = "type"; | |||
static const Identifier trackercolour = "trackercolour"; | |||
static const Identifier sliderskew = "sliderskew"; | |||
static const Identifier sliderincr = "sliderince"; | |||
static const Identifier midichan = "midichan"; | |||
static const Identifier midictrl = "midictrl"; | |||
static const Identifier kind = "kind"; | |||
static const Identifier decimalplaces = "decimalplaces"; | |||
static const Identifier mode = "mode"; | |||
static const Identifier shape = "shape"; | |||
static const Identifier channeltype = "channeltype"; | |||
static const Identifier comborange = "comborange"; | |||
static const Identifier populate = "populate"; | |||
static const Identifier outline = "outline"; | |||
static const Identifier popup = "popup"; | |||
static const Identifier plant = "plant"; | |||
static const Identifier line = "line"; | |||
static const Identifier tablenumber = "tablenumber"; | |||
static const Identifier resizemode = "resizemode"; | |||
static const Identifier drawmode = "drawmode"; | |||
static const Identifier readonly = "readonly"; | |||
static const Identifier xyautoindex = "xyautoindex"; | |||
static const Identifier file = "file"; | |||
static const Identifier latched = "latched"; | |||
static const Identifier xchannel = "xchannel"; | |||
static const Identifier ychannel = "ychannel"; | |||
static const Identifier minx = "minx"; | |||
static const Identifier miny = "miny"; | |||
static const Identifier maxx = "maxx"; | |||
static const Identifier maxy = "maxy"; | |||
static const Identifier valuex = "valuex"; | |||
static const Identifier fill = "fill"; | |||
static const Identifier valuey = "valuey"; | |||
static const Identifier textcolour = "textcolour"; | |||
static const Identifier pluginid = "pluginid"; | |||
static const Identifier tabs = "tabs"; | |||
static const Identifier tabbed = "tabbed"; | |||
static const Identifier rangey = "rangey"; | |||
static const Identifier rangex = "rangex"; | |||
static const Identifier tabpage = "tabpage"; | |||
static const Identifier filetype = "filetype"; | |||
static const Identifier workingdir = "workingdir"; | |||
static const Identifier author = "author"; | |||
static const Identifier xychannel = "xychannel"; | |||
static const Identifier guirefresh = "guirefresh"; | |||
//type of widgets/controls/messages | |||
static const String combobox = "combobox"; | |||
static const String rslider = "rslider"; | |||
static const String hslider = "hslider"; | |||
static const String vslider = "vslider"; | |||
static const String checkbox = "checkbox"; | |||
static const String button = "button"; | |||
static const String filebutton = "filebutton"; | |||
static const String table = "table"; | |||
static const String groupbox = "groupbox"; | |||
static const String image = "image"; | |||
static const String form = "form"; | |||
static const String xypad = "xypad"; | |||
static const String stringchannel = "string"; | |||
static const String hostbpm = "HOST_BPM"; | |||
static const String timeinseconds = "TIME_IN_SECONDS"; | |||
static const String isplaying = "IS_PLAYING"; | |||
static const String isrecording = "IS_RECORDING"; | |||
static const String hostppqpos = "HOST_PPQ_POS"; | |||
static const String csoundoutput = "csoundoutput"; | |||
}; | |||
class CabbageGUIClass : public CabbageUtils | |||
{ | |||
double width, height, top, left, isRect, min, max, minX, minY, maxX, tabbed, maxY, comboRange, fftSize, overlapSize, frameSize, | |||
noOfMenus, onoff, midiChan, midiCtrl, sliderRange, xypadRangeY, xypadRangeX, noSteps, noPatterns, pvsChannel, alpha, | |||
line, anchor, linkTo, scaleX, scaleY, value, valueX, valueY, maxItems, sliderIncr, sliderSkew, decimalPlaces, rCtrls, lineIsVertical; | |||
StringArray items, onoffcaptions, key, channels, snapshotData, colours; | |||
String channel, name, sizeText, posText, boundsText, text, type, plant, reltoplant, bounds, range, fileType, workingDir, | |||
shape, beveltype, caption, kind, topitem, yChannel, xChannel, author, native, basetype, | |||
exit, csstdout, cssetup, file, debugMessage, xyChannel, pluginID, tabpage, preset; | |||
Colour outline, fill, fontcolour, textcolour, colour, trackerFill; | |||
int tableNum, textBox, numPresets, masterSnap, plantButton, xyAutoIndex, paramIndex, numTables, soundfilerIndex; | |||
Array<int> vuConfig; | |||
Array<int> tableNumbers; | |||
Array<float> tableChannelValues; | |||
//JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CabbageGUIClass); | |||
public: | |||
//constructor | |||
NamedValueSet cabbageIdentifiers; | |||
CabbageGUIClass(String str, int ID); | |||
CabbageGUIClass(){}; | |||
~CabbageGUIClass(); | |||
int parse(String str); | |||
float getNumProp(Identifier prop); | |||
float getNumProp(Identifier prop, int index); | |||
void setNumProp(Identifier prop, float val); | |||
void setTableChannelValues(int index, float val); | |||
float getTableChannelValues(int index); | |||
void addTableChannelValues(); | |||
void setStringProp(Identifier prop, String val); | |||
void setStringProp(Identifier prop, int index, String value); | |||
String getStringProp(Identifier prop); | |||
String getStringProp(Identifier prop, int index); | |||
String getPropsString(); | |||
String getColourProp(Identifier prop); | |||
float getNumPropVal(Identifier prop); | |||
void setNumPropVal(Identifier prop, float val); | |||
static String getCabbageCodeFromIdentifiers(NamedValueSet props); | |||
static String getStringForIdentifier(var props, String identifier, String type); | |||
Rectangle<int> getBounds(){ | |||
Rectangle<int> bounds(left, top, width, height); | |||
return bounds; | |||
} | |||
void setBounds(Rectangle<int> bounds){ | |||
left = bounds.getX(); | |||
top = bounds.getY(); | |||
width = bounds.getWidth(); | |||
height = bounds.getHeight(); | |||
} | |||
static StringArray getIdentifiers(){ | |||
StringArray test; | |||
return test; | |||
} | |||
Rectangle<int> getComponentBounds(); | |||
StringArray getStringArrayProp(Identifier prop); | |||
String getStringArrayPropValue(Identifier prop, int index); | |||
int getIntArrayPropValue(Identifier prop, int index); | |||
Array<int> getIntArrayProp(Identifier prop); | |||
float getFloatArrayPropValue(Identifier prop, int index); | |||
Array<float> getFloatArrayProp(Identifier prop); | |||
StringArray getChannels(){ | |||
return channels; | |||
} | |||
inline int getNumPresets(){ | |||
return snapshotData.size(); | |||
} | |||
inline void clearPresets(){ | |||
snapshotData.clear(); | |||
} | |||
inline String setOnOffcaptions(int index, String str){ | |||
if(index<=onoffcaptions.size()) | |||
onoffcaptions.getReference(index)=str; | |||
} | |||
inline String getOnOffcaptions(int index){ | |||
if(index<=onoffcaptions.size()) | |||
return onoffcaptions.getReference(index); | |||
else return ""; | |||
} | |||
inline String setItems(int index, String str){ | |||
if(index<=items.size()) | |||
items.getReference(index)=str; | |||
else | |||
return ""; | |||
} | |||
inline String getItems(int index){ | |||
if(isPositiveAndBelow (index, items.size())) | |||
return items.getReference(index); | |||
else return ""; | |||
} | |||
inline String getColours(int index){ | |||
if(colours.size()) | |||
return colours.getReference(index); | |||
else return ""; | |||
} | |||
inline int getNumberOfColours(){ | |||
return colours.size(); | |||
} | |||
inline StringArray getItemArray(){ | |||
if(items.size()) | |||
return items; | |||
else return StringArray(); | |||
} | |||
inline int getItemsSize(){ | |||
return items.size(); | |||
} | |||
inline Array<int> getVUConfig(){ | |||
return vuConfig; | |||
} | |||
// inline String getChannel(int index){ | |||
// return channels[index]; | |||
// } | |||
inline void addDummyChannel(String dummyChan){ | |||
return channels.add(dummyChan); | |||
} | |||
// inline String getTableChannel(int index){ | |||
// return channels[index]; | |||
// } | |||
// inline int getNumberOfTableChannels(){ | |||
// return channels.size(); | |||
// } | |||
inline int getKeySize(){ | |||
return key.size(); | |||
} | |||
inline String getkey(int index){ | |||
return key.getReference(index); | |||
} | |||
// inline int getNumberOfTables(){ | |||
// return numTables; | |||
// } | |||
// int getTableNumbers(int index) | |||
// { | |||
// if(index<tableNumbers.size()) | |||
// return tableNumbers[index]; | |||
// } | |||
// inline Array<int> getTableNumbersArray() | |||
// { | |||
// return tableNumbers; | |||
// } | |||
}; | |||
#endif | |||