Skip to content

Changelog

Every release in the v1.6 line. The most recent entries are also embedded on the installation page.

v1.6.109 — 2026-05-25

  • warn and abort export if VST3 plugins folder is missing
  • save/load .syntheditprefab in lean prefab format
  • on first open, app loads a blank project. (win)
  • on first open, app loads a blank project. (mac)
  • fix missing Info.plist message on export-as-plugins
  • fix glitchy resizing of modules
  • fix double-click insert on panel view
  • disable scanning of VSTs for now
  • clicks miss bottom-half of resize-nodes at top row of panel-view
  • SynthEdit now ships as an exe installer
  • Save As picker now accepts .syntheditprefab without appending .synthedit

v1.6.108 — 2026-05-22

  • tear-out tabs via “Open in New Window” (mac)
  • sostenuto pedal (CC 66) in legacy MIDI-CV module
  • silence WMC1506 OneWay binding warnings in ParameterDetailsDialog
  • reject WinUI3 PointerPressed re-dispatch as fake double-click
  • persist Mac pane widths across launches (mac)
  • new modules ‘String Concat’
  • new module ‘String Concat’
  • more reliable cross-hair when insetting modules
  • fix for GUI modules with autoduplicating pins
  • embed version, copyright and website in exported plugin metadata
  • better feedback during activation (win)
  • better feedback during activation (mac)
  • Mute menu now toggles all selected modules
  • MIDI sostenuto pedal (CC 66)

v1.6.107 — 2026-05-22

  • pass -ForceApplicationShutdown when installing framework deps
  • [0005] When creating pre-fab “modules” I give the container is used as the file name for the prefab

v1.6.106 — 2026-05-21

  • trackpad horizontal scroll ignored in patch view
  • track installation.mdx heading rename for changelog update
  • find CI sideload layout by Dependencies/x64 path
  • explicitly source framework MSIXes for sideload zip
  • draggable pane dividers with persisted widths

v1.6.105 — 2026-05-21

  • ship Windows installer as zip with bundled framework deps
  • fix build number in about box (win)
  • Wavetable Viewer working on mac
  • SetRegistrationInfo dropped vendor on empty serial
  • Mac Preferences orphan General-tab controls (mac)

v1.6.104 — 2026-05-20

  • snap stroke width to whole pixels
  • snap node positions to 0.25 DIP grid
  • odd-width strokes snap to pixel centres, not origins
  • cubic closing segments + handle z-order fix
  • add Snap to Pixels pin
  • add Path Editor + Path Render
  • accumulate sub-quantum mouse movement during drag
  • Windows Installer now available
  • WT Osc - silent mip at top end so above-Nyquist pitches don’t alias
  • GmpiHelper::getRasterizationScale forwards to drawing host

v1.6.103 — 2026-05-19

  • copy user resource files to vst3 bundle on export
  • Wavetable Osc now supports built-in test waveforms [{Saw}, {Ramp}, {Sine}, {Triangle}, {Pulse15}, {Square}, {Pulse85}, {Noise}, {Silence} ,{DC}]
  • WT Osc - restore grain-phase * 0.5 (drops sidebands ~57 dB)
  • WT Osc - preserve phase for asymmetric waveforms
  • Open web page example working again

v1.6.102 — 2026-05-18

  • snap-to-grid menu always ticked on startup
  • save-prefab dialog grays out existing .syntheditprefab files
  • re-copy skins and prefabs on version change
  • fix seams in background image tiling.
  • Fix plain image not tiling consistantly on macOS

v1.6.100 — 2026-05-15

  • properties pane - file browser now working for 8-bit string parameters
  • fix sliders not adapting to range of destination pin on first connection when range specified as 2 numbers (not 4)
  • fix properties browser layout

v1.6.101 — 2026-05-15

  • unregister presenter observer on destruction

v1.6.99 — 2026-05-14

  • ship pre-built .icns instead of Icon Composer .icon
  • fixes for hot-reloading modules
  • Added ‘USE_STAGING’ flag to SDK for enabling hot-reload on module

v1.6.98 — 2026-05-14

  • un-containerise leaves modules on the panel where they were before
  • restore SynthEditIcon.icon in Copy Bundle Resources
  • properties browser layout corrupted in release mode
  • export prefab working
  • empty plugin bundles fail codesign due to build race
  • add factory_modules aggregate to gate plugin-copy steps
  • Patch Cables working again

v1.6.97 — 2026-05-13

  • updating pins on property pane propagates to audio processor
  • new Button now accepts double-clicks (without opening the container)
  • embedded subview no longer duplicates Cut/Copy/Paste in menu
  • dragging new modules working (when mouse held down)
  • New Control prebabs: Slider2, colored LEDs, Button2, Knob2
  • Better fine control of new sliders

v1.6.96 — 2026-05-13

  • tweaks to new sub-controls
  • removed close icon from main view
  • mac app icon now ships in bundle (was generic placeholder)
  • Properties Browser now resizes correctly (mac)
  • ‘Additional Files’ dialog layout fixed

v1.6.95 — 2026-05-12

  • wire up edit > move to front/back menu items
  • right-click on panel module shows context menu again

v1.6.94 — 2026-05-12

  • fix crash on insterting knob
  • add vector-drawn ModWheel sub-control

v1.6.93 — 2026-05-11

  • renaming pins working again
  • preserve relative positions when containerizing panel-view modules
  • observe container in EditorWindowHelper, not just the presenter
  • mac MIDI Controller assignment dialog working
  • fix LED hit testing
  • close container views when container is deleted

v1.6.92 — 2026-05-09

  • walk up from exe to find dev-tree SynthEdit2/PlugIns/
  • translate IDialogHost + IDrawingHost coords for TIDE side panes
  • three-pane editor for the TIDE in-plugin SynthEdit
  • surface screenshot failures via JSONL error field
  • screenshot v-table collision crashing Scope3 / TrigScope3
  • refresh TIDE scrollbar spec while dragging the thumb
  • prepare for npm publish (MIT, README, package.json)
  • per-override Plugin-Cache; OnNewUG guards null GetById
  • isSemFolderOverridden flag for per-override Plugin-Cache
  • initialize pluginGraphics modules on load
  • initialise TIDE scrollbar spec on first arrange
  • implement DrawingFrameBase2 createTextEdit via shared factory
  • implement DrawingFrameBase2 createFileDialog and createStockDialog
  • forward OM_DRAG_NEW_MODULE so TIDE drop-on-view works
  • force-invalidate the plugin host on OM_SHOW_PROPERTIES
  • enable wheel zoom/scroll in the TIDE editor
  • drop legacy <home>/modules64/ overrides in CL apps
  • draw editor scrollbars in TIDE three-pane layout
  • double-click a Module Browser entry to drop the module
  • cross cursor for TIDE drag-from-browser (Win32)
  • copy factory plugins into SynthEditCL.app on build
  • compose transform + wire drag-and-drop into TIDE editor
  • auto-scroll refreshes the scrollbar spec each tick
  • auto-scroll bounds use drawingBounds.left/right, not just width
  • auto-detect SynthEditCL location, zero-config .mcp.json
  • arrange TIDE side panes with origin-rooted rects
  • also probe %ProgramFiles%\SynthEditCL\ on Windows
  • Properties Browser screenshots (—view properties, —include-properties)
  • HostedView CreateSwapPanel uses universalFactory
  • 4a build fixes — IDialogHost diamond, getFullDirtyRect, factory
  • —view browser renders Module Browser headlessly (Phase 1)
  • —include-browser composite render (Phase 2)

v1.6.91 — 2026-05-07

  • resizing module triggers ‘save changes’ on close
  • remove annoying “no MIDI in device” message (mac)
  • rectangle selector ignores bottom part of structure group
  • new LED ignores mouse clicks
  • link UniformTypeIdentifiers in plugin targets
  • fix new lines connecting to wrong pin
  • enable SynthEditSem and rewire it as a GMPI-UI editor host
  • container view render composes viewTransform first
  • SynthEditGui caps measure at 800x600, SynthEditController guards null host
  • Panel edit only highlights module bounds when mouse ‘hits’ actual graphics (not only bounds)
  • ModuleView pluginParameters_GMPI assignment leaked plugin refs
  • Changing plug default now triggers ‘save changes?’ on exit

v1.6.90 — 2026-05-06

  • undo/redo for line node insert/delete/straighten
  • more accurate pin hit detection
  • line invalidation rect includes full node circle
  • line hit-test ignores end-zone except for direct node hits
  • keep connector geometry in sync with nodes on model update
  • better hit testing on outline nodes
  • better hit testing on lines
  • add close ‘X’ button to view tabs
  • Removed annoying “MIDI In disabled popup”

v1.6.89 — 2026-05-06

  • now need a deliberate pause to trigger auto line highlight
  • Structure Group ignores mouse in bottom half (less intrusive)

v1.6.88 — 2026-05-04

  • fix inspector showing wrong module after paste
  • fix crash when screenshotting panel in secl
  • fix IO-Mod getting shifted right after containerise
  • emit relative image paths for /new/ base

v1.6.87 — 2026-05-04

  • new GUI converters for wide string to string

v1.6.86 — 2026-05-03

  • auto-conversion for GUI pins

v1.6.85 — 2026-05-01

  • tests/CMakeLists skips synth_ui_tests when gimpi_ui_tests absent
  • stereo render-audio, case-insensitive pin names, version MCP config
  • new vector knob color pins renamed
  • fix crash with ‘selection to prefab’ (win)
  • fix crash in save-as-prefab
  • SynthEditCL never displays modal dialogs
  • PatchMem modules now expose “Hint” pin
  • Hint GUI pins for all PatchMemory modules

v1.6.84 — 2026-05-01

  • symbolic handle aliases ($name, $$, $N) in SynthEditCL scripts
  • keep loadFile/autoSaveType/autoRender on SynthEditConfig
  • clone gimpi_ui_tests and pass GMPI_UI_TESTS_FOLDER to cmake
  • address pins by name + register synthedit MCP server
  • add —list-modules verb to SynthEditCL
  • SynthEditCL script-mode for agent-driven editor sessions
  • MCP server wrapping SynthEditCL as native agent tools
  • —set-pin, —render-audio, drop DSP stdout noise from MCP results
  • —rate <Hz> sub-arg for —render-audio / —autorender

v1.6.83 — 2026-04-30

  • panel modules no longer grow on each view re-open
  • in-process layout regression tests
  • add Label module (GmpiUi)
  • SubView measure consults persistedRect for stale child bounds
  • Resource Manager now searches all skins for global.txt

v1.6.81 — 2026-04-30

  • isNull centering uses absolute SetModuleRect
  • isNull centering respects user-positioned modules
  • implement GetModuleRect for stale-JSON detection
  • highlight dragged module in browser list
  • fix build errors with GUI code-skeleton
  • double-click in browser inserts module at view centre
  • crash when clicking tab of deleted container
  • add OM_INSERT_MODULE_AT_VIEW_CENTER notification
  • add MfcDocPresenterBase::SetModuleRect

v1.6.80 — 2026-04-29

  • insert-on-struct-view no longer mis-positions on panel
  • fix crash when containerising a selected module

v1.6.79 — 2026-04-29

  • pasted module now shown in properties view (not original)
  • paste subview weirdness
  • only <SHIFT> applies flag, not <CAPS-LOCK>
  • mouse clicks working again
  • improved hit-testing on knob
  • fix for possible crash on exit
  • containerise now shows containers properties in properties browser
  • MIDI keyboard unplugged no longer prevents running audio

v1.6.77 — 2026-04-28

  • new find/replace dialog (win)
  • mac - double click to open container working
  • larger default panel area
  • fix menus ignoring clicks (win)
  • fix crash after scanning modules (mac)
  • better hit testing on Panel Group
  • Scope3 now drawing correct colors

v1.6.76 — 2026-04-27

  • stop audio on document close and app exit
  • save/load prefabs working (mac)
  • privacy and community page links working (mac)
  • prefabs now installed on first launch (mac)
  • new menu to explor to project-skin folder
  • find/replace working on mac
  • crash after rescanning when document is open
  • Keyboard (MIDI) on-screen keyboard working. (KeyBoard-CV keyboard removed)
  • ‘Browse to Project skin’

v1.6.75 — 2026-04-24

  • report subview clip bounds including child shadows
  • render module outline under plugin shadow layer
  • prevent shadow layer smearing in subviews”
  • prevent shadow layer smearing in subviews
  • paste with mouse position fixed
  • only draw panel grid in editor mode; thicker debug cross
  • mac app can now open .syntheditprefab projects
  • hit testing on new Panel Group
  • correct coord spaces in SubView clip-area propagation
  • containerized modules center on panel view
  • autoscroll now works during wire pickup on Mac
  • arrow keys nudge selected modules on Mac
  • Sdk3Helper file and ok/cancel dialogs working
  • MIDI-out selector no longer overlaps MIDI-in list in Preferences dialog

v1.6.74 — 2026-04-23

  • loading .syntheditprefab directly working
  • fewer spurious notifications from properties-browser
  • VST3 resizing mac working
  • VST mac resizing working
  • AU mac plugin resize support
  • ‘Show Controls on Module’ working

v1.6.73 — 2026-04-22

  • mac - less sensitive scrollwheel
  • mac - less sensitive mousewheel
  • VST3 - refresh DPI state in-place on HC_PLUGIN_UI_SCALE change
  • GUI modules now support pin info
  • Freq Analyser - text no longer flipped
  • Added IListPins support for GUI pins

v1.6.71 — 2026-04-21

  • sub-view hit testing working correctly
  • fix spurious invalidation on first hover of ResizeAdorner
  • fix repaint when sub-view shows/unshows

v1.6.70 — 2026-04-21

  • fix slider text height
  • PSS skin working on export
  • PSS skin working on export

v1.6.69 — 2026-04-21

  • mac now export font names correctl

v1.6.68 — 2026-04-20

  • poll OS cursor during drag to unfreeze outside swapchain
  • autoscroll now works when dragging wires/cables

v1.6.67 — 2026-04-20

  • suppress Debug CRT assertion dialogs in the dsp_tests harness
  • suppress Debug CRT assertion dialogs in SynthEditCL
  • mac - fix missing modules from export-plugins

v1.6.66 — 2026-04-17

  • fixed HC_OFFLINE failing when user hit ‘Play’ right after loading app.
  • fix pin direction screwup on containerize
  • fix VST3 plugin viewport (mac)
  • SynthEdit mac reloads project after export
  • Hoverscopes now work on IO Modules
  • Hoverscopes now work on IO Modules

v1.6.65 — 2026-04-16

  • panel ResizeAdorner repaint - getClipArea coord space
  • no error from missing MIDI driver when you arn’t using MIDI modules
  • mitigate bug when clicking image with file “arrow_right” causing a spurious change notifications to “arrow_right.bmp”
  • mac - shift toolbar left
  • fix subviews mouse handling
  • fix drag hit test lines with tiny hitbox
  • fix crash when hovering IO Mod pins while audio on
  • fix crash after pasting BPM module from another project then starting audio.
  • better cancellation workflow
  • better cancellation workflow
  • Wave Recorder better error messages
  • VST3 panel now panned correctly

v1.6.64 — 2026-04-15

  • better dragbox discernment of lines

v1.6.63 — 2026-04-15

  • se rescan modules on first run after updating
  • fix processor watchdog in editor
  • fix processor watchdog in editor
  • CPU display now in front of other modules

v1.6.61 — 2026-04-14

  • support for new yes/no/cancel dialogs
  • new module “Dialog” for yes/no/cancel dialogs
  • exclude ‘_fallback’ from skin menu
  • Skin Manager now searches project-specific skin first for fonts.

v1.6.60 — 2026-04-14

  • properties panel uses panelBackground for contrast, widen browse button
  • project file names can now contain a dot and skin file name will ignore subsequent characters. e.g. “myproject.version23.synthedit” => skin folder is “myproject”
  • fix resize dot placement on structure view modules
  • filebrowser better support for project-specific-skin
  • Containerise now pastes to canvas center (no top-left)

v1.6.59 — 2026-04-13

  • mac - <DEL> key works in text-entry boxes

v1.6.58 — 2026-04-13

  • pan/zoomed notification improvement
  • pan/zoom retained correctly.
  • no blue highlight over hovered modules in exported plugins
  • mac textedit now respects <ESC> and losing focus.
  • fix view centering annoyingly when inserting modules
  • compatible window positions when going from SE 1.5 to 1.6 or back
  • blue highlight not shown on modules in plugins
  • SE now searches for skins in project-specific folder next to project file first. e.g. mysynth.skin
  • SE now searches for skins in project-specific folder next to project file first. e.g. mysynth.skin
  • SE command-line can now capture screenshots

v1.6.57 — 2026-04-10

  • mac - fix skin scanning
  • crash on close (mac)
  • added _fallback skin for your custom skin assets

v1.6.55 — 2026-04-10

  • mac - ‘show skin files’ working, removed junk ’&’ symbols from popup menus
  • hide app symbols so plugins use their own SynthEditLib copy

v1.6.54 — 2026-04-10

  • fix properties browser screwing up skin filenames
  • fix hit testing going for line under module
  • fix “can’t load:YES” message
  • Se macOS codesigns exported plugins for local use

v1.6.53 — 2026-04-09

  • fix plugins drawing top-left at view center
  • fix crashing playing on-screen keyboard
  • fix WaveTableLoad.cpp build errors on macOS
  • command-line exporting working on macOS
  • Au validation passing

v1.6.52 — 2026-04-08

  • fix export AU

v1.6.50 — 2026-04-06

  • ‘background’ layer support (-2)

v1.6.48 — 2026-04-03

  • se mac recalls window position
  • fix hover scope clip rect invalidation.
  • Structure modules without pins now draw without borders. e.g. PostIt!

v1.6.47 — 2026-04-03

  • win - theme restores correctly on startup
  • pass both radii to RoundedRect for shadow shape
  • mac - light/dark themes
  • mac - browser text invisible due to theme change race
  • implemented layered rendering (shadow, widget,glow)
  • hoverscopes working again

Unreleased

  • new module Bar LED Meter

v1.6.45 — 2026-03-31

  • fix invalidation of adorners
  • Fix view refresh when setting GUI pin default

v1.6.44 — 2026-03-30

  • selection box invalidation when scrolled
  • more robust dropping new modules

v1.6.43 — 2026-03-30

  • new module glowey LED
  • mac - cursor changes when dragging new modules
  • fix selected modules ignoring mouse
  • fix possible assert in add connector
  • fix module browser details view not redrawing
  • fix crash when dragging modules
  • fix crash on dragging Line from Module Browser debug category
  • fix assert when stress testing module browser

v1.6.41 — 2026-03-26

  • vie coded icons (need fixing)
  • se amc has correct version number
  • scroll bar too high
  • new function ‘stripRedundantTrailingZeros’
  • less hoverscope redraw glitches
  • fix crash on hover ‘spare’ pin
  • HC_PROCESSOR_OFFLINE init correctly to true

v1.6.40 — 2026-03-26

  • strip trailing zero from pin defaults in XML project file.
  • more robust list-entry bounds invalidation (fixes ‘missed first click’ in editor)
  • less false update ‘noise’ notifications from Properties Browser
  • implemented Sdk3Helper::invalidateMeasure()
  • hover outlines working in GUI
  • fixed-values - now saving value of pins
  • fix for expression evaluator on macOS
  • fix doubled up mouse move events
  • fix default values being written to project file for output pins.
  • fix crash in List Entry
  • fix SDK3 invalidateMeasure() behaviour
  • PlainImage module fixed recursion on mac

v1.6.39 — 2026-03-24

  • “open last project” working
  • win pipeline runs frst, mac pipeline consumes windows vst3 artifact
  • win VST3 now releases containerview when editor closed
  • win - export dialog triggers ‘save change’ if it had generate a unique ID
  • vibe coded SynthEdit Mac
  • modules cmake now copies official modules to correct folder
  • fixed several invalidation rect errors
  • fix transform of invalid rects by view
  • fix race-condition preventing DSP “done” message reaching UI.
  • fix loading modules from plugin
  • fix invalidateRect from sub-view
  • fix hit testing on slider
  • build now code-signs sems and template plugins
  • Fix assert on exit (timers)
  • Drawing working in plugins again
  • Added support for WASAPI audio drivers
  • ALT-click picks up the end of an existing wire
  • ALT-click now picks up wires

v1.6.38 — 2026-03-12

  • pins now highlight when hovered
  • modules show hover state
  • however-scopes on GUI pins update live
  • hoverscopes working on GUI modules
  • hoverscopes working on GUI modules
  • better interactivity on pins and lines
  • better interactivity on pins and lines
  • better hit-testing on pins
  • [0164] Patch-cables disappearing when others added/removed.

v1.6.37 — 2026-03-05

  • fix modules path

v1.6.36 — 2026-03-03

  • fuzzy hit testing
  • fuzzy hit testing
  • crash clicking line
  • [0193] fix lines disappearing when nodes overlap.
  • [0192] Patch Cable Diag drawing outside bounds
  • Added ‘Export’ toolbar item

v1.6.35 — 2026-02-27

  • tickbox in parameter browser working properly on bool param values
  • fix for scroll bars going wring direction
  • fix crash when deleting containerising connected modules
  • filebrowser on filename pins now shortens filenames as appropriate (e.g. skin files)

v1.6.34 — 2026-02-16

  • prefabs showing on browser
  • fix duplicate notify msg IDs
  • factory prefabs working
  • export now notifies success via a ‘toast’ popup. (no more dialog to click)
  • export VST3 mostly working

v1.6.33 — 2026-02-13

  • limit number of recent files saved

v1.6.32 — 2026-02-13

  • Added system SEMs to layout via wildcards in synthedit2.vcxproj and .filters

v1.6.28 — 2026-02-12

  • fix hang on exit after changing tab
  • SE-CL fix dialog boxes showing when in ‘quiet’ mode.

v1.6.26 — 2026-02-11

  • wider PB
  • when running on Jeffs machine, scans SEMs from SE16/mac_assets folder (which is where they are built now)
  • typing in properties browser don’t affect structure view
  • removed use of std::regex, had compile error on Azure pipelines
  • refactor to simplify plugin file paths
  • refactor to simplify plugin file paths
  • new module - Operating System Detect
  • new DSP text module “First Non Empty”
  • made ModuleFactory_RegisterModule function visibility hidden on macOS. Prevents SE plugins incorrectly calling this function in their host.
  • incorrect indexes from it_enum_list2()
  • implement dark mode
  • fix possible assert on destruction of SE2JUCE_Controller
  • fix plugin cache filename
  • fix patches not saving (bug due to earlier refactor)
  • fix keystrokes escaping text-edit boxes
  • fix from SDK3 SEMs with file-browsers
  • fix freeze/slowdown when resizing main window
  • fix for nested plugins on macOS
  • fix for nested plugins on macOS
  • fix for nested instantiation on macOS
  • fix for module scanning
  • fix for macOS where no audio drivers availalbe
  • fix for cut/copy/paste affecting structure when in textbox
  • fix for <tab> key in text edits
  • fix for SEM caching on macOS
  • fix for SEM cache on macOS
  • fix for ResolveFilename with short names on macOS
  • fix for GMPI string pins on mac
  • fix for CreatePluginBundleRef() when it’s not a bundle
  • fix erroneous duplicate module messages.
  • fix entering text defaults
  • fix crash when resizing editor (hanging pointer)
  • fix crash in wav_file.cpp writing files with more than 2 channels
  • fix SEMs not loading paths from cache
  • fix ‘module not found” message when pasting
  • feedback modules are now deactivated during cancellation
  • extended content onto title bar
  • drop new module working again
  • disable module cut/paste while cut/pasting in a focused textbox
  • correct macOS sysmem plugins folder
  • command line args now parsed correctly
  • cancellation - _DEBUG properly defined in debug mode
  • better diagnostics from cancellation util
  • avoid double console output
  • [0189] pin renaming not working on auto-rename but not auto-duplicate pins.
  • [0136] Loss of “Snap To Grid” Setting After Crash
  • [0017] Use plain ASCII Hex format in properties browser for BLOB pins
  • WIP mac compat
  • SynthEditCL now hides it’s symbols on macOS to prevent child plugins from accedentally linking against the host functions (becuase they both use SynthEditlib statically)
  • SynthEditCL now accepts flags with minus sign like -quiet to avoid misinterpreting macOS filename with leading slash as a flag
  • SynthEditCL - Added -factorysemsfolder override flag
  • SECL now scans system modules from it’s own bundle
  • SECL macOS now scans modules from within own bundle
  • Run button working without glitches
  • Run button working without glitches
  • Recent Files menu now updated when Saving a project during export as plugin.
  • Properties browser file dialogs working
  • Properties Browser - more robust change detection on floating point values
  • Properties Browser - better float formatting and more tickboxes for BOOLs not combos
  • Parameter Browser - MIDI field working
  • PB - no file browser on non-filename text parameters
  • PB - iPC, Private, Stateful all using checkboxes
  • PB - bool properties leave room for wider label
  • Keyboard - fix not sending trigger pulses (updated unit test)
  • Ensure caption buttons are visible on dark backgrounds
  • Document name show on title bar
  • Added “Disable Deep Colour” option
  • Added “Analyse Cancellation” menu (DEBUG only)
  • Add toolbar