Variables have been introduced with the version 1.7.0 of the Guido Engine. They are intended to share tags parameters or to structure a score.
A variable name must always start with
$ followed by a letter and by any number of letters, numbers or
Variables must be declared in a variables declaration section that precedes the score description.
A variable declaration assigns a value to a variable name.
Note that the
string value may refer to another variable.
string value should not refer to itself (directly or indirectly). It will cause an infinite loop and an unpredictable behavior.
Variables may be used at any location within a voice description. They are expanded in place at parsing level. You may think of macro when using a variable and thus, figure out how to use it in a given context.
% start of variables declaration section $dx = -2; $text1="foo 1"; $a = "a"; $b = "f/16 g f a"; $c = "b/8 a g f g e"; $seq = "a/4 \slur(b c2/2) a1/4 $b $b $b"; % end of variables section % start of the score [ \meter<"4/4"> \text<$text1, dx=$dx>($a ) \text<$text1, dx=$dx>($a ) $a /2 \text<'foo 2', dy=12>($c ) b c $seq $seq c/1 ]