Table of Contents

Changelog

All notable changes to this project are documented in this file. The format follows Keep a Changelog and the project uses Semantic Versioning. Before 1.0, minor versions may contain breaking changes.

Unreleased

Added

  • FrequencyResponseView, with ResponseCurve and ResponseNode: frequency-response display for equalizers and filters. Any number of curves supplied by the consumer (no filter design inside), logarithmic or linear frequency axis, fixed left axis and auto-scaled right axis (decimal or π-multiple ticks, for phases and delays), analyzed input spectrum (FFT with 50 % overlap, instant attack, exponential release, 20·log10 or 6·log2 decibels) and the same spectrum shaped by a response without a second FFT, draggable nodes bound to parameters (parallel gestures), optionally defined by two band edges with their own handles, wheel on the band ratio or on any parameter. Registered for PluginUIEditor designs, shown in the gallery (Response).
  • DropDown.IsItemAvailable: hides the items that do not apply in the current context (left out of the menu, skipped by the wheel and the arrow keys) without changing the indices of the others.
  • ViewSwitcher: shows one child at a time, chosen by SelectedIndex or by a bound parameter (VSTGUI UIViewSwitchContainer); registered for PluginUIEditor designs, shown in the gallery (Containers ▸ Effects).
  • LevelMeter skins: with Skin (for example a FilmStripSkin), each channel is drawn by the skin with its level as value and its latched clip indicator as state index (iPlug2 IBMeterControl); shown in the gallery (Meters).
  • Element catalog: reference versions of the equivalents (VSTGUI 4.15.1, iPlug2 master of 2026-10-18), and the equivalents that were missing.
  • PluginUI.NPlug is published on NuGet. It depends on the NPlug package and passes its build files on (debug proxy, factory export, NativeAOT .vst3), so a plug-in project needs this single package reference.

Changed

  • NPlug comes from its NuGet packages: NPlug 0.6.1 (with NPlug.Proxy 2.0.2, which writes ARM64 plug-ins to Contents/arm64-win) and NPlug.Validator for the tests and the validation tool. The external/NPlug submodule, the NPlugRoot property and the asm8086/NPlug fork are no longer used; 0.1.0-beta.2 used the NPlug 0.6.0 sources.
  • Projects generated by PluginUIEditor reference only PluginUI.NPlug (NPlug comes with it).
  • Tests and validation tool: NPlug.Validator 1.4.1, which also validates in-process on Windows ARM64 (the workaround for 1.4.0 is removed).

Removed

  • ScaffoldOptions.NPlugRoot and the NPlug src folder option of PluginUIEditor.

0.1.0 - 2026-10-18

First public version.

Added

  • PluginUI: Win32 + Direct2D / DirectWrite toolkit for plug-in editors, NativeAOT-compatible.
    • Hosting: UIHost (child window, DPI, sizing modes, input routing, popups, tooltips, animation timer, Post), StandaloneWindow.
    • About eighty elements: rotary and linear controls, buttons and selectors, menus, text and value entry, meters and analyzers (level, loudness EBU R128, goniometer, correlation, spectrum, spectrogram, oscilloscope, waveform), instrument elements (keyboard, wheels, MSEG, step and gate sequencers, drag-and-drop modulation, A/B comparison, MIDI learn), containers (canvas, stack, grid, dock, wrap, tabs, split view, scroll viewer, group box, list box, data table).
    • Themes (dark, light, accent), vector styles, skins (film strip, state images, SVG, nine-slice, delegate).
    • Live layout editing (Ctrl+Shift+E) with C# code copy.
    • PluginUI.Dsp: lock-free audio → UI transfer, FFT, meter ballistics, biquad design, WAV reading, SIMD kernels.
    • English and French interface texts, culture-independent number formatting.
  • PluginUI.NPlug: VST3 editor view for NPlug (PluginEditorView), controller and processor base classes with parameter edit bridge, notes from the editor, shared state and MIDI learn.
  • PluginUI.Design: .pluginui design files, AOT-safe run-time loader, C# code generation, live design bridge, project scaffolding.
  • PluginUIEditor: WinForms visual designer (toolbox, property grid, parameters, preview, undo/redo, code generation, new projects, exports, extensions), English and French.
  • Samples: PluginUI.Gallery (every element, --lang fr, PNG snapshots) and PluginUI.DemoSynth (16-voice VST3 instrument with side-chain input).
  • Documentation in English and French, DocFX site with API reference.
  • Release packages for x64 (x86-64-v3 and x86-64-v2) and ARM64, with a VST3 bundle that picks the right x64 build for the processor.