Use Non-Frames Version Previous Page Next Page
Score Syntax: Expressions

Evaluation of Expressions


In earlier versions of Csound the numbers presented in a score were used as given. There are occasions when some simple evaluation would be easier. This need is increased when there are macros. To assist in this area the syntax of an arithmetic expressions within square brackets [ ] has been introduced. Expressions built from the operations +, -, *, /, %, and ^ are allowed, together with grouping with ( ). The expressions can include numbers, and naturally macros whose values are numeric or arithmetic strings. All calculations are made in floating point numbers. Note that unary minus is not yet supported.

New in Csound version 3.56 are @x (next power-of-two greater than or equal to x) and @@x (next power-of-two-plus-one greater than or equal to x).

Example

  r3  CNT

  i1  0  [0.3*$CNT.]
  i1  +  [($CNT./3)+0.2]

  e

As the three copies of the section have the macro $CNT. with the different values of 1, 2 and 3, this expands to

  s
  i1  0  0.3
  i1  0.3  0.533333
  s
  i1  0  0.6
  i1  0.6  0.866667
  s
  i1  0  0.9
  i1  0.9  1.2
  e

This is an extreme form, but the evaluation system can be used to ensure that repeated sections are subtly different.

Author

John ffitch
University of Bath/Codemist Ltd.
Bath, UK
April, 1998 (New in Csound version 3.48)


Use Non-Frames Version Previous Page Next Page
Score Syntax: Expressions