The Alternative Csound Reference Manual
Previous |  | Next

# r Statement (Repeat Statement)

r -- Starts a repeated section.

## Description

Starts a repeated section, which lasts until the next s, r or e statement.

## Syntax

r p1 p2

## Initialization

p1 -- Number of times to repeat the section.

p2 -- Macro(name) to advance with each repetition (optional).

## Performance

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.

## Examples

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 */

## Credits

Author: John ffitch
University of Bath/Codemist Ltd.
Bath, UK
April, 1998

New in Csound version 3.48

Example written by Kevin Conder

Previous | Home | Next
q Statement | Up | s Statement