Skip to content

count

Get the next value from a counter.

Plugin opcode in counter.

Get the next value from a counter by adding the increment and keeping the counter in the declared range.

Syntax

kval = count(icnt)
kval count icnt

Initialization

icnt -- the handle of a counter object from a call to cntcreate.

Performance

Calculate the next value from the counter object and return that value.

kval -- returned value.

Examples

Here is an example of the count opcode. It uses the file counter-modern.csd.

Example of the count opcode.
<CsoundSynthesizer>
<CsOptions>
-odac -Mhw:1,0,0
</CsOptions>

<CsInstruments>

cnt@global:i = cntcreate(1)     ; a toggle
cntNote@global:i = cntcreate(1) ; ignore note-off message to turn MIDI notes into toggles

instr 1
  key:k = sensekey()
  note:i = notnum()

  if key == 97 then
    k1 = count(cnt)
    if k1 == 0 then
      event("i", 2, 0, -1)
    else
      event("d", 2, 0, -1)
    endif
  endif

  print(note)
  if note == 60 then
    i2 = count_i(cntNote)
    print(i2)
    if i2 == 0 then
      eventi("i", 3, 0, -1)
    else
      eventi("d", 3, 0, -1)
    endif
  endif
endin

instr 2
  out(poscil(10000, 440))
endin

instr 3
  out(poscil(5000, 880))
endin

</CsInstruments>

<CsScore>
i1 0 z
e
</CsScore>

</CsoundSynthesizer>

Here is an example of the count opcode. It uses the file counter.csd.

Example of the count opcode.
<CsoundSynthesizer>
<CsOptions>
-odac -Mhw:1,0,0
</CsOptions>

<CsInstruments>
 gicnt cntCreate 1     ; a toggle
 gicntNote cntCreate 1 ; ignore note-off message to turn MIDI notes into toggles


instr 1

kkey sensekey

inote notnum

if (kkey == 97) then
 k1 count gicnt
 if k1==0 then
  event "i", 2, 0, -1
 else
  event "d", 2, 0, -1
 endif
endif

print  inote
if (inote == 60) then
 i2 count_i gicntNote
 print i2
 if i2==0 then
  event_i "i", 3, 0, -1
 else
  event_i "d", 3, 0, -1
 endif
endif
endin

instr 2
asig oscil 10000, 440
out asig
endin

instr 3
asig oscil 5000, 880
out asig
endin

</CsInstruments>


<CsScore>
i1 0 z
e

</CsScore>

</CsoundSynthesizer>

See also

Program Flow Control: Counter

Credits

By: John ffitch June 2020

New in version 6.15