Skip to main content

Module vita

Module vita 

Source
Expand description

The open Vital engine as a Renderer, for single notes in tests and CI with no Vital licence.

vita, the GPL-3.0 Python binding of the open engine, runs only as a separate process: each request starts tools/vita/render.py with a Python that has the package, and no code of this crate links it. The engine renders one note per call and takes no MIDI file, so a job with more than one note, or with controller changes, is refused.

Each render starts clean: the engine keeps no sound between calls. The renderer loads the job’s state, plays the recipe’s warm-up note and throws it away, so smoothed parameters settle, then renders the note. The engine has no call that renders silence, so the recipe’s settle steps add to the warm-up render’s length. A note that starts after 0 s gets that much silence before it. The clip ends where the recipe’s super::TailWatch ends it.

The engine reads no tuning from a preset, so a state with a custom tuning is refused rather than rendered in the default tuning. A preset the engine does not load, or samples that are not finite, come back as RenderError::State; a Python that does not run, a script that fails, hangs past SCRIPT_TIMEOUT or gives a reply this program cannot read, as RenderError::Engine.

Structs§

VitaRenderer
Plays single notes through the open engine in a Python process.

Constants§

SCRIPT_TIMEOUT
How long one run of the script may take: a Python start, the import of the engine and the render of one note take a few seconds.
VITA_PYTHON_ENV
The environment variable that names a Python with the vita package.