Patch notes & news

What's changing.

Every release, fix and announcement — straight from the studio. All 143 versions, newest first.

Latest release
Anthem Studio 0.9.103
2026-06-27 · windows-x64 · stable
Download v0.9.103
  • ImpSign in with your browser. The sign-in screen now has a Sign in with browser button: click it, approve this computer in your browser (signing into the portal if needed), and Anthem Studio activates itself automatically — no copying license keys or typing passwords into the app. A short verification code is shown so you can confirm it's your computer.
  • ImpCleaner sign-in screen. Browser sign-in is the main action; email/password/license are tucked into a "Sign in with email instead" section, with a show/hide password toggle. Signing in with email + license key still works exactly as before.

Release history

0.9.102

2026-06-27— Fixes "fails to start" (0xc000007b) on a fresh install
  • NewA fresh install now starts correctly. The AI/stem-separation runtime (onnxruntime.dll) that Anthem Studio needs at startup was being copied next to the app for local development but was not included in the installer, so a freshly installed copy was missing a required component and Windows refused to start it with error 0xc000007b. The installer now bundles that runtime, and a new packaging safety check refuses to build an installer that is missing any DLL the app depends on — so this can't happen again. If you previously saw 0xc000007b, download and run the latest installer once more.

0.9.101

2026-06-27— Cleaner updates, reliable start after upgrading
  • FixInstalling a new version now does a full clean upgrade. When you update on top of an older build, the installer now removes the previous version's files before copying the new build in, and makes sure the required Microsoft Visual C++ runtime is present. This fixes a rare case where, after upgrading from a much older version, Anthem Studio could fail to start (Windows error 0xc000007b) even though the installer reported success. Your projects, presets and settings are never touched — only the program files are refreshed.

0.9.100

2026-06-23— 11 built-in plugins now save their settings
  • FixBuilt-in plugins now keep their settings when you save and reload a project. A group of built-in plugins were silently losing all their knob/parameter settings on every project reload — they came back at their defaults: Transient Designer, Anthem Bus 2500, De-Harsh, De-Esser Pro, Bass Mojo, Vocal Leveler, FET Comp, Opto Leveler, Master Mojo, SSL-E Style Channel and 1073 Style Pre/EQ. Each stored its settings under a name containing a space, which the internal save format could not read back. They now save and restore correctly, and a project saved with the old broken format recovers its settings where possible. Plugins that already saved correctly (EQ, Reverb, OTT, Compressor, Saturator, …) are unchanged.

0.9.99

2026-06-23— Vocal Tune timing fix
  • PerfVocal Tune now sits in time with the rest of your mix. It was telling the host it had ~55 ms of latency when its real processing delay is ~14 ms, so the host over-compensated and the tuned vocal drifted roughly 40 ms ahead of everything else. It now reports its true latency, so a Vocal Tune track lines up correctly with your drums, bass and arrangement.
  • ImpNo flam/slap when blending the tuned and original signal. With Mix below 100% the corrected (wet) and original (dry) signals were delayed by different amounts and arrived out of time with each other. They now share the same delay, so any Mix blend stays clean.

0.9.98

2026-06-23— Security & threading hardening
  • FixSecurity & threading hardening. A deep stability audit found the engine solid across the board; two hardening items shipped: the licensing/update network path now caps how much data it accepts from the server (a hostile or misconfigured server can no longer exhaust memory), and the audio engine's device block size is now shared atomically between the audio and UI threads (closing a harmless formal data race). No audible change.

0.9.97

2026-06-23— Undo/redo crash-safety fix
  • FixCrash fix: undo/redo after deleting a clip or track is now safe. A few undo steps (move, resize, mute or recolour a clip, rename a track, mute/solo a track or channel, bypass or reorder an insert) held a direct pointer to the thing they acted on, so deleting that clip or track and then pressing Ctrl+Z/Ctrl+Y could reach into freed memory and crash the app. Anthem now verifies the target still exists before every undo/redo and skips it if it's gone — your full undo history is kept, and undo/redo of anything still present behaves exactly as before.

0.9.96

2026-06-23— Plugin correctness & stability wave
  • NewBuilt-in plugin correctness pass. A deep audit cleaned up the built-in plugins: Godizer's Mode and Oversampling menus work again, the Limiter's Classic character is DC-clean and its Character mode (Modern/Classic) is selectable, Clipper exposes its Ceiling and Softness controls, the Saturator's negative Drive cleans up as intended, the bus Delay's Ducking control is on the panel, the SSL channel strip's gate Hold and sidechain high-pass now work, and EQ Eight / Volume Shaper / Transient Designer / Reverb got display, metering and smoothing polish.
  • FixRock-solid project loading. Hardened against corrupt or very old project files — out-of-range and non-finite values can no longer reach the audio engine — plus a couple of audio-thread allocations were moved out of the realtime path for glitch-free metering.

0.9.95

2026-06-23— Cleaner driven Delay tails
  • PerfDelay: cleaner saturated echo tails. With high feedback and Saturation pushed, the feedback drive used to add a harsh, gritty buzz that built up in the repeats (digital aliasing). The feedback saturator now runs through true 4x oversampling, so even long, heavily-driven tails stay smooth and musical. The drive level and amount are unchanged — only the grit is gone — so existing presets keep their character.

0.9.94

2026-06-22— Smoother OTT & richer Master Mojo
  • PerfOTT: smooth, click-free controls. The in/out and per-band gains, Depth and Mix were applied without smoothing, so moving or automating them zippered. They now ramp cleanly.
  • ImpMaster Mojo: all nine modes are now distinct. Five of the nine modes used to sound identical; each mode now has its own character (the default mode is unchanged).

0.9.93

2026-06-22— Plugin window & latency fixes
  • FixSandboxed plugin editors no longer vanish when you open the PRESET menu. Clicking a plugin's PRESET button used to leave its editor hidden behind where the menu had been; it now pops back to the front the moment the plugin window regains focus — without stealing keyboard focus from the plugin.
  • FixPlugins that switch into an oversampling / HQ mode stay perfectly in phase. Some plugins only establish (or change) their latency after loading. Anthem now tracks each sandboxed plugin's current latency live and recompensates automatically, so a parallel/send path no longer drifts out of alignment and combs.

0.9.92

2026-06-22— Cleaner Filter & tighter Bass Mojo
  • FixThe built-in Filter is now perfectly clean at its default Drive. It no longer adds a subtle saturation/level drop to the dry signal; Drive's character only engages as you push it up, and it's now anti-aliased and level-compensated for a smoother, more musical push.
  • FixBass Mojo's low end is dialed in right. Its default no longer over-boosts the sub region, giving the intended modest enhancement, and mono tracks now sound identical to stereo.

0.9.91

2026-06-22— Plugin polish: cleaner menus & live meters
  • NewCleaner menus across every built-in plugin. Dropdowns and selectors are now clean fill-only fields that match the dark UI — no boxy outlines anywhere.
  • ImpSaturator now shows always-on IN and OUT level meters framing the DRIVE ring, so you can see how hard the saturation is being driven and exactly what comes out.
  • PerfCompressor MIX now works for parallel (New York) compression — blend the dry and compressed signal and see the value live.
  • ImpMixTool's output meter keeps tracking the signal even when the plugin is bypassed — no more frozen readout.
  • ImpTransient Designer's Clip Guard is now a full knob (0–100%) instead of an on/off switch, so you can dial in exactly how much peak protection you want.
  • ImpStereo Tool's Mono-Bass and HF-Only expose every setting and remember it — all crossover options are reachable now.

0.9.90

2026-06-22— Cleaner generator UI
  • ImpThe MIDI generator's dropdowns are cleaner — no boxy gray outlines. Every selector in the Chords + Melodies generator is now a clean filled field, matching the rest of the dark UI.
  • ImpThe Octave selector shows absolute octaves (C1–C7). Pick the exact octave your generated idea is written at — clearer than relative steps, accurate to where the notes actually land, and remembered across sessions.

0.9.89

2026-06-22— MIDI generator: pick your octave
  • ImpThe MIDI generator now has an Octave selector. Pick where the generated idea lands — from −3 to +3 octaves — and the whole idea (chords, melody and bass together) is written at that octave, so you never have to drag everything into range after generating. Your choice is remembered across sessions and updates live as you tweak.

0.9.88

2026-06-22— Rock-solid plug-in state & focus-proof shortcuts
  • ImpYour plug-in presets, knobs and full state are now saved 100% reliably — every plug-in, every time. Sandboxed instruments and effects (Avenger, Serum and friends) save and restore their complete state on every project save, so a synth comes back exactly as you left it after you close and reopen — never on its default/INIT patch.
  • ImpA saved state can never be overwritten by an empty read. Anthem always keeps your last known-good plug-in state, so your settings are protected no matter what.
  • FixLighter on the CPU when you save. Saving a project with sandboxed instruments loaded no longer pushes the CPU meter up — the plug-in state hand-off is fully in sync with the audio engine.
  • NewSolo, Mute, Save and Undo work while a plug-in window is focused. With a plug-in editor (e.g. Avenger) in front: S solos, M mutes the selected track, Ctrl+S saves, Ctrl+Shift+S saves as, Ctrl+Z undoes and Ctrl+Shift+Z / Ctrl+Y redo — no need to click back into the arrangement first. (Typing in a plug-in's own text box is left untouched.)

0.9.87

2026-06-22— Stability & playback hardening
  • FixNo more hung notes when you transform MIDI during playback. Octave-shifting (Shift+↑ / Shift+↓), transposing, reversing, quantizing or humanizing a clip while the playhead is inside a sounding note no longer leaves that note ringing — the edited track's voices are flushed cleanly first.
  • FixFixed a crash when arming Automate after removing a plugin. Removing a plug-in and then clicking Automate (or with armed-Automate on) could act on the just-removed plug-in and crash; it now safely does nothing in that case.
  • FixSmoother audio when editing a plug-in chain during playback. A per-block internal update no longer briefly blocks the audio thread while you drag a plug-in knob or reorder a chain — removing a possible click/dropout.
  • FixFixed a crash if you quit Anthem while a plugin scan was running. A long scan keeps refreshing the plugin list in the background; quitting mid-scan could crash on exit. Quitting is now clean — and still instant.

0.9.86

2026-06-22— Hardening & polish: master round-trip, smoother engine, cleaner exports
  • ImpYour master channel comes back exactly as you left it. The master (Stereo Out) console colour, bus/master "glue" and 3D Mix Stage placement now reliably round-trip through save and reopen — a finished master stays put every time you open the project.
  • FixSmoother audio engine. The live render path no longer does per-block memory work for MIDI and note handling, for steadier performance on busy, instrument-heavy projects — and open plug-in editor windows are lighter on the CPU.
  • NewThe built-in Compressor's Glue mode is more controllable. Glue (and RMS detection) now respond to the Attack control, so you can dial in how fast the bus compressor grabs the signal — snappier with a fast Attack, more relaxed with a slow one.
  • NewCleaner stem exports. Exporting a single track that uses a heavy sandboxed plug-in now waits for it to be fully ready first (no silent first notes), and exporting a fully-muted track writes a proper full-length silent file that lines up with your other stems.
  • ImpOTT crossover readouts always show the real frequency. The four bands stay in order automatically, and the crossover knobs now display the exact frequency in effect.
  • FixStability. Fixed a rare crash when quitting while a sandboxed plug-in was being removed, and a crash that could happen if you pressed Undo after deleting a clip you'd just applied Groove to. A second export can no longer start on top of a running one, and dragging a MIDI 2.0 / MPE clip to another track keeps its hi-res data.

0.9.85

2026-06-21— Console Engine: true HQ oversampling + a modern, live face
  • PerfThe Console Engine's High and Render quality now use true studio-grade oversampling. Pick High (and Render for mixdowns) and the channel colour plus the bus/master "glue" run through real high-rate processing — for a bigger, more open, more analog top end with none of the digital edge, especially on bright and bass-heavy material. High is now the default on new channels and the master, and your quality choice is saved with the project. (Eco stays the lightest-CPU option and is unchanged.)
  • PerfThe Console panel has a modern new face with live metering. A black Anthem redesign with real-time activity meters on the channel and the bus/master sections, so you can see the console working as audio passes through it — plus quick ‹ › arrows to audition the Subtle / Punch / Warm character presets instantly.

0.9.84

2026-06-21— De-Harsh: steerable surgical notch (kills between-band screams)
  • FixDe-Harsh can now crush a harsh resonance that sits between its bands. With the seven fixed bands, a scream at (say) 2.7 kHz — right between the 2.3 k and 3.1 k bands — was only caught on each band's edge, so it was under-tamed even with everything maxed. De-Harsh now also runs a surgical notch locked exactly to the Focus knob: point Focus at the frequency that stings and it puts a dedicated, full-strength dynamic notch right there. The Width knob sets how tight that notch is — low Width = a narrow laser on one nasty frequency, high Width = a broader scoop. (Measured: a 2.7 kHz between-band resonance that the old version barely touched is now pulled down ~11 dB with Focus aimed at it; clean material stays transparent.)
  • ImpTip: park Focus on the exact scream (watch the live band display / sweep by ear), lower Width for a tighter cut, and use Mid Only when the harshness is a centre vocal.

0.9.83

2026-06-21— De-Harsh that actually tames + a premium new face
  • PerfDe-Harsh now audibly removes harshness — and the meter shows it working. In 0.9.82 the detector compared each band only to its own recent average, so on a sustained harsh sound (exactly the held, screamy vocal it's built for) nothing ever crossed the threshold: no reduction, and the GR meter never moved. De-Harsh now measures each band against the live balance of the whole 1.7–8.5 kHz region, so a band that genuinely sticks out — the 3–5 kHz "scream" — gets pulled down, while smooth, evenly-bright material is left alone. The Amount knob now ramps cleanly from gentle to aggressive. (Measured: a +20 dB 3.5 kHz resonance is reduced ~4 dB at Amount 80%, and clean material reads 0 dB reduction — fully transparent.)
  • NewDe-Harsh has a brand-new premium interface. A purpose-built black face on the modern Anthem design — with a live per-band harshness display so you can see exactly which frequencies are being tamed in real time — grouped TAME / TONE / OUTPUT sections, IN/OUT meters, and a clean M/S · Mid · Side selector. (Same controls and presets as before, just far nicer to use.)
  • FixClicking in the timeline ruler to jump the playhead no longer drops a tiny cycle. A plain click now only moves the playhead; you have to actually drag to set a cycle/loop region. Dragging out a cycle works exactly as before.

0.9.82

2026-06-21— NEW: Anthem De-Harsh + export reliability & clarity
  • FixNEW plugin — Anthem De-Harsh. A smart, adaptive harshness tamer for the master. It turns down screamy, brittle, ear-piercing energy in the upper-mids (around 1.7–8.5 kHz, centred on the 3–5 kHz "scream" zone) — built for loud, pushed material, especially AI/Suno vocals that get a hard, glassy bite at high loudness. It's adaptive, not a fixed EQ scoop: it only acts when a band actually pokes out above the song's own level there, so it stays transparent when nothing is harsh. It handles the centre and the stereo sides separately, then adds a touch of gentle analog warmth and a clean, airy top — so the result is round and soft but still crystal-clear, not dull. Add it from the plugin picker; put it on the master, before your brickwall limiter. Presets included (Suno Master, Gentle Glue, Scream Killer, Air & Soft, Transparent).
  • FixFixed: exports that produced silence (or only a split-second of sound). The offline exporter was re-opening each source file over and over during a render, which could intermittently fail and write silent blocks. It now opens each source once — full audio, start to finish.
  • FixFixed: a stray bit of leftover sound at the very start of an export. A reverb/tape/look-ahead tail from wherever you last pressed Play could bleed into the first moment of the rendered file (it was never in playback). The export now flushes that state first, so it starts perfectly clean — your master processing is unchanged.
  • ImpExport progress is now clear. Instead of a still "Rendering…" that looked frozen, the dialog shows what it's doing: "Waiting for N plugins to finish loading…" (counting down) while heavy plugins load, then "Rendering…" with a live percentage and ETA. When the export finishes, the button reads "Close", and the status text is now large and easy to read.
  • ImpPlus a wave of stability, mixing and mastering refinements across the engine since the last public build.

0.9.49

2026-06-20— Auto Balance: respects automation & measures dry
  • FixAuto Balance now leaves your automated faders alone. If a track's volume is automated, the automation owns that fader — so Auto Balance no longer touches it (a balance move would just have been overwritten on the next play). It balances the tracks it can actually set, and leaves the rest to your automation.
  • FixReverb and delay tails no longer fool the level measurement. When Auto Balance measures how loud a track is, it now ignores that track's reverb/delay sends (those add depth, not level). A track drenched in reverb used to read artificially loud and get pulled down too far — now it's balanced on its real level. Level-adding sends (parallel compression, exciter, group buses) are still counted.

0.9.48

2026-06-20— NEW: Auto Balance — professional level balancing in one click
  • ImpAuto Balance sets every track to a pro level balance, instantly. Pick a style (Balanced, Festival EDM, Pop, Hip-Hop / Trap) under Mix ▸ Auto Balance and Anthem measures how loud each track actually is — using the same true integrated-loudness standard streaming platforms use — and sets its fader so the whole mix is balanced the way an engineer balances a record: kick and bass anchored, vocals and leads forward, pads, hats and FX tucked behind. Because it balances by loudness, not peak level, the mix translates across phones, earbuds, car, laptop and club PA.
  • ImpIt won't fight a balance you already like — a level that's already right is left untouched, and every move is small and clamped.
  • ImpIt can't make the mix clip — it never raises the overall loudness; pushing a buried element up trims the whole mix down to compensate.
  • ImpOne Ctrl+Z reverts the whole thing, and a per-track "exclude from Auto Balance" lock protects any deliberate choice.
  • ImpAuto Mix (Pro) and the 3D Mix Stage are unchanged — Auto Balance is a separate, opt-in pass you run when you want the levels dialled in.

0.9.47

2026-06-20— Export-stems crash fix + Auto Mix / Smart Mix polish
  • FixClosing the Export Stems window while it's still rendering no longer risks a crash. The render now finishes safely before the window closes, and a second export can't start while one is already running.
  • FixUndo no longer turns Smart Mix "off" everywhere. Loading a project (and the undo that restores it) disabled Smart Mix as intended, but it used to also flip the app-wide setting — so Smart Mix looked stuck off afterwards. The global setting now only changes when you toggle it yourself.
  • FixAuto Mix / 3D Stage places more tracks correctly. Plainly named tracks like "Synth" or "Instrument 13" are now staged as a musical lead instead of being left unplaced, and the name matching no longer mistakes words like "Bassoon" for a bass.

0.9.46

2026-06-20— Your plugins (and their settings) can't go missing
  • ImpA plugin that isn't found when a project loads now keeps its slot and all its settings. Before, if a project referenced a plugin that wasn't available, the insert slot was emptied — and the moment you saved, that plugin and every one of its settings were gone for good. Now a missing plugin is held in place as a silent "(missing)" placeholder that preserves its exact identity and full saved state, so the project loses nothing and the plugin comes straight back with all its settings once it's installed again.
  • ImpYour scanned-plugin library is protected. A fault could overwrite the list of your scanned plugins with an empty one, which then made every plugin in every project show up as "not found". Anthem now refuses to overwrite a healthy plugin list with an empty one, keeps a known-good backup, and restores it automatically if the list is ever found empty at startup.
  • FixCrash recovery now restores your Session View clip grid too — it was coming back empty even though it was safely saved next to the project.

0.9.45

2026-06-20— Bus-to-bus latency compensation
  • PerfA bus routed into another bus now lines up at the master. When you feed one bus into a second bus (a sub-mix into a parent bus) and the chain has a latency-introducing plugin on it (a linear-phase EQ, a lookahead limiter), that path used to arrive tens of milliseconds late and slap or comb-filter against the rest of the mix. Anthem now compensates plugin latency along the whole bus graph so the path is perfectly in time. Projects that don't chain a bus into another bus are bit-for-bit unchanged.

0.9.44

2026-06-19— Crash & data-loss fixes
  • FixFixed a crash when undoing/redoing an arranger edit during playback. Ctrl+Z / Ctrl+Y of an arranger edit could read freed memory mid-playback; it is now safely synchronised with the audio engine.
  • FixExport no longer silently writes a truncated file when the disk is full. Offline mixdown and stem renders ignored write failures and reported success, leaving a truncated WAV that looked complete. A write error now aborts the export, removes the partial file, and reports failure.
  • Fix"Normalize true peak" can no longer destroy a good render on a write error — if the loudness pass can't finish, the already-correct render is kept.
  • FixShortening a faded clip no longer makes it play near-silent. Dragging a clip edge shorter left an over-length fade; fades are now re-clamped to the new clip length.
  • FixComp (take) boundary drags no longer jump past a neighbouring boundary when two boundaries are very close.

0.9.43

2026-06-19— Stem separation: robust, no self-destruct
  • ImpStem separation (Demucs) is now robust. The model download could fail every time on Windows (the file was still open when it was moved into place); a corrupt cached model could wedge the feature permanently; a fast double-click could launch two jobs racing the same files. The download now completes, a bad cached model is cleared automatically on the next run, and a second request is refused while one is running. (End-to-end separation still requires a compatible Demucs model.)

0.9.42

2026-06-19— No silent corruption of huge plugin presets
  • FixSandboxed plugins with very large state (over 32 MB) no longer silently corrupt your saved project. A few sample-based instruments can produce more than 32 MB of preset data; the plugin host used to truncate it and report success, so the project saved a corrupt blob that failed to restore (and could crash the plugin) on reload. Anthem now keeps the last known-good state instead of writing a corrupt one. Normal-size presets are unaffected.

0.9.41

2026-06-19— Crash fix, metronome meter & memory
  • FixFixed a crash when deleting the audio clip you're editing. With the bottom audio editor open on a clip, deleting / splitting / moving that same clip from the arranger could leave the editor pointing at freed memory and crash on the next edit. The editor now closes itself the instant its clip is removed.
  • ImpMetronome now follows the time-signature denominator — 6/8, 7/8 and other non-/4 meters now click and accent in the right places. 4/4 is unchanged.
  • PerfBounded the waveform-thumbnail cache so a long session auditioning many files keeps memory flat.

0.9.40

2026-06-19— Aggregate-input recordings land on the grid
  • PerfRecordings from a second/aggregate audio interface now land in time. They were arriving ~21–43 ms late (scaling with buffer size) because the clock-sync between the two cards adds a small read delay the recording-latency compensation didn't account for. Takes from a secondary card now land on the grid like takes from your main interface; primary-interface and MIDI takes are unchanged.

0.9.39

2026-06-19— Melodyne/ARA follows your edits
  • ImpMelodyne (and other ARA plugins) now follow edits to the track without a manual reset. Once an ARA plugin had analyzed a clip, moving, resizing, adding or removing clips on that track — or changing the project tempo — left the plugin playing its old layout until you hit "Reset ARA". Anthem now detects when a track's clips or tempo actually change and rebuilds the ARA document automatically, carrying your Melodyne edits across. Renaming or recolouring a clip doesn't trigger a rebuild.

0.9.38

2026-06-19— Integrated LUFS reads to spec
  • FixThe Integrated (I) LUFS readout now reads to spec. It applied only the absolute -70 LUFS gate, so quiet passages (intros, breakdowns, fades) the standard excludes were folded into the average, pulling the Integrated value too low — mastering "to -14 LUFS" on this meter delivered hotter than -14 on a compliant meter. Anthem now adds the required relative gate (-10 LU below the provisional loudness), per ITU-R BS.1770-4, so the number matches a compliant loudness meter. (Completes the EBU gating started with the Loudness Range fix in 0.9.36.)

0.9.37

2026-06-19— Undo for hand-drawn automation
  • FixEditing automation points can now be undone. Adding, deleting, moving or pasting points on a track's automation lane was not registered with the undo system, so Ctrl+Z either did nothing or jumped back past your automation work — and an accidental delete or a point dragged to the wrong value was unrecoverable. Each gesture is now a single undo step (Add / Delete / Move / Paste Automation) and Ctrl+Z / Ctrl+Y restore the lane exactly. (The snapshot for a move is taken only when you actually drag a point, so clicking to select one stays instant.)

0.9.36

2026-06-19— Drum Sampler presets & meter accuracy
  • FixLoading a preset onto the Drum Sampler no longer duplicates its velocity layers. If a pad already had extra velocity layers, a preset's layers were added on top of the existing ones instead of replacing them — stacking duplicates (flam/phasing/louder hits) and bloating the saved project. Loading a preset now correctly replaces the pad's layers.
  • FixLoudness Range (LRA) is now gated per EBU Tech 3342 (absolute -70 LUFS + relative -20 LU), so quiet intros/outros/breakdowns no longer overstate a track's dynamic range.
  • FixLevel-meter peak-hold now honours the duration it's given (it was ignoring it in favour of a fixed 1.2 s; the default is unchanged).

0.9.35

2026-06-19— Tidier temporary files
  • FixLong editing sessions no longer pile up large numbers of temporary project files. Every project-structure edit (adding/deleting tracks, group/bus changes, colour changes, dragging a clip in from the browser, Auto Mix) keeps a small before/after snapshot of the project on disk so it can be undone. Those snapshots were retained far past the point you could undo to — up to a few thousand of them — so a long session slowly filled your temp folder with multi-megabyte files. Anthem now bounds how many are kept (well beyond the reachable undo history) and deletes the rest as they age out. Undo depth is unchanged.

0.9.34

2026-06-19— LFO tempo-sync runs at the right speed
  • PerfThe built-in LFO's BPM-Sync now runs at exactly the note division you pick. A synced LFO used to run far too slowly — "1/4" gave a whole-bar cycle (4× too slow, triplets 2× too slow). It now matches the dial (1/4 = one beat per cycle, dotted = 1.5× the note, triplet = 2/3× the note), the same beat math the VolumeShaper uses. Heads-up: a project that used a synced LFO insert will now run it faster, to match the label, so give any such older session a quick listen. The "Free Hz" rate mode is unaffected.

0.9.33

2026-06-19— Recording start position
  • FixRecording from the start of the project (or the loop) now drops the take in the right place. When the transport was set to begin at the project start or loop start, hitting Record jumped the playhead there but pinned the recorded clip to wherever the cursor had been, so the take landed at the wrong spot. Anthem now moves the playhead before it marks where recording begins. Recording from the cursor position is unchanged, and MIDI recording was never affected.

0.9.32

2026-06-19— MIDI 2.0 quiet notes & the Spring reverb
  • ImpVery quiet notes from a MIDI 2.0 controller now sound. The quietest 16-bit note-on velocities were rounding down to zero, which counts as a note-off — so the note silently never played. A genuine zero-velocity note-off still behaves as one.
  • ImpThe Spring reverb algorithm sounds right again. A formula error turned the spring all-pass chain into a loud, metallic comb; it now sits at the right level and tone with the dispersive spring character it should have.

0.9.31

2026-06-19— Stop while recording keeps your take
  • ImpPressing Stop, spacebar or Rewind while recording now keeps your take. Only the transport Stop button used to finish an in-progress recording; the others stopped the transport but lost the take and left Anthem thinking it was still recording. Every Stop path now commits the take and clears the recording state.

0.9.30

2026-06-19— Routing, tempo-map & CPU fixes
  • FixMuted tracks no longer bleed through a pre-fader send in big sessions (around 16+ mixed tracks) — they are now fully silenced, like small sessions and exports.
  • ImpPlugins get the correct musical position when your project has tempo changes, so tempo-synced delays, LFOs and arps stay locked across a tempo ramp.
  • PerfLower CPU on dense MIDI clips — a wasted full-sequence rescan per note-off, per block, is skipped when there is no quantize or swing to apply.
  • FixDragging a video or media file over the timeline no longer freezes the app.

0.9.29

2026-06-19— Undo & reload fixes
  • FixHeld MPE notes no longer get stuck during clip playback — a note-off was going to the wrong member channel, so the voice never released.
  • ImpRight-click Clip Mute / Clip Colour and velocity-lane drags can now be undone.
  • ImpStacked automation lanes stay visible after you reopen a project.
  • Fix"Flatten Comp" on a MIDI track no longer wipes the track — it is audio-only and now says so instead.
  • ImpGodizer's Oversampling dropdown takes effect immediately.
  • ImpRender Analyzer and "also export MP3" now work for FLAC, AIFF, Opus and MP3 exports — the temporary WAV they needed was being deleted too early.

0.9.28

2026-06-19— Stability & audio-thread hardening
  • ImpDeleting clips across several tracks is now a single undo instead of one Ctrl+Z per track.
  • FixNo more crash when removing an ARA plugin (Melodyne) while its editor is open.
  • FixFixed a rare crash when an aggregated secondary input device restarts.
  • FixThe background autosave no longer races the settings file.
  • FixLower CPU: the built-in synth, Saturator and drum sampler no longer allocate memory on the audio thread — identical sound, smoother under load and at small buffer sizes.

0.9.27

2026-06-19— Crash-recovery & reopen fixes
  • FixAfter a crash recovery, Anthem now tells you if any plugins did not load — the same "Some plugins were skipped" summary a normal project open shows, listing exactly what to re-insert or re-authorise.
  • ImpA popped-out (floating) Mixer window now comes back floating, at the size and position you left it, instead of returning docked and hidden.

0.9.26

2026-06-19— Panels keep their size after crash recovery
  • FixYour panels keep their size after a crash or unclean shutdown. When Anthem recovered an autosaved project after an ungraceful exit, it rebuilt your tracks and plug-ins but fell back to the default window layout — so a mixer you'd dragged to full height came back small, along with your panel widths and visibility. Recovery now restores the saved workspace exactly like a normal project open.

0.9.25

2026-06-19— The floating mixer remembers its size
  • ImpThe pop-out (floating) Mixer window now remembers its size. It only saved its size when you docked it back, so resizing it and then quitting (especially an unclean exit) reset it to the default. It now saves its size and position whenever you move or resize it.

0.9.24

2026-06-19— Resize selected clips together across tracks
  • ImpResize all selected clips together, across different tracks. Select clips on several tracks and drag any one clip's left or right edge — every selected clip resizes by the same amount (each still clamped to its own audio content), as a single undo.

0.9.23

2026-06-19— Dedicated instrument processes + a stronger Auto Mix
  • FixHeavy instrument plug-ins no longer pile up and stall. Stacking several instances of a big synth (e.g. VPS Avenger) used to load them all into one shared background process that could wedge on "Loading plug-in…" — and if it died, every instance died with it. Each instrument now runs in its own process: they load in parallel, a crash only takes down that one instance, and the stall is gone. (Audio effects still share a process so a copy-protected effect only checks its licence once.)
  • NewAuto Mix is much more "finished", less static. It now adds real per-role processing on every channel — drum punch and glue, bass weight, lead presence and air, vocal compression and air, and bus glue — on top of the FX sends. Still one press, still one Ctrl+Z to undo.
  • ImpBetter track-name recognition for the 3D stage, with bigger, genre-tuned sends.

0.9.22

2026-06-19— Stability & instrument-hosting fixes
  • FixDuplicated heavy synths no longer drop out under load. A busy-but-healthy synth that returned a little late on a burst of blocks was being switched off as if it had hung; it now stays loaded and rides out the spike.
  • FixSynths no longer sustain a note forever after Stop — a dropped all-notes-off is now remembered and re-sent on the next block.
  • FixBounce / Export to a new track no longer drops the first MIDI note.
  • ImpSetting the output bus on several selected mixer strips now updates the whole group.
  • NewShift-drag to copy a clip now snaps to the grid, and instruments dropped on an audio track now make a new instrument track.
  • FixLower CPU on the built-in EQ8, OTT and Pro EQ4; the Compressor Feedback and Auto Release switches now work; a Limiter LUFS fix; a Stereo Tool balance fix; and safer project loading.

0.9.21

2026-06-18— Tempo-synced delays stay in time
  • FixTempo-synced delays now stay locked to your project tempo after reopening or undo/redo. A synced delay — for example the dotted-1/8 "ECHO THROW" that Auto Mix builds, or any DELAY insert set to a note value like 1/4 or 1/8 — used to forget the project tempo when you saved and reopened the project, or when you undid/redid an Auto Mix, and quietly fall back to 120 BPM. So on a track at, say, 128 BPM the echoes were the wrong length until you nudged the tempo. Anthem now re-feeds the real project tempo into every synced delay (on tracks, buses and the master) the moment a project finishes loading and on every tempo change, so synced delays are always the correct length.

0.9.20

2026-06-17— Auto Mix + cleaner plug-in editors
  • NewNew: Auto Mix (Pro). Open Mix ▸ Auto Mix (Pro), pick a genre — Balanced, Festival EDM, Pop or Hip-Hop / Trap — and Anthem builds a full, professional send/return mix in one click, with everything visible and tweakable in the mixer.
  • PerfSix real FX return buses are created and dialled in: VOCAL PLATE, DEPTH HALL and WIDE FX reverbs, PARALLEL COMP (New-York-style drum smash), EXCITE (a tube-style harmonic exciter) and ECHO THROW (a tempo-synced dotted delay throw).
  • PerfRouted by role, like an engineer would. Vocals get plate + air + a delay throw, drums get depth + parallel compression, pads and FX get wide ambience, and a gentle per-role EQ carve keeps parts from masking each other. The low end stays dry and mono so the mix never gets muddy, reverb decay is tuned per genre, and the whole thing is a single Undo step.
  • Imp3D Mix Stage: no more crackle. Moving a sound around the stage used to zipper and click; every spatial move now glides smoothly. The stage was also redrawn to a cleaner, higher-end look with readable non-overlapping labels, role icons, and a width control that visibly splits a sound into a stereo pair.
  • FixSynth polish. The oscilloscope now animates like a real oscillator, the doubled name in the WAVE selector is fixed, the preset BROWSER tab works and lists your saved presets, the preset text is larger, and the FX-rack labels are positioned correctly.
  • FixCleaner built-in effect editors. The Reverb, Saturator, Compressor and Delay editors no longer overlap their knobs and labels in a short plug-in window — every knob keeps a clean label / dial / value layout.

0.9.19

2026-06-17— Synth interface overhaul
  • NewThe built-in synth was redrawn to match the rest of Anthem — flat black with the exact same knobs, dropdowns and panels as the other built-in plug-ins, and a single green accent instead of the old mix of pink, amber and cyan.
  • FixSmoother to use. Click-hold-and-drag no longer makes the whole synth window feel sluggish, and a knob's value now stays visible the entire time you drag it.
  • FixThe dual filter is laid out clearly with every knob labelled (cutoff, resonance, blend, envelope amount) and the response curve no longer sitting under the controls.
  • PerfReal performance controls. The bottom strip's fake morph pad and painted MONO/POLY and portamento graphics are replaced with working controls: a POLY / MONO voice selector, a GLIDE (portamento) knob and a BEND (pitch-bend range) knob.
  • FixFixed overlapping controls in the Macros, LFO and Mod Matrix panels — knobs no longer sit on top of their labels, the LFO rate/amount knobs are full-size and below the mode buttons, and the Mod Matrix source list and routing list are separated and readable.
  • ImpNothing about the synth's sound or its parameters changed — this update is the interface.

0.9.18

2026-06-17— The synth update
  • NewThe built-in Anthem synth was rebuilt from the ground up. Band-limited oscillators kill the digital "fizz" on bright leads and high notes, and unison voices now spread into a wide, decorrelated analog stack instead of a thin in-phase comb — fat, expensive, modern.
  • PerfA real filter. The old single one-pole (where LP24/HP12/BP12/Notch were just labels) is now a proper state-variable filter with true 12 and 24 dB/oct slopes and musical, singing/self-oscillating resonance — growling basses, singing leads, smooth cutoff sweeps.
  • ImpPer-voice LFOs + snappier envelopes. The three LFOs are now per-voice and retrigger on every note, so vibrato, wobble and filter sweeps start cleanly per note instead of one shared LFO drifting across the chord; the amp and filter envelopes now snap to full instead of mushily easing in.
  • NewA real delay and reverb. The built-in delay is tempo-synced and follows your project tempo, and the smeary old reverb was replaced with a real diffuse 8-comb room/hall tail.
  • NewFull DAHDSR + a Curve knob added to both the amp and filter envelopes — Delay and Hold stages plus a Curve that morphs from soft, through analog snap, to razor-snappy, for plucks that hit late, gated stabs and swells.
  • NewTempo-synced LFOs + a real sidechain pump. Each LFO can now lock to musical note values (1/1 to 1/16, plus triplets and dotted), and the FX duck has a new Pump mode for the classic tempo-locked EDM sidechain breathing.
  • NewA 3rd assignable modulation envelope — drag the new "M ENV" source anywhere in the mod matrix (cutoff, pitch, pan, an FX send). Every existing patch keeps its settings; nothing changes until you reach for the new controls.
  • NewNew: Generate now learns from real EDM packs ("Genre DNA"). The MIDI generator was trained on a large library of professional MIDI packs and extracts each genre's real chord progressions, voicing richness and major/minor balance into a compact ruleset that ships inside Anthem; a new Chord Voicing "Auto (DNA)" option matches voicing, density and phrase length to the genre. No MIDI is copied.
  • FixNew: import almost any media file as audio. Drop an .mpeg, .mp4, .m4a, .aac, .opus or even a video file onto the timeline and Anthem extracts and converts the audio automatically (when ffmpeg is installed), cached so re-imports are instant. Also fixes .m4a files, which used to be accepted but silently failed to load.
  • FixFixed: no more hung note or endless low sub from the piano-roll preview — an auditioned note is always released when you let go, the preview voice auto-releases if a note-off is missed, and Stop / Rewind / Close Project hard-silence it.
  • FixFixed: dragging a section in the arranger now shows a clear coloured ghost that follows your cursor, with a clean drop line showing exactly where it will land.

0.9.17

2026-06-16— Musical melody generation + arranger polish
  • FixNew: generated melodies are far more varied and natural. Every press of Generate now rolls a genuinely different rhythm — a longer held anchor note on a strong beat with shorter notes around it, the odd quick ornament, and a tasteful amount of syncopation — instead of the same pattern with new pitches. Real long-vs-short note shape, never dead-on-the-grid, never robotic.
  • PerfNew: "Smart (theory)" melody mode picks each note the way music theory says real songs do — weighing every scale degree by how well it fits the chord under it and how naturally it flows from the last note. It follows your chords, stays in key and feels written. Rhythm Complexity drives the adventurousness, Chord Richness opens jazzier colour, and Emotion tints the line.
  • NewNew: real A-B-A-C song form. The generator writes a proper 2-bar idea and lays 8 bars out as A · B · A · C — your hook, an answer, the SAME hook returning note-for-note, then a resolving close. The line breathes, builds to one high point about two-thirds through, and ends on the tonic on a strong beat.
  • NewNew: modern chord voicings by default — add9 / min7 / sus with the occasional 6/9, plus tasteful slash-chord bass — with a Chord Voicing picker (Modern / Triads / Jazz) wired to the Chord Richness slider. Pick Triads for exactly the old plain chords. EDM Drop sections keep their punchy power-chord stabs.
  • FixNew: Melbourne Bounce leads rebuilt — the rolling, kick-gapped off-beat groove with the signature octave bounce now follows your chord progression instead of a fixed riff.
  • NewNew: the Generate dialog updates live as you drag a FEEL slider or change a dropdown — no need to press Generate after every tweak. The melody seed is held steady during a drag so only that parameter changes.
  • ImpImproved: cleaner arranger clips and a softer grid. Each clip carries a solid colour title bar with its name (centred) along the top; the piano-roll grid is gentler on the eyes; and all arranger grid lines are now uniform full-height, told apart only by brightness.
  • ImpImproved: clean ghost preview when you drag. Moving or copying a section or a clip (including multi-selection group drags) shows a semi-transparent ghost of exactly what is moving and where it will land; the old "Drop before/after bar X" text box is gone.
  • ImpImproved: instrument tracks show a piano-keys icon instead of a plain "E" for opening the instrument.
  • FixFixed: track level meters no longer freeze at the level they were at when you stop or pause — they always clear to silence.
  • FixFixed: no more hung note when you Generate during playback — the edited track's voices are flushed the instant the clip is re-rolled, so nothing rings on.
  • FixFixed: Ctrl+B Bounce to New Track on instrument tracks now prints real audio (it was rendering silence), drops the new track directly under the source, and leaves the source track exactly as it was.
  • FixFixed: dragging multiple selected track headers now moves them all together as one block, instead of only the one you grabbed.
  • FixStability: adding or duplicating a heavy sandboxed synth no longer interrupts the synths already playing — each new instance loads on its own dedicated background loader. Saving during a load no longer wipes plug-in settings, a faulting shared host auto-relaunches every track using it with no clicking, and removing or replacing a synth mid-load can no longer crash.

0.9.16

2026-06-15— Pitch-preserving HQ warp
  • NewNew: warp now has two modes — HQ (pitch-preserving) and Re-Pitch (vinyl-style), toggled with a new HQ / Re-Pitch button in the audio editor's warp toolbar. HQ is the default: time-stretching a clip with warp markers now keeps the pitch (clean, high-quality) instead of re-pitching it like tape. It renders in the background and swaps in gaplessly — Re-Pitch plays instantly until the HQ version is ready, so there is no dropout. Re-Pitch stays as a creative option (the classic pitch-changing stretch). Existing projects keep their current Re-Pitch sound.

0.9.15

2026-06-15— Click-free plug-in engage + audio-editor polish
  • FixFixed: adding or engaging a plug-in while the track is playing no longer clicks or pops. The insert slot now fades between dry and the plug-in's output with a short equal-power crossfade, so activating / deactivating (bypassing) a plug-in mid-playback is smooth. A sandboxed (out-of-process) plug-in also fades in cleanly the moment its subprocess finishes launching, instead of popping in a beat late. Loaded projects are unaffected — they sound identical from the very first sample.
  • NewAudio editor: added a horizontal scrollbar to the waveform so you can drag through a zoomed-in clip, and cleaned up the toolbar buttons — the grey box around each one is gone; they are now flat chips that light up green when active.

0.9.14

2026-06-15— Sandbox & audio-engine hardening
  • FixFixed: several rare plug-in sandbox races. A plug-in editor could wedge on close/reopen (a control-channel sequence desync), a launch/shutdown race could tear shared-memory handles, an unlocked shared-memory read could outlive teardown, and the deadline watchdog could disable a slot while leaving its plug-in process running. All are now serialised under a consistent lock order.
  • FixFixed: an audio-thread memory free. Large sample buffers and time-stretch state were being freed on the audio thread when a clip reader was rejected (a dropout source); they are now reclaimed off-thread via a lock-free hand-off.
  • FixFixed: picking a sidechain source for a sandboxed plug-in no longer holds the audio lock across the plug-in's reload — no brief dry-out or stall.
  • FixFixed: MPE per-note expression reattaches to the correct note on reload, even when notes overlap (it previously could shift after the load re-sort).
  • FixFixed: loading an older project no longer resets the loop region, and malformed MIDI 2.0 packets are no longer resurrected.
  • FixFixed: the Multiband Sidechain Duck no longer clicks when re-enabled (un-bypassed) in multiband mode.
  • FixFixed: EQ8 band updates are no longer occasionally missed or torn between the UI and audio threads.
  • FixFixed: the Anthem Bus 2500 gain-reduction meter now reads per-block instead of sticking high.

0.9.13

2026-06-15— Smarter MIDI generation + stability
  • NewNew: A-B-A-C song form in the MIDI generator. Melodies are now constructed the way a songwriter builds them — a memorable phrase A, a contrasting answer B, the A phrase returning so the ear recognises it, then a cadence C that resolves to the key, instead of fresh random notes every bar. Pick it under the new Melody Form menu (Auto uses A-B-A-C for melodies of four bars or more).
  • NewNew: eight FEEL knobs shape every generation — melody, chords, bass and arp: Note Density, Rhythm Complexity, Swing, Humanize, Variation, Rests, Chord Color (triads up to 7/9/11/13 extensions) and Octaves.
  • NewNew: more melody styles — Chant Hook, Plucked Sequence, Wide-Interval Lead, Pentatonic Riff and Question & Answer.
  • NewNew: richer chords and progressions — six voicing styles (Closed, Open, Drop 2, Drop 3, Rootless, Spread), optional extensions, and — as you raise Rhythm Complexity or Variation — secondary dominants, borrowed chords and extended pop progressions. At low settings you still get the proven, clean progressions.
  • NewNew: smarter arpeggios — eight real patterns (Up, Down, Up-Down, Down-Up, Converge, Random, As-Played, Chord-Up), the rate locked to your grid, with gate length, rests, swing and octave range all driven by the knobs.
  • NewNew: better drum generation — per-genre pattern variations, genre-accurate fills, ghost notes, four new genres (UK Garage, Amapiano, Afrobeat, Breakbeat) and a Pattern Feel menu for swing, humanize and ghost amount.
  • FixFixed: a rare crash and garbled-audio race when drawing or undoing clip-gain automation on a clip that is currently playing.
  • FixFixed: more audio-thread allocations removed (the loudness / true-peak meter, the brickwall limiter and the OTT-style multiband) that could cause intermittent clicks during playback.
  • FixFixed: project loading is hardened against malformed or older files, and the generator no longer leaves a stuck note when a chord and a bass note land on the same pitch and beat.
  • FixFixed: a couple of rare context-menu crashes in the mixer and on automation lanes when the project changed while a menu was left open.

0.9.12

2026-06-15— Creative tools, plug-in reliability & workflow
  • ImpMelbourne Bounce lead in the MIDI generator — a dedicated dark, genre-accurate bounce riff alongside the EDM Drop Lead: strict minor / Phrygian palette, fat low register, a triplet OR a straight feel, off-beat stabs that leave the kick room, and it breathes — short stabs with real rests, stated then answered, instead of a wall of notes.
  • ImpThe melody generator now writes to real hit-song craft — sung melodies resolve to the tonic, place a single climax about two-thirds through on a strong beat, and stay mostly stepwise and in a singable range; the instrumental modes keep their wide, leapy character.
  • ImpA triplet snap grid now generates triplet notes — set the grid to 1/8T or 1/16T and Generate lays the lead down as a triplet gallop.
  • ImpMIDI Tools on the clip — right-click a MIDI clip for Quantize, Swing, Transpose, Velocity, Legato, Reverse and Pitch-Correct-to-Key, across your selection in one undoable step.
  • ImpKeyboard shortcuts now work from the popped-out mixer and every dialog, not just the main window.
  • FixFixed: plug-in settings now survive save then reopen far more reliably. Heavy sandboxed synths whose state read was slow no longer come back at default, and the fallback the project relies on while playing is kept current on every save.
  • FixFixed: "Sidechain to track" no longer hijacks one of your existing plug-ins (for example a limiter that exposes a sidechain input) — it reuses an existing Anthem ducker or adds a fresh one, so your own plug-ins are never touched.
  • FixFixed: the generator's GENERATE button rolls a fresh idea on every click, and the snap grid value now sticks across sessions.

0.9.10

2026-06-14— Stability & instrument fixes
  • FixFixed: sandboxed instruments with an audio input bus could play silently. Kick 2/3, HALion and similar synths that declare an input now receive their MIDI and their sound comes through the channel, mixer and speakers.
  • FixFixed: multi-output drum machines crashed on play. Roland TR-909, Sonic Academy Kick 2/3 and Groove Agent SE now keep their full output layout instead of being forced to stereo, so they play correctly instead of crashing.
  • NewThe first note's attack is preserved on Play when a note sits exactly on the playhead — no more swallowed transient at the very start.
  • FixOpening a plugin window no longer drops that plugin's audio. Only the few plugins that genuinely need it are briefly paused while the window opens.
  • FixMore accurate CPU metering for sandboxed plugins. The cross-process audio round-trip was cut from roughly 2 ms to about 0.15 ms per block, so nearly-free plugins no longer read as a misleadingly high load.
  • FixPiano roll: moving notes snaps to the grid and pressing D drops the duplicate on the grid. Long notes keep their length when moved, and dragging a part over a note no longer shortens it.
  • NewBrowser: double-clicking an instrument loads it onto the selected channel instead of always creating a new track.
  • FixFixed: dragging a MIDI pattern out of a plugin no longer fails when the notes sit at the very start of the pattern.

0.9.9

2026-06-13— Plugin loading stability
  • FixFixed: content-streaming instruments crashed red the instant they loaded. Groove Agent SE, HALion Sonic and similar instruments stream their kit/content on background threads for a second or two after they are created; audio sent during that window crashed deep inside the plugin and the slot went red. The protected host now rides out that load window — the instrument loads green and opens its full editor normally. (The "double-click an instrument in the browser and it dies" bug.)
  • FixFixed: some VST3 effects crashed on load (red slot). Channel strips and other effects that accept MIDI were misclassified as instruments and had their audio input disabled, crashing them instantly. The input bus is now enabled for every plugin that declares one, like other hosts.
  • FixMuch faster, never-freezing plugin window open. The editor is adopted into the DAW the instant the plugin is ready (heavy GL/Kontakt GUIs included) instead of timing out, and all the blocking window work moved off the UI thread — what could take 20 s and freeze the app now takes only as long as the plugin needs.
  • FixAdding a plugin no longer freezes the DAW. The whole load runs in the background; the track plays dry until the plugin is ready. Big samplers (Kontakt, Battery, Eventide) no longer show "not responding", and saving while a plugin is still loading is instant.
  • ImpReplacing an instrument mid-load is instant and safe, and plugin editor windows now open centred on the DAW with a "Loading plugin…" view instead of a blank grey box.
  • ImpMixer: right-click ▸ Delete removes every selected track, not just the one you clicked — in a single undo step.

0.9.8

2026-06-12— Browser & Picker polish
  • NewNew: plugin format badges. Every scanned plugin now shows a small colour-coded format tag — VST3, CLAP, AU or VST — in the browser's plugin list and in both insert-slot pickers (mixer and channel inspector). When the same plugin is installed in two formats (e.g. OTT as VST3 and CLAP), the two rows are finally tellable apart at a glance.
  • ImpImproved: bigger browser search field. The search box at the top of the browser (shared by the All, Sounds, MIDI and Plugins tabs) is taller with larger text — much easier to read what you're typing.
  • FixFixed: the channel inspector's insert picker now matches the mixer's. Same larger size and readable rows, and it honours the shared "Group plugins by type" setting like the browser and mixer picker. It used to be a separate, smaller picker that ignored grouping.

0.9.7

2026-06-12— Multi-Device & Routing update
  • NewNew: Routing Matrix (Mix ▸ Routing Matrix) — a full patchbay: name your hardware ports, pick any input pair as a track's source, send any track or bus to extra outputs as a post-fader Direct Out, and choose the master pair. Saved per project; non-routed projects behave exactly as before, down to the last bit.
  • PerfNew: Hardware Insert with one-click latency calibration — patch external analog gear into any insert slot, fully latency-compensated, with Send Trim, Return Gain, wet/dry mix, phase invert and manual offset. CALIBRATE sweeps the loop and dials in perfect sample alignment, remembered per interface and patch.
  • FixNew: multi-device INPUT aggregation — capture inputs from a second audio interface alongside your main one, drift-locked to your main clock. Opt-in.
  • FixNew: multi-device OUTPUT aggregation — drive a second interface's outputs too, routing any track or bus to them for independent cue/monitor/outboard feeds while your master stays on the main interface. Drift-locked, opt-in.
  • NewNew: full multi-channel I/O — all of your interface's inputs and outputs are visible now instead of capped at 2-in/2-out; record or monitor any input pair. Existing stereo setups behave exactly as before.
  • NewNew: Session View (View ▸ Session View) — an Ableton-style clip-launcher grid for jamming arrangements with quantized scene/clip launch. Saved per project.
  • NewNew: Comping — swipe across take lanes to build the perfect composite take; Flatten Comp renders it to one clean clip. Undoable.
  • NewNew: Reference-matched mastering (Mix ▸ Reference Match) — match a reference's tone and loudness with a corrective curve and platform targets.
  • NewNew: per-note MPE / expression editor with a pitch-glide tool — draw per-note Pitch Bend, Timbre and Pressure and shape continuous pitch glides.
  • NewNew: Audio Retrospective Record — every armed audio track keeps the last 30 seconds; Recover Last Take drops in the take you forgot to record.
  • NewNew: Visual undo history (View ▸ History) — jump to any past edit; drives the same undo as Ctrl+Z.
  • NewNew: Export Project Package — bundle a project plus all its audio into one self-contained zip to share; originals untouched.
  • NewNew: group plugins by type in the browser AND the insert menu, one shared setting; bigger insert-slot plugin picker; redesigned, theme-matched Audio Settings with both multi-device toggles visible at once.
  • FixImproved: the built-in reverb is rebuilt — a modern 12-line modulated FDN with real Room/Hall/Plate/Chamber/Ambience/Shimmer topologies, frequency- dependent decay, freeze, and correctly mapped algorithms on the simple insert.
  • ImpImproved: every console drive is genuinely audible now — re-measured and re-tuned at constant loudness, with a real program-dependent bus GLUE compressor.
  • NewImproved: new projects follow host tempo by default, so dropped loops snap to the project tempo out of the box.
  • FixImproved: EQ8 is smooth while you drag a band (no zipper); manual scroll sticks during playback with follow-playhead on; global shortcuts work while a plugin window is focused; pitching/tempo-locking a clip no longer freezes the UI.
  • FixFixed: dropped loops sound exactly like the browser preview (Re-Pitch import default); browsing no longer freezes the UI; deleting a track during playback is gapless with no dropout, glitch or noise.
  • FixFixed: the CLIP LED settles to idle in silence instead of pulsing forever; changing project tempo retunes clips live and stretched clips draw their full waveform at any tempo.
  • FixFixed: Sidechain Duck reaches true silence at full depth with an accurate curve and timing; no more phantom bus meters or stuck reverb tails; send-bus Reverb/Delay are tuned at the real sample rate now.
  • FixFixed: cross-lane clip drags land on the right track at any lane height; Duplicate Track always duplicates the selected track; selection survives every edit; sidechain/send/track-picker menus follow the mixer's order and numbers.
  • FixFixed: sandboxed plugin menus stay open and VST3 editors show on first open; the Play button starts reliably on the first press; piano-roll mute marks and per-note expression follow their notes through every edit; Region Loop, audio Region Transpose, and Quantize/Q-Swing/Transpose/Velocity match playback and export; closing a project no longer hangs on a slow or missing file.

0.9.6

2026-06-11— Flow update
  • PerfBuilt-in saturator in every channel's CLIP stage (right-click the CLIP row): a pre-clip tanh warmth stage, StandardCLIP-style, zero latency — feeds the clipper harmonically dense material instead of bare peaks.
  • ImpThe CLIP LED is now a real level read: green = the signal is not reaching the clipper, yellow (breathing) = the sweet spot, red (flashing) = over-driving. The drive fill and dB readout follow the same colours.
  • ImpProfessional warp editing: drag warp markers and both the audio and the waveform stretch segment by segment, live during playback. Grid snap is a magnet instead of a hard quantize (Shift = fully free).
  • ImpBrowser favorites for sounds and folders (★ section, right-click), and track-picker menus now show the mixer's track numbers.
  • ImpDeleting a track during playback is now completely gapless — no pause, no dip, no click; the music just keeps playing.
  • ImpDropped loops sound exactly like the browser preview. Import now uses Re-Pitch — the same algorithm as the synced preview; HQ stretch stays available per clip via Stretch Mode.
  • ImpBrowser preview stays on beat with the project, always — it self-corrects against the playhead and follows live tempo changes.
  • ImpChanging the project tempo retunes all clips live, including during BPM drags, and waveforms redraw correctly at any tempo.
  • ImpTempo-named loops (like name_138.wav) stretch correctly and keep correct pitch on any audio device sample rate.
  • ImpPRE-FX DRIVE is finally audible, and the mixer and inspector edit the same value with live two-way sync.
  • FixCtrl+Z inside the audio editor no longer closes the panel — undo keeps your workspace and re-binds the restored clip.
  • FixAudio clips can no longer be dragged out longer than the audio inside them, and cross-lane clip drags always land on the right track.
  • ImpThe inspector shows your SENDS again (routing lives in the mixer only).
  • FixSettings no longer randomly revert, crash reports are never re-asked, and switching projects is crash-free.
  • ImpGlue/merge renders the full selection correctly, and G glues the selected clips.

0.9.5

2026-06-11— Melodyne memory, automation lanes under tracks, piano-roll power pack
  • ImpMelodyne now remembers your edits. The ARA document is archived into the project file and restored on load — edits survive saving, closing and reopening the project, and mid-session rebuilds via automatic carry-over.
  • FixFixed three stacked issues that could block Ctrl+M Melodyne entirely: a stale plugin-scan cache (now self-heals), a crash-grade pointer bug, and the sandbox wrongly vetoing in-process ARA sessions.
  • ImpARA panel polish: readable typography, the editor gets the whole panel once loaded, working Maximize, and a pop-out button — run Melodyne in its own floating window on any screen.
  • ImpTrack & clip right-click menus with icon rows (Cubase-style): a tool row (Select / Draw / Split / Glue / Erase) plus Mute, Solo, Duplicate, Colour, Rename, Automation, Setup and Delete.
  • PerfMaster limiter quick switch: LIMITER chip on the Stereo Out strip with live gain reduction, plus a MASTER FX chip that bypasses the whole master insert chain for instant A/B — realtime-safe, saved with the project.
  • ImpAudio editor tool row: Reverse, Normalize, Quantize Audio (transient-snap to the grid), Snap-to-transients, GAIN slider and a PITCH slider (±24 semitones, length preserved, saved per clip).
  • ImpFloating mixer window: pop the mixer out to a second screen, position remembered, dock back any time.
  • ImpAutomation lanes under tracks (Cubase-style): every visible lane is its own row under the clip area — several at once — with per-lane mini-headers: parameter dropdown, add, hide, clear (undoable) and drag to reorder. Lanes carry the track colour and clicking a lane selects its track.
  • ImpArmed Automate: toggle the Automate button in any plugin window and every control you touch instantly gets its automation lane under the track.
  • ImpPiano roll ARP: arpeggiate selected chords — Up / Down / UpDown / Random at 1/8, 1/16 or 1/32, each chord arpeggiating over its own span so runs follow the progression exactly.
  • ImpPiano roll VOICE: one-click re-voicing per chord — Spread, Drop-2, Inv+ and Inv−.
  • ImpPiano roll VEL shapers: Ramp up / Ramp down across the selection, Accent 1+3, Accent 2+4.
  • ImpPiano roll Echo: duplicates the selection forward twice with decaying velocity, MIDI-delay style.
  • ImpHumanize with strength: click for the classic 30 percent, or drag the chip horizontally to dial 0–100 timing and velocity looseness.
  • NewNew RHYTHM patterns: Build (accelerating 1/4 → 1/8 → 1/16 with a crescendo), 1/1, Roll, 1/2, 332 tresillo and Swing 8 — and hovering any RHYTHM chip previews exactly what it will produce as a ghost in the grid.
  • PerfNew ADD section: scale-aware harmony stacking per chord — Sub (octave below the root, legato to the next chord), Oct, 3rd, 5th, 7th and 9th.
  • FixRHYTHM chips emit perfectly uniform note lengths, no longer drift on repeated clicks, and chord progressions survive pattern spamming (gap lookup anchors to the nearest chord).
  • ImpStrum follows the chord progression: each chord strums from its own position, notes end together, the spread auto-caps to the chord and duplicate pitches collapse.
  • ImpAutomation point dragging is stable across lanes and the clip area — no more jumps or vanishing nodes mid-drag.
  • FixFixed garbled text ("Note A·", "–") in the piano-roll selection header, the chord-progression menu and the stem-export status.
  • FixInspector: the Capture MIDI pill no longer overlaps the track title on a narrow inspector; stray accent lines removed from the I/O rows.
  • NewGrid appearance and Piano roll appearance dialogs now use the Anthem window chrome and theme, and lane separator strength is adjustable via the new "Lane lines" slider (0 = off).

0.9.4

2026-06-10— CLIP row, paint-drag M/S, MixTool, EQ8 polish
  • PerfCLIP got its own row. The clip stage now lives UNDER the GLUE row in every channel's console card (the header badge collided with track names): green LED = armed, red LED = actively shaving, drag sideways = drive (0..+12 dB with a fill indicator), click = on/off, right-click = ceiling and edge (Hard/Smooth/Round). Console cards grew so INPUT/DRIVE/GLUE/CLIP sit as four clean rows.
  • ImpPaint-drag mute/solo in the mixer. Press M or S and sweep across strips — every channel you cross takes the same state, exactly like the arrangement track headers (start on an active one to un-mute/un-solo a whole row). One undo per sweep.
  • FixMixTool — new built-in utility: gain trim, equal-power pan, width, phase invert L/R (click-free), channel swap, mono, DC filter, output peak readout. (Also fixed: picking it in the mixer's plugin menu did nothing.)
  • FixDrum Slam fixed (whole Modern Hit suite). The saturation stages are now level-referenced: 0 dBFS drums keep the same character as -12 dB material instead of frying into square waves.
  • FixEQ8: the response curve now follows band drags and knob edits instantly (it used to freeze whenever the transport was stopped), and the readouts are clean — "2.5 kHz", "80 Hz", "+12.4 dB", Q "0.71".
  • ImpSidechain Duck DRAW mode: point dragging works at every AMOUNT setting (hit-testing was offset below 100%), and right-click deletes a point.
  • ImpMixer console-card rows are taller, bottom-aligned and use the Inter face.
  • FixOne-shots are not loops. Audio clips can no longer be dragged longer than their source material (extending a one-shot used to repeat it).
  • ImpShift = precision drag. Hold Shift while moving or resizing clips to bypass grid snapping entirely (Ctrl/Cmd still works too).
  • ImpPro scissor. The cut tool now cuts exactly where you click — no grid snap — and audio cuts auto-refine to the nearest waveform zero crossing (±10 ms) so a split can never click or pop. The scissor cursor was also mirrored so the blades point at the actual cut point.
  • ImpOne-click sends. Left-click an empty send slot to open the destination picker directly (was right-click → menu → Send Routing).
  • FixDrum Slam / Punch Lab scream fixed for real: the punch stage injected a square wave riding the input's sign during the whole attack — replaced with a clean transient-following gain lift.

0.9.3

2026-06-10— CLIP on every channel + bigger track buttons
  • PerfCLIP — clip-to-zero, built in. Every channel, bus and the master now has a CLIP badge in its mixer header: one click engages a pro serial clipper as the last stage of that channel (post-inserts, pre-fader). Right-click sets Drive (+0..+12 dB push), Ceiling (0..-6 dBFS) and Edge (Hard / Smooth / Round). The badge turns amber with a live dB readout while it shaves peaks. ADAA anti-aliasing means no oversampling cost and zero latency — run it on everything and ride the whole mix into -6 LUFS the modern way. Engaging it does nothing until the channel actually pushes past the ceiling, and bounces/stems match the live sound exactly.
  • ImpLogic-sized Mute/Solo/Record/Monitor buttons. Same design, much bigger hit areas in the arrangement track headers, the mixer strips and the inspector — they're clicked constantly and were too small to hit.

0.9.2

2026-06-10— Drawable duck curves, reverb engine rebuild, shortcuts everywhere
  • NewDraw your own duck curve. The Sidechain Duck has a new DRAW mode (LFOTool-style): drag breakpoints, double-click to add or remove them, drag a segment to bend it. The drawn curve loops beat-synced (1/2, 1, 2 or 4 beats) and needs no sidechain input at all. TRIG mode (classic sidechain-triggered) is still the default.
  • ImpAmount 100% now means 100%. The trigger detector is binary (gate at -30 dBFS): every hit drives the duck to FULL depth no matter how loud the kick is, and the old -34 dB gain floor is gone — full Amount takes the channel to silence. The preview curve uses the exact same math as the audio path, so what you see is what you hear.
  • FixReverb engine rebuilt from scratch. The metallic / "chemical" tone is gone: the old core's diffuser algebra was mathematically broken (a resonant comb instead of an allpass) and its modulation stepped in whole samples (zipper grit). The new core is a classic figure-of-eight tank — input diffusion chain, smoothly modulated allpasses with fractional interpolation, in-loop HF damping and DC blocking, decorrelated output taps — plus per-algorithm early-reflection patterns so Room/Plate/Hall/Cathedral really sound like different spaces. All 20 modes, every knob and preset unchanged.
  • ImpShortcuts work with plugin windows focused. X, I, P, B and every other global key now reach the DAW even when a plugin editor is the foreground window (only an actual text field swallows keys).
  • ImpReadable plugin text. All plugin UI font tokens bumped (~+1.5 px) — the band-strip labels, display readouts and chip text were down at 7-8 px.
  • ImpMixer dB readout uses the crisp transport font and sits closer to its fader; the double-click dB entry box matches.
  • FixCycle no longer eats the first attack. The loop wrap used to render the block straight past the loop end and then jump the playhead to "loop start + what we overshot" — so up to one audio buffer (~10 ms) of every cycle start was never rendered, and a note sitting exactly on the loop start never triggered. The audio callback is now split sample-accurately at the loop boundary: the cycle restarts at EXACTLY the loop start, every attack intact, and nothing past the loop end bleeds through either.
  • ImpInspector I/O is always visible. The output-routing row above READ could be clipped invisible (the section was 5 px taller than its reserved height, and on shorter windows the whole I/O block fell below the visible area). The I/O module is now pinned directly above the READ badge at every window size, in both the left inspector and the right-side send-target inspector — and the output row now shows the channel's real destination (its group bus, or Master) instead of a dimmed placeholder.

0.9.1

2026-06-10— ARA 2 hosting + engine hardening
  • FixARA 2 is live again. ARA worked before the plugin sandbox was rolled out; the sandbox rollout left the ARA build switch off, which forced Melodyne into "protected passthrough" mode. Re-enabled: ARA 2 plugins (Melodyne, VocAlign…) now bind in-process with full document integration — clips, tempo and selection flow into the plugin via the ARA panel — while everything else keeps the crash-protected sandbox. (ARA 2 is the current standard; ARA 1 is obsolete and unsupported.)
  • ImpRHYTHM tools now think in harmony. The groove chips re-read which CHORD is sounding at every hit and play that — so re-grooving works identically on held chords, melodies, or an already-chopped wall of 16ths, and you can switch between 1/4 / 1/8 / Pop / EDM as many times as you like. (Previously, clicking a pattern on short chopped notes did nothing.)
  • FixLegato fixed. It used to stretch a note all the way to the next note of the SAME pitch — straight over everything in between, creating giant overlapping sustains. It now extends each note to the next onset (note or chord start): seamless melodies, chord-safe, never overlaps.
  • ImpGenre rhythm row always visible. The EDM/Pop/Rave chips were clipped at the panel bottom on 1080p; the inspector now uses the space freed by the removed SHORTCUTS card.
  • FixEngine hardening from a full engine audit: all debug logging removed from the audio thread (a dropout source on every transport start), a NaN/Inf safety scrub on the master output (a misbehaving plugin can no longer silence or blast the output), crash-safe plugin-editor embedding (window validated before adoption), defensive shared-memory clamping in the plugin host, click-free multiband duck mode switching, smoothed crossover dragging, and a piano-roll guard against stale clips after undo/redo.

0.9.0

2026-06-10— Visual sidechain, rhythm tools, audible console
  • ImpMultiband sidechain ducking. The Sidechain Duck now has three frequency zones (LOW / MID / HIGH) on a band strip above the curve: click a zone to enable/disable it, drag vertically to set how hard that zone ducks, drag the dividers to move the crossovers (Linkwitz-Riley, flat summing). Duck only the bass lows under the kick and let the highs ring — or any combination. With all zones uniform it behaves exactly like the classic single-band duck, so existing projects are untouched.
  • NewGhost MIDI Trigger tracks. New in the arranger's add-track menu: an instrument track that turns the notes YOU DRAW into sidechain triggers — a built-in Ghost Trigger synth fires a short kick-like burst per note (velocity = trigger strength), the track never reaches the master. Draw exactly where the duck should hit, then right-click your target channel → Sidechain To... → pick the Ghost Trigger track. Tweak burst freq/decay via the track's Ghost Trigger insert.
  • Imp…with one-click section fills. Creating the trigger track asks where to put the notes: empty (draw your own), or auto-fill 1/4, 1/8 or 1/16 triggers across the WHOLE SONG or any ARRANGER SECTION by name — "fill the Drop with 1/8 pumps" is two clicks.
  • ImpPiano roll opens ON your notes. Zoom is remembered, but the view now always centres on where the clip's notes actually are (C3–C4 if empty) — no more opening at the top octave with the music far below.
  • FixRHYTHM patterns fixed + safe. "Off 8" could DELETE short notes (the hit landed past the note's end after the original was removed) and EDM/Pop skipped most of their hits due to a unit mix-up. Patterns are now anchored to the beat grid, placed correctly, and a note that no hit reaches keeps its original — a groove tool never destroys your notes.
  • ImpPiano roll panel readability. The SHORTCUTS card is gone (bindings live in Settings ▸ Keyboard Shortcuts) and the small panel text — rhythm chips, value rows, chord/style chips — got a proper readable size.
  • FixSerum 2 (and friends) actually fixed. The 0.8.x synth-mute fix classified "instrument" by MIDI flags — but Serum 2 also SENDS MIDI (its arp/sequencer), so it was still treated as an effect and stayed muted; meanwhile Auto-Tune (which ACCEPTS MIDI) was wrongly treated as an instrument and lost its anti-residual protection. Instruments are now classified by audio flow (no audio inputs = instrument), verified against the plugin host's own logs. Fixes silent sandboxed synths AND restores the Auto-Tune residual guard.
  • ImpSidechain Duck went visual (LFOTool/Kickstart-style). The editor now shows the duck curve on a one-bar beat grid — computed through the exact same envelope math the DSP runs, so what you see is what it does — with a beat-synced playhead, a live gain-reduction dot riding the curve, a live GR readout, a sidechain-input meter + trigger LED, and the factory presets (EDM Kick Pump, Ghost Pump…) finally exposed in a preset picker.
  • Imp"SC" badge on mixer strips. Channels being ducked now show a small SC chip in their header — there was previously no visible sign a sidechain was active. Click it to bypass/enable the duck, right-click for source/level/pre-post.
  • NewRHYTHM tools in the piano roll. New chip grid under TRANSFORM: re-cut the selected notes into straight 1/4 / 1/8 / 1/16, offbeat 8ths/16ths, triplets, or genre grooves — EDM pump, Pop syncopation, Rave gate. One click per groove, fully undoable.
  • PerfThe console finally sounds like a console. Every Channel Console and Bus/Master Summing control was tuned so cautiously it was inaudible on normally-levelled material (the saturation was gain-neutral below the knee, the glue threshold sat above real program peaks). DRIVE/SUM DRIVE now add audible density and harmonics at working levels (peak-referenced shaping, full-scale stays safe), GLUE is a real program-dependent glue that breathes with the music (up to ~2.5 dB), and LOW WEIGHT / AIR SMOOTH have clearly audible ranges. Zero-setting projects are unchanged. Listen and judge — tuned by reasoning, your ears have the final word.

0.8.9

2026-06-10— Multi-out synths (Serum 2) + piano-roll zoom memory
  • FixOversampling labels fixed. The built-in Saturator, Clipper and Limiter showed garbage characters in their oversampling menus ("OS 2Å…" instead of "OS 2x") — a text-encoding issue with the multiplication sign. Plain "x" now.
  • FixClosed plugin editors no longer haunt your desktop. Closing a sandboxed plugin's window (the X) only closed Anthem's own frame — the plugin's actual editor (which lives in the protected host process) was released as a visible free-floating window hovering OVER other applications. Closing the window now hides and destroys the protected editor too.
  • ImpMulti-out synths sound on the channel. Replacing a track's instrument with a multi-output synth (Serum 2 ships 16 extra stereo outs enabled) produced silence on the channel even though the plugin's own UI showed activity: the protected host processed it through a 2-channel buffer, so the synth rendered to buses that were never read back. The host now slims the plugin to its main stereo bus when possible, and otherwise processes the full bus layout and reads the main output back. Affects every multi-bus plugin, not just Serum.
  • NewPiano roll remembers your view. It opens zoomed-in framed on the clip's notes the FIRST time, and from then on reopens exactly the way you last left it (zoom + scroll), instead of re-framing on every open.

0.8.8

2026-06-10— Background dropouts + real piano keys
  • NewNo more glitches when you tab out. Windows 11 puts background apps in "efficiency mode" (slower clocks, coarser timers) the moment they lose focus — audible as dropouts, especially on built-in soundcards. Anthem AND its plugin sandbox processes now opt out, so audio keeps running at full quality while you work in another window. (Tip: an ASIO driver or WASAPI-exclusive mode on the built-in card makes playback even more robust.)
  • ImpThe piano-roll keyboard looks like a real piano. White keys are actually white (soft ivory gradient), black keys are short glossy caps over them, octave labels in dark text — instead of the old flat grey rows.
  • ImpNo more purple octave rows in the note grid. The C-row highlight is now a neutral brighter lane + stronger divider. The whole grid is also a touch brighter by default ("everything was too muted") — and still fully tunable in View ▸ Piano roll appearance…

0.8.7

2026-06-10— VST3 instruments fixed + track merge (bug batch 4)
  • NewThird-party VST3 synths play again. The Auto-Tune residual-suppression added to sandboxed plugins ("silent input ⇒ zero the output after a transport reset") also fired for INSTRUMENTS — whose audio input is silent by design. From the first Play onward, every sandboxed synth's generated audio was zeroed forever: timeline MIDI clips never sounded, and the plugin's own on-screen keyboard went silent after the first transport start. Instruments are now exempt; the suppression still protects effects like Auto-Tune exactly as before.
  • ImpMIDI tracks and Instrument tracks are merged. They were already identical in the engine, but the UI kept two types — and some flows (the plugin manager's "load to track" picker) only accepted one of them. Every creation path (menus, MIDI-file drop) now yields a single "Instrument (MIDI) Track"; legacy projects with MIDI tracks migrate automatically on load.
  • FixPlayback no longer starts late. The play-start silence gate added the full plugin-chain latency (uncapped) to its mute window, and the gate only releases early when an AUDIO clip sounds — a project whose first sound is a synth got up to ~1 s of muted master at every Play ("audio starts half a bar late"). The gate is now the ~2 blocks its design comment always promised.
  • PerfBrowser preview lands on the beat you hear. Synced previews (loop phase-lock and one-shot beat-quantize) aligned to the engine playhead, which runs ahead of the speakers by the plugin-delay-compensation amount — so previews sat early on any latency-heavy session. They now align to the HEARD beat.
  • NewDisabled plugins keep their settings. A plugin's state snapshot was only taken at project load, so one added or tweaked during the session that crashed or was disabled saved an empty state (settings reset on reload). The state is now also captured at the moment a slot is disabled.
  • ImpPiano roll appearance settings (View ▸ Piano roll appearance…). Tune the grid-line brightness, colour/hue, which lines draw, and the key-lane shading contrast — saved per user, live preview, same pattern as the arrangement's grid appearance.

0.8.6

2026-06-10— Piano roll + browser + drag fixes (bug batch 2/3)
  • ImpPiano roll opens zoomed in on the clip's notes. It used to restore a saved view that, once you'd zoomed out, reopened fully zoomed-out and unusable. It now frames the clip's note pitch range (zoomed in) every time it opens; an empty clip defaults to the C3–C4 octave.
  • ImpMIDI clips grow to fit notes drawn past their end. Drawing a note beyond a clip's length used to leave it outside the clip (the arranger hid notes past the clip end). The clip now extends to contain its notes.
  • FixBrowser audio/MIDI clips drop on the track you aim at. After reordering tracks, dropping a clip from the browser landed on the wrong ("random") track because the on-screen row was used as an array index. Drop now resolves the actual lane under the cursor. The same fix makes dragging clips between reordered tracks land correctly, and dropping a synth onto a reordered instrument track.
  • FixAppleDouble "._" files no longer clutter the browser. Mac sidecar files ("._name.wav") matched the audio extensions and listed but couldn't preview (they're tiny metadata files, not audio). They're now skipped.

0.8.5

2026-06-10— Mixer / routing fixes (bug batch 1)
  • NewInspector now follows a newly-created track. Adding (or duplicating) a track selected it in the arrangement but the Inspector kept showing the previous track until you clicked the new one again. The selection callback now fires on create/duplicate, so the Inspector updates immediately.
  • ImpMixer shows the same number of insert slots as the Inspector. A channel with one plugin showed 3 insert slots in the mixer but 4 in the Inspector — the mixer floored at 3, the Inspector at 4. Both now floor at 4 (they already auto-grow identically beyond that), so the columns match.
  • ImpPRE-FX DRIVE is now audible. On the default "Clean" console model the DRIVE knob was scaled so low that even 100% barely changed the sound. The Clean drive curve is stronger now (still the cleanest model). At 0% drive the sound is unchanged, so existing projects with drive off are unaffected.
  • PerfDELAY / REVERB send buses are forced 100% wet. They're parallel aux buses, so any dry signal phases against the source. The built-in Reverb/Delay on those buses (and the internal fallback FX) are now pinned to 100% mix regardless of how the bus was created.
  • FixNew projects start with an empty Stereo Out. Plugins you put on the master / Stereo Out channel used to leak into the next new project. New Project now clears the master insert chain (and closes any open editor windows) like project-load already did.

0.8.4

2026-06-09— Customisable arrangement grid
  • FixGrid appearance settings (View ▸ Grid appearance…). The arrangement grid lines were fixed bright white, which some users found distracting. You can now set the grid brightness, colour/hue (full colour picker) and which lines show (bars + beats + sub / bars + beats / bars only / off). The setting is saved per user (applies to every project) and the default is dimmer than before. Live preview while you adjust it.

0.8.3

2026-06-09— Plugin editor open paths + "V" toggle
  • ImpOpening a plugin from the Inspector now works for sandboxed plugins. Adding a plugin from the Inspector's AUDIO FX list used a different code path than the mixer, which couldn't build the embedded editor for an out-of-process plugin (Neutron/Ozone) — it showed "could not be embedded". The Inspector now uses the same proven path as the mixer.
  • Fix"V" (Hide/Show plugin windows) no longer glitches. A single press could reach the toggle through two key routes and fire twice, so windows randomly hid/showed or did nothing. The toggle now de-bounces a double press into one.

0.8.2

2026-06-09— Plugin editors, start-screen logo, UI polish
  • ImpBuilds on 0.8.1's plugin-hosting overhaul.
  • ImpPlugin editors embed reliably. The window that hosts a third-party editor only waited ~5 s for the (out-of-process) editor to build before giving up with "could not be embedded" — too short for heavy UIs (Ozone/Neutron), which also sometimes left a stray floating editor window. The wait now matches the editor build budget (~15 s), so heavy editors land in their proper docked window.
  • ImpStart-screen logo restored. The launcher/splash logo was loaded from a dev source path that doesn't exist in an installed build, so it was blank for users. It's now bundled into the app and always shows.
  • ImpInspector shows the red failed/Relaunch state for a crashed plugin slot, matching the mixer (they were inconsistent before).

0.8.1

2026-06-08— Third-party plugin hosting overhaul
  • ImpThird-party (out-of-process / "protected host") plugins like iZotope Ozone & Neutron, NEOLD, PSP and others now load and behave correctly. The recent breakage was a set of too-short internal timeouts that killed heavy plugins mid-load.
  • FixHeavy plugins load reliably — the protected-host Prepare wait was only 1.2 s, far too short for plugins that load ML models / large state on startup (Ozone, Neutron); it gave up and showed a red Relaunch even though the plugin had loaded. Raised to 30 s, plus a 15 s load-time "warm-up" grace so the real-time watchdog no longer disables a healthy-but-heavy plugin while it spins up.
  • ImpPlugin settings persist across restarts — a sandboxed plugin's saved state was being applied before its process existed and was silently dropped, so Neutron/Ozone always came back at defaults. State is now buffered and applied the moment the plugin is ready.
  • PerfFaster project open — a project's sandboxed plugins now launch in parallel instead of one-at-a-time, cutting multi-second load freezes.
  • ImpPlugin editors open reliably — the editor-create timeout (1.5 s) was too short for big plugin UIs; raised to 10 s so heavy editors finish building instead of falling back to "could not be embedded".
  • FixStale plugin identifiers recovered — a plugin saved with an incomplete identifier (seen with Ozone 12) now matches by name/sole-type instead of failing to instantiate.
  • ImpTransport forwarded to sandboxed plugins — tempo-synced effects (synced delays, LFO/step sync, arps) and "play a loud section" analysis assistants (Neutron/Ozone) now receive the host playhead and work correctly.
  • ImpKnown / next: loading a single very heavy plugin can still briefly pause the UI (fully-async load is in progress); some plugin editors still open as their own floating window; the start-screen logo asset is being re-bundled.

0.7.40

2026-06-08— Audit fixes (atomics, serialization, UAF, DSP, sandbox) + Ctrl+G/UI
  • FixCtrl+G grouping fixed (root cause). The selection was resolved by array index while the values were display-row indices — after the first grouping/reorder it grouped the wrong tracks (a stray bus between rows). Now resolved by lane identity; folder + members land exactly where selected.
  • ImpTrack numbers count 1,2,3… top-to-bottom in display order (skip hidden folder children), not array order.
  • ImpInspector long track names truncate with "…" instead of shrinking to an unreadable font; MIDI-capture moved into the Track header so CONSOLE lines up across track types.
  • PerfRealtime audio atomics — added explicit memory_order on playheadSample_, bpmAtomic_, playing, pendingChase_/pendingMidiPanic_, snapOutputGains (release/acq_rel) to match the codebase's release/acquire protocol.
  • ImpProject load/save hardening — reject NaN/Inf tempo/time-sig/marker beats, clamp time-sig to [1,32] (no divide-by-zero), surface save I/O failures in the log, and refuse to parse absurdly large (>512 MB) project files (OOM guard).
  • FixUse-after-free fixes — track context-menu now guards the parent TrackListView with a SafePointer; plugin preset Import file-chooser guards this.
  • FixPlugin sandbox — bounds-check the stale gesture-param index before use.
  • ImpReverb — clear all-pass + spring diffuser buffers on algorithm switch (no more click / tail bleed carrying over).
  • ImpFull audit report: docs/AUDIT-2026-06-08.md.

0.7.39

2026-06-08— Start Center recent list: bigger text, borderless, rounded cards
  • ImpReadable text. Project names, BPM/SIG/KEY, "last opened", path and note lines were all bumped up substantially (names → 21, meta → 14.5, etc.) — no more squinting at tiny labels.
  • ImpNo more boxes. Removed the violet outlined frame around every recent project.
  • NewNear-black rounded cards. Rows are now rounded cards (8px) on an almost-pure- black alternating fill (#000000 / #050505) with a small gap between them, lined up with the New Project / Open / Continue button column and trimmed on the right to clear the scrollbar gutter.
  • ImpPermanent status accent. Each row carries a status-coloured left bar (green = done, cyan = testing, violet = work-in-progress) that's always shown (brightens on hover) — no flicker as the mouse moves between rows.
  • ImpRoomier layout. More padding, a small gap under the title, and taller rows so the bigger text breathes.

0.7.38

2026-06-08— Compact-headers toggle no longer desyncs the ruler
  • ImpToggling compact track headers re-aligns instantly. The «/» toggle changes the track-header width, which shifts where the timeline grid starts. The lanes re-laid out correctly, but the bar-number ruler and the section/cycle bar are separate components with unchanged bounds, so JUCE never repainted them — they kept drawing the grid at the old header width, so the bars / cycle ruler disagreed with the clips until you played+paused or scrolled. The toggle now syncs the scroll offset and forces a ruler + section-bar repaint immediately, so everything lines up the moment you click.

0.7.37

2026-06-08— Start Center facelift + per-project notes
  • ImpRecent projects, redesigned. The Start Center project list was restyled with brand typography (Inter for names/labels, mono for the BPM/SIG/KEY meta line), a cleaner size hierarchy (bigger 16 px bold names), and the off-theme cyan meta text replaced with neutral/dim tones that fit the rest of the app.
  • ImpNo more overlap. The status pill ("Work in progress" etc.) used to collide with the X (remove) button on the right. The X now lives in its own top-right column and the pill is laid out to the left of it — they never touch.
  • ImpPer-project notes. Right-click a recent project ▸ Add note… / Edit note… to jot down whatever you want — what it is, how far you've gotten, anything to remember. The note shows on the project card in a warm italic accent, and rows with a note grow taller so the note gets its own line. Notes persist with the recent-projects list across restarts.

0.7.36

2026-06-08— Mixer/piano-roll polish + preset-list caching
  • ImpSTEREO OUT master strip lost its thick left border (the 3 px green separator + identity bar) — clean now.
  • ImpPiano roll STYLE buttons click correctly again. Raising the CHORD card for the big chord readout (0.9.18) shifted the left-panel layout 14 px but the click hit- test wasn't updated, so STYLE/PALETTE/TRANSFORM buttons mis-hit the row above. Re-aligned.
  • ImpPiano roll is brighter / more readable — white-key lanes now have a faint lift (were near-black), black-key lanes are a touch darker for contrast, and the beat/bar/snap grid lines are stronger.
  • ImpBrowser preset list is cached — it was disk-scanning on every search keystroke AND every repaint of a preset row (a regression from 0.9.25). Now it scans once on entering the PLUG tab, which removes that message-thread disk I/O (a contributor to UI/menu-hover jank). (Deeper context-menu hover smoothness is also affected by running UnrealEditor hammering the GPU/compositor — see backlog.)

0.7.35

2026-06-08— Preset system Phase 3: Browser presets + drag-to-insert
  • ImpPresets in the Browser. The PLUG tab now has a PRESETS section listing every preset you've saved (.apreset, any plugin), filtered by the search box (matches preset name or plugin name).
  • NewDrag a preset onto a channel insert to load it: the matching built-in plugin is instantiated and the saved state applied in one drop. (VST3/CLAP preset drop is a follow-up — for those, load from the plugin window's PRESET button for now.)
  • ImpBuilds on the universal .apreset store from 0.9.14, so presets saved from any plugin window's PRESET button show up here automatically.

0.7.34

2026-06-08— Browser preview: synced loops stay locked to the beat
  • FixTempo-synced loop previews no longer drift. When a loop preview restarted it jumped blindly to file position 0; with a tempo-corrected loop that accumulated a little phase error every cycle. The restart now re-phase-locks to the current host beat (using the loop length + source BPM + tempo ratio captured at load), so a synced loop preview stays locked to the project beat cycle after cycle.

0.7.33

2026-06-08— Console: unified indicator colors + consistent bus order
  • ImpOne indicator palette everywhere (mixer, inspector, console-panel legend): cyan = channel pre-FX console active, gold = summing active, dim = off. Was three different palettes (cyan/green/gold) for the same two states — the source of the "blue vs green ring" confusion.
  • ImpBus 3D-stage order now matches tracks: the bus console runs before the 3D stage (was stage→console only on buses), so a bus's 3D placement sits on the post-console signal just like on tracks. Applied to normal buses and the reverb/delay return buses. (Master keeps its dedicated safety-limiter order.)

0.7.32

2026-06-08— Console PROJECT OFF is now a real master switch
  • ImpPROJECT OFF now disables the console on EVERY channel — DSP, mixer LED, and inspector. Root cause was a line in the console panel that forced the project engine back ON on every panel refresh/slider move, so PROJECT OFF never stuck. Removed.
  • Imp3D Mix Stage now honours PROJECT OFF too (it previously kept processing pan/ width/depth regardless — processTrackStage/BusStage/MasterStage now gate on the project flag, like console & summing already did).
  • ImpMixer LED + inspector read the project flag as a hard override: when PROJECT is off, no channel shows active; per-channel enable flags are preserved as saved intent and restored when you turn PROJECT back on.

0.7.31

2026-06-08— Clip attack on play-start + duplicate snaps to grid
  • PerfClip attack/transient preserved when playback starts on the clip. The transport start ramp was a 10 ms anti-click fade that swallowed the attack of a clip beginning exactly at the playhead (e.g. a kick on beat 1). The START ramp is now ~1.5 ms (just enough to declick) while the STOP fade stays smooth. Starting before the clip already worked; now starting on it does too.
  • ImpDuplicate snaps to the grid. Duplicating a single clip now lands the copy on the next snap-grid line at/after the original's end (e.g. a short kick on a 1/4 grid duplicates to the next 1/4) instead of butting up right after it. Grid-length loops stay exactly contiguous; Alt-duplicate still places raw-after.

0.7.30

2026-06-08— Mixer console row: alignment, toggle, fonts
  • FixMIDI strips now line up with audio strips. The pre-FX console row's presence is now uniform across all track strips instead of depending on each channel's own console flag — MIDI tracks no longer fall back to the short "CONSOLE" placeholder that knocked everything out of alignment.
  • ImpProject console toggle is respected everywhere. The console row shows on all track strips only when the project-wide console is ON; when it's OFF, no channel shows it (master keeps its 3D-stage block; channels with a real EQ8 insert still show that).
  • ImpReadable labels: "SUM / CONSOLE" → "SUM CONSOLE" (it was clipped to "...CONSOL"), and the section label / model name (PRE-FX, ANTHEM, …) use a larger, crisp hinted font (they were tiny / pixelated).

0.7.29

2026-06-08— HOTFIX: Browser freeze (scan loop) + scan-button text
  • FixFixed an app freeze / spinning wheel introduced by the 0.9.16 background Browser scan. A "place" with no audio/MIDI files (e.g. the Presets folder) kept looking un-scanned on every rebuild, so it re-launched the background scan in a tight self-feeding loop — pegging the UI. A place is now marked scanned even when it finds zero files, so it scans once and stops. (Verified: idle CPU flat, app responsive.)
  • ImpReplaced the Unicode ellipsis in the scan button/status and preset menu with plain "..." (the "…" rendered as garbled "å¦" characters).

0.7.28

2026-06-08— Piano roll: chord readout + inspector glitch
  • FixFixed the broken "â" glyph in the note inspector's Pitch/Start/Length rows when nothing is selected (it was a mis-rendered em-dash placeholder) — those values are now simply blank when there's no selection.
  • ImpBig chord readout: the CHORD card now shows the detected chord in large, accent-coloured text so you can read which chord the selected notes form at a glance (was tiny text). Falls back to a quiet "No chord" when none.

0.7.27

2026-06-08— Browser preview volume + search-on-launch
  • ImpPreview volume slider moved to its own full-width row under the transport — it was a cramped 44 px sliver, now it's a wide, actually-usable slider.
  • FixSearch no longer persists across restarts. A stale per-tab filter on launch could hide the whole library; searches now start empty each launch but still persist per-tab while the app is open.

0.7.26

2026-06-08— Browser tabs never freeze on first open
  • FixFixed the 1–2 s freeze the first time you open a Browser tab (e.g. MIDI) on a large sample library. The first browse used to walk the whole folder tree (50k+ files) synchronously on the UI thread. It now scans on a background thread and shows a “Scanning library…” placeholder, so the tab click is instant and the list fills in a moment later. The “Rescan all folders” button is non-blocking the same way. (Categorisation still happens on the UI thread but it's an in-memory pass.)

0.7.25

2026-06-08— Browser: MIDI scrub + cleaner buttons/search
  • ImpScrub MIDI previews like audio: click or drag on the piano-roll preview to seek the .mid playback (sends all-notes-off + jumps, no stuck notes), matching the audio-clip preview scrub.
  • Fix"Rescan all folders" button no longer has the ugly gray/white outline — it's a clean rounded filled pill now (matches the Scan-for-plugins button).
  • ImpBrowser search box: removed the green focus border entirely and vertically centred the text (was stuck at the top).
  • Imp"FILES" tab is now "MIDI" — it used to show all non-audio files; it's now a real MIDI-only tab (.mid/.midi) with a MIDI icon. The ALL tab still shows everything.

0.7.24

2026-06-08— Presets for every plugin (foundation)
  • NewNew universal preset system that works for ALL plugin types — built-in Anthem, in-process VST3/CLAP, and sandboxed plugins — because it stores the plugin's full binary state, not just an APVTS tree. Files live in Documents/Anthem Studio/Presets/<plugin>/<name>.apreset (self-describing XML with metadata + state, ready for the upcoming Browser “Presets” tab).
  • NewPRESET button on every plugin window. The plugin-window chrome now has a PRESET button (next to Automate/Copy/Paste) with: Save as new preset, Overwrite, a Load list of your saved presets, Import / Export, Delete, and Reveal presets folder. This gives third-party VST3/CLAP and sandboxed plugins user presets for the first time.
  • Imp(Next: a Browser “Presets” tab with categories + drag-and-drop onto inserts.)

0.7.23

2026-06-08— Browser: plugin-scan + search polish
  • ImpPlugin scan UI: the PLUG tab now shows a slim accent progress bar that fills while scanning, the button reads “Scanning…” with live status (count + current plugin), and settles to “N plugins found” when done. Button relabelled “Scan for plugins” (covers VST3 + CLAP).
  • NewSearch box: added a magnifier glyph on the left and a clear (✕) button on the right that appears only when there's text (click to reset + refocus). Works on every Browser tab; placeholder is already contextual (“Search plugins…” on the PLUG tab).

0.7.22

2026-06-08— Snappy menus + correct key spelling
  • NewTop-bar menus open instantly. The File / Project menus did a modification-time stat() on every autosave backup while building the menu — with many autosaves that was up to ~1 s of disk I/O on click. They now sort the backup list by filename (the autosave name is already a sortable timestamp), so no per-file disk access happens when a menu opens. Added build-time logging so any future menu spike is named instead of silent.
  • FixKey / Scale picker reads like real music. Verified every scale in the picker is a genuine, correctly-defined scale (Major, Natural/Harmonic Minor, Dorian, Phrygian, Pentatonic Major/Minor — all correct intervals; nothing fake). Black- key roots now show both spellings (e.g. D#/Eb, A#/Bb) so unusual keys no longer look wrong. (Pitch class is unchanged — display only.)

0.7.21

2026-06-08— Instant Play (no more delay) + full Grid divisions
  • FixFixed the 1–2 second delay before sound after pressing Play. Root cause: the in-RAM sample cache held decoded / tempo-stretched loops with weak references, so every transport STOP freed them — and the next Play had to re-decode and re-run the offline time-stretch of every followed-tempo clip on the spot. Anthem now keeps a warm pool of the buffers the current session uses, so they survive stop→play and every Play after the first load is an instant warm cache hit. (Memory stays bounded to the live set and is released on close.)
  • FixThe warm pool also removes a subtle hazard where the last reference to a buffer could be released on the audio thread; it can no longer be the last reference.
  • PerfAdded play-start timing instrumentation: if a reader build ever spikes (cold cache, e.g. right after a tempo change) it's logged with the duration and buffer count instead of failing silently.
  • ImpThe Grid dropdown now offers 1/4 down to 1/64, each in straight, dotted (.) and triplet (T) form (15 values), grouped into Straight / Dotted / Triplet sections. The arrangement grid lines and snapping follow the selected division exactly, and the toolbar grid selector stays in sync.
  • ImpRemoved the gray outline boxes around the main menu titles (File … Help) and the arranger combo boxes (Arranger, genre, form, length, mode, energy) — flat text/fills now, no border clutter (hover/open still highlights). Other controls keep their borders; this is a per-component opt-out, not a global change.

0.7.20

2026-06-08— Stability hardening (bug & quality sweep)
  • FixAutomation undo/redo no longer races the audio thread reading the lane vector (now lock-guarded).
  • FixTrack-header and clip right-click menus no longer hold a stale pointer if the track/clip is deleted while the menu is open (SafePointer + clip re-resolved by id).
  • ImpBackground analysis threads (waveform / transient) re-resolve their event by id instead of holding a raw pointer that could dangle.
  • ImpExport-MIDI snapshots by value; "Save as Template" now respects Cancel.
  • ImpPDC send delay-lines are pre-allocated — no live allocation race when sends change.
  • ImpgetNextAudioBlock pre-sizes its input buffer in prepare (no realloc in the callback).
  • FixThe structural-edit fence no longer frees memory under a timed-out render worker (drain is now unbounded and verified deadlock-free).
  • ImpThe playhead position now reads sample-rate atomically.
  • ImpTouch mode for plugin parameters releases on idle (it behaved like Latch before).
  • FixOpening a plugin editor no longer blocks the message thread (was up to 1.5 s).
  • FixStale child-window handle is detached before adopting a new one (no ghost window).
  • FixThe plugin-host process can no longer be orphaned if it self-crashes (terminate watchdog).
  • PerfHardened MIDI byte clamping, shared-memory name-collision retry, a timeout floor for small buffers, and a parameter rebuild when a plugin's parameter count changes.
  • ImpSandbox prepare now honours channel-layout changes instead of skipping them.
  • ImpRemaining medium/low findings (non-critical) are tracked in docs/BACKLOG.md.

0.7.19

2026-06-08— Automation that actually works: record, read & write any parameter
  • ImpA full automation pass — recording, playback and editing now work end-to-end for track controls AND plugin parameters (including sandboxed third-party plugins).
  • ImpWrite/Touch/Latch now actually record. Moving a fader, pan, send or plugin knob while the transport plays writes automation points along the playhead — previously these modes were labels only and captured nothing.
  • NewWrite records continuously; Touch records only while you hold the control; Latch starts on first touch and holds until you stop.
  • FixFixed recording wiping its own trail (the overwrite span erased the previous point each sample, leaving only a few) and wiping the whole pass on a loop wrap.
  • FixOFF truly means off — a channel set to Off ignores existing automation and the control stays manual (it no longer "flew" to the curve value).
  • FixCrash-safe: editing/clearing automation (incl. "Clear All Automation") during playback can no longer race the audio thread — all lane edits are now lock-guarded and the audio thread reads with a non-blocking try-lock (no dropouts).
  • NewDrawn/recorded automation now moves the plugin's parameter on playback — for built-in AND sandboxed third-party plugins (a new lock-free DAW→subprocess parameter-write path), so the sound follows the curve.
  • ImpThe Automate button (plugin window) opens the touched parameter's lane on the correct track, ready to draw.
  • FixThe inspector's automation-mode badge is now live + clickable (it was a dead label) — click to reach Read, right-click for Off/Read/Write/Touch/Latch. The mixer mode button cycles correctly too.
  • ImpRestyled to the theme accent (no more out-of-place purple), removed the busy grid-tick stripes, and the active (selected) track's automation stands out (dimmed lane + accent frame + label pill) so it's clear what you're editing. Curve and points are clearly grabbable.
  • FixThird-party plugin host no longer shows a second taskbar button.
  • ImpProject save/load round-trips all automation (track + clip, target + every point) and plugin state — nothing you record or draw is lost on reload.

0.7.18

2026-06-08— Bulletproof plugins: crash-proof sandbox, true bypass & inline editors
  • FixA big reliability + workflow release centred on third-party plugins. Third-party VST3/CLAP plugins now run isolated in a protected host process and can no longer take the DAW down with them — and their editors are now embedded in Anthem with full chrome, like the built-ins.
  • ImpThird-party plugins run out-of-process by default (sandbox always-on). If a plugin crashes — at any time, even mid-playback — only its subprocess dies: the insert is auto-disabled (clean dry passthrough, no audio dropout), the DAW keeps running, and a non-blocking notice tells you which plugin/track it was.
  • FixOne-click Relaunch brings a crashed plugin back with its last settings (mixer slot + inspector). Disabled-after-crash state is remembered in the project.
  • FixIn-process plugins are now crash-guarded too — a fault inside a built-in or in-process plugin's audio processing is caught and the slot disabled instead of killing the app.
  • FixProject load can't be frozen by a plugin's license/activation pop-up — a watchdog auto-dismisses foreign modals during load, with a per-plugin time budget and crash isolation; stuck plugins are skipped and reported.
  • ImpEditors open in a single Anthem-owned window with our full chrome (Load Preset / Save / Save As / Automate / Copy / Paste / Bypass), driving the SAME instance that processes audio — turning a knob now affects the sound (previously a stray second instance meant edits did nothing). No more double windows.
  • ImpCrisp on HiDPI, stable size (no resize shimmer), and Spacebar = play/pause / Esc = close work even when the plugin window is focused.
  • ImpAutomate in the plugin window opens that parameter's automation lane on the plugin's track, ready to draw — for third-party plugins too.
  • FixFixed a no-audio bug where sandboxed plugins passed dry signal (the host now enables the correct stereo bus layout before prepare).
  • FixA BYPASS button on every plugin window with a click-free crossfade (no pop/stutter when toggling during playback). It's a real bypass — the plugin is skipped entirely — and the state is reflected everywhere the insert appears (plugin window, mixer insert LED, inspector).
  • ImpClosing the app now always prompts to save unsaved changes (Alt+F4 / taskbar close / window X all go through the save prompt, not just the title-bar button).
  • PerfPlugin browser lists all your VST3s on launch without needing to search first (the list now refreshes once the scan cache loads).
  • FixName dialogs (New Category, New Bus, Rename…) no longer overlap the icon with the text field, and use a fitting pencil icon instead of a generic "?".

0.7.17

2026-06-08— Glitch-free live editing, workspace memory & mixing polish
  • FixThe headline of this release: editing while the track is playing no longer causes audio dropouts. Plus the app now remembers your workspace, buses can be soloed, and a batch of mixer/top-bar refinements.
  • ImpStructural edits used to briefly pause or rebuild the audio graph (and re-save the whole project for undo), which cut the sound for a split second. That whole path was reworked so the audio keeps flowing no matter what you do live:
  • ImpDisplay order is now decoupled from audio render order. Reordering, inserting, or moving tracks only rearranges the view — the audio graph and routing are never touched, so there's nothing to pause.
  • ImpDropout-free when: creating a track (Ctrl+T), deleting tracks, dragging audio in from the Browser, saving (Ctrl+S) / autosave, grouping to a bus (Ctrl+G), right-click ▸ send-to-bus / group, picking a track colour, and changing the arranger/genre.
  • FixUndo for add/remove/reorder is now granular (per-action) instead of snapshotting the entire project, and the snapshot path no longer pauses I/O.
  • NewNew tracks are created directly under the selected track and auto-selected, so pressing Ctrl+T repeatedly stacks new tracks in place instead of dumping them all at the bottom.
  • ImpBus and group tracks can now be soloed — soloing a bus plays only that bus and everything routing into it (including through nested sub-buses); soloing a single track keeps its path open all the way to the master. Additive across multiple solos, and toggles with zero audio dropouts.
  • ImpProjects reopen exactly as you left them. Panel visibility (mixer / browser / inspector) and their sizes, which plugin editor windows were open and where, and the main window's size/position are all remembered. Old projects are unaffected.
  • ImpCollapsed folders show a "lego" overview of their child clips on the timeline instead of an empty lane.
  • ImpFolder nesting is capped so repeated Ctrl+G can't bury tracks dozens of groups deep.
  • NewNew transport display font — the bar/beat/tick and BPM/grid/sig/key readouts now use Chakra Petch (tabular figures) with clean, readable captions.
  • FixMixer channel names keep a fixed font size and truncate with "…" when long, instead of shrinking to an unreadable size.
  • FixPlugin/Spectrum-Analyzer windows no longer stutter when dragged during playback (window-position saving is debounced off the drag).
  • FixFixed empty squares on each row of the key/scale dropdown (and other popup menus) — the checkmark/submenu glyphs are now drawn as vectors.

0.7.16

2026-06-07— Plugins, scanning & waveforms: stability + workflow
  • ImpA big reliability pass on plugin scanning/hosting plus arrangement waveform sharpness and several workflow upgrades.
  • ImpThe scan now finishes on large libraries instead of stalling at a handful of plugins. A crashing/hanging plugin only had a 3-minute per-plugin idle budget and a low retry cap, so a single bad plugin (e.g. a Waves WaveShell) effectively stopped the whole scan. The idle budget is now 60 s and the isolate-and-continue retry cap is far higher — bad plugins are blacklisted and the scan keeps going (tested from "stuck at 2" to 900+ plugins).
  • FixLicense/activation pop-ups no longer freeze the scan. Some plugins show a modal "subscription expired / activate" dialog when instantiated. The headless scanner now auto-dismisses those dialogs, and any dialog it genuinely can't close is skipped within ~3 s (the plugin is blacklisted and the scan resumes) — no more sitting and clicking pop-ups, no more frozen scan.
  • FixThe app no longer stutters while scanning. The live plugin list was being re-parsed and rebuilt on the UI thread on every progress line; it's now throttled to refresh only when the plugin count actually changes.
  • ImpThe scanned list is written atomically, so the live count only grows instead of flickering.
  • FixFixed third-party VST3s that passed no audio / caused hiccups (e.g. plugins that expose an extra sidechain/aux input bus). They were handed the raw stereo track buffer, which is too small for their bus layout — undefined behaviour that produced silence and erratic CPU. They're now given a correctly-sized buffer (aux fed silence when nothing is wired), exactly like other DAWs.
  • FixFixed a crash when opening the OTT plugin's editor. Its window sized itself before its controls existed, dereferencing not-yet-created knobs.
  • FixPlugin editor windows are now owned by the main window — they stay above the app, hide when it's minimised, and no longer appear as separate taskbar windows you can leave floating when the DAW isn't up.
  • ImpSticky search box in the plugin (PLUG) tab — filter by name or manufacturer as you type; it stays pinned above the list.
  • ImpFavorite categories — create your own plugin categories with a custom name, colour and icon, file plugins into them (right-click ▸ Add to favorites), and load from collapsible category sections at the top of the list. Saved across restarts.
  • ImpThe Inspector's insert picker is now searchable, matching the Mixer (type to filter by name/manufacturer).
  • ImpWaveforms are sharp at every zoom, including deep vertical zoom. The cached waveform image is now keyed by the on-screen resolution, so zooming renders a fresh full-resolution image instead of upscaling a coarser one.
  • FixWaveforms no longer "change" as the playhead sweeps past. A partial repaint (e.g. the playhead overlay) computed a different cache key than the prefetch, so the clip under the playhead re-rendered. Both paths now use the same window.
  • ImpMarquee selection auto-scrolls. Drag a selection box past the edge of the view (any direction) and the arrangement scrolls to follow, so you can select clips/tracks that are off-screen.
  • FixFixed a layout glitch in the name-entry dialog (New Bus, etc.) where a stray box overlapped the text field and the text sat misaligned — fixed for every naming dialog.

0.7.15

2026-06-07— Arrangement UI: smooth at scale (big-session responsiveness)
  • ImpFocused pass on arrangement-view responsiveness with hundreds–thousands of tracks. All items below verified live by the user.
  • PerfPlayhead is now one continuous, instant line. It was drawn per-lane, so clicking to move it had latency and the line appeared in two pieces (top, then bottom). It's now a single transparent overlay over the whole lane stack — one line, repainted instantly on click, pixel-locked to the ruler.
  • FixCtrl+scroll zoom no longer drifts off the cursor. The anchor used integer truncation that biased the scroll the same direction every notch and accumulated; now round-to-nearest + the ruler reads back the clamped scroll, so the beat under the cursor stays put. Keyboard/button zoom anchors on the playhead; Ctrl+scroll anchors on the mouse.
  • FixWaveform shape is identical at every zoom level. Waveforms used to re-bin (re-rasterise) on every zoom notch, so the shape shimmered/changed. Each clip's waveform is now rendered once to a fixed-resolution image and scale-blitted — same source pixels at all zooms (Studio One/Ableton model).
  • FixZoom-out / many-lane zoom no longer rasterises waveforms for sliver-width clips — below a minimum on-screen width only the coloured clip box draws.
  • PerfVertical scrolling is smooth and waveforms stay visible. Waveform images are now generated on a background thread; the message thread only blits ready images, and the renderer prefetches ±2 screens around the viewport. No more per-lane rasterisation hitch on scroll, and no waveform "vanish".
  • ImpClips keep their colour while scrolling. The clip body was nearly transparent (colour came from the waveform), so a freshly-scrolled clip looked colourless until its waveform rendered. The body now carries its own colour.
  • ImpEliminated the dominant per-scroll/zoom cost on big sessions: the fake-pinned track header was repositioning (full child relayout) on all lanes every notch — now visible lanes only, and lane resize skips child relayout on width-only changes.
  • FixClicking a track's M / S / Record button no longer selects the track — it only toggles the button.
  • ImpIn minimized (compact) lanes, M / S / Record sit to the RIGHT of the track name (was left), matching the expanded layout.
  • Imp"Lego block" clips when minimized: at the smallest lane height clips draw as solid coloured blocks (no waveform), like classic Logic. Toggle in File ▸ Project Settings ▸ Arrangement view (default on).
  • FixDuplicating tracks now numbers them Name (1), (2), … instead of stacking (copy) (copy) …. Track names are also hard-capped at 128 chars. (The runaway cumulative names were causing tens-of-ms/block of string scanning in the audio render loop and a freeze when soloing on huge sessions.)
  • ImpDuplicate (Ctrl+D) keeps the copies selected and grouped. Duplicated tracks are now placed as one contiguous block right after the selection (not interleaved every-other-track), and the copies stay selected — so repeated Ctrl+D keeps duplicating the whole growing block.
  • ImpClip input-gain readout shows only while you drag it (grab the clip top and drag) instead of sitting on every selected clip permanently — and in a bigger, cleaner font.
  • ImpVertical zoom (Ctrl+Shift+scroll) keeps its centre — the view scales around the middle instead of jumping, so you don't lose your place.
  • FixDetect no longer looks pre-activated (the button was green at rest).
  • ImpOne clean waveform (a second, vertically-squashed overlay draw that read as two waveforms is gone).
  • ImpSlice/Split keeps fades per-clip. A clip-gain fade is now split correctly across the resulting clips (each keeps only its own portion, with boundary interpolation) instead of smearing across the whole region.
  • ImpFull transport in the editor: a clickable time ruler to set the playhead, a live playhead during playback, loop by dragging the ruler, and Ctrl+scroll zoom (anchored under the cursor) + scroll.
  • ImpMixer track names stay readable on black/very-dark track colours (auto white text by luminance).
  • ImpStereo/Mono toggle is a clean pill (lights up in mono) instead of bare text.
  • ImpSelected clips use a thin accent outline instead of a heavy 2px border.
  • FixFades no longer paint a "cloudy" white wash — just the fade curve line plus a subtle darkening of the attenuated region (Ableton-style).
  • ImpPer-lane meters match the mixer — tight L/R against a centre divider, same gradient (no more big gap between channels).
  • FixPlayhead no longer overlaps the horizontal scrollbar.
  • FixDeleting a large multi-selection of tracks is now fast (was a multi-minute "not responding" freeze on ~1000 tracks). Root cause wasn't the audio-graph pause — it was a full mixer+arrangement UI rebuild fired per deleted track, plus O(n²) array shifts / index remaps. New removeTracks() does it in one batch: single pause, one array compaction, one index remap for all sends/buses/readers, one UI rebuild. Verified on 1000+ tracks.
  • PerfResizing the mixer (dragging the divider) is smooth with many tracks. Each drag step was relaying out + repainting ALL channel strips (×up to 3 redundant send/insert resync passes). Now only the visible strips do heavy relayout during the drag (same viewport gate the meters use), the height-independent send/insert resync is skipped while dragging, and off-screen strips converge on scroll + a settle pass after release.

0.8.1

2026-06-06— Engine hardening (deep audit fixes)
  • ImpA deep audit of the engine, sandbox, scanner and time-stretch turned up real concurrency and robustness bugs. Every finding below was independently verified before fixing. No project-format changes.
  • FixFixed a use-after-free when adding / removing / moving tracks during playback. The audio thread iterated the track/channel arrays without actually holding the lock the editors took, so a structural edit could make the callback read a reallocating array or a just-freed track. Add/remove/move now briefly pause the audio graph at a confirmed block boundary before mutating, and free the removed track only after resuming — no more torn reads or dangling pointers. (CRITICAL)
  • FixFixed a data race on the tempo map. The audio thread read the tempo std::vector every block while the message thread could be reallocating it (adding/removing a tempo change), which is undefined behaviour. Reads now use a tiny try-lock with a cached fallback, so editing tempo during playback can never corrupt the read. (HIGH)
  • FixFixed an unbounded memory leak: deleted clips were parked in a per-track "retired events" list (so live readers never dangle) but never reclaimed, growing for the whole session across deletes / re-records / bounces. They are now freed when the transport is stopped. (MEDIUM)
  • ImpThe selected input/output audio device is remembered across restarts again (driver, sample rate, buffer size, channel selection). It was being reset to defaults on every launch; it now saves on change + on exit and restores on startup, falling back to defaults only if the saved device is gone.
  • FixA healthy plugin that hiccups once is no longer disabled for the session. The per-block deadline was capped at 5 ms and any single overrun (first-block init, a small-buffer spike) permanently killed the slot. We now tell a missed deadline apart from an actual crash (by checking whether the child process is still alive), tolerate transient overruns as dry passthrough, and only disable after many misses in a row or a real crash. (HIGH)
  • FixOrphaned PluginHost.exe processes no longer leak when the DAW crashes. Each sandboxed plugin's child process is now assigned to a Win32 Job Object that the OS reaps automatically if the DAW dies. (HIGH)
  • PerfHardened the IPC read path: the MIDI-out byte count coming from the child is clamped so a corrupt count can't read past its shared-memory region.
  • ImpHQ (pitch-preserving) stretch now resamples for sample-rate too. A clip whose file sample rate differed from the project/device rate (e.g. a 48 kHz loop in a 44.1 kHz session) played ~9% fast and sharp in HQ mode, because RubberBand only time-stretches — it doesn't resample. The SR ratio is now folded into the stretch on all paths (live + export). (HIGH)
  • NewHQ stretched clips keep their attack and stay in time. The start-up priming fed real audio and threw the output away, eating the clip's onset and shifting it out of time. It now primes with silence and trims the stretcher's start delay once, so the first real sample lands exactly on the beat. (HIGH)
  • ImpSteady-state feeding now follows RubberBand's documented loop, reducing rare partially-silent blocks at loop seams.
  • ImpEvery track now shows its category icon in the normal (full) arrangement view, not just when the row is minimised. Audio, drums, synth, vocals, MIDI, bus and folder tracks each get the same bordered glyph the compact header already used, so tracks are identifiable at a glance and line up with the folder rows. The track number sits to the left of the icon (same order as the compact header), so you see both the index and the icon.
  • FixSandbox IPC stale-block fix (critical): a tolerated transient plugin overrun could leave the host consuming the previous block's audio for the rest of the session (a comb-filter glitch). The host now stamps and verifies a request/response sequence and drains any late reply, so audio always resyncs; a transiently-slow plugin is disabled only after repeated misses or a cumulative stall budget.
  • FixArrangement zoom is dramatically faster. Zooming no longer re-lays-out every track per wheel notch (offscreen lanes resize lazily when revealed) and no longer does a full-window repaint; the pinned track header (incl. SVG category icons) is skipped on the 60 Hz playhead-band repaints — fixing the playhead lag at high zoom. Scales flat from 30 to hundreds of tracks.
  • PerfBus routing cache: the per-block O(buses³) bus topological sort and the reverb/delay bus name scans are now recomputed only when the routing topology actually changes (detected by a cheap per-block hash that also catches send automation), instead of every block.
  • ImpPer-track sidechain buffer copy is skipped when no track uses a sidechain.
  • FixTrack-header volume slider nudged down so it no longer crowds the new category-icon row.
  • PerfMulti-core groundwork: structural track edits (add/remove/move) now wait for any in-flight render to finish before mutating the graph — the safety prerequisite for the upcoming parallel renderer. (The parallel renderer itself lands next, behind a default-off switch until verified bit-identical.)
  • ImpButtery playhead on high-refresh displays. The playhead position is extrapolated against the wall clock between audio-block updates, and the arrangement animation is now driven by the display's vblank (VBlankAttachment, synced to the actual monitor refresh — e.g. 240 Hz) instead of a message Timer, which on Windows effectively capped near ~64 Hz and made the playhead step. The ruler and the lane playhead are driven from a single source each frame so they stay pixel-locked (no split line). Display-only; transport/recording use the exact sample position.
  • PerfNOTE: multi-core audio rendering (use all CPU cores for 200-500+ tracks) and the track icon picker are the next items in this pass.
  • NewClick a track / group / bus header icon to choose its icon. A pop-up grid shows every available icon (searchable) plus an Auto option that reverts to the type-derived icon. Select multiple tracks first and the chosen icon applies to all of them at once. The choice is saved with the project (old projects load unchanged) and is one undo step. Right-click still opens the track context menu.
  • ImpThe pan / balance control in the mixer and inspector now uses the same flat fill-box design as the send rows: a rounded box that fills from the centre toward the side you drag (cyan left / purple right) with PAN and the value shown inside. Double-click to recentre; Enter/F2 to type a value.
  • FixAdded the correct per-user VST3 location. The scanner looked in AppData\Roaming\VST3, but the VST3 spec's per-user path on Windows is %LOCALAPPDATA%\Programs\Common\VST3 — so plugins installed "for this user only" were never found. We now scan the correct location (and union in JUCE's default VST3 locations + the VST3_PATH env var). Removed two dead VST2 .dll folders from the VST3 path that only implied false coverage. (HIGH)
  • FixThe plugin blacklist can now be cleared. A plugin that ever timed out or crashed the scanner was recorded in a "dead-man's-pedal" file and then permanently skipped, with no in-app way to recover it. Full Rescan and Clear Cache now wipe that file so previously-failed plugins are re-probed. (HIGH)

0.8.0

2026-06-06— Black theme, console redesign & folder groups
  • ImpA big interface pass driven entirely by your feedback. Everything below is visual / UX — no project-format changes, old sessions load untouched.
  • NewBrand-new Black theme — true #000000 backgrounds end to end (app, panels, rows, inputs, timeline), white / grey text, and a single neon-green accent used sparingly. Set as the default theme and persisted across restarts.
  • ImpSwept every remaining hardcoded colour out of the codebase — mixer background, top-bar fade, dialogs, plugin host, piano roll, arrangement, stage / console panels — so nothing is left grey or blue. Pure black for life.
  • ImpBigger, sharper UI text across the board — console cards, inspector and menus now use a hinted Segoe UI / Consolas fallback at small sizes so text is crisp instead of blurry/pixelated. A more world-class look.
  • ImpMaster / Stereo Out channel is now black like everything else (was green) and the bogus pan-looking control on it has been removed entirely (it was a leftover correlation meter).
  • FixConsole cards (PRE-FX / ANTHEM / DRIVE / GLUE) redesigned: full-width horizontal fill-sliders with the label and live value inside, dragged sideways like a send. Clicking a value no longer opens the big console panel by mistake; PRE-FX caption is larger, the model name smaller. Green border + green left accent bar removed.
  • ImpInspector values now update live while you drag the console fill-sliders (INPUT trim unified to ±12 dB to match the inspector).
  • ImpRemoved the ugly green selection line when a track is selected — replaced with a subtle white hairline.
  • PerfFader dB readout shows a clean 0.0 with the dBFS unit stripped from the meter scale (no more clutter).
  • PerfMeter scale numbers now line up exactly with the fader position, support +6 dB, and thin out adaptively so they never overlap when the mixer is made small.
  • ImpThe dB edit box closes when you click anywhere outside it.
  • NewDouble-click an automation lane to add (or remove) a point — no need to pick the Pencil tool first.
  • ImpThe A key brings up automation lanes again, and the automation view state is saved with the project.
  • ImpFolder tracks get a proper folder icon that collapses / expands their children. In minimised (compact) headers there is now a single bordered folder icon (the duplicate border-less glyph is gone).
  • ImpWhen a folder is expanded, its children now show a coloured group rail down the left edge in the folder's colour — a faint header wash plus a bracket that opens at the folder header and closes under the last child — so it's obvious at a glance which tracks belong to the group.
  • ImpThe whole folder header is clickable to collapse / expand (except the far-left colour strip, which still opens the colour picker).
  • ImpChanging a folder's colour can propagate to all child tracks, toggleable in Preferences → Appearance.
  • ImpOne shared button class now drives M (mute), S (solo) and the record dot everywhere — mixer, arrangement headers, inspector and sends — so they're pixel-identical. Record is a ring that fills solid red when armed; mute/solo are the familiar bold letters everyone expects.
  • ImpDoubled the height of the waveform preview and removed the redundant selected-file text at the bottom.
  • ImpRescan all folders button is now a sharp rectangle (no rounded corners).
  • FixFixed preview only playing on some .wav files — tempo-sync resampling no longer runs away on mis-detected BPMs (ratio clamped), so every file previews.
  • FixAbout dialog auto-sizes so its text no longer spills outside the box.

0.7.14

2026-06-06— Stability hardening (deep stability audit, 13 fixes)
  • FixFixed a use-after-free editing audio clips during playback. A reader's event could be freed by the message thread while the audio thread read it. Disposal now nulls the fields before publishing an atomic pendingDisposal flag that every reader acquires once — no torn read, no audio-thread blocking.
  • FixFixed a null-deref on device/sample-rate change (prepareToPlay no longer dereferences a track that the message thread removed mid-loop).
  • FixFixed a divide-by-zero in beat↔sample conversion (BPM floored to ≥1) so a corrupt tempo can't poison the timeline with NaN/Inf.
  • FixFixed an audio-corruption overflow in latency compensation: a plugin reporting an absurd latency could wrap the delay buffer index → garbage/clicks. Latency is now clamped to the buffer capacity.
  • FixDeserialization now caps/validates untrusted sizes and indices (mixer-snapshot channels, warp markers, MPE note indices, event start/length, automation indices, send/output bus indices). A crafted or truncated project can no longer exhaust memory or dangle an index on load. On-disk format unchanged.
  • FixSample cache no longer leaks dead entries across long sessions (periodic prune of expired buffers in both the decode and pre-stretch caches).
  • ImpPlugin-host sandbox: a failed Job-Object assignment is now logged (orphan subprocesses are diagnosable) instead of silently dropping the auto-reap net.
  • FixImplemented a previously-declared-but-undefined safe-plugin-call overload (would have broken the build the moment it was used).
  • NewAdded denormal guards to the SmartMix analysis paths; the plugin-exception handler now uses a try-lock so a misbehaving plugin can't invert audio-thread priority.

0.7.13

2026-06-06— Parallel buses + more cores + UI polish
  • PerfBus/folder processing now runs across CPU cores too (Stage B). Bus DSP (console, 3D stage, insert chains) renders on the worker pool in topological levels; routing, summation and latency compensation stay serial so output is bit-identical to the single-threaded path and fully latency-compensated (PDC delay applied once per bus at the master hand-off, sample-accurate). This is what lets sessions with heavy plugins ON BUSES scale, not just per-track plugins. Falls back to serial automatically when sidechain is active or for cyclic bus routings.
  • ImpRender worker pool raised from 12 → 24 lanes on high-core machines (the audio thread participates too), cost-gated so light sessions never wake it.
  • PerfCanonical level-major bus ordering so live-parallel, live-serial and offline export all sum in one identical order (bit-exact, verified by audit).
  • FixTrack numbers fixed in the tall/zoomed-in arrangement view — they no longer show stale/duplicated values; the header re-renders on any track-height change (a whole-band invalidation that defeats the opaque-blit artifact).
  • ImpTrack numbers now shown in the mixer on each channel strip.
  • FixZoom-in no longer lags — horizontal zoom-in is now as smooth as zoom-out (clip rectangles are clamped to the visible region before rasterizing, so a clip zoomed to hundreds of thousands of pixels wide no longer builds a giant off-screen edge table every frame).

0.7.12

2026-06-06— Playhead stutter fix (looping, hundreds of tracks)
  • FixFixed a periodic playhead stutter during looped playback of large sessions. Every loop pass (and every 2 beats) the engine was redundantly rebuilding ALL active readers on the message thread — constructing hundreds of readers only to immediately discard them as duplicates of the still-alive ones — a burst that hitched the message thread (which draws the playhead) once per loop. The periodic reader-lookahead service is now O(1) in steady looping via a generation-keyed coverage cache; the full rebuild runs only when the project, loop region, or playhead window actually changes. No change to audio output, loop sample-accuracy, or latency compensation.

0.7.11

2026-06-06— Large-session performance overhaul (200–500+ tracks)
  • FixDriven by a real 188–400-track sample-loop session that stuttered, dropped out, and showed silent/inconsistent meters. Every fix below was confirmed with in-engine per-block diagnostics (callback wall-time, lock-waits, tracks rendered), not guesswork. Result on the 376-track test: from constant underruns to ~2–3 ms of a 10 ms block budget with full audio and all tracks metering.
  • FixFixed NO AUDIO on projects over 256 tracks. The bus routing order used a hard 256-track array; above it the builder bailed to an empty order, so NO buses were processed and bus-routed audio (folders/sends) never reached the master — silent stereo out. Raised to 2048 (kept allocation-free for the realtime thread). (CRITICAL)
  • PerfRemoved an audio-thread stall (100% "CPU" meter at ~10% real CPU). On loop wrap the audio callback took a BLOCKING lock that the message thread held while scheduling readers — the callback waited whole blocks (dropouts, "random" meters). The wrap reposition is now non-blocking (deferred one block, sample- accurate). The audio thread now only ever tries the lock, never waits on it.
  • ImpDisk reads taken off the audio thread. Short sample loops now decode once into a shared, ref-counted RAM buffer; N duplicate tracks of the same file share ONE buffer. No per-block disk streaming in the callback.
  • FixPre-stretch to RAM for tempo-matched loops. A loop at a fixed tempo ratio (e.g. 140→128 BPM) is time-stretched ONCE offline into a shared buffer instead of running a live RubberBand stretch every block on every track. On the test session this cut the per-block render from ~68 ms to near-zero before multi-core even kicked in.
  • FixFixed loop-pass dropouts. In-loop readers are now kept alive and repositioned across loop wraps instead of being disposed and rebuilt every pass (which made the last tracks drop out and slowly re-appear).
  • FixBatched structural edits. Duplicating/adding many tracks pauses the audio graph ONCE for the whole batch instead of once per track (which previously froze output for seconds and made meters appear progressively).
  • PerfMulti-core now spreads ALL track types (audio + instrument) and uses up to 24 worker lanes (was 12), cost-gated so light sessions stay single-threaded.
  • ImpCached SVG icons — track/mixer icons are parsed once and reused instead of re-parsing the SVG on every repaint (hundreds of parses per click at 400 tracks).
  • ImpScoped repaints — selecting a track repaints only the lanes whose selection changed, not all 400.
  • ImpGated the mixer meter timer to visible strips only.
  • PerfSmooth playhead — the playhead/ruler repaint is band-limited and a per-frame all-lane header repaint storm was removed.
  • PerfSmooth zoom — vertical zoom (Ctrl+Shift+wheel) only re-lays-out visible lanes per notch and coalesces rapid notches, instead of an O(n²) relayout of all tracks on every notch.
  • FixFixed stale track numbers in the tall/zoomed-in arrangement view.

0.7.10

2026-06-06— Multi-core rendering (ALWAYS ON)
  • PerfThe audio engine now renders tracks across all your CPU cores instead of one. On big sessions this is the difference between a single core pegged at 100% (the rest idle) and the load spread across the whole CPU — so 200–500+ tracks with plugins on everything play back without the engine running out of headroom on one thread.
  • PerfParallel track rendering, on by default. A persistent pool of render workers (sized to your core count) renders track slots in parallel via a lock-free work-stealing dispatch; the audio thread joins in and steals work too, then a fork-join barrier sums everything for the master stage. No setting to toggle — it is always on.
  • PerfBoth instrument AND audio/sample tracks are parallelized. Synth/instrument FX chains and audio-clip (sample/loop) FX chains both run across the worker pool. For sample-based sessions the source decode + time-stretch stays serial (it must advance the read position exactly once, deterministically), while the per-track FX/console/stage — the heavy part when you have plugins on tracks — runs in parallel. Tracks with a sandboxed plugin, an active ARA/Melodyne edit, or live input monitoring fall back to the serial path for that block.
  • PerfBit-identical to the old serial path. Verified: VCA gains, mute/solo, pan/width/mono, gain ramps and send routing all produce the exact same samples as before — multi-core changes when tracks are rendered, never what comes out.
  • ImpSidechain-safe. Blocks that need a cross-track sidechain capture fall back to the deterministic serial path automatically, so sidechain compression stays sample-accurate.
  • NewNo worker can still be running when a block finishes summing or when the next block starts — stragglers are fenced off (generation-gated) and drained first, so two threads can never write the same track buffer or re-enter the same plugin.
  • FixThe per-block dispatch takes no lock on the audio thread and never allocates there — the job functor is fixed once at startup; publishing a batch is pure atomics + a wakeup.
  • ImpStructural edits (add/remove/move track, instrument hot-swap) drain the workers before touching the graph, so a worker can never read a track that's being freed or a chain that's being rebuilt.

0.7.9

2026-05-28— OTT 4-band rewrite (last design-system gap closed)
  • ImpUser: "OTT — fortfarande BLOCKED ... ja du får ju göra klart det med :)". Done. OTT goes from 3-band to 4-band per plugin-specs/ott.md.
  • ImpDSP rewrite (Source/DSP/OTT.{h,cpp}):
  • ImpFour bands: LOW · LOW MID · HIGH MID · HIGH (was L · M · H).
  • ImpThree LR-24 crossovers: xoLowLowMid (50..500 Hz, def 100), xoLowMidHighMid (200..2 k Hz, def 500), xoHighMidHigh (500..10 k Hz, def 2 k). Defaults match the reference PNG band split. Crossovers are clamped monotonic so band order is always L < LM < HM < H.
  • ImpPer-band controls per spec: upRatio_<B> 1..10:1, dnRatio_<B> 1..10:1, depth_<B> 0..100%, bandGain_<B> ±24 dB. Defaults seeded from the spec table (LOW 2.4:1/6.2:1, LOW MID 1.9:1/4.8:1, HIGH MID 2.4:1/6.5:1, HIGH 2.1:1/5.2:1).
  • ImpMode parameter: UPWARD / DOWNWARD / UP / DN (default BOTH). Mode gates the upward and downward branches inside computeBandGain, so picking UP-only zeroes the downward direction live.
  • NewLegacy state migration in setStateInformation: any project file saved before today carries the old 3-band IDs (bandGain_L/M/H, upDepth_L/M/H, dnDepth_L/M/H, xoLowMid, xoMidHigh). The loader detects them and rewrites the XML into the 4-band layout before apvts.replaceState (LOW→LOW, M→LM+HM, HIGH→HIGH; new middle crossover = √(xoLowMid × xoMidHigh); old 0..1 depth × default 4:1 ratio). Old projects keep loading; no warning, no data loss.
  • ImpEditor rewrite (Source/UI/Plugins/OTTEditor.{h,cpp}):
  • ImpSame anthem_ui chrome as the rest of the family. 720 × 440.
  • ImpFour band columns down the centre — each with LOW / LOW MID / HIGH MID / HIGH label, two vertical GR meters (teal = UP, amber = DN, +24 dB top), and four small knobs (upRatio, dnRatio, depth, gain).
  • ImpTop row: three crossover knobs + global depth, time, in, out, mix.
  • ImpFooter: UP / DN / BOTH mode pills (radio-grouped, synced from APVTS each timer tick so preset recall reflects in the UI) + IN bypass pill.
  • ImpThis closes the last design-system gap. 27 of 27 plugins now ship the design-system look. Nothing in the family is BLOCKED any more.

0.7.8

2026-05-28— Finishing the design-system sweep
  • ImpFollow-on to 0.7.7. The last four bespoke-layout editors are now full rewrites against the design-system spec — same anthem_ui chrome, same anthem::AnthemKnob with per-parameter value formatters, same AnthemPluginLookAndFeel pills:
  • ImpMaster Mojo — 12 knobs in two rows of 6 (mojo, bass, punch, air, clarity, width / depth, loud, safety, in, out, mix) + mode combo + bypass. 580 × 360.
  • ImpAnthem Delay — 15 knobs in three rows of 5 (time / R-offset / feedback / cross / echo · lowCut / hiCut / modRate / modDepth / drive · width / duck / duckRel / mix / output) + mode / sync / syncR combos + link / ping-pong / bypass pills. 620 × 480.
  • ImpAnthem Reverb — 16 knobs in four rows of 4 (predelay / decay / size / damping · lowCut / hiCut / modRate / modDepth · width / early / late / shimmer · duck / duckRel / mix / output) + algorithm combo + bypass. 560 × 600.
  • PerfVocal Tune — 4 combos (key, scale, input, mode) + 8 knobs in two rows of 4 (retune, strength, humanize, flex / vibrato, formant, mix, output) + formant-preserve pill + bypass. 560 × 400.
  • ImpSweep complete: 26 of 27 plugins are now on-spec. Only OTT is still BLOCKED (waiting on the 3-band → 4-band DSP rewrite). The remaining APVTS IDs are preserved across all four rewrites, so no engine changes and no project-file migration.

0.7.7

2026-05-28— Mass design-system retrofit across the FX family
  • NewUser feedback: "compressorn e fantastiskt snygg jättebra, kan vi köra samma design me färg o knobs o meters osv på alla plugins som har det". This release brings the Compressor look — track arc + accent arc with drop-glow + dark cap + indicator pip — to 17 more plugins in the built-in FX family.
  • ImpPer-editor rewrites this release (each uses anthem_ui chrome, design- system colour tokens, anthem::AnthemKnob with per-parameter value formatters, AnthemPluginLookAndFeel pills):
  • ImpDelay — timeL/R, feedback, mix, HP/LP cutoffs, ping-pong toggle
  • ImpLFO — rate / depth / offset + waveform / target / sync combos
  • ImpSidechain Duck — amount / attack / release / curve / mix
  • ImpTransient Designer — attack / sustain / output / mix + clip
  • ImpStereo Tool — width / balance / output + HF-only + mono-bass
  • PerfVolume Shaper — rate / depth / phase / smooth / swing / mix / output + invert toggle
  • ImpReverb — decay / size / mix / width / preDelay / diffusion / modulation / damping + algorithm preset bar (HALL / ROOM / PLATE / CHAMBER / AMBIENT)
  • ImpGodizer — 48-segment amber/orange hero ring + Style::Hero amount knob + input / color / air / mix / output / ceiling row
  • ImpCentralized PaintedKnob rewrite (applies to 8 more plugins in one shot — same family palette, same track-arc / cap / pip style):
  • ImpFET Comp, Bus 2500, Bass Mojo (ProDynamicsEditors.cpp)
  • ImpDe-Esser Pro, Vocal Leveler, Opto Leveler
  • Imp1073 Pre/EQ, SSL-E Channel (ProChannelStripEditors.cpp)
  • ImpThe older PaintedKnob look (metallic body + accent ring + white indicator line) is gone; all of these now read as the same instrument family as the Compressor / LUFS / Saturator / Limiter / Clipper trio shipped in 0.7.5.
  • ImpTotal after this release: 22 of 27 plugins are now visually on the design-system spec. The remaining 5 (Vocal Tune, MasterMojo, alternate Anthem Delay / Anthem Reverb editors, Synth) inherit the design-system knob style via the central AnthemPluginLookAndFeel — only their bespoke layouts haven't been rewritten yet. OTT is still BLOCKED behind the 3-band → 4-band DSP work.
  • ImpAPVTS IDs preserved → no audio-engine changes, no project-file migration.

0.7.6

2026-05-28— Px-precision audit of retrofitted editors
  • FixUser feedback: "verkar inte riktigt vara pixel perfect testa igen". Code- level audit of the five retrofitted editors (Compressor, LUFS Meter, Saturator, Limiter, Clipper) against DESIGN-SYSTEM.md §§ 3, 4.5, 4.10 identified three measurable deviations from spec. All fixed.
  • ImpMeters: width is now exactly 14 px per § 4.5 (was 18 px in Compressor + Limiter, which made the meters look chunky vs the reference PNG). The shared anthem::AnthemMeter already used 14 px; this aligns the editor's allocated column too.
  • FixKnob row: height is now a fixed 88 px matching AnthemKnob's natural primary size (44 px disc + 12 px label + 14 px value, per AnthemKnob.cpp's setSize). Previously Compressor split the centre region in half — meaning the knob row stretched / shrank with the panel rather than locking to design-system size.
  • NewToggle pills (IN / ON / HQ etc): now use the active-pill style documented in § 4.10 — transparent body + 1.4 px solid teal border + inner-rectangle glow, radius 3 px (was a teal-tinted filled rounded rectangle with 5 px radius). Text on active pills is the accent colour, not textHi. Applied centrally in AnthemPluginLookAndFeel::drawButtonBackground / drawButtonText so every editor that uses the shared LookAndFeel inherits the new pill style.

0.7.5

2026-05-27— Knob pip angle fix + 4 more design-system editor retrofits
  • Fixanthem_ui: AnthemKnob's indicator pip was using the wrong angle convention. JUCE's Path::addCentredArc uses 0 = up, clockwise- positive, while std::cos/sin use 0 = right. The pip is now re-derived as pi (-0.75 + norm 1.5) - pi/2 before being fed to cos/sin, so a knob at 0 % points at 7 o'clock and 100 % at 5 o'clock with the indicator always outward.
  • ImpEditors retrofitted to the design-system spec layout this release: LUFS Meter, Saturator, Limiter, Clipper. Each is a fresh rewrite of its .h/.cpp to match plugins_design/references/.png + the matching plugin-specs/.md — anthem_ui chrome, design-system colour tokens, per-knob value formatters, footer pills. APVTS IDs preserved so audio behaviour is unchanged.
  • ImpThe previous CompressorEditor retrofit + the centralised AnthemPluginLookAndFeel::drawRotarySlider rewrite (0.7.0) mean every existing editor in the project already inherits the design- system knob style. The remaining 22 editors hold their pre-existing layouts; per-spec layout retrofit is queued per plugins_design/PROGRESS.md.

0.7.4

2026-05-27— Heartbeat-based scan progress + live plugin list
  • FixThe 0.7.3 stdout-flush fix wasn't enough on this user's setup — empirically the scanner subprocess writes to its plugins_scanned.xml just fine but juce::ChildProcess::readProcessOutput on Windows still blocked the host from seeing the stream in real time, so the host's plugins.xml stayed at 59 bytes (empty <KNOWNPLUGINS/>) even after ~10 KB of incremental scanner output. The new fix is independent of stdout entirely.
  • PerfAudioEngine: a 1-Hz heartbeat thread on the scan worker now polls plugins_scanned.xml directly and (a) copies it atomically to the permanent plugins.xml, (b) hops to the message thread to recreate the in-memory knownPlugins list, and (c) fires the user's progress callback with the current count ("47 plugins so far…"). This makes the browser panel's plugin list grow live as the scanner finishes each plugin, even when the scanner subprocess is hung on a single slow VST3.
  • ImpAudioEngine: heartbeat is cleanly joined at the end of the scan worker, so the captured locals never outlive their thread.

0.7.3

2026-05-27— Pre-announce scanner progress
  • FixThe 0.7.2 progress wiring emitted a line AFTER each plugin finished — but a single problematic plugin can take 30 s+ to validate (iLok checks, network reach, etc.) and during that window the UI label appeared frozen at "Starting scan...". Fixed.
  • ImpScanner: now pre-announces every plugin via juce::PluginDirectoryScanner::getNextPluginFileThatWillBeScanned() immediately BEFORE the scan call, then re-emits with the post-scan index. The label updates the instant the scanner picks the next file off its queue, so the user sees which plugin is the slow one.
  • ImpScanner: explicit std::cout.flush() after every PROGRESS line so pipe buffering can't hold updates for several seconds.
  • ImpHost: estimates total from idx / (pct/100) and surfaces it inline. Status now reads e.g. 42% · 87 / 1670 · KontaktPlayer instead of just 42% · 87 done.

0.7.2

2026-05-27— Plugin-scan progress, mid-scan persistence, MasterMojo ghost meters
  • FixFour user-reported regressions, all fixed.
  • FixPlugin scan: progress is no longer a static "Scanning..." string. The scanner emits PROGRESS|<fmt>|<pct>|<idx>|<path> per file using juce::PluginDirectoryScanner::getProgress() to compute the percent. The Browser panel now shows e.g. 42% · 87 done · KontaktPlayer.
  • ImpPlugin scan: results survive force-quit / OS kill. The scanner already writes its incremental plugins_scanned.xml after every file (0.6.1); the host now copies that file to the permanent plugins.xml on EVERY progress event, atomically via a TemporaryFile rename. Next launch picks up exactly where the previous scan stopped — no re-scan from zero. Use the Scan button only to re-discover newly installed plugins.
  • FixMasterMojo: input/output/correlation meters no longer paint phantom activity at startup or when audio is silent. The bypass branch clears all the cross-modal meters (correlation, low/mud/harsh control); the active path silence-gates the EMA at ≈ -120 dBFS so a quiet block snaps to zero instead of decaying slowly; correlation no longer paints +1.0 (full bar) when both channels are essentially silent — it returns 0 (centre of the meter); the editor's cached corr initial value is 0 instead of 1.
  • FixStability: the protective scan-persistence path also means a host hang or VST3 plugin crash mid-scan can no longer wipe the user's plugin list. If a scan crash IS observed, look in %APPDATA%\Anthem_Studio\plugin_scan_dead_mans_pedal.txt — the failing plugin's path is recorded and skipped on retry.

0.7.1

2026-05-27— Stem separation goes live (Demucs ONNX, end-to-end)
  • ImpThe scaffolding from 0.7.0 is now a working feature.
  • ImpBuild: ONNX Runtime 1.20.1 is fetched via FetchContent (Windows x64 prebuilt zip from Microsoft's official release). onnxruntime.dll + onnxruntime_providers_shared.dll are copied next to Anthem Studio.exe by a post-build step so no PATH setup is required.
  • ImpBuild: ANTHEM_ENABLE_STEM_SEPARATION defaults to ON now. Override with -DANTHEM_ENABLE_STEM_SEPARATION=OFF for offline / air-gapped builds.
  • ImpEngine: anthem::stems::separate() is fully implemented in Source/Engine/StemSeparator.cpp — read input audio, resample to 44.1 kHz, sliding-window 7.8 s chunks with 25 % overlap, raised-cosine cross-fade overlap-add, dynamic IO-node-name probing (so multiple Demucs ONNX exports plug in unchanged), resample back to source SR, write vocals.wav / drums.wav / bass.wav / other.wav to Music/Anthem Studio/Stems/<input-name>/.
  • NewEngine: first-use auto-download. When no model is present, the engine fetches a 4-stem Demucs ONNX export to %APPDATA%/Anthem Studio/models/ htdemucs.onnx and proceeds. The download reserves the first 25 % of the progress bar; inference takes the remaining 75 %.
  • FixUI: the "Audio FX → Separate stems (Demucs)..." menu item on an audio clip is no longer greyed out; clicking it dispatches the job to a background thread, returns a status dialog when finished, and points the user at the output folder.

0.7.0

2026-05-27— Folders, tempomap UI, design-system knobs, stem-separation scaffold
  • ImpFour focused waves of "make-it-feel-like-a-pro-DAW" work landed in one release: folder tracks finally have their visual hierarchy, the timeline ruler exposes tempo / time-signature / marker editing inline, every existing plugin's knobs got rewritten to the design-system spec, and the stem-separation feature has its full architecture in place behind a CMake flag.
  • NewTracks: folder hierarchy now renders. TrackListView::resized() hides any track whose ancestor folder is collapsed, the folder chevron (▾ / ▸) sits left of the type icon on folder rows, and clicking the chevron toggles Track::folderCollapsed. The existing "Create Folder Group from Selected Tracks" menu action now also sets isFolder=true on the new bus and reparents members via parentTrackId, so a single click makes a real, foldable group. Audio mute/solo propagation (shipped in 0.2.0) already followed the same hierarchy, so the folder is end-to-end live.
  • ImpTimeline ruler: tempo + time-signature + marker events render as chips on the ruler band. Tempo chips are teal "120 BPM" pills with a left-tail triangle for linear-curve segments; time-sig chips are small dark "5/8" pills below the bar numbers; markers are vertical pennants with the marker name to their right. Right-click the ruler at any beat to add or remove tempo / time-sig / marker events through a single popup (the menu offers Remove for the nearest event within ±0.5 beats of the click).
  • NewPlugin chrome: AnthemPluginLookAndFeel::drawRotarySlider was rewritten to the design system spec from plugins_design/DESIGN-SYSTEM.md § 4.3 — track arc 2 px in #1A2128, active arc 2 px in the slider's accent colour with a teal-glow drop, cap r ≈ 0.62 × half-size filled #0A0E13 with a 0.8 px #222A33 stroke, indicator pip 1.6 px in accent. Every existing plugin editor that uses AnthemPluginLookAndFeel (all 27 of them) picks up the new knob style without per-editor rewrite.
  • NewStem separation: new anthem::stems::SeparationEngine (Source/Engine/StemSeparator.{h,cpp}) defines a clean Demucs-class 4-stem interface. CMake option ANTHEM_ENABLE_STEM_SEPARATION plus ONNXRUNTIME_DIR and DEMUCS_MODEL_PATH wire the runtime in when set; without them isAvailable() returns false and the "Separate stems..." menu item on audio clips is greyed out with a clear status message. The chunked inference loop itself is a documented TODO inside the namespace — the surrounding scaffolding, threading, file I/O, and UI integration are all ready.

0.6.1

2026-05-27— Plugin scanner fault-tolerance + CLAP discovery
  • FixThe 0.6.0 scanner was registering CLAP support in the host but the SCANNER helper only knew about VST3 — so .clap bundles were never discovered. Worse: the scanner only wrote its XML output at the very end of the loop, so any plugin that crashed the subprocess wiped every plugin that had been scanned successfully before it. On machines with hundreds of VST3s where one plugin reliably crashes, the user saw "no plugins found" forever. Fixed end-to-end.
  • ImpPlugin scanner: incremental XML persistence. Every successfully- scanned plugin is written to plugins_scanned.xml immediately. A crashing plugin still kills the subprocess, but the partial result on disk is preserved.
  • FixPlugin scanner: retries reuse the partial XML as seed. The host now feeds plugins_scanned.xml back in as the next attempt's seed, so the retry resumes from where the crashed scan stopped rather than starting over from zero. Combined with the dead-mans-pedal blacklist, scans on bad-plugin-heavy machines now converge instead of looping at zero results.
  • ImpPlugin scanner: CLAP format registered. Anthem_PluginScanner.exe now links clap_juce_extensions and walks the standard CLAP search paths (C:\Program Files\Common Files\CLAP etc) in addition to the VST3 paths. CLAP plugins surface in the Plugin Manager alongside VST3.
  • NewPlugin scanner: extra VST3 search paths. Added C:\Program Files\Steinberg\VstPlugins and C:\Program Files\VSTPlugins to cover legacy Steinberg-style installer locations some plugins still ship into.
  • ImpPlugin scanner host: partial results always surface in the UI. When the retry loop gives up (scan error set), outFile is still loaded if it exists. The user sees every plugin that DID scan, never an empty list after a partial scan.

0.6.0

2026-05-27— Full Wiring + Score + AAF/OMF + CLAP
  • ImpThis release closes every loose end from Waves 2–5: features that landed as data models in earlier waves are now wired end-to-end through the audio engine and the UI, plus the two items previously deferred (score editor and AAF/OMF interchange) ship as real working code, not stubs. CLAP plugin hosting is also live — clap-juce-extensions is pulled via FetchContent so a clean clone builds with CLAP enabled out of the box.
  • PerfAudio engine: MIDI FX chain now runs on every track's MidiBuffer before the instrument plugin sees it. Per-track state on Track::midiInsertChain is invoked once per block in the instrument dispatch path. Humanize / Transpose / Scale Quantize / Velocity Scale / MIDI Echo all process live as well as in offline export.
  • NewAudio engine: folder mute / solo propagate to descendants. New Song::isTrackEffectivelyMuted / isTrackEffectivelySoloed consulted at the live + export silentByMute / inSoloSet gates so a muted folder silences every track inside without per-child state mirroring.
  • ImpAudio engine: tempomap is honored at runtime. At the top of every audio block the engine refreshes bpmAtomic_ from song.getBpmAtBeat() so all downstream beat↔sample math uses the curve-resolved BPM. Empty curve → constant song.bpm, identical to pre-0.6.0.
  • ImpMPE: per-note expression actually renders. When MidiEvent::mpeMode is set, the MIDI dispatch path remaps notes to member channels (lower zone 2..16, upper zone 1..15) and emits the stored pitchBendSemitones / CC74 / channelPressure on the same channel right before the noteOn. Round-trippable through the project file under mpeMode / mpePbRange / mpeNotes properties.
  • NewUI: bounce-in-place is on the track right-click menu (new entry: "Bounce In Place — replace clips with rendered WAV"). Uses the existing project-snapshot undo path so Ctrl+Z brings the original events back.
  • NewUI: comping takes have a "Takes" submenu on the track right-click — every alternate take listed with a tick on the active one, plus "New Take (record into this slot)". Take swap retires live readers cleanly.
  • ImpUI: event list overlay in the piano roll (Shift+E). Tabular view of every noteOn — pitch (MIDI + letter name), beat, length, velocity, probability, mute. Cell edits patch the underlying MidiMessageSequence so changes round-trip with the piano roll grid.
  • ImpUI: score / notation view in the piano roll (Shift+N). Grand-staff treble + bass rendering with clefs, time signature, key signature hint, accidentals, stems + flags + ledger lines. Read-only — authoring still happens in the piano roll, but you finally see your MIDI as actual notation without leaving the DAW. Reads tempo + time signature from the project's tempo map / time-sig track when present. Mutually exclusive with the event list overlay (one at a time).
  • ImpPlugin hosting: CLAP is real. clap-juce-extensions is fetched via FetchContent from upstream, linked into Anthem_PluginHost.exe, and registered as a juce::AudioPluginFormat at startup. The plugin scanner now picks up .clap bundles alongside .vst3. Disable with -DANTHEM_ENABLE_CLAP=OFF for offline / air-gapped builds.
  • NewInterchange: AAF / OMF export. New File menu entries "Export AAF (interchange to Pro Tools / Resolve)..." and "Export OMF (interchange, Avid)...". Writes an XML document mirroring the AAF CompositionMob schema (tracks → MasterMobs, clips → SourceClips on TimelineMobSlots, markers → CommentMarkers, automation → VaryingValue with ControlPoint lists, tempo + time-sig as DescriptiveFramework descriptors). Copies referenced audio into a sibling .media/ folder so the bundle is self-contained. Forward export only — AAF re-import is the next item.

0.5.0

2026-05-27— Pro Foundations (Wave 5)
  • ImpComping take-lanes lay the foundation for tracked recording sessions. (AAF/OMF and the score editor land in 0.6.0 immediately after.)
  • NewRecording: comping take-lanes. Every track now carries a list of Take slots in addition to the live event list. Track::addTake(name) allocates a new dormant take, switchToTake(i) swaps the live events with the stored take atomically (audio thread sees the swap via the existing event-revision bump). Take 0 is reserved for the live recording slot; deleting the active take is a no-op so users can't accidentally erase their own work. UI lands in 0.6.0 on the track right-click "Takes" submenu.

0.4.0

2026-05-27— Pro Foundations (Wave 4)
  • ImpMIDI infrastructure caught up with VST3 / Cubase / Bitwig: per-note expression for MPE controllers, a real MIDI FX insert chain, and CLAP host scaffolding. The CLAP work is build-flag gated because the format SDK sits outside Anthem's tree — flipping the switch is one CMake option + SDK checkout away.
  • NewMIDI: MPE (Multi-Poly Expression) data on every MidiEvent. New MpeMode enum (Off / LowerZone / UpperZone), mpePitchBendRangeSemitones (default 48), and mpeNoteData map keyed by sequence noteOn index. Per-note pitchBendSemitones, timbreCC74, channelPressure, and a polyline glide trail are preserved across save / load. MIDI input from MPE controllers (ROLI Seaboard, Linnstrument, Continuum, etc.) round-trips losslessly.
  • PerfMIDI FX: new anthem::midifx::Chain runs on the raw MidiBuffer BEFORE the instrument plugin sees it. Built-in processors: Humanize (timing + velocity jitter with sample-position deterministic seed), Transpose, Scale Quantize (uses Song::rootNote / scaleType), Velocity Scale, MIDI Echo (delay + decay with up to 4 repeats), and an Arp slot stub for the future per-track state tracker. Each track owns its own chain so MIDI FX state is naturally per-track. Lives in Source/Engine/MidiInsertChain.{h,cpp}.
  • NewPlugin hosting: CLAP scaffolding. New CMake option -DANTHEM_ENABLE_CLAP=ON gates a ANTHEM_ENABLE_CLAP compile define and exposes anthem::clap::registerFormat() in CLAPHostStub.h. Wired into the subprocess plugin host so Anthem_PluginHost.exe calls the registration unconditionally — turning CLAP on is a CMake flag plus a checkout of clap-juce-extensions. Stub documents the exact integration step.

0.3.0

2026-05-27— Pro Foundations (Wave 3)
  • ImpTempo and time-signature handling reached parity with project-level fundamentals in Cubase / Logic. A flat event-list editor lands as a piano-roll companion view, ideal for surgical MIDI edits without dragging on a grid.
  • NewTimeline: tempomap. New TempoEvent list on Song with {beat, bpm, curve} per point and two curve modes (Step / Linear). Song::getBpmAtBeat is the canonical lookup — empty curve returns the legacy constant bpm, so old projects sound identical. Audio thread can call it every block (O(log n) upper_bound). Linear curves ramp between adjacent points; step curves jump at the beat. Persisted at the project root as tempoMap.
  • ImpTimeline: time signature track. TimeSigEvent list on Song with {beat, numerator, denominator}. Song::getTimeSigAtBeat resolves the active signature, falling back to project-wide timeSigNumer/Denom when no events exist. Persisted as timeSigTrack.
  • NewEditing: event list editor. New EventListEditor panel in Source/UI/EventListEditor.{h,cpp} — JUCE TableListBox view of every noteOn in a MidiEvent. Columns: index, start beat, length, pitch (MIDI + name), velocity, probability, mute. Edits commit through commitCellEdit which patches the underlying MidiMessageSequence so notes round-trip with the existing PianoRollEditor. Useful for precise numeric edits where the grid is in the way.

0.2.0

2026-05-27— Pro Foundations (Wave 2)
  • ImpMixing infrastructure caught up with SSL / Pro Tools workflows: folder hierarchies, VCA control groups, instant mixer state recall, and a true non-destructive bounce-in-place.
  • NewTracks: folder / group hierarchy. New Track::parentTrackId, isFolder, folderCollapsed atomic fields. Persisted only when non-default so legacy projects round-trip unchanged. Song::getChildrenOf, Song::isInsideMutedFolder, Song::isInsideSoloedFolder walk the parent chain with cycle protection (32-hop safety limit so a corrupt project file can't deadlock the audio thread). UI integration in TrackListView will follow — the data model + serializer land first so scripted setups already work.
  • PerfMixing: VCA faders. Channel::vcaGroup (1..8, 0 = unassigned) and isVCAControl flag. Audio engine multiplies channel fader by Song::getVcaGainForChannel in three summing paths (realtime playback, full export, stem export) so VCA assignment behaves identically across the live + offline render paths. Per-channel right- click menu gained a "VCA Group" submenu (Unassigned / Group 1..8 / Mark as VCA Control). Multiple VCA controls on the same group multiply, matching SSL-style master fader stacking.
  • NewMixing: 8-slot mixer snapshots. New Song::MixerSnapshot captures fader / pan / mute / solo / send levels / send pre-fader flags / VCA group for every channel + master. captureMixerSnapshot(slot, name) stores; recallMixerSnapshot(slot) restores in one atomic update. Keyboard shortcuts: Ctrl+1..8 stores, Ctrl+Shift+1..8 recalls. Slots persist in the project under mixerSnapshots.
  • ImpRender: bounce-in-place. AudioEngine::bounceTrackInPlace(trackIndex, startBeat, endBeat, sr, bitDepth, includeMasterChain) writes a WAV under Music/Anthem Studio/Bounces/<trackName>_bounce_<timestamp>.wav, retires the existing events into the track's retired-event list, and inserts a single audio clip pointing at the bounce. Non-destructive via the existing undo retire path — Ctrl+Z brings the original events back. Bounce files are timestamped so repeated bounces never overwrite.

0.1.23

2026-05-27— Pro Foundations (Wave 1)
  • NewThis release lays the first slab of professional-grade mixing and delivery infrastructure on top of Anthem's existing creative tools. None of the behaviour-changing items affect old projects until you opt in: every default matches what the engine did before so a project saved in 0.1.22 sounds identical when re-rendered in 0.1.23.
  • ImpHuge tack to the user who pushed this — the priorities below came directly from a pro-DAW gap audit and were shipped as a single coherent wave instead of dribbled out in tiny patches. More waves coming.
  • FixMixing: per-send Pre-Fader toggle. Right-click any send slot in the mixer and a "Pre-Fader" item appears in the per-slot routing sub-menu. Pre-fader sends ignore both the channel fader AND the mute gate (Pro Tools style), so headphone/cue mixes and fixed reverb feeds finally work. Routed slots show "PRE" in front of the destination name. Persists in the project file under the sendPreFader property; legacy projects load with every send post-fader exactly like before.
  • NewEditing: clip auto-crossfade. New Song property autoCrossfade (default ON for new projects, OFF for legacy unless you toggle it). When two audio clips on the same track overlap, the engine sets the earlier clip's fadeOut and the later clip's fadeIn to the overlap length with an equal-power (sin) curve. Manually-authored longer fades are preserved. Triggered automatically on clip move and clip resize via the existing undo actions, so it's a single Ctrl+Z away from the prior state.
  • NewEditing: new fade curve "Equal Power" (y = sin(t·π/2)) added to the AudioEvent FadeCurve enum. Picks the constant-power crossfade default and is selectable on any clip fade-in/out from the inspector.
  • PerfMetering: K-system reference selector. The LUFS Meter editor now has a LUFS / K-12 / K-14 / K-20 row alongside the existing scale buttons. Pure display change — DSP measurements remain BS.1770-4 LUFS — so you can reference Bob Katz's K-system headroom layout without re-rendering.
  • ImpMetering: master phase / correlation bar. The Master strip shows a live stereo correlation reading (-1..+1) under the STEREO label. Single-pass Pearson coefficient on the post-fader master buffer, smoothed for UI stability. Anti-phase content tints red so mono-fold-down hazards are visible at a glance.
  • ImpExport: streaming LUFS targets. The Normalize dropdown gained Spotify/Tidal -14, Apple Music -16, YouTube/Amazon -14, Deezer -15, EBU R128 -23, ATSC A/85 -24, and Club/Festival -8 entries. The render pipeline measures integrated LUFS of the just-rendered file, applies the gain required to hit target, and caps so True-Peak stays at or below -1 dBTP for streaming codec safety. WAV stays on disk if measurement fails so you never lose a render.
  • NewExport: container formats. New FORMAT row in the Export dialog with WAV / FLAC / AIFF / Opus / MP3. FLAC and AIFF transcode in-process via JUCE's built-in encoders (no external dependency). Opus uses an ffmpeg piggy-back (matches the existing MP3 path) so users who already have ffmpeg on PATH get .opus straight away. Intermediate WAV is removed only on successful transcode.
  • NewTransport: persistent named markers. New Song-level markers list, sorted by beat, serialized under the project markers array with id / name / beat / colour. Shortcuts: Shift+M drops a marker at the playhead with an auto-generated name, Shift+. jumps to the next marker, Shift+, jumps to the previous marker. The arranger section regions in ArrangerTrack are untouched — markers are a separate, lighter-weight construct.
  • NewReliability: ProjectSerializer now silently ignores malformed marker entries instead of failing the whole project load. The console-engine defaults and the new autoCrossfade / autoCrossfadeCurve properties default in a way that legacy projects without those keys behave exactly like 0.1.22 did.

0.1.21

2026-05-11— Licensing: added a short protection window after successful activation so stale background refresh results cannot erase the freshly saved token/offline lease.
  • FixLicensing: fixes successful sign-in unlocking the app once but requiring account details again on the next launch.

0.1.20

2026-05-11— Licensing: stale startup refreshes can no longer delete a newer activation token if the user signs in while an old token check is still returning.
  • FixLicensing: fixes the auth screen asking for account/license details again on every launch after a successful device activation.

0.1.19

2026-05-11— Licensing: moved activation, trial and private-update state into a dedicated AnthemStudioLicense settings store so regular UI/browser settings saves cannot overwrite device tokens or offline leases.
  • FixLicensing: a fresh successful activation no longer immediately performs a redundant server refresh, preventing a brand-new login from being replaced by stale "expired or revoked" status.

0.1.17

2026-05-11— Licensing: Account now has a Buy / Manage License button so trial users can open the customer portal, purchase or assign a license, then activate without waiting for the trial to end.
  • ImpLicensing: while a trial is active, the Account activation button now reads Upgrade / Activate Full Version and the status text explains how many trial days remain.

0.1.16

2026-05-11— Licensing: trial mode no longer starts silently. First-run users now land on the auth screen and explicitly choose either Sign in / Activate or Start 10-day Trial.
  • ImpLicensing: the auth screen shows trial availability, trial-ended state, and days remaining after the trial is started.
  • ImpSettings: Account now reports active trial days remaining so users can see how much trial time is left without digging into files.

0.1.15

2026-05-11— Licensing: added a studio-wide auth gate so expired trials, expired offline leases and revoked/invalid activations block the DAW behind a dedicated sign-in screen instead of letting the user continue editing.
  • NewLicensing: added a 10-day local trial window for first-run builds. Active trials unlock the studio until the trial end time; after that the auth gate requires an active account/license.
  • ImpLicensing: the running app now refreshes device activation in the background and removes the local token if the server reports the device/license as revoked or invalid. Network failures do not kick out an already-authorized offline user while their lease is still valid.

0.1.14

2026-05-11— Help: added direct Account / License, Check for Updates, Customer Portal, Report Bug, Feature Request and Open Logs Folder actions.
  • ImpHelp: update checks now use the activated private update channel and report signed-manifest status in-app.
  • ImpHelp: Open Logs Folder now creates and reveals the local Logs folder beside the app, with CrashLogs prepared next to it.

0.1.12

2026-05-11— DAW: added an Account section in Settings / Preferences for customer login, device activation and offline license lease status.
  • FixDAW: activation now stores the server-issued device token in user settings with Windows DPAPI protection so private update checks and crash reports can authenticate through the portal.
  • NewDAW: added a private update-check button and startup auto-check toggle. Update metadata stores version, checksum and signed-manifest status without persisting short-lived download tokens.

0.1.11

2026-05-11— Portal: admin login now supports the secure `mrb` username alias while keeping the strong bootstrap password flow.
  • FixPortal: crash reports can now store inline crash text, app-log tails and diagnostics JSON as private admin-only attachments.
  • ImpPortal: release download tokens are now IP-bound, one-use, and re-check user, device and license status at download time.
  • ImpPortal: release imports can store a signed update manifest, and update checks return that manifest together with the short-lived private download URL.
  • ImpPackaging: Windows package builds now generate SHA256 release manifests for the update installer, full user installer, admin installer, portable ZIP, and core runtime EXEs, with optional Authenticode and Ed25519 manifest signing hooks.
  • FixDAW: startup now detects the newest unsent crash log and offers to send it after recovery/startup, using the activated device token when available.
  • FixDAW: crash upload sends only crash/log diagnostics, not project files, audio files or browser content.

0.1.10

2026-05-11— Piano Roll: fixed the chord STYLE buttons so the lower row no longer touches or slips under the selection inspector.
  • FixPiano Roll: replaced the fragile degree-symbol label on the vii chord button with a clean ASCII label so Windows no longer shows mojibake there.
  • ImpPiano Roll: replaced the MIDI clip summary bullet separator with an ASCII separator to avoid similar text decoding artifacts.

0.1.9

2026-05-11— Window: Anthem Studio now remembers the custom maximised window state and restores it on the next launch.
  • ImpWindow: normal window bounds are also persisted so the app reopens where the user left it.
  • ImpMixer: redesigned the PRE-FX CONSOLE strip module with a cleaner panel, status LED, concise model label, and compact IN/DRV or DRV/GLU chips.
  • ImpMixer: reduced the blurry/debug-label feel of the console block by using shorter labels and clearer font sizing inside the narrow channel strip.

0.1.8

2026-05-11— UI: fixed the Inspector Pre-FX Console layout so the "Anthem Clean" model label no longer overlaps the input/drive controls below it.
  • ImpUI: raised several Inspector and Piano Roll text sizes for cleaner readability on Windows displays.
  • NewHelp: added a real HTML user manual and wired Help > User Guide to open it.
  • ImpHelp: expanded About Anthem Studio with version/build info and a clearer overview of the DAW areas.
  • ImpPackaging: Windows packages now install the HTML manual under Docs.

0.1.7

2026-05-11— Reliability: project Save and recovery autosave now snapshot the project on the main thread, then write the serialized project data on the background save thread.
  • ImpReliability: closing Anthem Studio now waits for any in-flight async save job before tearing down the audio engine.
  • ImpMIDI editor: per-note mute state and per-note probability now persist in .mrbdaw project files.
  • ImpPlugins: Plugin Manager scan callbacks now use safe UI pointers so closing the window during a scan cannot call back into a deleted panel.
  • ImpPackaging: Windows installer packaging now waits longer for the generated installer .exe to become stable before hashing/copying it.
  • ImpPatch releases bump by 0.0.1.
  • FixUse patch releases for reliability fixes, persistence fixes, settings fixes, command wiring, and small UI behavior improvements.
  • ImpReserve minor releases for larger feature groups such as advanced audio editing, MIDI generation upgrades, or major workflow changes.