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 files maxalloc.orc and maxalloc.sco.
Example 220. Example of the maxalloc opcode.
/* maxalloc.orc */ ; 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 /* maxalloc.orc */
/* maxalloc.sco */ ; 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 /* maxalloc.sco */
Its output should contain a message like this:
WARNING: cannot allocate last note because it exceeds instr maxalloc