p1 -- Number of times to repeat the section.
p2 -- Macro(name) to advance with each repetition (optional).
In order that the sections may be more flexible than simple editing, the macro named p2 is given the value of 1 for the first time through the section, 2 for the second, and 3 for the third. This can be used to change p-field parameters, or ignored.
![]() | Warning |
---|---|
Because of serious problems of interaction with macro expansion, sections must start and end in the same file, and not in a macro. |
Here is an example of the r statement. It uses the files r.orc and r.sco.
Example 1. Example of the r statement.
/* r.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
; The score's p4 parameter has the number of repeats.
kreps = p4
; The score's p5 parameter has our note's frequency.
kcps = p5
; Print the number of repeats.
printks "Repeated %i time(s).\\n", 1, kreps
; Generate a nice beep.
a1 oscil 20000, kcps, 1
out a1
endin
/* r.orc */
/* r.sco */
; Table #1, a sine wave.
f 1 0 16384 10 1
; We'll repeat this section 6 times. Each time it
; is repeated, its macro REPS_MACRO is incremented.
r6 REPS_MACRO
; Play Instrument #1.
; p4 = the r statement's macro, REPS_MACRO.
; p5 = the frequency in cycles per second.
i 1 00.10 00.10 $REPS_MACRO 1760
i 1 00.30 00.10 $REPS_MACRO 880
i 1 00.50 00.10 $REPS_MACRO 440
i 1 00.70 00.10 $REPS_MACRO 220
; Marks the end of the section.
s
e
/* r.sco */