Method summary | |
---|---|
ji-pc-ratio | (x rational) |
Function summary | |
---|---|
aux-def-tempered-score-instruments | temperament score-parts |
aux-def-tempered-score-let-decls | score-parts |
aux-def-tempered-score-mpe-parts-var-name | instr |
chord-sequences-to-parts | sequence n |
Macro summary | |
---|---|
def-tempered-score | name global-args &rest instruments |
deftemperament | name vals generators &optional docstring |
Transforms the frequency ratio `x' into the interval [1, 2) to represent a corresponding pitch class expressed as a fraction.
Return `n' monophonic sequences that distribute chords tones in `sequence' across the returned sequences.
Return a variable name (symbol) for the quasi MPE parts for the given instr (symbol).
[Called at compile time by macro] Generate the instruments body for def-score generated by def-tempered-score, where the instruments are split into multiple instruments on different MIDI channels for quasi MPE playback.
[Called at compile time by macro] Generate the variable declarations around the def-score generated by def-tempered-score, which split the instrument parts into multiple parts for the different MIDI channels. The let is needed for efficiency (value reuse).
Define a temperament with the given `vals' and `generators' bound to the `name'. This results in a method of the given name expecting a ratio and returning the temperament pitch in cents. The `vals' and `generators' can also later be accessed with `get-temperament-vals' and `get-temperament-generators'.
Note that `vals' and `generators' are evaluated (so they can be an expression resulting in the actual values), while the name is not.
The same as the Opusmodus builtin `def-score', but with the added arg `temperament'.
TODO: Allow somehow for temperament to change over time (like arguments such as tempo etc.).
temperament (symbol): a temperament defined with deftemperament.
The other arguments are documented for the builtin `def-score'.