FLcount
Prev | Orchestra Opcodes and Operators | Next

## FLcount

FLcount — A FLTK widget opcode that creates a counter.

## Description

Allows the user to increase/decrease a value with mouse clicks on a corresponding arrow button.

## Syntax

    kout, ihandle FLcount "label", imin, imax, istep1, istep2, itype, iwidth, iheight, ix, iy, iopcode [, kp1] [, kp2] [, kp3] [...] [, kpN]

## Initialization

ihandle -- a handle value (an integer number) that unequivocally references a corresponding widget. Used by further opcodes that changes some valuator's properties. It is automatically set by the corresponding valuator.

“label” -- a double-quoted string containing some user-provided text, placed near the corresponding widget.

imin -- minimum value of output range

imax -- maximum value of output range

istep1 -- a floating-point number indicating the increment of valuator value corresponding to of each mouse click. istep1 is for coarse adjustments.

istep2 -- a floating-point number indicating the increment of valuator value corresponding to of each mouse click. istep2 is for fine adjustments.

itype -- an integer number denoting the appearance of the valuator.

iwidth -- width of widget.

iheight -- height of widget.

ix -- horizontal position of upper left corner of the valuator, relative to the upper left corner of corresponding window (expressed in pixels).

iy -- vertical position of upper left corner of the valuator, relative to the upper left corner of corresponding window (expressed in pixels).

iopcode -- score opcode type. You have to provide the ascii code of the letter corresponding to the score opcode. At present time only “i” (ascii code 105) score statements are supported. A zero value refers to a default value of “i”. So both 0 and 105 activates the i opcode. A value of -1 disables this opcode feature.

## Performance

kout -- output value

kp1, kp2, ..., kpN -- arguments of the activated instruments.

FLcount allows the user to increase/decrease a value with mouse clicks on corresponding arrow buttons:

FLcount.

There are two kind of arrow buttons, for larger and smaller steps. Notice that FLcount not only outputs a value and a handle, but can also activate (schedule) an instrument provided by the user each time a button is pressed. P-fields of the activated instrument are kp1 (instrument number), kp2 (action time), kp3 (duration) and so on with user p-fields. If the iopcode argument is set to a negative number, no instrument is activated. So this feature is optional.

## Examples

Here is an example of the FLcount opcode. It uses the files FLcount.orc and FLcount.sco.

Example 131. Example of the FLcount opcode.

    /* flcount.orc */
    ; Demonstration of the flcount opcode
    ; clicking on the single arrow buttons
    ; increments the oscillator in semitone steps
    ; clicking on the double arrow buttons
    ; increments the oscillator in octave steps
    sr = 44100
    kr = 441
    ksmps = 100
    nchnls = 1

    FLpanel "Counter", 900, 400, 50, 50
        ; Minimum value output by counter
        imin = 6
        ; Maximum value output by counter
        imax = 12
        ; Single arrow step size (semitones)
        istep1 = 1/12
        ; Double arrow step size (octave)
        istep2 = 1
        ; Counter type (1=double arrow counter)
        itype = 1
        ; Width of the counter in pixels
        iwidth = 200
        ; Height of the counter in pixels
        iheight = 30
        ; Distance of the left edge of the counter
        ; from the left edge of the panel
        ix = 50
        ; Distance of the top edge of the counter
        ; from the top edge of the panel
        iy = 50
        ; Score event type (-1=ignored)
        iopcode = -1

        gkoct, ihandle FLcount "pitch in oct format", imin, imax, istep1, istep2, itype, iwidth, iheight, ix, iy, iopcode, 1, 0, 1
    ; End of panel contents
    FLpanelEnd
    ; Run the widget thread!
    FLrun

    instr 1
        iamp = 15000
        ifn = 1
        asig oscili iamp, cpsoct(gkoct), ifn
        out asig
    endin
    /* flcount.orc */

    /* flcount.sco */
    ; Function table that defines a single cycle
    ; of a sine wave.
    f 1 0 1024 10 1

    ; Instrument 1 will play a note for 1 hour.
    i 1 0 3600
    e
    /* flcount.sco */

## See Also

FLjoy, FLkeyb, FLknob, FLroller, FLslider, FLtext

## Credits

Author: Gabriel Maldonado

New in version 4.22

Example written by Iain McCurdy, edited by Kevin Conder.

Prev | Up | Next
FLcolor2 | Home | FLgetsnap