Flex Audio Visualizers Reference

March 25, 2026 · View on GitHub

The Scromfy Flex Visualizer suite follows a strict Global vs. Local parameter split to eliminate UI redundancy and provide clear control over the "Soul" vs. "Shape" of the visualization.

Architecture Overview

  • Global Settings (Master Node): Defines audio analysis, color logic, and global motion.
  • Local Settings (Individual Nodes): Defines the physical shape (radius, height, curvature) and placement (position, rotation).
  • Reference Mask: If a source_mask is provided to any Flex node, it defines the geometric area. By enabling Use Mask as Visibility Filter in the Settings node, it also acts as a strict clipping filter—visualizer elements will only appear where the mask is non-black. This allows you to "confine" a visualizer to a specific region of the screen while keeping the background clean.

1. Global Settings

Located in the visualizer_global_settings_node.py node.

System

ParameterDescription
randomizeAutomatically vary parameters for each batch.
seedDeterministic seed for randomization.
loop_backgroundToggle between looping the background (True) or clamping to the last frame (False).
use_mask_as_visibility_filterBlocking: If True, visualizer elements only appear where the source_mask is white. (Default: False).

Audio Processing

ParameterDescription
visualization_featureSwitch between frequency (FFT) and waveform analysis.
num_pointsThe total number of points/bars to generate (affects sampling resolution).
smoothingTemporal smoothing of the audio data.
fft_sizeWindow size for FFT resolution.
min_frequencyLower bound of frequency analysis (Bass).
max_frequencyUpper bound of frequency analysis (Treble).

Color & Style

ParameterDescription
color_modeSelection logic for colors (see Color Modes section below).
color_schemaPreset palette from color_schemas/. Used only in 'Schema' mode.
custom_colorStatic hex color. Used only in 'Custom' mode.
color_shiftHue offset (0.0 to 1.0) applied as a cycle.
saturationColor intensity (0.0 to 1.0).
brightnessOverall brilliance (0.0 to 1.0).
line_widthDrawing thickness in pixels.

Motion & Direction

ParameterDescription
visualization_methodbar (discrete) vs line (smooth).
directionVector orientation (Outward, Inward, Both, Centroid, Starburst).
sequence_directionData flow mapping (Left, Right, Centered, Both Ends).
direction_skewGlobal tilt of all drawing vectors in degrees.
centroid_offset_x/yShift the focal point in % of screen size (-1.0 to 1.0).

Color Modes

The color_mode setting defines how colors are assigned to individual points or bars.

ModeLogic
WhiteAll elements are pure white.
SpectrumColors are derived from the audio frequency (Low=Red, High=Violet).
CustomEvery element uses the custom_color hex value.
SchemaUses the selected .json palette from color_schemas/. User-Addable.
AmplitudeColor is based on the volume of the specific point (mapping 0-1 to the Hue circle).
RadialColor changes based on distance from the center.
AngularColor maps to the angle (0-360) around the center.
PathColor transitions linearly from the first point to the last point.
ScreenColor is based on the X/Y coordinate on the screen.

Tip

Custom Schemas: You can add your own .json palettes to the /color_schemas directory. They will appear automatically in the color_schema dropdown. See the Schema Guide for details.


2. Node-Specific Settings

Exclusive to individual visualizer nodes.

Circular Node (Shape/Placement)

ParameterDescription
radiusMaximum expansion radius in pixels.
base_radiusThe resting radius in pixels.
amplitude_scaleSensitivity multiplier for audio movement.
bar_length_modeabsolute (pixels) vs relative (% of base_radius).
position_x / yCenter coordinate (0.5 = center of screen).
rotationGlobal rotation of the circle in degrees.

Line Node (Shape/Placement)

ParameterDescription
max_height / minHeight bounds for bars in pixels (or % if relative).
bar_length_modeabsolute vs relative (% of screen height).
lengthPhysical length of the base line in pixels (0 = full width).
separationGap between bars in pixels.
curvatureRoundness of bar ends (visual only).
curve_smoothingSmoothness factor for line method (0.0 to 1.0).
position_x / yMidpoint coordinate of the line (0.0 to 1.0).
rotationAngle of the line in degrees.

Contour Node (Shape/Source)

ParameterDescription
installed_maskSelect a built-in mask or "random".
mask_scaleSize of the mask content (0.01 to 1.0 multiplier).
mask_top_marginVertical offset of mask content (0.0 to 0.5 percentage).
bar_lengthVisualizer height in pixels (or % of mask scale).
bar_length_modeabsolute vs relative (% of mask scale).
distribute_byStrategy for spreading points across the contour hierarchy.
contour_layersComma-separated list of target layers (e.g. 0,1).
contour_color_shiftHue variance between different layers (0.0 to 1.0).
adaptive_point_densityIf True, num_points is scaled by the mask perimeter length.
min_contour_areaIgnores shapes smaller than this area in square pixels.
max_contoursMaximum number of individual shapes to process.
ghost_mask_strengthOpacity of the original mask shape preview (0.0 to 1.0).
ghost_modeNone, White, Color, Outline White, Outline Color, Outline White (Thin), or Outline Color (Thin).
contour_smoothingLevel of geometric simplification (0 to 50).

Contour Outputs

NameTypeDescription
IMAGEImageThe final audio visualization.
MASKMaskThe alpha mask of the visualization.
SETTINGSStringDebug string of active settings.
SOURCE_MASKMaskThe original input/randomly selected mask.
LAYER_MAPImageA color-coded visualization of the mask hierarchy (labels L0, L1, etc).

3. Lyrics Integration

The Lyrics system consists of an overlay node and a dedicated settings node.

Lyric Settings Node

A standalone master node for text styling. Found in visualizer_lyric_settings_node.py.

ParameterCategoryDescription
lrc_textSourceThe raw LRC or SRT formatted lyric text.
font_nameStyleSelection from the fonts/ directory.
font_sizeStyleBase font size.
highlight_colorStyleColor of the current active line.
normal_colorStyleColor of pending/past lines.
background_alphaStyleTransparency of the shadow/blur region behind text.
blur_radiusStyleSoftness of the text shadow.
active_blurStyleExtra background blur behind the currently active lyric.
y_positionPlacementVertical alignment (0.75 = lower third).
max_linesLayoutMaximum number of lines to display at once.
line_spacingLayoutGap between lines of text.

Flex Lyrics Node (The Overlay)

This node combines a background (image/video) with the styling from a Lyric Settings node. Found in visualizer_lyrics_node.py.

ParameterTypeDescription
audioInputUsed for timing synchronization with LRC/SRT.
opt_videoInputBackground source (image or video).
lyric_settingsInputLink to a Lyric Settings node for global styling.
strengthLogicOpacity/intensity of the lyric overlay.
feature_paramLogicWhich visualizer parameter controls visibility (optional).