active
Returns the number of active instances of an instrument with options to ignore releasing instances.
Syntax
ir active insnum [,iopt [,inorel]]
ir active Sinsname [,iopt [,inorel]]
kres active kinsnum [,iopt [,inorel]]
Initialization
insnum -- number or string name of the instrument to be reported
Sinsname -- instrument name
iopt -- select currently active (zero, default), or all every active (non zero)
inorel -- if non-zero ignore instruments in release phase (zero, default), only valid if iopts is zero.
kinsnum -- number or string name of the instrument to be reported
active returns the number of active instances of instrument number insnum/kinsnum (or named instrument Sinsname). As of Csound 4.17 the output is updated at k-rate (if input arg is k-rate), to allow running count of instr instances.
As of Csound 5.17 if the instrument number is given as zero then all instruments are counted.
Examples
Here is a simple example of the active opcode. It uses the file
active.csd.
Simple example of the active opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac -iadc ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o active.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1 - a noisy waveform.
instr 1
; Generate a really noisy waveform.
anoisy rand 44100
; Turn down its amplitude.
aoutput gain anoisy, 2500
; Send it to the output.
out aoutput
endin
; Instrument #2 - counts active instruments.
instr 2
; Count the active instances of Instrument #1.
icount active 1
; Print the number of active instances.
print icount
endin
</CsInstruments>
<CsScore>
; Start the first instance of Instrument #1 at 0:00 seconds.
i 1 0.0 3.0
; Start the second instance of Instrument #1 at 0:015 seconds.
i 1 1.5 1.5
; Play Instrument #2 at 0:01 seconds, when we have only
; one active instance of Instrument #1.
i 2 1.0 0.1
; Play Instrument #2 at 0:02 seconds, when we have
; two active instances of Instrument #1.
i 2 2.0 0.1
e
</CsScore>
</CsoundSynthesizer>
|
Its output should include lines like this:
instr 2: icount = 1.000
instr 2: icount = 2.000
Here is a more advanced example of the active opcode. It displays the results of the active opcode at k-rate instead of i-rate. It uses the file active_k.csd.
Example of the active opcode at k-rate. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac -iadc ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o active_k.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1 - a noisy waveform.
instr 1
; Generate a really noisy waveform.
anoisy rand 44100
; Turn down its amplitude.
aoutput gain anoisy, 2500
; Send it to the output.
out aoutput
endin
; Instrument #2 - counts active instruments at k-rate.
instr 2
; Count the active instances of Instrument #1.
kcount active 1
; Print the number of active instances.
printk2 kcount
endin
</CsInstruments>
<CsScore>
; Start the first instance of Instrument #1 at 0:00 seconds.
i 1 0.0 3.0
; Start the second instance of Instrument #1 at 0:015 seconds.
i 1 1.5 1.5
; Play Instrument #2 at 0:01 seconds, when we have only
; one active instance of Instrument #1.
i 2 1.0 0.1
; Play Instrument #2 at 0:02 seconds, when we have
; two active instances of Instrument #1.
i 2 2.0 0.1
e
</CsScore>
</CsoundSynthesizer>
|
Its output should include lines like:
Here is another example of the active opcode, using the number of instances to calculate gain. It uses the file active_scale.csd.
Example of the active opcode at k-rate. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in No messages
-odac -d ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o atone.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr= 44100
ksmps = 64
nchnls = 1
0dbfs = 1
;by Victor Lazzarini 2008
instr 1
kscal active 1
kamp port 1/kscal, 0.01
asig oscili kamp, p4, 1
kenv linseg 0, 0.1,1,p3-0.2,1,0.1, 0
out asig*kenv
endin
</CsInstruments>
<CsScore>
f1 0 16384 10 1
i1 0 10 440
i1 1 3 220
i1 2 5 350
i1 4 3 700
e
</CsScore>
</CsoundSynthesizer>
|
See also
Real-time Performance Control
Credits
Author: John ffitch
University of Bath/Codemist Ltd.
Bath, UK
July, 1999
Examples written by Kevin Conder.
New in Csound version 3.57; named instruments added version 5.13
Option for all ever active new in 5.13
Count of all instruments new in 5.17
No release option new in 5.19