Skip to content

Grammar

expr := sum (('>' | '<' | '>=' | '<=' | '==' | '!=') sum)*
sum := term (('+' | '-') term)*
term := unary (('*' | '/') unary)*
unary := ('-' | '+')? primary
primary:= number | ident | ident '(' expr (',' expr)* ')' | '(' expr ')'
  • Arithmetic: + - * /, unary - / +, and parentheses ( ), with the usual precedence.
  • Comparisons sit at the lowest precedence, below +/-, so 1 + 1 > 3 - 2 reads as (1 + 1) > (3 - 2).
  • Numbers: decimal f32 literals (0.3, 14, 1.8).

There is no way to read wall-clock time — the only clock is time, the renderer’s shared scene clock. Randomness exists, but only the seeded kind: hash(x) and noise(x) are pure functions of their argument and the preset’s seed (below), so a preset is still reproducible given the same audio and the same seed.

A program wanting these names asks the player, not this page. ritmolux --schema prints a grammar object carrying three arrays — variables, functions and constants — generated by walking the engine’s own declarations, so an expression editor colours exactly what the parser resolves and nothing else. The prose below is the human reference: it says what each name means, which is the half a roster cannot carry. See Configuration.

Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.