- Note values, either **simple** like `C`, `A#`, and `Db`,
**relative** like `C=` (C in this octave), `D+` (D in the next octave),
or `A-` (A one octave down),
or **absolute** like like `C2`, `Ab4`, or `F#0`.
Where a note value is needed, a voltage value (as below) can be substituted, prefixed with a `v`, like `v12c`.
- Voltage values, which can be expressed in volts (like `2v`), millivolts
(like `2330mv`), cents (like `220c`), semitones (like `4c`), or octaves (like `1o`), and which can be **absolute** or **relative** (like `+2c`).
Where a voltage value is needed, a note value (as above) can be substituted, prefixed with an `n`, like `n2C#`.
- Conf(iguration) values, which are used to set up channel parameters,
are either integers or real numbers (as context dictates) which can be
**absolute** or **relative**, and are sometimes **optional**, allowing the values "off" and "none".
- Boolean values, which can be `true` (or `on`) or `false` (or `off`).
- Time values, which are either `s`econds or `u` (milliseconds), or the special value `beat` which refers to one beat based on the BPM of the channel.
### Building Blocks
-`set <volts>` (abbr. `s`) sets the CV value of the channel to a given value.
This value can be given in `c`ents, `s`emitones (which is the default),
`o`ctaves, or
-`play <note>` (abbr. `n`) sets the CV value to a given value and turns on and off the digital output for one beat minus the trigger amount (or simply leaves it on if legato is configured).
-`wait <time>` (abbr. `w`) makes the program wait until the next value.