|
- <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>
|