.vltcreatorKeep creating
A project with its layout, code and modes. For yourself, a collaborator or the next version.
Your sound starts with connections. Build effects from nodes, add your own logic and C++ — and turn the graph into a VLTone mini-module.
Input, processing, output. Your decisions connect them. Meet Gentle Tremolo: six nodes turn a simple signal into a rhythmic pulse.
One signal feeds two branches: dry and processed.
Select a node to trace its connections. This diagram explains processing; it does not play audio.
Split the input into two branches. One preserves the original sound; the other passes through Gain. An LFO varies the gain over time.
Bring both branches together in Mix. The Depth control determines how much processed signal reaches the result. The entire path stays visible.
Sound, number, event, function. Port colors and shapes show what can connect. Choose a type to see what it does.
A mono or stereo sound stream. Connects the input, effects and module output.
Input → Gain → OutputOne output can feed several inputs. Each input has one source. Need another type? Add an explicit converter such as Number to Integer.
Function needs an exact signature match as well as a matching type. For Array and List, choose the collection type first. The graph stays readable even with dozens of connections.
Any control with a numeric input can receive a signal. Let a filter follow an envelope, a parameter follow an LFO, and the effect depth follow your own logic.
LFO → Gain → MixMove the controls: Rate changes the speed, Depth changes the modulation range. This is a visual model without audio playback.
LFO gives repeating motion, Random gives changing values, and Sample & Hold gives steps. Choose a shape and rate that fit your idea.
Map Range matches ranges, Clamp bounds the motion, and Smooth softens jumps. Number updates every sample, and a wire replaces the manual value.
113 node types, from ready-made effects to elementary operations. Build a chain in minutes or go down to formulas, filters and individual samples.
Chorus · Delay · Compressor · EQCombine effects and control their parameters.
Oscillator · NoiseGenerate a signal inside the graph; choose its shape and frequency.
Multiply · Map Range · TanhScale, bound and transform control values.
Compare · Select · Rising EdgeSwitch branches and respond to events.
Envelope · Peak · RMSTurn the audio level into a control source.
Biquad · FIR · One PoleBuild frequency processing with your own coefficients.
History · Delay Buffer · ContextKeep state, build delays and use the project tempo.
Array · List · Map · ReduceWork with tables, arrays and their elements.
Accumulation, counters, delays and feedback need state: a value that remains from the previous sample.
Sample 0Click to advance one step. History returns its stored value first, then writes Next. This gives the feedback path memory.
History stores a Number, Audio, Gate, Integer or collection. Write enable holds the value; Reset starts again. The editor rejects instantaneous cycles without memory.
Use Delay Buffer for audio delay. Multiple Read Delay Tap nodes can read one memory at different times, providing a foundation for echoes and layered processing.
Select part of a graph and turn it into your own node. Every connection stays inside; only the chosen ports remain outside. Reuse the result as often as you need.
Give each port a name, type, range, unit and default. Double-click to open the inner graph; nested nodes keep a large project organized.
Instances share a definition while keeping independent state. Make independent creates a separate version. Suitable elementary graphs can use 2× or 4× oversampling.
There can be a whole system inside. Outside: a name, two controls and your design. Turn a technical graph into an instrument that feels at home in your project.
In Gentle Tremolo, the first control sets Rate and the second sets Depth. Define useful ranges, units and defaults. One control can drive several parameters.
Customize the card and up to eight modes with shared controls. Stable control IDs preserve automation when you rename a control.
1.8 Hz35%When the built-in blocks are not enough, add a C++ Function. Write your processing and update the node: Creator derives its ports from the function signature.
C++23#include <vlt/creator.hpp>
vlt::AudioFrame process(vlt::AudioFrame audio,
float gain = 0.5f) {
return {audio.left * gain,
audio.right * gain};
}AudioFrame, float and bool become Audio, Number and Gate. A result struct can expose several outputs; a Function port lets your code call another C++ node.
The SDK describes state, preparation, reset, latency and tail. Prepare memory in advance for realtime processing. Refresh the ports whenever the signature changes.
Tell the assistant what you want to hear. It works in the context of the open Creator: reading the graph, changing nodes, editing C++ and helping with compilation.
“Build a gentle tremolo. The first control is rate, the second is depth. Check the connections and compile.”
Input → Graph → OutputThe assistant receives the project and available node descriptions. Specify the sound, controls and constraints.
Save the source graph, press Compile and add your mini-module to Channel Strip. When your idea changes, update the same module.
.vltcreatorThe source project stores the graph, node layout, modes and code. Open it whenever you want to change the effect.
Validation catches incompatible ports, missing inputs and cycles without memory before auditioning. C++ also provides compiler diagnostics with source locations.
Saving, installing and updatingNodes and C++ build audio processing. Lua works with the project: generating MIDI, editing clips, analyzing audio and opening custom windows. The two sides of Creator complement each other.
Explore Lua Creator and its guide