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
ResponseCurveandResponseNode: 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
SelectedIndexor by a bound parameter (VSTGUIUIViewSwitchContainer); registered for PluginUIEditor designs, shown in the gallery (Containers ▸ Effects). - LevelMeter skins: with
Skin(for example aFilmStripSkin), each channel is drawn by the skin with its level as value and its latched clip indicator as state index (iPlug2IBMeterControl); shown in the gallery (Meters). - Element catalog: reference versions of the equivalents (VSTGUI 4.15.1, iPlug2
masterof 2026-10-18), and the equivalents that were missing. - PluginUI.NPlug is published on NuGet. It depends on the
NPlugpackage 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:
NPlug0.6.1 (withNPlug.Proxy2.0.2, which writes ARM64 plug-ins toContents/arm64-win) andNPlug.Validatorfor the tests and the validation tool. Theexternal/NPlugsubmodule, theNPlugRootproperty 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.Validator1.4.1, which also validates in-process on Windows ARM64 (the workaround for 1.4.0 is removed).
Removed
ScaffoldOptions.NPlugRootand the NPlugsrcfolder 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.
- Hosting:
- 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:
.pluginuidesign 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) andPluginUI.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.