# Changelog - WiseTrax (WiseTracker VST Edition)

All notable user-facing changes to the WiseTrax VST3 plugin.

## [0.2.2] - 2026-06-20 - Public Beta

### Added
- **Import Amiga `.mod` modules.** You can now drag an Amiga ProTracker `.mod` onto WiseTrax (or use File -> Import Module) just like an `.xm` - the same import box shows the song info and the Authentic/Wise playback-style choice, then loads it as an editable song. Handles the common variants (4/6/8-channel M.K./FLT/CHN) with faithful Amiga pitch and playback (a blank slide command doesn't carry the previous value, matching ProTracker's lack of effect memory). (More ProTracker playback quirks and the older 15-sample format are still to come.)

### Fixed
- **Imported modules: "slide to note" (tone portamento) now lands on the right note.** A tone-portamento command (`3xx`/`5xy`) targets a note *without* re-stating the instrument -- the normal way Amiga `.mod` files (and some XM) write a pitch slide. WiseTrax used to ignore that target note and drift to the wrong pitch; it now slides toward the written note, like the original tracker. (Wise style and your own songs are unaffected.)
- **Imported modules: "ghost instrument" notes now revive and re-pan correctly.** Building on the 0.2.1 volume fix: when an XM puts an instrument number on a row with no note, FastTracker also resets the note's panning and re-arms its envelopes -- including bringing a note that was just released back to life. WiseTrax now does all of that, not just volume, so imported parts that lean on this trick (a faded or note-off'd note snapping back, panning re-centring) play the original way. (Wise style and your own songs are unaffected.)
- **Imported modules: notes without a volume envelope now fade out on release.** Some XM instruments have no volume envelope and rely on a "fadeout" to ease a note down after it's released. WiseTrax used to cut those notes off sharply instead; they now fade over the instrument's fadeout time, like the original tracker. (Wise style keeps the clean cut; your own songs are unaffected.)
- **Note fadeouts now play at the right speed.** The fadeout that fades a released note down to silence was running at half speed, so released notes lingered about twice as long as they should. It now matches the original tracker. This affects any instrument with a fadeout set -- in practice, imported XM songs.
- **Imported modules: a note-off carrying an instrument number now resets the note's volume and panning.** FastTracker snaps a released note back to the instrument's own volume and panning (not wherever a panning effect had moved it) as it fades. WiseTrax now does the same on these rows, so imported parts that release a panned note play the original way. (Wise style and your own songs are unaffected.)
- **Imported modules: the note-delay effect (EDx) now lands at the right moment.** EDx delays a note by a fraction of a row (a number of ticks). WiseTrax was delaying by whole *rows* instead, so delayed notes landed far too late. A delayed note now fires at the correct point within its row, like the original tracker -- and EDx with a delay longer than the row drops the note, as it should.
- **Imported modules: the retrigger effects (Rxy and E9x) now roll within the row.** These re-strike a note several times per row -- a fast roll or stutter. WiseTrax was re-striking only every couple of *rows*, so rolls came out far too slow. They now roll at the correct per-tick speed, with Rxy's per-hit volume change applied, like the original tracker. (Wise style keeps its own per-row timing.)
- **Imported modules: the tremor effect (Txy) remembers its last setting.** A `T00` (tremor with no value) now repeats the previous tremor rhythm instead of resetting, matching the original tracker's effect memory.
- **Imported modules: more effects remember their last setting.** Following the tremor fix, the global volume slide (`Hxy`), panning slide (`Pxy`), fine pitch slides (`E1x`/`E2x`) and fine volume slides (`EAx`/`EBx`) now repeat their previous value when written with no value (e.g. `H00`, `EA0`) -- the original tracker's "effect memory", which imported songs use as shorthand to keep a slide going. Before, those `00` rows did nothing and the slide stopped. (Wise style and your own songs are unaffected.)
- **Imported modules: the retrigger roll (`Rxy`) remembers its speed and volume.** A retrigger written with a missing value -- `R00` to keep the roll going, or just one nibble like `R04` -- now repeats the last retrigger speed and volume step independently, the way the original tracker does, so rolls that lean on this shorthand keep going instead of stopping. (Wise style and your own songs are unaffected.)

## [0.2.1] - 2026-06-18 - Public Beta

### Added
- **Import box for modules.** Dragging in or opening an `.xm` now shows an import dialog before it loads: the song's tempo, speed, channels, patterns and instruments at a glance, a choice of **Authentic** or **Wise** playback style right there, and an honest list of anything that had to be approximated or dropped on import (or a clean bill of health if nothing was). **Import** loads it with your chosen style; **Cancel** leaves your current song untouched. The drag-in and menu routes show the same box.
- **Switch a module's playback style.** There's now a **Playback style** choice -- **Authentic** (plays an imported song's effects, like volume slides and arpeggio, the original FastTracker/XM way) or **Wise** (smooths them out). It's in two linked places -- the **Menu** and **Settings -> Tracker Grid** -- and changing one updates the other. Imported modules start on Authentic; flip either way while a song is loaded and hear the change right away. Songs that don't use those effects sound the same in both.
- **App icon for the standalone.** WiseTracker.exe now has a proper app icon -- a two-tone "W" in the app's own colors -- in the taskbar, Explorer and Alt-Tab, instead of the generic default window icon.
- **Built-in output safety ceiling.** The master output is now gently capped just below the clipping point, so a loud song or an imported module can't blast or distort your ears and speakers. It's transparent at normal levels, always on, and applied to exported audio too, so a render matches what you hear.
- **Imported modules load at a safer level.** XM/MOD songs with many channels used to import at near-blasting volume. Each channel now comes in with mixing headroom (quieter the more channels a module has), so an imported song sits at a comfortable level instead of slamming the output. Combined with the safety ceiling, imports no longer load loud or distorted. (Your own songs are unaffected.)

### Fixed
- **Imported modules: notes that "re-pump" their volume now play right.** Some XM songs put an instrument number on a row with no note to snap a note's volume back up to its own level -- a common chiptune trick, often paired with volume slides. WiseTrax ignored that, so those notes faded out and went silent; the volume now snaps back to the playing note's own level (not to full), so a volume-slide run comes out as the original stuttering/pumping sound at the right loudness instead of dying or jumping too loud. (Wise style and your own songs are unaffected.)
- **Arpeggio plays properly now.** The arpeggio effect (`0xy`) now strums through its three notes *within* each row -- a fast chord ripple, the way classic trackers do it -- instead of only changing pitch once per row. It also stops cleanly at the end of its row, so the note returns to normal pitch on the next row.
- **A leftover "song file is missing" message no longer lingers.** If opening a recent song failed because the file had moved, that message could stay on screen even after you loaded another song. It now clears the moment any song loads.
- **Imported modules keep their playback speed.** A module's speed changes (the `Fxx` "speed" commands) now import and play -- including unusual speeds that WiseTrax used to drop silently -- so songs that change speed mid-pattern come out with the right timing and effects. The speed shows on the grid as a `Z` effect.
- **In a host, the host's transport is now in charge.** Previously, pressing WiseTrax's own Play inside a DAW could keep the song going even after you hit the DAW's Stop -- you had to use WiseTrax's own Stop. Now the host's Play/Stop always wins; WiseTrax's own Play is still there for previewing while the DAW is idle, and it yields to the host the moment the DAW's transport moves.
- **Imported modules: the tremor effect gates at the right speed.** The `Txy` tremor (rhythmic on/off volume gating) now switches within each row at the proper per-tick rate, like the original tracker, instead of a coarse once-per-row chop. (Your own songs are unaffected.)
- **Imported modules: pattern jumps land on the right row.** The module "pattern break" command (`Dxx`), which jumps into a specific row of the next pattern, now lands on the correct row. Before, breaks to row 10 or higher went to the wrong place. (Your own songs are unaffected.)
- **Imported modules: note-cut and key-off land at the right moment.** Module commands that cut a note short (`ECx`) or release it (`Kxx`) now act at the right point *within* the row, like the original tracker, instead of letting the note ring on for several rows. Plucked and gated parts in imported songs come out tight instead of holding too long. (Your own songs are unaffected.)
- **Imported modules: set-volume commands play at the right level.** A note whose volume was set with the module's `Cxx` command used to import about half as loud as intended. It now comes in at the correct level. (Your own songs are unaffected -- this only changes how XM files are read in.)
- **Imported modules play their volume fades faithfully.** Volume-slide commands in an imported XM now fade across each row the way the original tracker does -- including the common "keep sliding" shorthand (`A00`) that continues the last fade -- so plucked and fading notes come out short and punchy like the original instead of holding too long. Applies to imported modules; your own songs are unaffected.
- **The plugin locks to your DAW's position when you start it mid-preview.** If you were previewing in WiseTrax while your DAW was stopped, then pressed Play in the DAW, WiseTrax used to keep playing from the preview spot -- out of sync with the DAW. Now it jumps straight to the DAW's playhead and plays in time with it.
- **Saved module imports keep their speed and level when reopened.** Importing an XM and saving it as a `.wise` file now stores its playback speed and the import loudness trim, so reopening that file sounds the same as it did right after importing. Before, a reloaded import could come back at the wrong speed or louder than intended. (Older `.wise` files open unchanged.)

## [0.2.0] - 2026-06-15 - Public Beta

### Added
- **New song.** The top-bar **Menu** now has a **New** item that clears the current song -- pattern, samples and settings -- and starts fresh. It asks first, since it can't be undone (save first if you want to keep your work).
- **Save and open songs as files.** The new top-bar **Menu** has **Save**, **Save As...** and **Open...** -- write your whole session (samples, patterns, kit, settings) to a `.wise` file and load it back later, independently of the host project. Save remembers the file so the next Save just overwrites it.
- **Export and import from the Menu.** The Menu also covers the rest of your files: **Export instrument** and **Import instrument** (`.wiseinst`), **Import module** (`.xm` / `.xi`), and **Import sample**. Importing an instrument or sample adds a new slot (one Ctrl+Z removes it); importing an `.xm` opens it as a full song. Drag-and-drop still works exactly as before.
- **Export audio (render to a file).** Menu -> **Export audio...** renders your music to a **WAV, FLAC or OGG** file. Choose what to render -- the **whole song**, just the **loop range**, or the **current pattern** -- plus bit depth, sample rate (or follow the host) and a release tail so reverbs and long samples ring out. Pick where to save, and a progress bar shows it rendering offline (faster than real time); you can cancel. Each choice shows an estimated length and file size up front. **Normalize** lifts the loudest peak to just under 0 dB.
- **Open Recent.** The Menu now has an **Open Recent** submenu listing the last songs you saved or opened, so you can jump back into a project in one click. The list is kept per user (not tied to the host project), so it follows you across instances and sessions; **Clear recent** empties it.
- **The waveform editor follows the sample you select.** In a multisample instrument, clicking a sample (in the keymap or the list) now shows *that* sample in the WAVEFORM editor, and every edit -- Normalize, Reverse, Fade, Crop, Cut/Paste, Delete, loop points -- applies to the sample you're looking at (it used to always edit the first one). **Double-click a keymap block** to jump straight to the WAVEFORM tab on that sample. **Click-to-preview, the inspector card (length / root / tempo / loop), and the root-note override all follow the selected sample too** -- so what you hear, see, and tune is always the sample you picked. Single-sample instruments behave exactly as before.
- **Delete Selection on the waveform right-click menu.** The ripple-delete that removes a selected chunk and closes the gap is now also on the waveform's right-click menu, not just the toolbar button -- right-click the waveform and pick **Delete Selection**. It's greyed out until you've drag-selected a region. Undoable with Ctrl+Z.
- **Build multisample instruments (sampler KEYZONES).** On the KEYZONES tab there's now a **+ Add sample** button -- and you can drag files straight onto the sample list -- to add one or more samples to the *current* instrument instead of making new ones. WiseTrax maps them automatically based on what they are: a set of clearly-pitched samples (a real multisample) is spread tonally around each one's pitch, while loops / one-shots / drums get one sample per key, each playing at its own pitch. Either way the instrument plays the right sample for every key -- in the grid, on the on-screen keyboard, and over MIDI. The sample list shows each one's root and the keys it covers. Undoable one step at a time with Ctrl+Z. (A single-sample instrument is unchanged -- it still plays across the whole keyboard.)
- **Visual keymap on the KEYZONES tab.** The KEYZONES page now shows a horizontal keyboard with a colored block for each sample, laid out across the keys it plays -- so you can finally *see* your multisample at a glance. Click a block to select it; its sample is highlighted in the list below, and every sample's list row is tinted with the same color as its block so the two line up. (Dragging the blocks to re-map, a layout menu, and a live highlight of what's playing are coming in the next steps.)
- **Drag keymap blocks to re-map a sample.** On the KEYZONES tab you can now reshape a sample's key range by hand: select a block, then drag its left or right edge to resize it, or grab the middle to slide it across the keyboard. It snaps to whole notes, the cursor shows whether you'll resize or move, and the change takes effect on the keys straight away. Undoable with Ctrl+Z.
- **Zoom and scroll the KEYZONES keyboard.** The keymap now opens framed on just the octaves your samples actually use, so the keys are big and easy to grab instead of all 120 notes crammed across the width. Scroll the mouse wheel over the keyboard to zoom the keys in and out (centered on the pointer); drag an empty part of the keyboard or use the scrollbar below it to move along the keys. Switching instruments or adding a sample re-frames it for you, and the **Fit** / **Full** buttons re-frame to your samples or zoom right out to the whole keyboard. The sample name on each key reads vertically so it fits the tall, narrow keys.
- **Resize the KEYZONES keyboard vs the sample list.** Drag the divider between the keyboard and the sample list to make the keyboard taller (or shorter) -- bigger when you're mapping, smaller when you want to see more of the list. The list always keeps a few rows and scrolls, so it never fully hides; double-click the divider to snap back to the default split. Your size is remembered per instance.
- **The KEYZONES keymap lights up as you play.** Play the selected instrument -- from the grid, the on-screen keyboard, or MIDI -- and the keymap shows it live: the zone whose sample is sounding glows, the exact key you hit flashes, and the sample's row in the list below lights up too -- all fading away like the note's tail. So you can finally *see* which sample a key triggers (and spot a wrong mapping) at a glance. It costs nothing when the page isn't open.
- **Readable sample names on the keymap.** The name on each colored key now scales to fit the key instead of staying pinned at a tiny fixed size, so it's legible at a normal zoom.
- **Right-click a keymap block for its options.** Right-click any sample's block on the KEYZONES keyboard to: switch it between **Play melodically (track pitch)** -- transposes up and down the keyboard, for tonal sounds -- and **Play at fixed pitch (one-shot)** -- plays at its recorded pitch on every key, for drums and one-shots; or **Delete sample from instrument** to remove that sample and its block. Both are one Ctrl+Z away.
- **Drag a sample onto the keyboard to place its zone.** On the KEYZONES tab you can now drag a sample straight from the list onto a key on the keyboard -- its block lands there (keeping its width), the target key highlights while you drag, and it's one Ctrl+Z. Great for laying out a drum kit by dropping each hit on its own key.
- **Layout menu on the KEYZONES tab.** A new **Layout** button re-maps every sample across the keyboard in one click: **Auto** (WiseTrax picks the best fit and tells you which one it lands on), **One sample per key** (drum-kit style, each at its recorded pitch), **Distribute evenly**, or **Spread by root note** (each sample covers the keys around its own detected pitch). The menu reads your instrument and only offers what makes sense -- "Spread by root note" stays greyed until two or more samples have a detected root. Re-mapping never changes your audio, re-frames the keyboard on the result, and is one Ctrl+Z step.
- **The RHYTHM panel: instant beats from two numbers.** A new foldable RHYTHM section sits between SAMPLES and TRACKER (folded by default -- click its header to open). Pick how many **hits** to spread over how many **steps** and the panel shows the result as a ring of dots and a step strip; tons of classic patterns drop out of simple numbers, and when you land on a famous one the panel tells you its name (3 over 8 is the Cuban tresillo). **Drag** the values (or scroll, or double-click to type), drag the ring sideways to **rotate** the pattern, add **accents** (louder hits, spread just as evenly), pick the **note**, and set **PLAY** to one note, root+octave, or a minor/major chord walk for instant basslines and arpeggios. **STAMP** writes it into the grid as real notes at your cursor -- one Ctrl+Z takes the whole thing back. **Fill the gaps** flips hits and rests, so stamping the flip on a second track gives call-and-response. Every dial is **undoable** (one Ctrl+Z per change, even a long drag or scroll) and **remembered** with your project, so your rhythm is right where you left it when you reopen. Hover any control for a hint.
- **Pick a famous rhythm from a library.** Click the rhythm name in the RHYTHM panel to open a browser of real world rhythms grouped by culture -- Cuban, Brazilian, West/Central African, Balkan, Arabic, and more -- each shown as a little ring so you can see its shape. Search by name or culture, click one (or use the arrows and Enter), and it sets the hits, steps and rotation for you; your note, accents and play mode stay as they are. One Ctrl+Z undoes it.
- **More ways for each hit to play.** The RHYTHM panel's PLAY setting now offers more chord walks beyond one-note / octave / minor / major: **5th** (power), **sus**, **7th** (dominant), **m7** and **M7**. Each hit steps through the chord one note at a time, so a Euclidean pattern turns into an instant arpeggio or bassline -- drag or scroll PLAY to try them.
- **Walk a scale -- always in key.** PLAY now also has **scl+** and **scl-**: each hit climbs (or descends) a scale, so a Euclidean pattern becomes an instant melody that can't hit a wrong note. The NOTE chip is the key; when a scale mode is on, the scale's name appears in the panel -- click it to pick from 16 scales (major, minor, the modes, the pentatonics, blues, and exotic ones like Phrygian dominant and whole tone), searchable and grouped by family. Saved with your project; one Ctrl+Z to undo.
- **Two more scale walks.** Besides up (scl+) and down (scl-), PLAY now has **scl~** (bounce up and down) and **scl?** (wander the scale) -- both stay in key, and they make the generated melodies feel far less mechanical than a straight run.
- **Spread a scale walk over more octaves.** When a scale PLAY mode is on, the scale label now shows how many octaves the walk covers (e.g. "Dorian - 2 oct"). **Scroll** over it to spread the melody across 1 to 4 octaves -- bigger range for leads, tighter for basslines. Saved with your project; one Ctrl+Z to undo.
- **Ready-made grooves, one click.** Clicking the rhythm name now opens a richer browser. Alongside the world rhythms (now grouped under "Rhythms (shape)", which still only set the shape and keep your sound), there are full **grooves** grouped by sound -- **Bass, Lead, Keys, World, Drums**. Picking a groove sets *everything* at once (rhythm + how each hit plays + scale + octaves + accents), so one click gives a finished riff or bassline instead of a few bare notes. Search across the lot; pick with the mouse or arrows + Enter; one Ctrl+Z undoes it. ("My Presets" is there for saving your own, coming soon.)
- **Tune a sample up or down.** The instrument inspector now has a **Pitch** (semitones) and **Fine** (cents) value under the Root/Tempo chips. **Drag** a value up or down to re-pitch the selected sample, **scroll** the wheel over it to nudge by one, hold **Shift** while dragging for fine control, or **double-click** to type an exact number; **reset** zeroes it. It works on any sample -- including fixed one-shots and drums, where the root note is just a label and Tune is the only way to change the pitch (the cue under the control tells you which case you're in). Every change is one Ctrl+Z, and your tune is saved with the project.
- **A home page for Help.** Opening Help now lands on a searchable map of every topic -- cards grouped by area (Get Started, Make Sound, Sequence, and so on), each with a one-line summary and how many pages it holds. Click a card to read that topic; a **Home** button at the top of the list always brings you back. Typing in the search box jumps straight to matching pages.
- **Transport bar.** A new foldable TRANSPORT section sits at the top (above SAMPLES) with Play/Stop, a live position + an mm:ss clock, the song BPM, and a Loop control. In the standalone it drives playback (press Play or SPACE); in the VST it follows your DAW -- play, position and tempo mirror the host -- and the Play button auditions the pattern while the host is stopped. Fold it away with the chevron to reclaim grid height.
- **Tempo (BPM) is part of the song.** The BPM now lives with your song and is saved in the `.wise` file and the host project. In the standalone, set it on the transport bar -- drag the value, scroll the wheel, or double-click to type an exact number. In the VST the host owns tempo, so BPM is shown read-only and follows the host.
- **Loop control.** The transport's Loop pill cycles through loop modes and shows the type at a glance: **Patt** (loop just the current pattern) and **Song** (loop the whole track). Set a loop range by right-clicking sequence slots (**Set loop start / Set loop end**) and a `[1-3]` step joins the cycle that loops only between the brackets; **Song** loops the whole track even with a range set. In the **standalone** the pill is the transport, so it also has an **Off** (play through and stop at the end). In the **VST** the pill controls WiseTrax's own preview playback (the audition you hear when the host is stopped), so it always loops -- Patt / `[1-3]` / Song, no Off -- because your DAW handles linear playback. Default is Song. To remove a loop range, right-click **any** slot and choose **Clear loop points** -- no need to find the exact start/end slots.
- **Tap tempo.** The transport bar has a **TAP** button (standalone): tap it in time with your music and WiseTracker sets the BPM from your timing. Keep tapping to refine it. In the VST the host owns tempo, so Tap is hidden.
- **Metronome.** The transport bar has a **metronome** toggle (the small pendulum icon next to Stop): click it for a click on every beat while playback is rolling, with a higher accent on the downbeat. Works in both the standalone and the VST.
- **The transport bar adapts to the width.** On a narrow window or at high zoom the controls collapse in priority order behind a **More v** button (the metronome and loop move into its menu; Tap tucks away) so Play/Stop, the position, and BPM stay visible and nothing overlaps. Widen the bar and they come straight back.
- **Horizontal scrollbar for the tracker grid.** When you have more tracks than fit across the window -- lots of tracks, a zoomed-in view, or a narrow window -- a slim scrollbar appears at the bottom of the grid. Drag its handle to slide across your tracks, or click the track to jump there. It only shows up when you actually need it, so it never costs you grid height otherwise, and it stays in step with the cursor and Shift+scroll (which still pans sideways too).
- **The folded transport stays a working control strip.** Collapse the TRANSPORT section with its chevron and the thin header keeps a compact, always-visible cluster -- position, BPM, a play/stop button, and the loop mode -- so you don't lose the transport when it's folded away to give the grid more room. It's interactive, not just a readout: **play/stop**, **cycle the loop** (click), and **set the BPM** (drag / scroll / double-click to type, standalone) right from the slim bar. The readouts are fixed-width so nothing shifts as the values change, and clicking the BPM or loop never toggles the fold.
- **WiseTracker is now a standalone app.** The same tracker/sampler/engine from the WiseTrax plugin runs on its own desktop window -- no DAW required. It has its own transport (Play/Stop, BPM, Tap, Loop), saves and opens `.wise` sessions, and a new **Audio settings** item in the Menu picks your sound card, sample rate and MIDI input.
- **Master level + CPU meter in the top bar.** A small VU shows the overall output level, with a CPU gauge beside it.

### Changed
- **The top bar now reads "WiseTrax."** The wordmark matches the name used everywhere else in the app, with "Trax" picked out in the theme accent.
- **One Menu in the top bar.** A single **Menu** in the top-right corner now holds everything -- Save/Open, Export/Import, and Settings + Help -- replacing the old separate gear icon. The cluster reads piano - MIDI - zoom - Menu, and the menu scales with the plugin zoom.
- **Help content brought up to date.** The in-plugin Help has been rewritten to match the app as it is now -- clearer, more compact, and useful whether you're new to trackers or already fluent.
- **More hover hints.** The folded transport's BPM and Loop readouts now have tooltips, and the master level/CPU meter in the top bar explains itself on hover.
- **Settings is grouped to match Help.** The Settings list now sorts its pages under the same kind of headers as Help -- **Setup** (General, MIDI), **Editing** (Samples, Tracker Grid), and **About** -- so the two tabs feel like one place.
- **A clearer welcome card.** The card that greets you on first open now leads with what WiseTrax *is* -- six feature tiles (Sampler, Multisample, Tune & shape, Rhythm generator, Tracker grid, DAW sync) -- plus a flip-through panel of quick tips you page with the dots or arrows (first sound in 30s, first beat in 30s, the essential keys, and more). The keyboard cheat-sheet it used to be is now one of those flip cards.
- **The RHYTHM panel is more compact.** The ring, value boxes, STAMP / Fill buttons and step strip are a bit shorter, so the section takes less vertical space and leaves more room for the pattern grid -- the text stays the same size.
- **The rhythm/groove name badge now shows what you actually loaded.** It used to label by hits+steps alone, so any 5-over-16 read as "Bossa-Nova" and a loaded groove showed a coincidental rhythm name (or "Pick a rhythm" when there was no match). It now identifies the current setup exactly -- your groove's name (e.g. "Off-beat pluck"), or a world rhythm only when the pattern (including rotation) genuinely matches one.
- **Stamped rhythms now fill the pattern.** A Euclidean rhythm whose length isn't 16 or 32 -- like the 12-step Bembe bell or 9-step Aksak -- used to stop partway down and leave the rest of the pattern empty, so it didn't loop in time. STAMP now repeats the rhythm from the cursor to the end of the pattern, so any length grooves correctly. (One Ctrl+Z still undoes the whole fill.)
- **The groove browser reopens where you are.** It now opens on -- and highlights -- the groove (or rhythm) that matches your current settings, instead of always jumping back to the top, so picking and re-opening feels consistent.
- **The on-screen Undo button stands out as the safe undo.** When there's something to undo, the chrome's ? Undo button now gets a subtle accent, and its tooltip explains it's the reliable undo: it always undoes inside WiseTrax, whereas **Ctrl+Z can reach the host** if you've just clicked Reason's own frame/rack (where Reason's Ctrl+Z can remove the device). Same undo stack -- the button just can't ever escape to the host.
- **Clearer sampler tabs.** The WAVEFORM / SLICE / KEYZONES / FX tabs now show an icon above the label, and the active tab is marked with a gold chip so it's easy to see at a glance which page you're on.
- **More room in the sampler.** The waveform's zoom and snap-to-zero buttons moved up onto the tab row, and the duplicate metadata box (sample rate / channels / length -- already shown in the instrument inspector on the right) was removed. That reclaims a full row of height for the waveform.
- **SPACE and Esc swapped roles.** **SPACE** is now Play/Stop and **Esc** toggles Edit (record) mode (Edit used to be on SPACE). In the VST, SPACE is left for the host, so your DAW's transport still responds to it. Esc still clears a selection first if you have one.
- **Tidier top bar.** The slice-sensitivity slider, the slice count, and the detected-sample BPM readout were removed from the top bar -- they're not needed up there (the detected tempo still shows in the instrument inspector), leaving more room for the brand and controls.

### Fixed
- **Samples with the loop set to None play to the end again.** A sample whose loop was off but still carried leftover loop markers (common after importing an `.xm` -- it keeps its loop points even when looping is disabled) was being cut off at those old markers, so its notes went silent unless they happened to have a sample-offset (`9xx`) that jumped past them. Now a loop set to None plays the whole sample, every time -- the way it always should (and the way the older WiseTracker did).
- **"Open sampler" now works even when the SAMPLES panel is folded.** Clicking the open-sampler button (the corner-arrows icon on the SAMPLES header) while SAMPLES was folded did nothing visible -- it switched to sampler mode, but because a folded panel has no height the big sampler had nowhere to draw, so the click just looked like it toggled the tracker grid open/closed. Now opening the sampler always expands the SAMPLES panel first, and closing it restores the panel to however it was folded before.
- **Your sample settings survive saving and reopening the project.** When you reopened a host project, per-sample details were being lost and reset to defaults. Most importantly, a zone set to **fixed pitch (one-shot)** reverted to *track pitch* -- so a drum kit started transposing across the keyboard after a reload. Now key-tracking, detected root/tempo (and how they were detected), and each sample's keymap colour are all saved with the project and restored exactly. (Old projects still load fine -- missing details just fall back to the previous defaults.)
- **Keymap colours stay with their sample.** Each sample's colour on the KEYZONES keymap (and its row in the list) is now tied to the sample itself, not its position -- so deleting a sample no longer makes the remaining ones swap colours. Build a multisample, delete one in the middle, and every other zone keeps the colour you learned it by.
- **Dropping a sample on the KEYZONES keyboard adds it to that instrument.** Dropping audio onto the keymap used to spin off a *separate* instrument -- so a sample meant for the multisample you were building "left" it. Now dropping on the keyboard appends into the **current** instrument, the same as dropping on the sample list below it (the keyboard highlights while you hover). Dropping on the tab strip or the tracker grid still makes a new instrument, as before.
- **A single sample shows one resizable zone on the keymap, not two.** A loaded sample used to map a narrow "kit slot" plus a hidden full-keyboard fallback, which showed up on the KEYZONES keymap as a draggable zone sitting on top of a full-width backdrop -- two overlapping markings for one sample. Now a freshly-loaded sample maps the whole keyboard as **one** zone you can resize by dragging its edges (what you see is what plays). Existing instruments made before this can be tidied in one click with **Layout -> Auto**.
- **MIDI now plays the instrument you've selected.** When you had several instruments loaded -- especially with a multisample among them -- notes from your DAW's keyboard or sequencer ignored which instrument was selected and collided (the multisample grabbed its keys, and a single instrument grabbed everything else), so it didn't matter what you clicked in the list. MIDI now plays the **selected** instrument, plain and simple; a multisample still chooses the right sample per key inside that instrument. (Trade-off: triggering a kit spread across *separate* instrument slots by note is gone -- build the kit as one multisample instrument on the KEYZONES tab instead.)
- **Ctrl+Z / Ctrl+Y no longer escape to the host during a long undo streak.** When you pressed Ctrl+Z many times in a row (e.g. undoing several sample loads back to empty) and then Ctrl+Y to redo, keyboard focus could drift to the host and the first redo hit Reason's undo (removing the device). WiseTrax now re-claims the plugin window's keyboard focus on every undo/redo -- including the presses with nothing left to undo -- so the whole undo/redo path stays inside the plugin.
- **Ctrl+Z no longer escapes to the host after using a right-click menu.** After picking an item from any right-click menu in the plugin, keyboard focus could land back on the host instead of WiseTrax -- so the next Ctrl+Z hit the host's undo (in Reason, that removes the device). Now every popup menu hands keyboard focus back to the plugin window when it closes, so undo/redo stays inside WiseTrax. Most visible with the new Delete Selection item, but it covers every menu.
- **Folded sections stay the way you left them.** Whether each section -- TRANSPORT, SAMPLES, RHYTHM, TRACKER -- is folded or open is now remembered with your project (and across quit/relaunch in the standalone). Previously the TRANSPORT and RHYTHM panels always reopened folded, and the SAMPLES/TRACKER folds could reset to their defaults when you reloaded a project.
- **Loading a folder of one-shots no longer scrambles the keymap.** When you added several samples that share the same detected pitch (e.g. a pack of melodic one-shots all near C-6), the auto-map could pile them onto a single key while two samples stretched across the rest of the keyboard. It now lays same-pitch samples out one per key (each at its own pitch); genuine multisamples with distinct pitches still spread across the keyboard as before.

## [0.1.6] - 2026-06-09 - Closed Beta

### Added
- **Navigate the waveform when zoomed in.** A navigator strip appears along the bottom of the sample waveform whenever you're zoomed in: it shows a miniature of the whole sample with a highlighted box marking the part you're currently viewing. Drag the box to move through the sample, click anywhere on the strip to jump there, or **drag the box's left/right edge to zoom** (the opposite edge stays put). (Shift + mouse-wheel scrolls too.) It hides itself when the whole sample already fits on screen. The mouse cursor is also clearer over a waveform now: an I-beam where a drag starts a new selection, a left-right arrow over a selection edge, loop marker, or navigator-box edge you can drag, and a hand over the navigator.
- **Delete part of a sample and close the gap.** Drag-select a region in the waveform editor and press the new **Delete** button to remove that chunk -- the audio after it slides back to meet the audio before it, so the sample gets shorter with no silent gap left behind. (This is a true ripple delete, unlike Silence Range, which leaves a same-length stretch of silence.) Undoable with Ctrl+Z. The button lights up only when you have a selection.
- **Real tempo detection.** The inspector's TEMPO now shows a loop's actual BPM when the file knows it -- read straight from the file (ACIDized WAVs / Apple Loops) or from a "...128bpm..." in the filename -- with a green dot. When there's no such info it falls back to a length-based guess shown with a gold dot, so you can tell an exact tempo from an estimate. One-shots show no tempo.
- **Set a sample's root note yourself.** Click the ROOT field in the instrument inspector and pick any note from the menu -- handy when the auto-detect gets it wrong, or to tune a loop or drum on purpose. It retunes instantly and is undoable (Ctrl+Z). Hovering the ROOT field now explains, in plain words, what the root note does, and the text follows the current note.
- **See where a sample's root note came from.** The instrument inspector's ROOT field now has a small status dot: green = taken from the file's own info, gold = worked out by listening to the audio (hover to see how confident it is), grey = default / not detected (loops and drums are left alone). The note still shows what plays -- the dot just tells you how it was decided, so a default C-5 no longer looks like a confident detection.
- **Single-note samples tune themselves when you load them.** Drag in a sample that's one clear pitch -- a synth or guitar note, a tonal stab -- and WiseTrax works out its note and sets the root so it plays in tune across the keyboard, no manual tuning. It trusts the file's own info first (ACIDized WAV / Apple Loops root note) and listens to the audio when there isn't any. Loops, riffs and drum hits are deliberately left alone -- they keep playing at their recorded pitch -- so only clearly-pitched one-shots get tuned. The note it found shows in the instrument inspector's ROOT field.

### Changed
- **Bigger, clearer sampler tool buttons.** The waveform editor's tool buttons (Normalize, Reverse, Crop, Cut, and the rest) now use larger text and a little more height so they're easier to read. When the panel is narrow or zoomed in (e.g. 200%), a button that no longer fits its label shows just its icon instead of a cut-off word like "R..." -- hover any icon to see its full name.

### Fixed
- **Instrument inspector no longer breaks when the panel is narrow.** Dragging the panel to its narrowest left the ROOT field holding empty space while TEMPO collapsed to an unreadable "TEM 1". The two fields now share the width evenly and their text auto-fits, so both stay readable at any panel width -- and the sample details below them are no longer pushed off the bottom.
- **Offset info is back on the big sampler.** The hover chip that reads out a position in the sample as an offset command (9xx / Oxx) works again in the full-size sampler view, and its "i" toggle button turns it on and off there. It had stopped appearing on the big view when that view became its own panel; the small waveform strip above the grid was never affected.
- **Clearer waveform cursors.** Over a sample's waveform you now see an I-beam where a click-drag starts a new selection, and a left-right arrow when you hover an existing selection's edge (or a loop marker) to drag it -- so it's obvious what a drag will do. The selection edge under the cursor also highlights. Previously a "grab" hand appeared when zoomed in, which suggested you could drag to scroll the waveform when you actually couldn't.
- **Undo/redo label no longer drops its last letter.** The action pill that flashes on Ctrl+Z/Ctrl+Y ("Undid: Edit note") was clipping the final character of the action name -- it read "Edit not". It now shows the full name.
- **Menu text no longer spills outside the box.** Right-click menus drew their keyboard shortcuts ("Insert", "Ctrl+A", "Shift+Delete"...) and the submenu arrows hard against -- and sometimes past -- the right edge. They now sit inside the menu with a clean margin. Affects every menu in the plugin.
- **Loading a sample is now undoable -- and won't drop the plugin.** Dropping a sample (or loading one from the instrument list) can be undone with Ctrl+Z, the same as every other edit: undo a load onto a new slot and the slot disappears entirely; undo a load that replaced an existing sample and the previous sample comes back. This works the same from every place you can load -- the sample tabs up top, the instrument list on the right, drag-and-drop, "Load sample...", multi-file and folder loads. Previously a load left an empty leftover slot when undone, the very first load couldn't be undone at all, and undoing right after dropping on the sample tabs could remove the whole plugin from the project. All fixed.

## [0.1.5] - 2026-06-07 - Closed Beta

### Added
- **Undo and redo buttons in the toolbar.** Two labeled buttons next to the logo show what your next undo or redo will do -- "Undo Edit note", "Redo Paste" -- so you can see what's queued without guessing. They grey out when there's nothing to undo/redo, and work from any view (the tracker grid or the sampler), since they share the same history as Ctrl+Z. Hover either one for the action name and the keyboard shortcut.
- **Undo/redo now tells you what it did.** When you press Ctrl+Z or Ctrl+Y, a small label briefly appears showing the action -- "Undid: Paste", "Redid: Edit note", "Undid: Delete instrument", and so on -- so you always know what just changed. It shows wherever you're working (the tracker grid or the sampler). Pressing undo/redo with nothing left says "Nothing to undo" / "Nothing to redo" instead of doing nothing silently. Cell edits are named by what you actually changed -- "Edit note", "Edit instrument", "Edit volume", "Edit effect", or "Clear" -- rather than a blanket "Edit note".
- **Instrument list panel.** A foldable panel on the right lists every instrument in the song in a scrollable list, so you can reach any of them (and add a new one with "+ Add instrument") no matter how many there are. Drag its left edge to resize it, or collapse it to a thin tab to give the grid more room; the size and folded state are remembered. Collapsing and reopening it slides smoothly, and the collapsed tab shows the section colour, an open arrow, and a vertical "INSTRUMENTS" label. Click a row to pick that instrument and hear it at the same time -- a short preview plays it at the current octave (imported modules preview at the correct pitch too). Empty slots stay silent. Each row with a sample shows a small waveform of it on the right, so you can spot the sound you want at a glance.

- **Sample inspector.** Selecting an instrument shows a panel under the list with that sample's details: root note, tempo (when known), length, sample rate, channels, loop type, and how many patterns it's actually used in. It also draws a waveform of the sample, with the loop region marked in green. A small line tells you if it's a native sample or an imported module sample, and hovering any field gives a plain-language explanation (with the precise detail for power users). Empty slots show a tidy placeholder. You can preview the sample right there with a play/stop button, plus a loop toggle: off plays the sample once through, on repeats it until you press stop. While it plays, a marker rides the waveform and the play button follows the real sound -- it stops exactly when the sample does. An "Auto-preview" toggle controls whether clicking an instrument in the list plays it: turn it off to browse silently and use the play button to hear only what you choose. The inspector can be folded away by clicking its title row -- it slides shut to give the instrument list more room and slides back open when you click it again, so the sample info is never lost when the panel gets short. The Auto-preview setting and the folded state are both remembered per instance.

- **Manage instruments by right-click.** Right-click an instrument -- its tab up top, or a row in the list -- to Rename, Duplicate, or Delete it. The list's menu matches the rest of the app's menus.

- **Load several samples at once.** Drag a batch of audio files onto the instrument panel -- each file becomes its own instrument slot, instead of only the first one loading. You can also right-click a slot, choose Load sample, and select more than one file in the picker.

- **"+" in the instrument panel header.** Add a new instrument straight from the top of the list, without scrolling a long list down to the "+ Add instrument" row. The list jumps to the new slot so you can name it or drop a sample on it right away.

- **Load samples from the instrument list, not just by dragging.** Right-click an instrument in the list to load a sample into it -- or replace the one it already has -- and you can pick several files at once. Right-click the "+" (in the panel header or the "+ Add instrument" row), or any empty space in the list, to choose between adding an empty slot and loading sample files straight into new slots.

- **Load a whole folder of samples at once.** Drag a folder onto the instrument panel, or use "Load folder..." in the "+" menu, and every audio file inside loads into its own slot, in name order (kick1, kick2, ... kick10). A short summary tells you how many loaded, and warns if the kit filled up before they all fit.

- **Drag an instrument onto the grid to place a note.** Drag any instrument from the list onto the pattern editor and drop it on a cell -- it writes a note there set to that instrument, at the same pitch you hear when you preview it (the sample's natural playback pitch). The target cell highlights and shows the note before you let go, and it's a single undo.

- **Undo for instrument changes.** Adding, duplicating, and deleting an instrument can now be undone with Ctrl+Z (and redone with Ctrl+Y or Ctrl+Shift+Z), the same key that undoes grid edits. Undoing a delete restores the instrument together with the notes that referenced it.

### Changed
- **One set of undo/redo buttons for the whole plugin.** The sampler's own undo/redo arrows were removed -- the toolbar undo/redo buttons (and Ctrl+Z / Ctrl+Y) already cover the sampler, so there's a single place to undo from no matter which view you're in.
- **The toolbar stays usable when the window is small or zoomed in.** When space gets tight, the undo/redo buttons and the MIDI chip drop their text and shrink to icons (their tooltips still spell everything out) instead of overlapping each other. They return to full labels when there's room again.
- **The MIDI drag-out chip moved next to the other controls.** The green "MIDI" chip (drag it onto your DAW to drop the current pattern as a MIDI clip) now sits in the right-hand control cluster, next to the on-screen-keyboard button, instead of out on its own next to the logo. The toolbar reads more as one tidy group, and frees space on the left.
- **Deleting an instrument that's in use now asks first.** If an instrument is used by notes in your patterns, deleting it (from the list or a tab) shows a confirm that tells you how many notes it affects; an unused instrument deletes without a prompt.
- **The window resizes cleanly now.** It has a sensible minimum size so the layout never collapses into overlapping or cut-off controls, and when the pattern/sequence row gets narrow, the Oct / Step / LPB / Page / note-off controls tuck into a "..." button (click it to reach them) instead of overlapping the pattern slots.
- **Calmer, clearer colour scheme.** Panel frames and most controls are now neutral, and each theme's accent colour is reserved for what's active or selected (the playing row, the chosen instrument, primary buttons) instead of tinting everything. The SAMPLES / TRACKER / INSTRUMENTS sections carry a small colour on their badge to tell them apart -- one coherent colour family per theme (a blue family on the default themes, teal on Petrol, amber on Phosphor) rather than three unrelated colours, so the panels read as a set. The settings gear, fold arrows, and the title now follow this on all four themes, and the on-screen-keyboard button is drawn as real piano keys (and lights up while the keyboard is open).

- **Pick a pattern from a searchable grid.** "Change to pattern" now opens a compact picker -- a grid of pattern numbers you can type-to-filter (type a number to jump, arrows to move, Enter to pick) -- instead of a long scrolling menu. Every right-click menu now shares one consistent themed look, too.

### Fixed
- **Deleting or duplicating an instrument now updates the grid display immediately.** The pattern grid already renumbered its instrument references and played the right sounds, but it wasn't being redrawn after a delete/duplicate, so it could keep showing the old numbers. It now refreshes right away, so what you see matches what plays.
- **The layout stays clean at high zoom and small window sizes.** When there isn't room for both the instrument panel and a usable tracker, the instrument panel now folds to its tab on its own (and reopens when you make the window bigger), so the controls never overlap -- and the window never resizes itself.
- **Setting a loop in the sampler now links to the sample inspector and actually loops.** When you set a loop end (or "Fit Loop to Whole Sample", or drag the loop-end handle), the loop turns on automatically, and the inspector panel updates to show the loop and its region right away. Editing or cropping a sample also refreshes the inspector. (Setting only the loop *start* still leaves it as a start marker, and imported module loops are untouched.)
- **The on-screen keyboard button glows gold when open**, instead of a blue frame.
- **Duplicating or deleting an instrument no longer breaks the grid.** When you add or remove an instrument, the pattern cells that reference instruments are renumbered to follow the change, so notes keep playing the sample they always did (previously, duplicating an instrument shifted the others and the grid started playing the wrong sounds).

## [0.1.4] - 2026-06-04 - Closed Beta

### Added
- **Pattern view modes (Settings -> Pattern view).** Choose how the grid behaves during playback: **Cinema** (the playhead stays put and the grid scrolls, as before), **Classic** (the grid stays still and a highlight bar moves down the rows), or **Locked** (Classic, but the view doesn't follow playback so you can edit one pattern while the song plays elsewhere). On big / 4K displays, Classic and Locked redraw far less of the screen. Saved per plugin instance.
- **Import FastTracker II modules (.xm).** Drag an `.xm` file onto the plugin and it loads as a full editable song - patterns, instruments, and the sequence, at the correct pitch automatically (no manual octave setting). On import you get a summary showing the module's original **tempo** (so you can match your DAW's BPM - the plugin follows the host tempo), the pattern/instrument counts, and a note of anything that was approximated.
- **More actions can be undone.** Ctrl+Z (and redo) now covers renaming a track, muting/soloing tracks (including "mute all" and exclusive-solo - one undo restores the whole previous mute/solo state), changing a track's colour, volume, or pan (a whole fader drag is a single undo), and adding, removing, renaming, auto-marking, and clearing bookmarks (including "clear all bookmarks in song" in a single undo), alongside the pattern-grid edits that were already undoable. Editing the sequence strip is now undoable too - reordering pattern slots (drag), inserting/removing/pasting a slot, stepping a slot to a different pattern, setting the loop-range brackets, renaming a pattern, and adding, duplicating, making-unique, deleting, or clearing a whole pattern. Undo now covers essentially every edit in the tracker. (Clearing or deleting a pattern used to warn "this cannot be undone" - it now says so correctly: you can undo it.)
- **The footer tells you when an effect's value is capped.** For effects with a limited range (Set Volume, Set Global Volume), the status strip at the bottom of the grid now shows the limit, and if you enter a value above it, shows what actually plays - e.g. `C9F -> 7F` - so a value that gets clamped is never a silent surprise.

### Changed
- **The tracker now keeps the keyboard from the host.** Clicking anywhere in WiseTrax reclaims keyboard focus from the DAW, so SPACE (Edit mode), Ctrl+Z (undo), and all the tracker keys reliably reach WiseTrax instead of the host - even right after you've pressed the host's Play/transport. Previously, after touching the host the next Ctrl+Z could be swallowed by the DAW (in Reason that removed the device).
- **Volume now reads in decibels and feels right.** The volume pop-ups (track, note, and the Cxx volume effect) show the level in dB - e.g. `-5.8 dB`, with `-inf dB` at silence - and keep the 0-127 value and hex underneath. The fader also uses a perceptual (logarithmic) taper, so moving it changes loudness evenly across the whole throw instead of barely doing anything near the top, and shows a dB scale down the side (0, -6, -12, -24 dB) with the 0 dB unity mark highlighted. The stored value and the sound are unchanged - this is display and feel only, so existing songs are identical. The "Half" quick-button now sets about half the perceived loudness (~-10 dB) instead of half the raw number, so it actually sounds half; "Mute" and "Full" are unchanged.
- **Auto note-off now starts OFF.** The "auto note-off on key release" toggle (in the sequence strip, between LPB and the + button) now defaults to off. Recording no longer drops a Note-Off into the grid when you let go of a key - you write note-offs yourself (CapsLock writes one in the focused cell), the classic tracker way. Turn the toggle on any time you want the automatic note-offs back.
- **A couple of keystrokes now explain themselves instead of doing nothing.** Pressing paste with an empty clipboard shows "Nothing to paste", and interpolate without a 3+ row selection shows "Select 3+ rows to interpolate", in the footer - rather than silently failing.
- **Retrigger volume modes now read in plain language.** The first digit of a retrigger (`Rxy`) is a volume mode - an opaque `0`-`F` that nobody could guess. Now the footer, the effect picker, and Help all spell it out: `R71` reads "vol: halve", `RF1` reads "vol: double", `R03` reads "vol: no change", and so on. The Help entry was also corrected (it wrongly said retrigger counts "ticks" and listed the wrong volume table).
- **Retrigger keeps rolling on short samples - and a second one changes the rate.** A retrigger (`Rxy` / `E9x`) used to go quiet after the first hit when the sample was shorter than the gap between hits - so a short hi-hat couldn't roll at `R03`/`R04`. Now it re-strikes the note each time, so it rolls cleanly no matter how short the sound is, and keeps going until you stop it (a new note, a note-off, `R00`, or pressing Stop). Putting a different retrigger further down the same track now re-aims the speed with no gap at the switch - e.g. `R03` then `R02` then `R01` gives a clean accelerating fill. An instrument's envelope shape is preserved on every retriggered hit.
- **Two-setting effects now show two labelled faders.** Effects that pack two values into one - Volume Slide (Up / Down), Vibrato (Speed / Depth), Tremor (On / Off), Multi-Retrigger, Pan Slide and more - now show two named faders instead of a single slider, so you set each part directly with no hex in your head. Works the same whether you pick the effect from the menu or from "Choose Effect...".
- **"Choose Effect..." moved to the top of the cell right-click menu** so the by-name effect picker is the first thing you reach.
- **Clearer volume names.** The menus now spell out which volume you're changing: "Track Volume" (the whole track), "Note Volume" (how loud one note is), and "Set Volume (Cxx effect)" (the effect-column command). Each dialog's title matches its menu item.
- **Typed notes play at full volume by default.** Notes you type now leave the volume column blank and play at the instrument's full volume - the standard tracker behaviour - instead of being stamped at a fixed lower level. Type a value into the Vol column only when you want one note quieter.
- **Hover tooltips look like the rest of the app and read correctly.** Tooltips now use the themed rounded-card style instead of the plain box, the volume column tooltip says "7F = full (127)" (it wrongly said FF), and the two extra effect columns (F2 / P2) now have tooltips too.

### Fixed
- **Imported XM samples with a zero-length loop no longer buzz.** Some `.xm` files mark a sample as looping but give the loop a length of zero. These now play once (one-shot), the way FastTracker 2 plays them, instead of being forced into a 1-sample loop that buzzed.
- **Imported module notes play from the start of the sample again.** A note from an imported module (`.xm`) now begins at the very start of the sample - its attack - the way the original tracker plays it, instead of jumping straight into the sample's loop. Each note's onset now sounds correct (this also fixed a subtle "the next note sounds different" character on sustained/looped instruments). Loops you set yourself on a sample in the sampler are unchanged - they still start at the loop point.
- **Clicking a sample in the sampler plays it at the right pitch.** After the XM-import octave fix, clicking a sample to audition it played an octave too low (slow-motion) for imported modules. It now previews at the correct playing pitch (matching the keyboard's note), so you can actually listen to imported samples. (Dropped-WAV samples were already correct.)
- **The pattern grid scrolls smoothly during playback.** It used to jump a whole row at a time, which read as juddery / hard to follow - especially on large or 4K displays. The rows now glide between lines, so the grid stays readable while it moves. This applies to Cinema (always) and to Classic when it actually scrolls (Classic stays perfectly still - and clearest - when zoomed out so the whole pattern fits). Locked stays static for editing while the song plays.
- **Scrolling the pattern slots no longer jumps playback.** When there are enough patterns to need the ? ? overflow arrows, clicking an arrow to scroll the slot strip (especially clicking fast) used to leap the song to a slot deep in the track. The arrows now only scroll the view; jumping to a slot still happens only when you double-click the slot itself.
- **Ctrl+Z no longer risks removing the plugin.** On a fresh load, if you only touched the sequence strip (added or reordered patterns) and never clicked the grid, keyboard focus stayed with the host - so Ctrl+Z went to the host, which read it as "undo = remove the device" and deleted WiseTrax. The grid now takes keyboard focus when the plugin opens, and the sequence strip hands focus back after every edit, so Ctrl+Z always lands inside WiseTrax.
- **Ctrl+Z behaves while a value pop-up is open.** With a volume/pan/effect pop-up open, pressing Ctrl+Z now reverts that pop-up's in-progress change back to where it opened (for the sliders) instead of doing nothing - and it can no longer slip past the pop-up to undo an unrelated earlier edit. Esc still cancels. Covers every value picker and dialog, not just one.
- **Mouse-wheel scrolling keeps the cursor on screen.** Scrolling the pattern grid with the wheel moves the cursor, but the view used to stay frozen so the cursor scrolled out of sight (only the arrow keys brought the view along). Now the view follows the cursor on a wheel scroll too, exactly like the arrow keys.
- **Ctrl+C / Ctrl+X now work on a single cell.** Copy and Cut used to do nothing unless you'd made a selection first - on a single cell under the cursor they silently failed (so a later paste replayed whatever you last copied). Now `Ctrl+C` / `Ctrl+X` copy or cut the cell under the cursor when there's no selection, like every tracker.
- **The "Welcome" card now sits dead-centre.** It was drifting slightly to the right and down at larger sizes; it's now properly centred at any zoom.
- **Retriggers no longer click.** A fast or sustained retrigger (a held bass, a roll) used to click each time it restarted the sound, like a bad loop point. Restarts now crossfade smoothly, so rolls and stutters are clean.
- **Retrigger now repeats at exactly the rate you set.** A note with a retrigger effect (`Rxy` multi-retrigger or `E9x`) used to fire one row too slowly and with an uneven first gap - so `R04` on a kick didn't line up as a clean four-on-the-floor. Now the spacing is exact and even from the first hit: `R04` = a hit every 4 rows, `R02` = every 2, `R01` = every row.
- **No more crash when editing a sample's loop or cropping it while it plays.** Setting a loop region (or cropping) on a sample that was sounding - especially at high tempo with a note retriggering fast - could crash the plugin (and the host) in the audio engine. The loop now plays through safely even mid-edit; a loop that briefly has no length just plays to the end instead of crashing.

## [0.1.3] - 2026-06-02 - Closed Beta

Pick effects by name, every value pop-up and confirm/rename/number dialog now
opens inside the plugin window (nothing hides behind the host), and a cell's
volume is capped at full so it can't overdrive.

### Added
- **Rename Track uses a new in-window dialog.** Renaming a track now opens a themed dialog *inside* the plugin (a dimmed background + a centered card) instead of a separate system window that could hide behind the plugin. (More text/confirm dialogs move to this next.)
- **Keyboard and scrub control for the value pop-ups.** The Set Volume / Set Pan pop-ups now take the keyboard: arrow keys nudge the value (Shift or PageUp/PageDown for bigger steps, Home/End jump to min/max), Enter applies, Esc cancels back to where it started. You can also drag the number itself to scrub it (hold Shift for fine), or double-click it to reset to the default. The track header briefly flashes when its pop-up opens, so you can see which track you're editing.
- **More cell pop-ups use the same picker.** Right-click a cell -> Effects -> (any effect), and right-click -> Quick FX -> Set Volume / Set Pan / Set Tempo / Fade In / Fade Out, now open the same fader-style picker as the track Volume/Pan controls instead of the old small sliders (tempo and fade length show as a plain number). Set a value and press Enter to apply (a single undo step); Esc cancels.
- **Right-click menus follow your theme.** The right-click menus now use your theme's colours with rounded corners, a soft shadow, and an accent highlight on the hovered item, instead of the plain system-grey menu.
- **Set Volume on a cell uses the picker too - and no longer hides behind the plugin.** Right-click a cell -> Set Volume... (the volume column) now opens the same in-window picker, with a **Clear** button to remove the volume; it applies across a selection. Previously it was a plain box that could slip behind the plugin window.
- **Choose an effect by name.** Right-click a cell -> Effects -> "Choose Effect..." opens an in-window dialog where you pick the effect from a list by its plain-language name and set its value on a slider (shown in decimal and hex), with the effect's meaning displayed below. Applies across a selection and can be undone. Replaces the old hex-only box and reaches effects that box couldn't enter.
- **Value pop-ups have an OK button + bigger text.** Set Volume / Set Pan / effect-value pop-ups now have a clear **OK** button (a visible mouse accept, alongside Enter / click-away), all use the same fader, and their text is larger so it reads on big / high-DPI screens.

### Changed
- **Confirm dialogs open inside the plugin, with a clearer warning.** The "Delete Track", "Clear pattern", and "Delete pattern" confirmations now open as in-window dialogs (they can't hide behind the plugin window anymore). The title and the confirm button are shown in red, and the safe option - Cancel - is selected by default, so pressing Enter cancels instead of deleting; you click the red button (or Tab to it) to confirm. Long messages wrap onto more than one line.
- **Rename dialogs open inside the plugin too.** Renaming a pattern (song strip) and naming a section/bookmark (grid gutter) now open the same in-window text dialog as Rename Track, instead of a separate system window that could hide behind the plugin.
- **Number-entry dialogs open inside the plugin.** Go To Line, Auto-mark Every N Lines, and the custom Pattern length dialog now use the same in-window dialog instead of a separate system window.

### Fixed
- **The volume column now tops out at full instead of going past it.** A cell's volume now stops at 127 (7F = full) everywhere you set it - the Set Volume pop-up, typing in the grid, dragging, the mouse wheel, and interpolate. Before, it allowed up to 254, and anything above 127 played louder than full (a doubling at 254) which could distort. Existing patterns that were set above 127 now also play at full rather than overdriving.
- **Effect value sliders stop at each effect's real maximum.** The Set Volume effect slider now stops at 127 (7F) and Set Global Volume at 64 (40), instead of running to 255 where the extra range did nothing. The picker's range follows the chosen effect.
- **Menu shortcuts no longer get cut off.** Right-click menu keyboard shortcuts (e.g. Ctrl+Shift+V, Shift+Delete, Alt+X) now show in full instead of truncating to "Ctrl...". Other custom labels (pattern names in the ghost view, card headers, sampler buttons) now shrink to fit rather than clip silently.
- **Default track names are consistent.** The four starting tracks are now named "Track 1"-"Track 4" to match the names new tracks get (they were "1"-"4").
- **Value pop-up text no longer gets cut off.** Titles and the one-line description in the Set Volume / Set Pan / effect pop-ups now shrink to fit (and the description can wrap to two lines), so longer effect explanations show in full. Also fixed a doubled word in effect titles ("Set Set Volume" -> "Set Volume").

## [0.1.2] - 2026-05-31 - Closed Beta

Reworked Set Volume and Set Pan pop-ups, a fix for the pop-ups that could hide
behind the plugin, and What's New now opens itself once when you update.

### Added
- **Set Volume picker.** Right-click a track header -> Set Volume now opens a slider with the volume shown as both a big decimal *and* hex, a tick at the default, and one-click **Mute / Half / Full** buttons. It follows your theme, scales with the plugin zoom, and stays inside the window.
- **Set Pan picker.** Set Pan uses the same picker - a left?right slider with a centre point, an "L 32 / C / R 14" readout, and one-click **L / C / R** buttons. Both pop-ups share the same look (rounded panel, soft shadow) and follow your theme.
- **"What's New" opens automatically after you update.** When you load a newer build of WiseTrax, the What's New page pops open once on its own so you can see what changed - then stays out of your way until the next update. Brand-new users still get the friendly welcome card instead.

### Changed
- **Number values show as decimal *and* hex together** in the Set Volume / Set Pan pop-ups - decimal first, hex alongside. (Foundation for a future option to show everything as decimal.)

### Fixed
- **Pop-up sliders no longer hide behind the plugin.** The little value pop-ups (set Volume / Pan, and the Quick FX sliders like Pitch Slide and the fades) used to open as their own floating window - which could slip *behind* the WiseTrax window after you resized the plugin, so it looked like nothing happened until you clicked the grid again. They now open *inside* the plugin window, so they always stay in front where you can see them.
- **Right-click menus and value pop-ups now open exactly where you click.** On scaled / high-DPI displays the track-header menu (and the value pop-ups) could open a couple of tracks to the *left* of the click. They now anchor precisely at the spot you clicked.

## [0.1.1] - 2026-05-31 - Closed Beta

Tracker-grid editing update: work on one sub-column at a time (copy / cut /
paste / clear), type effect letters directly, a cleaner right-click menu, and
a couple of fixes from beta feedback.

### Added
- **Version badge on the welcome card.** A small `v0.1.1` chip sits in the top-right of the welcome card - click it to jump straight to "What's New" in Help. Handy for knowing which build you're on when reporting bugs.
- **Copy only the FX (or Note, or Vol) column.** New `Ctrl+Shift+C` copies just the sub-column band under the cursor - Note (with instrument), Vol, or FX. A plain `Ctrl+V` then overlays only those fields onto the destination cell and leaves the others alone, so you can move FX patterns around without touching the notes. Also available from the right-click menu under Copy -> Whole Cell / Note Only / Vol Only / FX Only. Plain `Ctrl+C` still copies whole cells. Reported by beta tester.
- **Scoped Cut and smart-paste partner.** `Alt+X` cuts just the sub-column band under the cursor (mirror of `Ctrl+Shift+C`; uses Alt because every major DAW host intercepts `Ctrl+Shift+X` for its own "Cut Time"). `Ctrl+Shift+V` does the smart-paste: same scope-aware overlay as plain `Ctrl+V`, but if your cursor isn't already in the matching sub-column band, it jumps the cursor there first and flashes the destination so you can see where it landed. The right-click Cut and Paste menus also gain the 4-scope submenu - and `Paste -> FX Only` (etc.) lets you spray just one sub-column out of a whole-cell clipboard without re-copying.
- **Note Off in the right-click menu.** The `1` key has always written a Note Off (the green `OFF` release marker) in the note column - now it's also in the right-click menu, near the top, with its `1` shortcut shown, so it's easy to find. Writing it keeps any FX already on the row.
- **Type effect letters straight into the FX column.** In the Fx / F2 column you can now type the extended effect letters directly - `G H K L O P R T X` - instead of only hex digits or the right-click menu. (e.g. cursor on the Fx letter, press `R` -> writes a Multi-Retrigger.) Hex `0-9 / A-F` still works as before.
- **Scoped Clear.** `Alt+Delete` (or `Alt+Backspace`) wipes only the sub-column band your cursor is in - Note (with instrument), Vol, or FX - across the selection if you have one, or just the cursor cell. Plain `Delete` still wipes the whole cell so muscle memory is preserved. The right-click "Clear" menu now opens the same 4-scope submenu as Cut/Copy (Whole Cell / Note Only / Vol Only / FX Only), and scope items grey out when there's nothing in that band to clear - so the menu shows at a glance what would actually do something. Footer pill says "Cleared: fx" (or note/vol) in the matching column colour. Uses `Alt+Delete` instead of `Ctrl+Delete` because Reason, Reaper and Cubase all bind that chord at the host level - it would never reach the plugin.

### Changed
- **Cleaner right-click menu: Presets / Quick FX / Effects.** The old "Insert Preset" menu mixed musical templates with effect shortcuts that duplicated "Set Effect". It's now three clear menus: **Presets** (Beats, Chords - ready-made musical content), **Quick FX** (guided slider helpers: Pitch Slide, Fade In/Out, Set Volume/Pan/Tempo, Loop Pattern, End Pattern Early), and **Effects** (renamed from "Set Effect" - the full effect picker by code, including the percent `O` offset). No more duplicated entries across menus.
- **Right-click menu now shows keyboard shortcuts** next to every action that has one (Clear / Insert Row / Delete Row / Select All / Go To Line / Transpose / Interpolate Volume in addition to the existing Cut / Copy / Paste). Pure visual addition - no behaviour changed.
- **Copy/cut/paste now show a status message** in the bottom bar (e.g. "Copied: FX", "Pasted: note") - a small colour-coded pill that fades out after a couple of seconds, right under the grid where your eye already is. The scope word is tinted in its column colour (note/volume/FX) so you can tell what you grabbed at a glance.
- **Richer, friendlier welcome card.** The first-run "Quick start" card is rebuilt: colour-coded sections, a CLIPBOARD and SELECT section, a highlighted "right-click any cell" pro tip, an "Open the full guide" link to Help, and it now scales up so it's readable on big screens. The dismiss controls changed: a small **Close** button hides it for now (it returns next time), and a separate **"Don't show again"** checkbox hides it for good (re-enable any time in Settings -> General).

### Fixed
- **The percent Sample Offset (`O`) is now in the right-click effect menu.** It already worked if you typed `O`, but it was missing from the Set Effect list, so it was easy to think it wasn't there. The frame offset is now labelled `9 Sample Offset (frame)` and the percent one `O Sample Offset (percent)` so the pair reads clearly.
- **Right-click "Clear" now clears the clicked cell** when there's no selection. Previously it was a silent no-op in that case (the Delete key always worked though). Menu and key now agree.
- **Note entry no longer wipes the effect columns.** Typing a note (PC keyboard, MIDI piano, or drum pad) on a row that already has an effect (`R03`, `E 00`, etc.) now preserves the effect - same as every classic tracker. Previously, typing a pitch silently cleared any effect already on that row. Reported by beta tester. Commit `6fc45a5`.

## [0.1.0] - 2026-05-29 - Closed Beta

First closed beta. **Early build:** plenty is still missing or half-built and
there will be bugs - please report them (as specifically as possible) in the
Discord.

### Highlights
- **Sampler + tracker in one** - drop a `.wav/.aif/.flac/.ogg` and play it from a
  MIDI clip, a MIDI keyboard, or the QWERTY keys.
- **Tracker grid** with multi-pattern **Song mode** that follows the host
  transport and tempo (SONG / PATTERN toggle).
- **Auto BPM + slice detection** on dropped loops, with a dedicated sampler view
  and waveform tools (normalize, reverse, fades, crop, loop, slice).
- **Pattern -> MIDI drag-out** - drag the green "MIDI" chip in the top bar onto
  your DAW to drop the current pattern as a `.mid` clip. Notes, velocities and
  per-instrument channels carry over; tracker effect columns don't (by design).
  Optional drag-out velocity override in Settings -> MIDI.
- **On-screen keyboard**, multiple instruments, **four dark themes**, free
  whole-plugin zoom (50-200%) and host-resizable UI.
- **In-app Help & Settings**, per-instance and saved with the host project.
- **Community:** Discord link in the Help panel.

### Known limitations (beta)
- Many planned features are not in yet; expect rough edges and bugs.
- Tracker effect columns and sub-line timing are not exported in MIDI drag-out.
- Pattern-effect tempo changes (Fxx) aren't reflected in SONG mode yet.
