-
Close the DAW.
-
Copy
MicroPythonVST3.vst3to%LOCALAPPDATA%\Programs\Common\VST3for the current user, or%COMMONPROGRAMFILES%\VST3for all users. -
Run the scanner once, from
Contents\\x86_64-wininside the installed bundle, so the DAW can see the library:micropython-vst-engine.exe scan_plugins.py --writeIt writes
Contents/Resources/moduleinfo.json, which is both what the host reads to list the plug-ins and what the plug-in reads to know which ones it offers. The scanner needs nothing installed - it is the engine itself, reading what each library module declares about itself. Run it again after adding or editing a script. -
Start the DAW and request a VST3 rescan.
-
Insert any of them - TR-808, Minimoog, Tape Delay - and open its editor, or use the host's generic parameter editor. MicroPython Script Host runs whatever script
MPVST_SCRIPT_PATHpoints at, which is the loop for developing one that is not in the library yet.
The plug-in has an editor of its own: a patch selector, a Reload button, a Bypass switch, an engine-status light, and a slider per macro, labelled with whatever names the script declares. Click a control to focus it, then scroll or swipe - sideways adjusts the focused control, up and down moves between them. A drag or a burst of scrolling is recorded as one automation edit.
The same parameters are all there in the host's generic editor: Bypass,
Reload Script, Patch, and Macro 01 through Macro 16 (or the script's
labels). Engine Ready and integer Engine Error are read-only status
controls; error 1 means script load failed and error 2 means rendering failed.
A script that leaves the panel unable to build shows "Editor unavailable" and
keeps playing.
Set MPVST_SCRIPT_PATH to an absolute .py file before starting the DAW. Each
new plug-in instance reads that source. To reload an existing instance, toggle
Reload Script off and then on. Syntax and runtime errors silence the graph but
leave the sidecar alive so a corrected script can be reloaded.
The host output uses a short fade-out, pipeline hold, and fade-in around reload
to avoid a discontinuity at the graph boundary.
A script declares its macros with a module-level tuple, the same name a library module or an effect class uses. This is the declaration, not a label for something that exists anyway: without it the script has no macros and the editor draws none. It does not alter automation IDs.
MACRO_LABELS = ("Gain", "Tone", "Attack", "Release")When the DAW saves a project, state v2 embeds the script source, macro values, and engine pipeline setting. The project therefore reopens after the original development file is moved or deleted. Embedded source is limited to 1 MiB.
MicroPython scripts run with unrestricted desktop-process capabilities in a separate process for each plug-in instance. They can access files, networking, FFI, sockets, and TLS with the permissions of the DAW user. Only load projects and scripts you trust. This is process isolation for stability, not a security sandbox.
Close the DAW, remove the installed MicroPythonVST3.vst3 bundle, then rescan
VST3 plug-ins. Project files remain untouched.