Dynamically-scoped variables used to represent the context of
Current time in beats. A continuous value that may change at
different rates depending upon tempo changes. Useful for scheduling
events relative to beat time.
Size of buffer for engine (i.e., number of samples to
generate/process per buffer).
The number of buffers that have processed since engine start.
Multiply by *buffer-size* to get time in samples, then divide time in
samples by *sr* to get time in seconds.
When used, *done* will hold a 1-element boolean array that holds a
boolean to signal done-ness. Useful in contexts where a signal graph
(i.e., instrument) will play until a signal is given, for example:
1. MIDI note on => start instrument
2. MIDI note off => mark flag done, instrument gracefully turns off
Envelope generators will be the code most likely to be designed to
look for and use *done*.
Time in beats for duration. This context variable may not be set, and
not all audio functions may use this value.
The current processing engine.
Number of channels configured for processing context/engine.
Sample-rate of processing context/engine.
Tempo of the current processing context. Useful to calculate things
like delay times that are synced with the tempo.