Basic Workflow

Built-in Tutorials

The best way to learn Drambo Visual is by experimenting with live modular patches. Instead of only reading about the system, open presets, change parameters, reconnect modules, and watch how the visual result changes.

If you prefer learning by doing rather than reading this manual, start by loading the project at Visual/00 Quick Start.

The Visual Library

Drambo Visual adds a separate VISUAL tab to the top of the Drambo module library browser.

This tab contains Visual modules such as sources, processors, mixers, shaders, scenes, analyzers, feedback modules, and Projectors.

The VISUAL tab is available after purchasing the Drambo Visual in-app expansion.

Texture signal flow

Drambo Visual works by routing Texture signals through visual modules.

A source module creates a Texture. A processor modifies it. A mixer can combine it with other Textures. The Projector displays the final result.

The simplest visual patch looks like this:

Source → Processor → Projector

For example:

Image → Blur → Projector

or:

Image→ Mixer | Shader → Mixer → Projector

The Projector is the final display module in Drambo Visual. It receives a Texture signal and shows it as video output. 

The Projector can be expanded into a resizable popover window, sent to an external display through HDMI, or exported together with audio using Audio / Video Export from the main Drambo menu.

A project can contain multiple Projector modules, but when you are learning or building a basic patch, it is recommended to start with one Projector. This keeps the visual signal flow clear and easier to understand.

The main Texture and RGBA outputs

When patching, some modules offer separate R, G, B, and A outputs (representing the Red, Green, Blue, and Alpha channels). This allows you to route individual color channels to modulate different parameters simultaneously.

 

Modulation and per-pixel modulation

Visual modules are part of Drambo’s modular environment, so their parameters can be modulated by regular Drambo signals such as LFOs, Envelopes, CV, Audio, MIDI, Time, and Beat Sync. This makes visual patches easy to connect with your music patch.

Shader-based modules can go even further with per-pixel modulation. Instead of changing a parameter globally, a Texture or Shader signal can modulate a parameter differently at every pixel, creating spatially varying effects, masks, distortions, and animated structures. 

This is one of Drambo Visual’s most powerful ideas, turning modulation into something that can happen across the image itself, not only over time.

In this example, an Image texture is processed by the Move Rotate Scale preset of the Processor Shader. It could be a normal transform, but instead of uniformly scaling the texture, a hidden noise shader is used as a modulation source. This noise controls the Scale parameter on a per-pixel basis, scaling each pixel according to the noise value at its position.

Here is another simple example: a Shader module set to the Radial Blur preset modulates the Resolution parameter of a separate Squares shader module.

Image output texture modulates some parameters of Shader / Stripes module.

Shader / Noise output texture modulates some parameters of Shader / Stripes module.

Sources

Source modules are the starting point for your visual patches. They create or load the initial texture signals that flow through your modules. 

Visual Rack

A Visual Rack lets you group visual modules, like Shaders, 3D Shaders, Images, Videos, Scenes into a reusable visual composition with its own inputs, outputs, and controls. 

It's factory presets are organized into folders like audio analyzers, MIDI or Gate-driven visuals, demos, and tutorials. Treat them as starting points to build your own.

Content modules

Modules in this group provide your own user content or external resources to establish the initial texture stream. The Image module imports static graphics, while Video handles standard linear playback for moving clips. If you want to break away from linear time, Video Scrub lets you use modulation signals, such as LFOs or envelopes, to scratch, freeze, and sweep through video frames rhythmically. For layouts, the Text module renders sharp typography, and the Camera module pipes a live feed from your device’s lens straight into the patch. 

Shaders

The Shader module is your entry point into the shaders environment. Instead of loading existing assets, it builds visuals from scratch by calculating the color of every individual pixel. This makes it the foundation for fullscreen generative imagery, evolving procedural patterns, and per-pixel modulation, where one texture acts as a spatial control source to shape another.

Shaders are entry points into a large open world of presets. These presets are organized into functional folders, so you can browse them by purpose.

Another group of Shader presets: basic elements

Shaders can be built and extended modularly with Shader Kit modules but also coded using Metal Shading Language. When you expand the Shader rack you see either it's modular content or a code editor (depending on the mode setting: Shader Kit or Code)

When building custom shaders, you can define your own inputs and parameters.

The world of Shader Kit modules (explained later) opens up countless possibilities for building, modifying, and extending shaders.

Why is it called a "Shader"?

The term Shader sounds technical, but the name comes from a very simple, old-school concept in computer graphics: calculating light and shadow. 

Originally, a shader was a small program whose sole job was to calculate how light hits a 3D object so the computer knew how to "shade" it - making a flat digital shape look realistic and 3D.

Over the years, graphics hardware evolved, and shaders became capable of doing much more than just drawing shadows. Today, a shader is a highly efficient program that runs directly on your graphics processor (GPU) to calculate the color of every single pixel on your screen simultaneously.

Even though the graphics world kept the old name, a Shader in a modular system is essentially a mathematical visual generator. Instead of just shading an object, it uses pure math and algorithms to generate shapes, procedural noise, and shifting geometric patterns completely from scratch.

3D Shaders

The 3D Shader module generates three-dimensional scenes using a technique called raymarching. Instead of using flat polygons, it calculates 3D space mathematically for each pixel. This allows you to warp space and smoothly blend solid shapes together like clay. Because it calculates these distances step-by-step, it has a higher GPU performance cost.

3D shaders are built entirely from Shader Kit modules rather than coded.  (Although you can code a custom Shader in code mode that uses raymarching).

Accuracy and Performance

While raymarching is an incredibly powerful technique, it is an approximation rather than a perfectly accurate rendering method, especially when generating visuals in real time.

It is also the most demanding module in Drambo Visual.

It works best when the 3D Mask returns a smooth and reliable distance to the nearest surface. If the space is heavily distorted or warped (it's up to you), the distance estimate may become less accurate. This can create visual artifacts, gaps, or strange surface details, but these results can also be interesting and useful creatively.

You can minimize or even eliminate these glitches in extreme cases by setting the Raymarcher's quality to maximum, but this will slow down rendering, resulting in fewer frames per second.

It is up to you whether they feel like a problem or part of the look. "Properly" constructed scenes without heavy distortions will behave correctly and deliver reasonable performance.

Scene

The Scene module is a programmable environment for drawing 2D and 3D graphics. Unlike Shaders, it cannot be built modularly. Instead, it uses a custom version of Metal Shading Language adapted to a Processing-like workflow. Because it works with vertices and polygons via vertex shader kernels rather than calculating every pixel, it is highly efficient and lightweight. It is also stateful, meaning it can hold and modify its own internal state over time. This makes it well-suited for creating evolving, MIDI-driven scenes or even a playable game.

Audio Analyzers

The Audio Analyzers group contains modules that convert audio into a visual texture. This texture can then be distorted, mixed, or used to modulate other visuals. The group includes a Spectrum Analyzer, a classic Oscilloscope, and an XY Scope (an oscilloscope with two inputs).

Processors

Processors are modules that modify textures. This includes simple resizing, complex color manipulations, distortions, memory effects, and CRT display emulators.

Processor Shader

The primary module here is the Processor Shader. It functions exactly like a standard Shader module but includes a texture input designed to modify the incoming signal. Its presets are organized into functional folders. 

The standard library covers transforms, distortions, color modifications, special effects, tiling, color keying, and memory-based effects. You can stack Processor shaders, per-pixel modulate by other textures or use them in feedback loops.

Other effects

Blur and Edge Detector effects are highly optimized and available as separate modules.

The 3D Shader and Scene modules include a preset group called Texture Driven. Because they use an incoming texture to drive or modify their content, they function much like processors. 

Feedback

Remember the classic VHS-style video feedback effect: a hypnotic, kaleidoscopic visual loop created by routing a video signal back into itself.

This is where the Feedback Rack module comes in. You can find it in the Processor / Feedback section.

The content inside the Feedback Rack is processed by internal modules (like Processor Shaders) and fed back into the rack input. This creates infinite repetitions, trails, kaleidoscopic structures, or other feedback effects, depending on which processing modules are placed inside the rack.

Additionally, there are two dedicated modules that handle manual feedback routing: Feedback Send and Feedback Receive. The Send module routes its input texture back to the Receive module.

Shader repeat

Shader Repeat is a utility module that repeats the processing of the next Shader or Processor Shader module a chosen number of times.

Each repeat can be thought of as a separate “layer.” The module also provides a Layer idx output, which tells the next shader which repeat/layer is currently being processed.

You can use Layer idx to change shader parameters for each layer, so every repeated layer can look different. 

Shader repeat before a Shader module

Shader repeat before a Processor Shader module

 

Mixers  

The Mixers section covers modules designed to blend, combine, and layer multiple textures. You will also find switch modules here, which are ideal for managing transitions or cutting between separate visual scenes.

Mixer

The Mixer module can be per-pixel modulated like Shaders, you can use it for masking or applying textured blends.

Layers and Switches

Transition Switch module lets you switch between multiple input sources using a chosen transition type and transition time.

The current input can be selected manually, parameter-locked, automated, or controlled by the Index input. For example, you can use an LFO to automatically move through different inputs.

The module renders only the currently needed input source, which helps keep processing efficient.

Visual Layers Switch provides the same switching functionality as Transition Switch, but in the form of a multi-layer rack.

This makes it easier to organize more complex visual patches, especially when working with several visual layers or input sources.

 

Screen Splitter displays input textures in rows, columns, or a grid.

You can also combine split modules to create less regular screen divisions. For example, you could split the screen into two columns, then divide the left column into two rows while keeping the right column as one large area.

Shader Kit  

Shader Kit (SK) modules are shader building blocks. They are best understood not as separate image-processing blocks, but as individual shader stages that either live inside a Shader module or expand it when connected right before it.

When you place an SK module before a Shader, it becomes an integral part of that shader's pipeline. (Technically, there is no functional difference between placing an SK module inside the shader rack or directly before it. This flexibility is purely for your convenience).

Consequently, Shader Kit modules only affect the immediately following Shader module and cannot be used to modulate or connect to downstream modules.

See the Shaders chapter for a deeper explanation and a full guide on building custom shaders from SK modules.

In this section, we will look at SK modules from a practical use-case perspective rather than a technical one, briefly exploring how they are typically used to expand and modify existing shader presets.  

Let's start from a simple Shader / Elements / Cross preset.

Then go to Shader Kit Section and add the XY Transform module with the preset: Distortion / Twirl

The XY Transform module becomes a part of the Shader, modifying its behavior. As you can see, it automatically connects to the Shader’s XY input to provide a new custom coordinate system (effectively telling each pixel where to look).

While many XY Transform functions could technically be handled as texture operations later using a Processor Shader module, there is a fundamental difference: zooming into a rendered texture eventually reveals raw pixels, whereas modifying input coordinates provides virtually unlimited precision. Because of this, shapes generated by the shader can be heavily zoomed or distorted and will always remain perfectly sharp.

Let's try another XY Transform preset:  Repeat / Repeat XY

This preset chops and repeats shader space by feeding it modified XY coordinates, resulting in a tiled grid effect.

Repeat presets provide additional outputs, such as Tile index:

That can be used to modulate Shader parameters, like Color, Angle ... so each tile has its own modulation value. 

 

What if you want to do the same with an image, video, or any given texture? Simply extend the Processor Shader module in exactly the same way:  Transform + Color preset.

Most Processor Shader presets feature an XY input that allows them to operate within a custom space provided by the XY Transform module.

 

Let's come back to the Shader modifications and replace the XY Transform with a Mask module (using a noise preset). Conceptually, the Mask module is just like a Shader, except it generates a grayscale value per pixel instead of full color. In this example, the Noise mask modulates the Shader's Angle and Hue parameters.

Shader Kit modules can be stacked in any configuration you want. For example, an XY Transform modifies the incoming XY signal to create a grid of tiles. A Mask is then rendered inside those tiles, with its scale modulated by the tile index. Finally, that mask's output modulates the Shader’s Angle and Hue.

While this might sound complex on paper, trying it out in practice will make it much more intuitive. We’ve only scratched the surface here, we will explore these concepts in much greater depth in the Shaders chapter.

It’s an immersive playground where each of the dozens of unique presets can be entirely transformed into unexpected new dimensions by applying various masks and XY transforms.

 

From Patches to Shader Detail

Start simple: use top-level modules to create, process, mix, and display Texture signals. Even at this level, per-pixel modulation can go very deep. For example, two Shaders modulating each other can already become an endless source of evolving patterns, masks, distortions, and generative structures.

When you want more control, go deeper by building your own 2D and 3D Shaders with Shader Kit modules. Shader Kit lets you construct shader logic from modular stages such as Masks, Colors, XY/XYZ Transforms, SDFs, and modulation sources.

You can also use Shader Kit modules to extend existing Shader presets. Place them before a Shader or  Processor Shader module, and the Shader will treat them as additional stages in its own processing.

This means you can begin with ready-made presets, modify them from the outside, and later open the Shader rack to build fully custom shaders.

For full control, you can also go into code. Shader Kit presets, Shader Code mode, and Scene presets can be edited or created with code, giving advanced users a direct path from modular patching to custom visual programming.

Expanded Shader rack containing Shader Kit modules.