Tags: tensquaresoftware/Matrix-Control
Tags
Baseline GUI scaling with corner resize before display-scale and dime… …nsions refactor - ScaledLayout and scaling propagation across GUI hierarchy - Resizable editor with corner component and preset combo - PluginDimensions and planning docs snapshot
User-adjustable GUI scaling and layout fixes - Add global GUI scaling factor propagated from HeaderPanel to all panels and widgets - Fix layout rounding accumulation: float-based position calculation, single roundToInt at setBounds - Fix clipping at 125%: last child takes remaining width in TopPanel, BottomPanel, MiddlePanel - InternalPatchesPanel: remove unused skin parameters from five setup methods - .gitignore: consolidate Quality and Workbench journal patterns
Adopt industry-standard GUI scaling terminology - Replace "Zoom" terminology with "Scale" throughout codebase - Update HeaderPanel label from "ZOOM :" to "GUI :" (industry standard) - Add transparent migration from old guiZoomLevelId to new guiScaleId - Archive experimental integer scale rendering plan for future reference This aligns with conventions used by professional audio plugins (Serum, Fabfilter, etc.).
Add GUI zoom functionality with persistent zoom level - Implement zoom level control: apply scale to MainComponent via AffineTransform, resize editor window - Persist selected zoom level in plugin state and restore on reopen - Extend zoom presets to 50%–400% (10 levels) in header ComboBox
Clean Code refactoring and architectural improvements - Split PluginDescriptors.cpp into 5 domain-specific files - Split ApvtsFactory into ApvtsLayoutBuilder and ApvtsValidator - Create ISkin sub-interfaces (ISkinColours, ISkinValues, ISkinFonts) - Centralize APVTS identifiers in ApvtsTypes, zoom levels in PluginIDs::Settings::ZoomLevels - Consolidate WidgetFactory descriptor map building - Apply std::optional for explicit absence signaling - Extract layoutSliderLine() and Skin colour initialization sub-methods
Refactor PluginDimensions hierarchy and PatchNameDisplay - Restructure PluginDimensions: nest Body child panels, simplify namespace names (remove Panel suffix) - Apply DRY: SectionHeader, ModuleHeader, HorizontalSeparator reference panel dimensions - Refactor PatchNameDisplay: inject dimensions at construction, move layout constants to MiddlePanel
PluginDescriptors and Shared layer improvements - Reorganize PluginDescriptors: Matrix Modulation by bus, header Init before Bus 0, MatrixModulationDetail namespace - Add PluginHelpers (makeStringArray, getGroupDisplayName) and Matrix1000Limits - Reorder and document MatrixModulationSection API in header; bus variables lowerCamelCase - Move Development Plans into year subfolders (2025/, 2026/); align factories and panels with descriptor API
Refactor PluginDisplayNames and PluginIDs namespace hierarchy - PluginDisplayNames: Section/Module/ParameterWidgets/StandaloneWidgets and ChoiceLists sub-namespaces; consistent naming (kEnvelope1-3, kChannel1-16, kKeyboard, kPortamento, etc.) - PluginIDs: MatrixModulationSection layout (kModulationBusCount, kMatrixModulationInit in StandaloneWidgets); ModulationBus::ParameterWidgets; PatchMutator kEnvelope1-3 - Single source of truth for display names and IDs; all references updated across descriptors, panels, and factories
Add Patch Mutator module and embed PT Sans Narrow fonts - Add Patch Mutator panel with randomization and mutation controls - Embed PT Sans Narrow fonts (BinaryData) for cross-platform distribution - Extract fonts from system TTC for consistent rendering - Centralize font heights in SkinValues - Add OFL license attribution in README - Update GUI screenshot
Improve pixel-perfect rendering precision in GUI widgets - Add std::round() calls for crisp pixel alignment in multiple widgets - Simplify curve point drawing in EnvelopeDisplay - Adjust BankUtilityPanel height
PreviousNext