Render a whole folder of sources with one shared template
The Batch tab applies a single render template — component type, frame count and size, rotation or meter behavior, quality, and export options — to every image in an input folder, writing one filmstrip per source. Reach for it when you have a set of already-designed control art (a folder of knob PNGs, meter housings, etc.) and want them all rendered the same way in one pass, off the UI thread, with progress and cancellation.
Loading art
Two folder pickers in the right column: where the source images come from and where the rendered strips go. Both are disabled while a run is in progress.
- Choose input folder… — opens a folder picker and scans it (non-recursive) for image files, sorted ordinally by path. A summary line reports how many were found:
{N} image(s) found., or a warning if none matched. - Choose output folder… — opens a folder picker for where each rendered strip is written. Both this and the input folder must be set before Run batch becomes enabled.
Component type & frame geometry
What kind of control you're rendering, how many frames each strip has, and each frame's pixel size at 1x.
- Component type — defaults to
RotaryKnob. Choose fromRotaryKnob,VerticalFader,HorizontalSlider, orMeter. Picking RotaryKnob reveals the Rotation section below; picking Meter reveals the Meter section instead. - Frames — the frame count for every strip in the run, default
64, range 2–512. - Width — frame width in pixels at 1x, default
80, range 1–4096. - Height — frame height in pixels at 1x, default
80, range 1–4096. - Square knob frames to each source — checked by default. For knob renders, sizes each frame to that individual source's own larger side rather than forcing every source into the fixed Width/Height above, so differently-sized source PNGs each get a correctly proportioned, source-matched square frame.
Rotation
Only shown when Component type is RotaryKnob. Governs the angular sweep baked into the frame sequence.
- Sweep (degrees) — total angular travel from minimum to maximum value, default
270, range 1–360. The sweep is applied symmetrically around 0 (a 270° sweep runs -135° to +135°). - Clockwise (min → max) — checked by default. Frame 0 sits at the negative angle and sweeps clockwise to the positive angle as the value rises; unchecking it reverses the sweep to counter-clockwise.
Meter
Only shown when Component type is Meter. Configures segment count, fill behavior and direction, colors, and whether each source is finished art or a backdrop for procedural LEDs.
- Segments — number of discrete LED-style segments, default
12, range 1–128. Only meaningful when Continuous fill is off. - Fill direction — default
Up. Choose fromUp,Down,LeftToRight,RightToLeft, matching whichever edge the meter should fill from. - Continuous (smooth) fill — unchecked by default. Unchecked fills in discrete steps of the Segments count (an LED-ladder look); checked produces a smooth, unsegmented fill instead.
- On colour (#AARRGGBB) — free-text hex entry, default
#FFE8440A(an opaque ember/orange). Used for lit segments. - Off colour — free-text hex entry, default
#FF2A2A2A(an opaque dark grey). Used for unlit segments. - Source is a backdrop (draw procedural LEDs on top) — unchecked by default. Unchecked treats every source image as ready-made lit/on-state art, revealed progressively up to the fill level. Checked treats every source as a housing/backdrop and draws procedural LED segments over it using the Segments count and the On/Off colours.
Quality & output
Rendering quality, stack orientation, and HiDPI export options applied across every source in the run.
- Supersample (anti-aliasing) — default
4. Choose1,2,4, or8; higher values render at a larger internal resolution then downsample for smoother edges, at the cost of render time per frame per source. - Stack direction — default
Vertical. ChooseVerticalorHorizontalfor whether frames stack top-to-bottom or left-to-right in the output PNG. - Also export a HiDPI copy — checked by default. Exports an additional higher-resolution copy of each strip at the Scale chosen below.
- Scale — only visible when "Also export a HiDPI copy" is checked. Default
2. Choose2,3, or4, mapping to an@2x/@3x/@4xexport suffix. - Also write a skin.json per strip — unchecked by default. Writes a
skin.jsonmanifest alongside each rendered strip, binding it to a parameter.
Code export (per strip)
Optional generation of ready-to-paste loader code for each exported strip, matching the Create and Assemble tabs' code-export panels.
- Also emit ready-to-paste loader code — unchecked by default. Master switch — reveals the per-target checkboxes below when checked, and no code is emitted for any target while it's unchecked.
- JUCE — checked by default (when code export is on). Emits a JUCE
LookAndFeelfilmstrip loader snippet per strip. - CSS / HTML — unchecked by default. Emits a CSS/HTML sprite control driven by
background-position, plus a JS value setter, per strip. - iPlug2 — unchecked by default. Emits an iPlug2
IBKnobControl/IBSliderControl/IBitmapControlsnippet per strip. - HISE — unchecked by default. Emits a HISE loader snippet per strip.
- React / Web — unchecked by default. Emits a
.jsxsprite component driven by a 0..1valueprop per strip.
Run, cancel, progress, and results
The controls that start and stop the job and report what happened. These stay live even while the render template is locked during a run.
- Run batch — enabled once both folders are chosen and no run is already active. Renders every source in the input folder using the template above, updating progress as it goes; on completion, reports either a done or cancelled status with counts.
- Cancel — enabled only while a run is in progress. Requests a cooperative stop; strips already written before the cancel are kept in the output folder.
- Progress bar — visible only while running, filling from 0 to 100 based on completed vs. total items.
- Progress text — shows
{Completed}/{Total} — {CurrentFile}, updating as each source is processed. - Status message — defaults to "Choose an input folder and an output folder.", then tracks the run: processing, done, cancelled, or an error message if the run threw an exception.
- Result summary — a scrollable panel filled in after the run completes. Reports "All {N} strips exported." when nothing failed, or a per-file failure list (filename and error, up to 8 entries with a "…and N more" line beyond that) when some strips failed.
.png, .webp, .bmp, .jpg, and .jpeg files are picked up from the input folder, the scan doesn't look into subfolders, and files are processed in ordinal path-sort order — anything else in the folder is silently skipped and won't appear in the input count or the progress readout.