DisplayOpenGL

Uses OpenGL to render graphics to a window on the screen in various modes.

Source Code

Modes Overview

  • BlockStrip: Shows blocks of colour, similar to an LED strip, with the number of blocks controlled by the attached visualizer.
  • SmoothStrip: Shows contiguous blocks of colour, with no resolution limit.
  • BlockMatrix: Shows blocks of colour on a 2D field, with resolution controlled by the attached visualizer.
  • SmoothCircle: Shows a ring of contiguous colour blocks. Optionally fades past colours away to infinity.
  • Radar: Shows a scanning circular display, with the newest colours being shown at the revolving marker.
  • SmoothRadialFilled: Highlights the currently active part of a static colour spectrum.
  • RadialPoles: Shows coloured poles sticking out from the center of the screen, with dynamic height.
  • ColorRibbon: Shows a dynamic flying ribbon of colour trailing off into space, surrounded by a field of stars.
  • NoiseField: Fills the screen with very chaotic procedural noise, shaded with note data.
  • CloudChamber: Shows radial laser beams.
  • Tube: (Experimental) Renders a moving tube which reacts to the beat and notes of the music.

Window Configuration

Option NameTypeDefaultRangeControllableDescription
Typestring“DisplayOpenGL”Required: Specifies this output type.
NamestringAny unique nameRequired: A unique identifier used to attach controllers.
VisualizerNamestringValid visualizer instance nameRequired: The Name property of the visualizer instance to attach to.
WindowWidthint128010~4000The starting width of the window, in pixels.
WindowHeightint72010~4000The starting height of the window, in pixels.
EnablebooltrueWhether to show the window and process visualizer data.
Modeobject arrayN/AValid modesThe mode(s) to use. See below for options and configurations. Currently only 1 supported at a time.

Mode Information / Configurations

Display modes are not controllable yet.

BlockStrip

Input Mode: Discrete 1D
Source Code

Number of blocks displayed adjusts to match the attached visualizer.
No additional configuration is available.

SmoothStrip

Input Mode: Continuous 1D
Source Code

No additional configuration is available.

BlockMatrix

Input Mode: Discrete 2D
Source Code

2D version of BlockStrip. Resolution displayed adjusts to match the attached visualizer.
No additional configuration is available.

SmoothCircle (“Infinity Circle”)

Input Mode: Continuous 1D
Source Code

Option NameTypeDefaultRangeDescription
IsInfinityboolfalsefalse just renders the ring. true also renders a decaying persistence effect, appearing to go off to infinity.

Radar

Input Mode: Discrete 1D
Source Code

Spoke resolution (number of segments) is determined by the resolution of the attached visualizer.

Option NameTypeDefaultRangeDescription
Spokesint1001~10,000How many spokes (history length / radial lines) there are. Higher shows more history.
Is3DboolfalseWhether to show a height-variable, tilted-view version with beats causing vertical deflection of the surface.
FalloffAfterfloat0.90.0~1.0How much of the radar is shown at full brightness, after which the rest has a gradient to black applied, ending in front of the “cursor”.

SmoothRadialFilled (“Circle Beamer”)

Input Modes: Any
Source Code

Does not use the attached visualizer, but rather shows NoteFinder data directly.

Option NameTypeDefaultRangeDescription
BaseBrightnessfloat0.00.0~1.0How bright colours should be if there is no note at that location. Values greater than 0.0 show a ghost of the colour wheel at all times.
PeakWidthfloat0.50.0~10.0How wide peaks should be.
BrightAmpfloat1.00.0~100.0How much brightness should be amplified. If peak width is increased, you may want to increase this as well, and vice versa.

RadialPoles

Input Modes: Any
Source Code

Does not use the attached visualizer, but rather shows NoteFinder data directly.

Option NameTypeDefaultRangeDescription
CenterSizefloat0.20.0~1.0How much of the center is left blank before the poles begin. 0 leaves no gap at the center.
ScaleExponentfloat1.60.0~10.0The exponent to scale note data by when calculating pole height.
ScaleFactorfloat0.70.0~100.0The multiplier to scale note data by when calculating pole height.

ColorRibbon

Input Mode: Discrete 1D
Source Code

Displays a flying ribbon of colour trailing off into space, surrounded by a field of stars that also display colour. The ribbon grows and shrinks with note strength.
BETA: The star rendering is still quite janky and needs more work to look good.

Option NameTypeDefaultRangeDescription
RibbonLengthint1202~10,000How many frames of history the ribbon shows along its length.
RibbonScalefloat0.30.0~100.0The base width of the ribbon, which will be scaled by the music.
StarCountint10000~100,000How many stars are shown in the background.
StarSpeedfloat0.10.0~100.0How fast the stars in the background move away.
StarSizefloat0.050.0~1.0How large the stars appear.

NoiseField

Input Mode: Continuous 1D
Source Code

Fills the screen with procedural noise, shading with the current notes. Amount of the screen that is a colour is roughly proportional to how prominent that note is. Also attempts to do basic beat detection, and change the noise size in time. Very chaotic, flashing lights warning applies even more to this one!

Option NameTypeDefaultRangeDescription
Size1float8.00.0~10,000.0Size scaling factor of the larger, beat-sensitive noise layer
Size2float3.50.0~10,000.0Size scaling factor of the finer, constant noise layer
Speedfloat5.00.0~10,000.0How quickly the pattern appears to move up the screen

CloudChamber

Input Mode: Continuous 1D
Source Code

Currently displays radial laser beams, unfinished.

No additional configuration is available.

Tube

Input Mode: Discrete 1D
Source Code

Circle resolution is determined by the resolution of the attached visualizer.
You can move around with the W, A, S, D, Shift, Space keys. You can look around using the arrow keys. This is still extremely janky.
No additional configuration is available.