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§
- Vita
Renderer - 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
vitapackage.