This page documents the JUCE-side control widgets and how they are assembled into the live control surface.
BasicPadGrid (JUCE/SmartGridOne/Source/BasicPadGrid.hpp)PadComponent instances.PadUI object from PadUIGrid::MkPadUI(x, y).SetCellSize, spacing, bounds),OnPress, OnRelease),SetSkin).EncoderComponent and EncoderGridEncoderComponent draws one encoder tile:
ModulatorGlyphImages),FourteenSegmentDisplayComponent.EncoderGrid arranges a sub-rectangle of encoders and resizes them with SetCellSize.EncoderBankUI / EncoderBankUIState.FaderComponentAnalogUI as the transport API.[0,1] values via AnalogUI::SendValue(timestamp, value).JoyStickComponentAnalogUI channels.WrldBuildrComponent compositionWrldBuildrComponent (JUCE/SmartGridOne/Source/WrldBuildrComponent.hpp) is the main composition root for the controller/visualizer page.
It places controls on a 24x18 logical grid with holder types:
BasicPadGridHolderEncoderGridHolderFaderHolderJoyStickHolderScopeComponentHolderWrldBuildrComponent::SetDisplayMode() switches between:
VisualDisplayMode.CalculateGridLayout() preserves a fixed 24:18 aspect ratio.UpdatePadGridPosition() propagates computed cell size and offsets to all holders.