cabbageCreate
This opcode can be used to create widgets directly within a Csound orchestra.
Syntax
cabbageCreate SWidgetType, SWidgetIdentifiers
Initialization
SWidgetType
-- widget type name, i.e, rslider, combobox, checkbox, etcSWidgetIdentifiers
-- widget identifiers, passed a single string. If you are using quotation marks, don't forget to escape the inner ones. You can also avoid having to do so by wrapping your identifier code in . See Csound string type documentation for more details.
Example
This example generated a gris of 128 checkbox widgets. It then randomly assigns colours to each one and generates some simple tones.
<Cabbage>
form caption("What have I done!!") size(820, 500), guiMode("queue") colour(0, 0, 0), pluginId("def1")
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-n -d -+rtmidi=NULL -M0 -m0d --midi-key-cps=4 --midi-velocity-amp=5
</CsOptions>
<CsInstruments>
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1
iX, iY init 0
iWidgetCount init 0
while iY < 8 do
while iX < 16 do
SWidget sprintf "bounds(%d, %d, 50, 50), channel(\"check%d\"), colour:1(%d, %d, %d)", 10+iX*50, 10+iY*50, iWidgetCount, rnd(255), rnd(255), rnd(255)
cabbageCreate "checkbox", SWidget
iWidgetCount += 1
iX += 1
od
iX = 0
iY += 1
od
if metro(20) == 1 then
kOnOff = (random:k(0, 100) > 50 ? 0 : 1)
kBox = random:k(36, 88)
SWidgetChannel sprintfk "check%d", kBox
cabbageSetValue SWidgetChannel, kOnOff
event "i", "Synth", 0, 2, int(kBox), kOnOff
endif
endin
instr Synth
aEnv expon 1, p3, 0.01
aOut oscil aEnv, cpsmidinn(p4)
outs aOut*p5, aOut*p5
endin
</CsInstruments>
<CsScore>
f1 0 4096 10 1 .5 .25 .17
i1 0 z
</CsScore>
</CsoundSynthesizer>