Videomancer
This documentation is a work in progress, and all content is subject to change before the official documentation launch.
Overview
Videomancer is a standalone instrument and development platform for video synthesis. Its open source hybrid digital/analog architecture leverages the best of both domains. With a full complement of inputs and outputs for every signal type, it integrates seamlessly with any studio or performance rig. Videomancer supports a wide range of standard and high definition video formats.
Due to its extraordinary versatility, Videomancer can perform many functions, such as:
- Process HDMI or analog video
- Generate video with internal pattern algorithms
- Convert between video signal types:
- HDMI YCbCr
- DVI RGB (output only)
- Component YPbPr
- Component RGsB (sync on green)
- Composite
- S-Video (Y/C)
- LZX 1V modular RGB
- Modulate video with dozens of different Modulation Operators:
- Direct modulation with external audio and control voltage
- External signal shapers such as envelope follower, slew, quantizer
- Internal algorithms such as oscillators and pattern generators
- USB devices such as mouse, game controller, joystick
- MIDI Continuous Controllers and Note messages
- Control global modulation timing:
- Synchronize modulation with MIDI Clock or MIDI Timecode
- Set tempo with TAP button or numeric Beats Per Minute
- Control external devices with MIDI
Each of Videomancer's twelve Parameters can be driven by any Modulation Operator. Modulation is unique per Parameter, so you can mix and match them. For example, drive Parameters 1 and 2 with independent oscillators, Parameter 3 with audio, Parameter 4 with MIDI, etc.
Videomancer does not convert between resolution formats or frame rates. It cannot upscale or downscale a video signal, or change the number of frames per second.
Architecture
Under the hood, Videomancer is an embedded system, a special-purpose computer driven by a Field-Programmable Gate Array (FPGA). This is a type of processor that can be configured “in the field” to implement different circuits via firmware. That means Videomancer can perform many different functions with a level of efficiency that would otherwise require custom-designed hardware for each function. Instead of a different physical circuit, the FPGA simply loads a different firmware program. This approach diverges radically from conventional digital graphics that rely on parallel processing on a GPU. Videomancer's architecture imparts extraordinary versatility and power, while remaining affordable, portable, and energy-efficient.
Speed
Another benefit of Videomancer's FPGA architecture is ultra-low latency, in the range of 0.0001 to 0.0007 millisecond. Conventional digital video devices insert at least one frame of delay, which is 33 milliseconds at 30 frames per second. Videomancer is orders of magnitude faster. Latency is absolutely imperceptible, giving immediate feedback in applications such as audio reactivity.
Precision
All your bits are belong to us. Videomancer operates with 10-bit precision throughout. That includes each channel of video, and each continuous Parameter value. A dynamic range of 1024 possible values per Parameter. 30 bits for video. More than we need for faithful reproduction, total image deconstruction, or devastating annihilation.
Development
Videomancer's firmware is part of a code base shared with other instruments in development, such as Chromagnon, and planned for the future, such as Memory Palace Mk II. The open source Software Developer's Kit opens the door for third party community developers to contribute programs to Videomancer, enriching the creative possibilities for all artists who use the instrument.
Economics
LZX is committed to making video synthesis affordable to working artists, not just big studios. To keep costs down, Videomancer's design requires very little volatile memory. It can only hold a few lines of video in memory at a time. That's enough for certain effects that are impossible in the analog domain, such as vertical blurring. But it's not enough to store an entire frame, so Videomancer isn't a frame store. It can't convert resolutions or frame rates, or sync one video signal to another. For those capabilites, we offer the TBC2 Dual Video Input Eurorack module.
Legacy
Videomancer is the second standalone instrument released by LZX, the first being the popular Vidiot. Videomancer shares very little DNA with Vidiot beyond support for the LZX 1V modular standard. Vidiot was envisioned as an entry-level semi-modular instrument with fixed functionality. In contrast, Videomancer is a development platform whose capabilities will continue to expand over time. 15 years of continuous design and manufacturing expertise have culminated in an instrument highly optimized for creativity, portability, expandability, and efficiency.
Key Specifications
| Parameter | Value |
|---|---|
| Dimensions (mm) | 234.2 width / 178.1 depth / 75.44 height |
| Dimensions (inch) | 9.22 width / 7.01 depth / 2.97 height |
| Power Consumption | 12V @ 500 mA |
| Power Connectors | 2.1mm DC barrel |
| Included | International power supply |
| Video Sync | Rear RCA Sync out, rear RCA Multi-format Analog in |
Connectors, Controls, and Indicators
Connectors
- HDMI digital video/audio in and out
- Full-size HDMI jacks
- Supporting a wide range of digital video formats
- Output configurable as HDMI YCbCr or DVI RGB
- Multi-format Analog video in and out
- Triple RCA jacks configurable as:
- CVBS composite
- S-Video (Y/C) component
- YPbPr component
- RGB component with sync on green (RGsB / SoG)
- Triple RCA jacks configurable as:
- Video Sync out
- RCA jack
- Genlock a modular system or other devices to Videomancer
- 1v RGB video in and out
- Triple TS mini-jacks
- DC-coupled LZX modular standard
- Audio/CV inputs
- Four signal inputs on two TRS stereo mini-jacks
- Configurable as control voltages or line level audio signals
- MIDI in and out
- TRS 3.5 mm (1/8”) mini-jacks
- MIDI standard Type A
- USB ports
- Two USB-C jacks
- Device port
- Connect to MIDI host such as a PC
- Firmware updates
- Host port
- Connect to class-compliant USB MIDI devices such as musical keyboard or fader box
- Connect to Human Interface Devices such as mouse or game controller
- microSD card slot for additional non-volatile storage
- Additional Programs from LZX and the community
- Presets for Programs stored on microSD card
- Planned: library management with LZX Connect desktop application
- DC Power
- Barrel jack
- 2.1 mm diameter center conductor
- Power supply requirements:
- 12 Volts, center positive
- 500 mA
- Barrel jack
Controls
Front Panel Controls
- Rotary Encoder
- Incremental digital data entry
- Turn to choose an option from the menu
- Push to execute
- Define global SYSTEM settings
- Choose Modulation Operator per Parameter
- Load and save STATE presets
- Navigation buttons
- Press to access a function on the LCD display
- White buttons: SYSTEM, MOTION, and STATE
- Black buttons labeled 1 through * :
- Press to switch focus to Parameter 1 through Parameter 12
- Press repeatedly to cycle through the display of:
- Modulation Operator menu
- Current Manual value of Parameter Knobs, Switches, and Fader
- Values of the Modulation properties controlled by the Time, Space, and Slope knobs
- Modulation control knobs
- Adjust modulation for the currently focused Parameter
- Parameter control knobs
- Manually adjust continuous Parameters 1 through 6
- Toggle control switches
- Manually enable / disable binary Parameters 7 though 11
- Slider Parameter control
- Manually adjust continuous Parameter 12
- Transport buttons
- Start and Stop modulation
- Tap to set tempo in beats per minute
Rear Chassis Controls
- Power switch
- Boot button
- For firmware update
Indicators
Front Panel Indicators
- LCD screen
- User feedback for SYSTEM settings and functions, STATE Presets, Modulation modes, Parameter values, and MOTION Timecode / BPM
- Front panel LED lights
- Parameter knob, switch, and fader LEDs indicate the currently focused Parameter: 1 through 12
- Modulation knob LEDs indicate the focused Modulation control: Time, Space, Slope
- Start and Stop LEDs indicate transport playback status
- Tap LED flashes during transport playback to indicate tempo
Rear Chassis Indicators
- Power LED light
- HDMI input and output LED lights
- Illuminate when HDMI status is active and locked
Signal Paths
Supported Formats and Standards
Videomancer genlocks to incoming video, assuming the timing, resolution, and frame rate of the source. It can't convert raster formats, so there's no function to choose resolutions or frame rates.
| Resolution and frame rate standards |
|---|
| NTSC 486i59 |
| PAL 576i50 |
| 480p29 |
| 576p25 |
| 720p50 |
| 720p59 |
| 720p60 |
| 1080i50 |
| 1080i59 |
| 1080i60 |
| 1080p23 |
| 1080p24 |
| 1080p25 |
| 1080p29 |
| 1080p30 |
Videomancer can't convert resolutions or frame rates, but it can convert between color spaces and color encoding formats. Choose the input and output options via the System menu, as described in Video Route Modes below.
| Color formats |
|---|
| HDMI YCbCr (YUV) |
| DVI (RGB) |
| Component YPbBr (YUV) |
| Component RGsB / SoG (Sync on Green) |
| Composite (CVBS) |
| S-Video (Y/C) |
Video Inputs and Outputs
Videomancer provides many options for video inputs and outputs, making it exceptionally flexible. It's compatible with nearly any video device with HDMI or analog connections.
Video Routing
General procedure
To choose from the available video inputs and outputs:
- Press the SYSTEM button
- Turn the rotary encoder to select the desired SYSTEM submenu:
- Vid Route Mode
- Analog In Mode
- Analog Out Mode
- HDMI Out Mode
- Press the Rotary Encoder to edit the selected setting
- Turn the Rotary Encoder to select an option
- Press the Rotary Encoder to confirm the option
All of Videomancer's outputs are always active.
Video Route Modes
The most fundamental SYSTEM property is how video is routed through Videomancer. The Vid Route Mode menu chooses which inputs are active, if any, and how they are routed to the processor.
| Vid Route Mode | Signal Path(s) |
|---|---|
| HDMI In | Send HDMI digital video to Videomancer processor |
| Dual In | Send HDMI to analog outputs and send analog inputs to processor |
| Standalone | Disable all inputs. Video format is set with SYSTEM → Preferred Timing. |
| Analog In | Send analog video to processor |
In every Vid Route Mode except Dual In, the same signal is sent to the HDMI and analog outputs.
Dual In Route Mode
Integrate Videomancer with analog devices such as a modular synthesizer with Dual In Mode. Videomancer routes incoming HDMI video to the active analog output. Process video with an external device, or chain of devices. Video connected to Videomancer's active analog input is routed to the processor.
Dual In routing diagram showing connections to a modular synth
Dual In setup procedure:
- Connect Videomancer's analog output to the input of another device.
- Choose the output signal type from SYSTEM → Analog Out Mode.
- Connect the analog output of another device to Videomancer's analog input.
- Choose the input signal type from the SYSTEM → Analog In Mode menu.
There's no law that says Videomancer's analog inputs and outputs have to form a single circuit with some other system. A signal can loop through something as an “effects send” and back to Videomancer, but it doesn't have to. You can connect whatever you want to the analog inputs. That signal can be completely independent of the HDMI input → analog output chain, giving you a high quality digital to analog converter for free.
Standalone Route Mode
Some Programs operate without a video input. Videomancer casts an algorithmic illusion to generate imagery. Eliminate the need for any external source device by invoking Standalone Mode.
Videomancer genlocks to incoming video, automatically switching to the resolution and frame rate of the source. If there is no source, then the video format standard is chosen from System → Pref. Timing.
Analog In Modes
If Vid Route Mode is set to Dual In or Analog, choose the active physical input and signal type from the Analog In Modes menu.
| Mode | Color space / format | Connector(s) |
|---|---|---|
| YPbPr | Component YPbPr (YUV) | Triple RCA jacks labeled Y/G/CVBS, PB/B, and PR/R |
| RGB SOG | Component RGsB (sync on green) | Triple RCA jacks labeled Y/G/CVBS, PB/B, and PR/R |
| RGB 1V | LZX modular standard | Triple 3.5mm (1/8”) jacks labeled 1V R, 1v G, and 1V G |
| CVBS/S-Video | Composite NTSC or PAL (CVBS) | RCA jack labeled Y/G/CVBS |
| CVBS/S-Video | Y/C NTSC or PAL (S-Video) | RCA jacks labeled PB/B (luminance) and PR/R (chrominance) |
Analog Out Modes
Choose the color space of the analog outputs from the Analog Out Modes menu. The options are YPbPr and RGB.
HDMI Out Modes
Choose the color space of the HDMI output from the HDMI Out Modes menu. The options are YPbPr and RGB.
Input Configurations
HDMI in
- Connect a source to the HDMI input
- Set Video Route Mode to HDMI
Composite (CVBS) video in
- Connect a composite video signal to the Analog Y/CVBS input
- Set Vid Route Mode to Analog
- Set Analog In Mode to CVBS
S-Video in
- Using a Mini DIN-4 to dual RCA adapter, connect the Y (luminance) component to the Analog Pb/B input and the C (chroma) component to the Analog Pr/R input
- Connect an S-Video source to the adapter with an S-Video cable
- Set Vid Route Mode to Analog
- Set Analog In Mode to S-Video
YPbPr component in
- Connect a YPbPr Component source to the Multi-format Analog inputs
- Set Vid Route Mode to Analog
- Set Analog In Mode to YPbPr
RGB Sync on Green (SoG) component in
- Connect an RGB SoG component source to the Multi-format Analog inputs
- Set Vid Route Mode to Analog
- Set Analog In Mode to RGB SoG
1V RGB + Sync in
- Connect 1V RGB signals to the 1V RGB inputs
- Connect a sync signal to the Analog Y input
- Take a sync output from the front or rear of any module
- Or take any video output that includes embedded sync, and is in sync with the modular system. For example, the following RCA jacks of ESG3 all include sync:
- CVBS
- The Y output in YPbPr mode
- The Green output in RGB / SoG mode
- Set Vid Route Mode to Analog
- Set Analog In Mode to RGB 1V
In any Video Route Mode other than Standalone, Videomancer needs to receive a sync reference. That can come from sync embedded in the HDMI or conventional analog video source. 1V modular RGB does not carry sync, so sync must be supplied separately. Sync can come directly from the modular system, or from some other video device that is in sync with the modular system.
Output Configurations
HDMI out
- Connect the HDMI output to a monitor or capture device
Composite video out
- Connect the Y/G/CVBS output to a monitor or capture device
- Set Analog Out Mode to CVBS/S-Video
S-Video out
- Using a Mini DIN-4 to dual RCA adapter, connect the Y component to the Analog Pb/B output and the C component to the Analog Pr/R output
- Connect the adapter to a monitor or capture device using an S-Video cable
- Set Analog Out Mode to CVBS/S-Video
YPbPr component out
- Connect the YPbPr outputs to a monitor or capture device
- Set Analog Out Mode to YUV
RGB Sync on Green (SoG) component out
- Connect the RGB outputs to a monitor or capture device
- Set Analog Out Mode to RGB
1V RGB + Sync out
- Connect the 1V RGB outputs to the modular system
- Connect the SYNC output to the sync input of the modular system
- Set Analog Out Mode to RGB
Videomancer automatically syncs to any conventional video signal patched to the HDMI or RCA inputs. However, it is not a frame store like TBC2. To use Videomancer as a decoder to convert to 1v modular video, patch the Videomancer Sync output to the sync input of the modular system.
Videomancer is an ultra-low latency digital signal processing device, but it can never be as fast as a dedicated analog circuit.
Horizontal Phase Delay
Any video going through Videomancer is delayed slightly. If Videomancer is patched into the middle of a modular system, between the modular decoder and the modular encoder, Videomancer's output will be shifted to the right relative to the rest of the modular system. The amount of horizontal shift depends on video resolution, frame rate, and the particular program loaded into Videomancer.
Therefore, inserting Videomancer between a modular decoder and encoder is not a recommended configuration. Using Videomancer as an “effects send” may be possible in exotic scenarios where the modular decoder, encoder, and/or sync generator are not sharing the same sync reference, but that would be a non-standard, advanced, experimental configuration.
On the other hand, there's no issue at all when integrating a modular system using Dual Mode. As long as the modular is receiving sync from Videomancer, the only phase delay will be from the analog patch.
Operation
Menu Structure
The following outline illustrates the overall structure of the Videomancer menus. Specific options per menu are listed or described in the corresponding sections of this User Guide, or in supplemental documents such as the Modulation Guide.
- SYSTEM, MOTION, and STATE menus are chosen by pressing the labeled white Button, indicated by a circled bullet character: ◉
- Parameter menus are chosen by repeatedly pressing a black Parameter Button, labeled 1 through * (12), indicated by a hollow bullet character: ○
- Most menus are chosen by turning the Rotary Encoder, indicated by a left-right horizontal arrow: ↔
- Any menu accessed by pressing the Rotary Encoder is indicated by a down arrow: ↓
Videomancer │ ├── SYSTEM ◉ │ ├─ Current Program, Video In, and format ↔ | | └─ Program Selection ↓ │ ├─ Video Route Mode ↔ │ ├─ Analog In Mode ↔ │ ├─ Analog Out Mode ↔ │ ├─ HDMI Out Mode ↔ │ ├─ MIDI Channel ↔ │ ├─ MIDI Out Mode ↔ │ ├─ Developer Mode ↔ │ ├─ Soft Pickup ↔ │ ├─ Language ↔ │ ├─ Preferred Timing ↔ | └─ Escape to Parameter menu ◉ │ ├── MOTION ◉ │ ├─ Timecode & Beats Per Minute │ ├─ Motion Overview ◉ | └─ Escape to Parameter menu ◉ │ ├── STATE ◉ │ ├─ Presets ↔ | └─ Escape to Parameter menu ◉ │ └── Parameter ○ ├─ Manual ○ ├─ Time ○ ├─ Space ○ ├─ Slope ○ └─ Modulation Selection ○ ↔
SYSTEM
Press the SYSTEM button to access the System menus. By default, the current Program, video input, and format standard are displayed.
System Status
Turn the Rotary Encoder to cycle through the System menus:
| Menu | Display Text | Options |
|---|---|---|
| Video Route Mode | Vid Route Mode | HDMI In, Dual In, Standalone, Analog In |
| Analog Input Mode | Analog In Mode | YPbPr, RGB SOG, RGB 1V, CVBS/S-Video |
| Analog Output Mode | Analog Out Mode | CVBS/S-Vid, YPbPr, RGB |
| HDMI Output Mode | HDMI Out Mode | HDMI, DVI |
| MIDI Channel | MIDI Channel | Disabled, Omni, CH 1 – CH 16 |
| MIDI Output Mode | MIDI Out Mode | Disabled, Manual+Mod, Manual Only, Mod Only |
| Developer Mode | Developer Mode | Disabled, Enabled |
| Soft Pickup | Soft Pickup | Disabled, Enabled |
| Language | Language | English, Deustch, Francais, Espanol, Dansk, Svenska, Suomi, Italiano, Portugues, Indonesia, Nederlands, Norsk, Turkce, Catala, Polski, Hrvatski, Romana, Cestina |
| Preferred Timing | Pref. Timing | Video Formats and Standards |
System settings procedure:
- Press the SYSTEM button
- Turn the Rotary Encoder to choose a System submenu
- Press the Rotary Encoder to move the cursor to the bottom row
- Turn the Rotary Encoder to change the setting
- Press the Rotary Encoder to confirm the setting
Programs
Videomancer includes numerous Programs, which are firmware applications that can be loaded on the fly.
Each Program is seperately documented on its own Program Guide page. The complete list of all available Program Guides is found in the documentation navigation menu and on the Programs page.
Program loading procedure:
- Press the SYSTEM button. The currently active Program name is displayed on the top row of the display.
- Press the Rotary Encoder to enter Program selection mode. A right-facing angle bracket ( > ) is displayed on the far left of the display.
- Turn the Rotary Encoder to scroll through the available Programs
- Press the Rotary Encoder to load the Program
When Videomancer loads a Program, all outputs are disabled for a few seconds. During Program load, no video or sync signal is present at the outputs. Any downstream video device does not receive a signal, so it may display black, a blue screen, or an error message such as "no signal detected". If this is an issue, such as during a live performance, send Videomancer through a device such as a mixer that always outputs a valid video signal.
Some Programs may default to a black output. Typically, the * Slider for Parameter 12 performs the function of fading to black, or luminance keying to black. After loading a Program, it may be necessary to move the Slider to its furthest extents in order to see an image.
Parameters
Any Parameter 1 through 12 can be adjusted manually at any time via the Parameter Knobs, Switches, or Fader. If Videomancer is in Parameter display mode, then the Parameter number, name, and values of the focused Parameter are shown onscreen.
Parameter mode
To enter Parameter display mode, press any of the Parameter buttons labeled 1 through * (Parameters 1 through 12). The selected Parameter is given focus and its properties are displayed. The top row of the display lists the Parameter number and name.
The bottom row displays additional information:
- Manual value of the physical control
- Name and value of the Time Modulation Knob
- Name and value of the Space Modulation Knob
- Name and value of the Slope Modulation Knob
- Modulation Operator assigned to the Parameter
Press the Parameter button repeatedly to cycle through all Parameter display modes.
If any Parameter display mode is active, simply moving a different Parameter control brings that Parameter into focus and its Manual value onscreen. Moving a Time, Space, or Slope control knob displays the associated Modulation property and its value.
If Videomancer is in SYSTEM, MOTION, or STATE mode, then the LCD display shows the menus for that mode. In this case, the properties of the focused Parameter are not displayed. However, all Parameter controls are still active. The Time, Space, and Slope Modulation controls for the focused Parameter are also active.
Soft Pickup
Parameter controls feature an optional soft takeover method for updating the value Parameter. When Soft Pickup is enabled, the physical control must be moved beyond the current Parameter value in order to take effect. When the Parameter value doesn't match the physical control position, an exclamation point ( ! ) is displayed on the left side of the value.
Soft Pickup is enabled or disabled from its submenu in the System menu.
Modulation
Each Parameter can be separately modulated by its own individual chain of modulation sources. The Parameter value at any point in time is the sum of Manual control, a Modulation Operator, and incoming MIDI.
Modulation Operators
Videomancer features dozens of Modulation Operators of various types, ranging from raw control voltage input to generative algorithms. Modulation Operators are documented in full in the Modulation Guide.
MOTION transport playback usually needs to be running to apply modulation. Press the PLAY button to enable all Modulation Operators.
Modulation Operator sample rate is latched to the current video format. Values are usually constrained to the current frame/field rate. This prevents frame tearing that could occur if a modulation value changes in the middle of a frame. Additionally, some Modulation Operators, such as Audio In, are capable of operating at the higher sample rate of individual video scanlines.
Modulation Operators include:
- External signals
- Audio
- Control voltages
- Envelopes & Followers
- Clocks and Logic
- Internal generative algorithms
- Oscillators
- Sequencing & Rhythm
- Random & Chaos
- Physics
- Spatial
- USB devices
- Mouse
- Graphics tablet
- Game controller
- Joystick
- Sensor
Modulation Selection
Modulation Operator selection procedure:
- Give focus to the desired Parameter by pressing its button, or by adjusting its physical Knob, Switch, or Fader
- Press the Rotary Encoder, or turn it by one increment, to display the current Modulation Operator
- Turn the Rotary Encoder to cycle through the available Modulation Operators
Selection of a Modulation Operator takes place immediately. If the name of a Modulation Operator is displayed, it's active.
The MOTION button doesn't choose Modulation operators. Pressing the MOTION button displays the current Timecode and BPM (beats per minute).
Disabling Modulation
To change Parameter values with Manual controls and/or MIDI only, disable the Modulation operator. When the Modulation Operator name is displayed, turn the Rotary Encoder to set the Modulation mode to Disabled, or simply press the Rotary Encoder.
Modulation Control Knobs
Modulation Operator properties are adjusted with the Time, Space, and Slope knobs. Adjusting one of those knobs brings the associated property into focus, and the property's value is displayed onscreen. The values can also be displayed without changing them by repeatedly pressing the desired Parameter button.
Space controls the Gain or amplitude of modulation. The range of the Gain property depends on the current Modulation Operator. For example, LFO modulators have a maximum Gain of 100%. CV and Audio modulators have a maximum Gain of 400% to accommodate sources with different voltage ranges.
Time and Slope knobs perform different functions depending on the active Modulation Operator, as described in the Modulation Guide. For example, Time adjusts the period of an oscillator, and Slope chooses the waveform type.
Slope display showing Sine LFO waveform selection
If Modulation is disabled, and no Modulation Operator is assigned to the focused Parameter, then the Time, Space, and Slope controls have no effect. The LCD screen merely displays the name of the active Knob and its value from 0 to 100.
MIDI Modulation
All Parameters can be additionally controlled via MIDI Continuous Controllers or MIDI Note messages. MIDI Modulation is documented in full in the Modulation Guide. Controller and Note numbers can be assigned to Parameters manually or automatically via MIDI Learn. Any incoming MIDI is added to the Manual control value, and to any active Modulation Operator.
There's no Modulation operator for MIDI, it's always enabled.
MIDI Output
Videomancer can control external devices via MIDI Continuous Controller messages. Send the values of Parameter Manual controls, active Modulation Operators, or their combined values. Choose the desired behavior from System → MIDI Out Mode.
| Option | MIDI Out |
|---|---|
| Disabled | None |
| Manual+Mod | Manual control + Modulation Operator |
| Manual Only | Manual control only |
| Mod Only | Modulation Operator only |
MOTION
Press the MOTION button to display the current values of Timecode (TC) and Beats Per Minute (BPM).
Timecode and Beats Per Minute
Modulation within Videomancer is usually linked to the Timecode displayed in MOTION mode. Videomancer can generate timecode internally, or synchronize to MIDI.
Modulation is deterministic based on Videomancer's timecode. For example, oscillators begin with a phase of zero at timecode value 00:00:00:00. If the Time properties of Modulation Operators don't change, then the exact same Modulation patterns are generated each time playback begins from zero.
Internal Synchronization
Press the START button to activate playback of internal Timecode.
Press the STOP button to deactivate playback of internal Timecode. The time index is reset to 00:00:00:00.
When the transport is stopped, a left arrow ( ← )appears on the lower left of the display. When the transport is running, a right arrow ( → ) is displayed.
Videomancer does not have a manual pause button. Stopping playback sends the timecode value to zero, resetting all modulation. Use MIDI Timecode if you wish to pause and resume playback.
Internal BPM Tempo
To change the BPM value numerically:
- Press the MOTION button
- Turn the Rotary Encoder
To change the BPM value rhythmically while playback is stopped:
- Press the MOTION button
- Press the TAP button once to begin sampling the tempo
- Press the TAP button again to finish sampling the tempo
To change the BPM value rhythmically during playback:
- Press the TAP button once to begin sampling the tempo
- Press the TAP button again to finish sampling the tempo
The new tempo takes effect immediately.
MOTION Overview
Pressing the MOTION button a second time brings up the Motion Overview display.
Motion Overview
The illustration above indicates the following:
- Parameter 1 Modulation Operator is Free LFO
- Parameter 3 Modulation Operator is Turing Machine
- Playback is stopped
- Beats Per Minute is 120.00
- Two Modulation Operators are active
The top row lists all active Modulation Operators. Each character or symbol to the right of the word Mod represents one of the 12 Parameters, in numerical order from left to right. The first place is Parameter 1, the second is Parameter 2, etc. The table below lists which Modulation Operator is signified by each symbol.
| Symbol | Modulation Operator | Symbol | Modulation Operator |
|---|---|---|---|
| • | Disabled | K | Comparator |
| L | Free LFO | N | Pendulum |
| S | Sync LFO | W | Drift |
| C | CV Input | * | Ring Mod |
| A | Audio Input | # | Cellular |
| R | Random | P | Pulse Width |
| E | Envelope | J | Peak Hold |
| H | Sample & Hold | I | Field Accum |
| T | Trigger Envelope | / | Slew Limiter |
| Q | Step Sequencer | ~ | Perlin Noise |
| F | FFT Band | Z | Wavefolder |
| D | H Displace | V | Clock Div |
| U | Turing Machine | ? | Prob Gate |
| B | Bouncing Ball | O | Quantizer |
| X | Logistic Map | m | Mouse |
| Y | Euclidean Rhythm | k | Keyboard |
| M | Motion LFO | g | Gamepad |
| G | V Gradient | t | Tablet |
The second row of the Motion Overview displays the state of the MOTION transport and the current Beats Per Minute. A left-facing arrow indicates that the transport is stopped, a right-facing arrow indicates that the transport is playing. To the right of the arrow, the current BPM value is displayed.
Also on the second row, the total number of active Modulation Operators is indicated by the word Act: followed by a number.
MIDI Synchronization
A MIDI Clock or MIDI Timecode signal supplied to Videomancer automatically overrides the internal Timecode.
By default, Videomancer receives MIDI on all channels (Omni). Videomancer can also be configured to recognize only one of the 16 available MIDI channels, via SYSTEM > Midi Channel.
BPM setting is determined by incoming MIDI Clock or MIDI Timecode (MTC). Videomancer adopts the current incoming MIDI BPM tempo, even when the MIDI source is stopped. Any manual changes to BPM are overridden by incoming MIDI on the next beat.
Transport functions are also overridden by incoming MIDI Clock or MIDI Timecode. When the MIDI source starts or stops, Videomancer transport also starts or stops. However, if the MIDI source is stopped, Videomancer transport controls still function. We can press the START or STOP buttons to control playback while the MIDI source is not playing. However, we can't change the BPM as long as the MIDI source is transmitting MIDI Clock or MIDI Timecode.
MIDI Clock Start and Stop signals perform the same functions as the START and STOP buttons. MIDI Clock Stop resets the Videomancer timecode to 00:00:00:00, regardless of the timecode value of the MIDI source. As a result, MIDI Clock Continue and Song Pointer messages have no effect. Therefore, in the Videomancer implementation, MIDI Clock is a relative time index, not an absolute one.
MIDI Timecode is an absolute time reference. Videomancer timecode follows the current MIDI Timecode value, but only during playback. Stopping or pausing the MIDI source causes Videomancer timecode to stop, but does not reset to zero. Starting the MIDI source causes Videomancer timecode to update to the incoming MIDI Timecode value, so we can pause and resume playback without resetting oscillator phase. Any other transport controls on the MIDI source, such as rewind, fast forward, or skipping to a different timecode value, have no effect on Videomancer's timecode. Videomancer only responds when MIDI Timecode plays or stops.
If the MIDI source transmits both MIDI Clock and MIDI Timecode, Videomancer gives priority to MIDI Clock. Videomancer timecode is reset to zero when the MIDI source stops.
STATE Presets
The STATE button accesses factory or user-defined Presets for a particular Program. All Modulation and Parameter values are stored in non-volatile internal flash memory. Videomancer will commit your spell to memory, and recall it even after a power failure or reboot.
Programs can include up to eight Factory Presets, indicated by the letter F. User Presets are signified by the letter U. The currently loaded Preset number is followed by a slash, then by the total number of Presets, either Factory or User. Internal storage provides a total of 32 Preset registers.
Preset Selection display
To load a Preset:
- Press the STATE button
- Turn the Rotary Encoder to select a Preset number
- Press the Rotary Encoder to confirm the load operation
To save a new User Preset :
- Press the STATE button
- Long-press and hold the Rotary Encoder for at least two seconds
- Define the Preset name
- Turn the Rotary Encoder to choose a character
- Press the Rotary Encoder to advance to the next place
- Repeat until the Preset name is completed
- Press the Rotary Encoder to confirm the save operation
To overwrite an existing User Preset:
- Press the STATE button
- Turn the Rotary Encoder to select a User Preset
- Long-press and hold the Rotary Encoder for at least two seconds
- Press the Rotary Encoder to confirm overwrite
- Define the Preset name
- Turn the Rotary Encoder to choose a character
- Press the Rotary Encoder to advance to the next place
- Repeat until the Preset name is completed
- Press the Rotary Encoder to confirm the save operation
MIDI Program Change
Presets can be recalled remotely with MIDI Program Change messages, as described in the Modulation Guide.
MicroSD Card
Expand the storage capabilities of Videomancer with a microSD card. Load additional Programs and their associated Presets. In addition to the Programs provided by LZX, third party developers can create Programs with the Software Developer's Kit.
Compatibility
All brands of microSD cards should be compatible with Videomancer. Storage capacities up to 2 TB are supported.
Format the microSD card on a personal computer. The FAT32 file system is recommended, but Videomancer also supports FAT12, FAT16, FAT32, and exFAT.
Functionality
Presently, microSD card storage is limited to Programs and Presets. Additional functionality is planned, and intended to be integrated with the LZX Connect desktop application.
At boot time, Videomancer scans internal flash storage and microSD card for Program files with the extension .vmprog. In the case of duplicate filenames, Videomancer loads the highest version number, or the internally stored version.
By default, Videomancer ignores third party Programs or those with version numbers lower than 1.0.0. To load Programs developed by third parties, or currently in alpha or beta development stage, Developer Mode must be enabled. See below.
Currently, Videomancer recursively scans the entire file system of the microSD card, looking for .vmprog files. You can organize Programs in any folder structure you like, and Videomancer will find them. However, be aware that the number of files and folders affects the time it takes for Videomancer to boot up. We recommend keeping the microSD card free of any extraneous data to minimize boot times.
Presets
Both Factory Presets and User Presets are stored in the same place from which the Program was loaded. Presets for internal Programs are stored in internal flash memory, Presets for microSD card Programs are stored on the card. Factory Presets are embedded in the .vmprog file. User Presets are stored in sidecar files with the extension .toml.
Developer Mode
For testing purposes, Videomancer firmware may include Programs that are currently in development. These have version numbers lower than 1.0.0. Normally, they are hidden from the Videomancer Program Selection menu. To expose them, enable Developer Mode from the SYSTEM menu. When prompted to **Restart Device?**, choose **Yes** to reboot and rescan the internal and microSD file systems.
Any Programs in development may not have full functionality, will probably have bugs, and won't be publicly documented.
Firmware Update
Keeping Videomancer updated with the latest firmware ensures access to the latest programs, features, and bug fixes. The process is very simple and only takes a few minutes. It can be performed manually through the computer's file browser, or via the LZX Connect desktop application.
Requirements
- Videomancer and power supply
- Windows, Mac or Linux computer
- USB-A to USB-C cable
Manual Update Procedure
- Download the desired firmware
.UF2file from the Videomancer firmware repository on GitHub - Connect Videomancer to power supply and switch power to the OFF position
- Connect the computer's USB-A port to Videomancer's USB-C Device port (not the Host port)
- Hold down Videomancer BOOT button
- Switch Videomancer power to the ON position
- Release the BOOT button
- A new USB storage device is listed in the computer's file system. It shows up as a Raspberry Pi, because that's the control system for Videomancer's USB ports.
- Copy the firmware
.UF2file to the newly detected storage device. Wait a few minutes for the transfer to complete. - Videomancer automatically reboots into the new firmware and displays the currently installed version
Developer Resources
Videomancer is an open-source FPGA-based video synthesis platform. LZX Industries provides comprehensive development tools and community resources for creating custom video processing programs.
Videomancer SDK
The official Software Developer's Kit provides everything needed to develop programs for Videomancer with the VHDL hardware description language. The SDK includes build tools, documentation, example programs, and utilities for creating signed .VMPROG packages.
Repository: github.com/lzxindustries/videomancer-sdk
Key features:
- Complete FPGA development toolchain
- Program development and TOML configuration guides
- Example programs (passthrough, YUV amplifier)
- Visual TOML editor and validation tools
- Package signing with Ed25519 cryptography
Videomancer Community Programs
A community repository for sharing FPGA video processing programs. This collection extends Videomancer's capabilities with effects, processors, and creative tools contributed by the community.
Repository: github.com/lzxindustries/videomancer-community-programs
Key features:
- Community-contributed VHDL programs
- Automated build scripts for compiling programs
- Contributing guidelines for submitting your own programs
- GPL-3.0 licensed open-source contributions
Both repositories are licensed under GPL-3.0 and welcome community contributions.