FLslidBnk2Setk — modify the values of a slider bank.
Plugin opcode in widgets. This opcode is part of the plugin repository and has to be installed separately. These FLTK widgets do not work on the Mac. The plugin repository can be found here: https://github.com/csound/plugins
FLslidBnk2Setk modifies the values of a slider bank according to an array of values stored in a table.
ihandle - handle of the sliderBnk (to be used to set its values).
ifn - number of a table containing an array of values to set each slider to.
istartIndex - (optional) starting index of the table element of to be evaluated firstly. Default value is zero
istartSlid - (optional) starting slider to be evaluated. Default 0, denoting the first slider.
inumSlid - (optional) number of sliders to be updated. Default 0, denoting all sliders.
ktrig – the output of FLslidBnk2Setk consists of a trigger that informs if sliders have to be updated or not. A non-zero value forces the slider to be updated.
FLslidBnk2Setk is similar to FLslidBnkSet but allows k-rate to modify the values of FLslidBnk2 (FLslidBnk2Setk can also be used with FLvslidBnk2, obtaining identical result). It also allows the slider bank to be joined with MIDI. If you are using MIDI (for instance, when using the slider8table opcode), FLslidBnk2Setk changes the values of FLslidBnk2 bank of sliders to a set of values located in a table. This opcode is actually able to serve as a MIDI bridge to the FLslidBnk2 widget when used together with the sliderXXtable set of opcodes (see slider8table entry for more information). Notice, that, when you want to use table indexing as a curve response, it is not possible to do it directly in the iconfigtable configuration of FLslidBnk2, when you intend to use the FLslidBnk2Setk opcode. In fact, corresponding inputTable element of FLslidBnk2Setk must be set in linear mode and respect the 0 to 1 range. Even the corresponding elements of sliderXXtable must be set in linear mode and in the normalized range. You can do table indexing later, by using the tab and tb opcodes, and rescaling output according to max and min values. By the other hand, it is possible to use linear and exponential curve response directly, by setting the actual min-max range and flag both in the iconfigtable of corresponding FLslidBnk2 and in sliderXXtable.
FLslidBnk2Setk the k-rate version of FLslidBnk2Set
Here is an example of the FLslidBnk2Setk opcode. Play FLslidBnk2Setk.csd
Example 335. Example of the FLslidBnk2Setk opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O </CsOptions> <CsInstruments> sr = 44100 ksmps = 10 nchnls = 2 ;Example by Gabriel Maldonado 2007 giElem init 8 giOutTab ftgen 1,0,128, 2, 0 giSine ftgen 3,0,256,10, 1 giOutTab2 ftgen 4,0,128, 2, 0 itab ftgen 29, 0, 129, 5, .002, 128, 1 ;** exponential ascending curve for slider mapping giExpTab ftgen 30, 0, 129, -24, itab, 0, 1 ;** rescaled curve for slider mapping giConfigTab ftgen 2,0,128,-2, 1, 500, -1, 13, \ 1, 500, -1, 13, \ 1, 500, -1, 13, \ 1, 5000, -1, 13, \ \ 1, 1000, -1, 5, \ 1, 1000, -1, 5, \ 1, 1000, -1, 5, \ 1, 5000, -1, 5 FLpanel "Multiple FM",600,600 FLslidBnk2 "mod1@mod2@mod3@amp@freq1@freq2@freq3@freqPo", giElem, giOutTab2, giConfigTab, 400, 500, 100, 10 giHandle FLslidBnkGetHandle FLpanel_end FLrun instr 1 ktrig slider8table 1, giOutTab, 0, \ ; ctl min max init func 27, 1, 500, 3, -1, \ ;1 repeat rate 28, 1, 500, 4, -1, \ ;2 random freq. amount 29, 1, 500, 1, -1, \ ;3 random amp. amount 30, 1, 5000, 1, -1, \ ;4 number of concurrent loop points \ 31, 1, 1000, 1, -1, \;5 kloop1 32, 1, 1000, 1, -1, \;6 kloop2 33, 1, 1000, 1, -1, \;7 kloop3 34, 1, 1000, 1, -1 ;8 kloop4 kmodindex1 init 0 kmodindex2 init 0 kmodindex3 init 0 kamp init 0 kfreq1 init 0 kfreq2 init 0 kfreq3 init 0 kfreq4 init 0 vtable1k giOutTab2, kmodindex1, kmodindex2, kmodindex3, kamp, kfreq1, kfreq2, kfreq3, kfreq4 ; *kflag, *ihandle, *ifn, *startInd, *startSlid, *numSlid; FLslidBnk2Setk ktrig, giHandle, giOutTab, 0, 0, giElem printk2 kmodindex1 printk2 kmodindex2,10 printk2 kmodindex3,20 printk2 kamp,30 amod1 oscili kmodindex1, kfreq1, giSine amod2 oscili kmodindex2, kfreq2, giSine amod3 oscili kmodindex3, kfreq3, giSine aout oscili kamp, kfreq4+amod1+amod2+amod3, giSine outs aout, aout endin </CsInstruments> <CsScore> i1 0 3600 </CsScore> </CsoundSynthesizer>