maxalloc — Limits the number of allocations of an instrument.
All instances of maxalloc must be defined in the header section, not in the instrument body.
Here is an example of the maxalloc opcode. It uses the file maxalloc.csd.
Example 248. Example of the maxalloc opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<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 maxalloc.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Limit Instrument #1 to three instances. maxalloc 1, 3 ; Instrument #1 instr 1 ; Generate a waveform, get the cycles per second from the 4th p-field. a1 oscil 6500, p4, 1 out a1 endin </CsInstruments> <CsScore> ; Just generate a nice, ordinary sine wave. f 1 0 32768 10 1 ; Play five instances of Instrument #1 for one second. ; Note that 4th p-field contains cycles per second. i 1 0 1 220 i 1 0 1 440 i 1 0 1 880 i 1 0 1 1320 i 1 0 1 1760 e </CsScore> </CsoundSynthesizer>
Its output should contain a message like this:
WARNING: cannot allocate last note because it exceeds instr maxalloc