Contributions to ztrackerprime

Pulled 2026-06-01 from https://github.com/m6502/ztrackerprime and the local clone at /Users/esaruoho/work/ztrackerprime.

Summary

Merged pull requests

#DateTitle
#1572026-05-31Lua: midimacro :send(), instrument CC envelopes; README update
#1562026-05-31ci: run ctest (incl. Lua API self-test) on the macOS jobs
#1552026-05-31Lua: notifiers (zt.on/off/fire) for play/stop/row/idle events
#1542026-05-31Lua: full API self-test (lua/selftest.lua) + --lua-test + ctest
#1532026-05-31Lua console: wrap long scrollback lines instead of clipping
#1522026-05-31Lua console: clip scrollback lines to the console width
#1512026-05-31Lua console: MIDI macros, arpeggios, song message, instrument extras, file I/O
#1502026-05-31Lua console: full cell access, order list, note names, constants
#1492026-05-31Lua console: object layer for patterns, tracks, transport
#1482026-05-31Lua console overhaul: Tab cycling, rprint/oprint/help, and Renoise-style objects
#1472026-05-31Palettes: fix Hotdog Stand (bright yellow), alphabetize list, doc headless screenshots
#1462026-05-31Don't bleed the playback status line over a modal popup (ESC menu)
#1452026-05-31MainMenu: highlight the current page when reopening the ESC menu
#1442026-05-31Pattern Editor keymap: Block Functions family on Ctrl + Ctrl-Shift-P Song Duration
#1432026-05-31keybuffer: treat AltGr as plain Alt for shortcuts (KDE/X11 fix)
#1422026-05-30skill: refresh ztrackerprime contributor skill (drift fixes + foot-guns)
#1392026-05-29Add macOS -> Windows x86 (XP) cross-build script
#1382026-05-29README: fix stale minimum-resolution claim (840x480)
#1372026-05-29README: document PianoKey + Create 16 Channels, fix macOS regen command
#1362026-05-29Instrument Editor: "Create 16 Channels" for the current MIDI device
#1352026-05-29F2 F2: "PianoKey" toggle for Ableton/Logic keyjazz layout
#1342026-05-25Linux: rpath=$ORIGIN so bundled libSDL3.so.0 is found at runtime
#1332026-05-25Alt-P / Ctrl-P rebind: duplicate-pattern + paste-continuously + Song Duration
#1322026-05-18CC Envelopes v2: per-instrument, CCizer-aware (Shift+F6)
#1312026-05-18Help (F1) page: modifier+key jumps to documented shortcut
#1292026-05-14IEdit keyjazz when slider focused + Alt-P centering + Ctrl+C/V/P clipboard
#1282026-05-14CC Console: double-click reset + Ctrl+F2 drawmode cycle
#1272026-05-14Windows: Ctrl+Shift+` fires CC drawmode cycle + keyjazz audition in mouse-draw
#1262026-05-14CI: bundle CCizer banks + SysEx examples in release artifacts
#1252026-05-12CC Drawmode: one-key arm-and-draw + visual cleanup
#1242026-05-12CC Drawmode: drag-to-draw CC drawbars with the mouse (MD_CC_DRAW)
#1232026-05-12CC Drawmode: cycle through CCizer slots + Shortcuts rebind
#1222026-05-12palettes: regenerate all 7 hand-tuned ones from Schism's IT data
#1212026-05-12.gitattributes: union-merge doc/CHANGELOG.txt to stop the line-7 conflict mill
#1202026-05-12build-all.sh: one-shot wrapper around the per-platform build scripts
#1192026-05-05ztskin: port multiplatform skin compiler/decompiler CLI
#1182026-05-04Sysconfig MIDI: preserve devices on Refresh + in-your-face open errors
#1172026-05-04windows-x86-xp: static-link MinGW C++/pthread runtime so XP can launch zt.exe
#1162026-05-02midiInQueue: thread safety via std::mutex (latent race on all platforms)
#1152026-05-02Pattern Editor: Ctrl+H — Find / Replace Note popup
#1142026-05-02test: SysEx receive queue stress + concurrency suite (10th harness)
#1132026-05-02Linux ALSA MIDI input — initial implementation (needs hardware verification)
#1122026-05-02ListBox: defuse the OnSelect mousestate-clobber foot-gun
#1112026-05-02Pattern Editor: Ctrl+Shift+F — Fill Selection with Note at Cursor
#1102026-05-02Pattern Editor: ALT+SHIFT+Q / ALT+SHIFT+A — transpose selection by octave
#1092026-05-02Pattern Editor: drop stale MIDI-in queue on enter() (drawmode burst fix)
#1082026-05-02skill: freshness signal + Windows SysEx receive correction
#1072026-05-02CLAUDE.md + skill: bug reports = branch + PR + push, no asking
#1062026-05-02CC Console: fix slider value leak on file switch
#1052026-05-01ESC menu: window size & zoom presets (1024x640 to 2560x1440 3x)
#1042026-05-01Shift+F3 rename: "Paketti CCizer" + show inst/port/channel in title
#1032026-05-01Import 9 Schism Tracker palettes + reusable importer script
#1022026-05-01README: a tour of every zTracker' page (headless-rendered screenshots)
#1012026-05-01Quit confirm: "Exit zTracker?" with OK/Cancel, OK-focused, balanced layout
#1002026-04-30F12 Sysconfig: fix CCizer/SysEx folder fields (vertical overlap + width)
#992026-04-30SysEx Librarian: real ListBox file selector (matches F11/F4/Shift+F3)
#982026-04-30Headless + script CLI: run zt windowless, drive from a file, dump PNGs
#972026-04-30Skill: codify list-pane idiom + 8 page-construction invariants
#962026-04-30CC Console: real ListBox file selector + fix vanishing sibling bug + column overlap
#952026-04-30Shift+F2: ESC cancels capture/learn instead of opening main menu
#942026-04-30zt-screenshot.sh: capture by CGWindow ID (audit P17)
#932026-04-30Add CCBN roundtrip test (audit P18)
#922026-04-30Audit M9 + L15 + L16: localtime_r, recv rotation, lifetime doc
#912026-04-30Audit M6 + M7: macOS SysEx heap-alloc + recv_seq survives restart
#902026-04-30Windows SysEx receive: wire MIM_LONGDATA (audit P19, half)
#892026-04-30playback: cache *.syx macros at load (audit H3 + M10)
#882026-04-30Audit cluster: H2 + M8 + L13 + L14 + L12 (UX/correctness)
#872026-04-30Windows SysEx: poll MHDR_DONE before unprepare (audit H1)
#862026-04-30CC Console: real ValueSlider widgets + need_refresh invariant
#852026-04-30Skill + CLAUDE.md: document CCizer + SysEx pages (PRs #78-#84)
#842026-04-30Pattern row -> SysEx: midimacros named *.syx dispatch as files
#832026-04-30SysEx Librarian (Shift+F5): send .syx + auto-capture + replay
#822026-04-30SysEx I/O foundation: send (3 platforms) + receive queue
#812026-04-30CCizer: auto-route on instrument switch + drawmode badge + undo
#802026-04-30.zt format: per-instrument CCizer bank (optional CCBN chunk)
#792026-04-30CC drawmode + Learn + auto-name + F12 picker
#782026-04-29CC Console (Shift+F3) + Shift+F2/F3 reshuffle
#772026-04-29Unify Shortcuts & MIDI Mappings into one Shift+F3 page
#762026-04-29MIDI Mappings page (Shift+F3): bind 4/8 audition to MIDI input
#752026-04-29F10 Song Message: caret + cursor nav + crash signal handler
#742026-04-29Pattern Editor: configurable 4/8 audition step (0 / 1 / EditStep, default 1)
#732026-04-29Hotfix: macOS MIDI Out resilience — re-resolve endpoint by name on send failure
#722026-04-29Hotfix: F10 robustness + Load/Save list clamps at edges
#712026-04-29Hotfix: Pattern Editor 4 / 8 note audition + step (and 1 / § / .)
#702026-04-28Add CLAUDE.md — contributor notes for AI assistants
#692026-04-28ESC menu: Copy Relaunch Command -- session state to clipboard
#682026-04-28CLI flags: --help, --list-midi-in, --midi-in, --midi-clock
#672026-04-28VU meters bar formula: replace 6-level Frankenstein with linear fade
#662026-04-28Re-enable VU meters: fix crash hazards in draw_one_row + draw
#652026-04-28Hotfixes: F3 frame revert + Shift+F4 keyjazz audition
#642026-04-27MIDI Macro + Arpeggio editors + R/Z effect playback
#632026-04-27Mouse / keyboard UX: order-list click, F12 MIDI Enter/Space, run-log
#622026-04-27macOS crash fixes: MIDI-thread NSWindow + multi-MIDI-In + Cmd+Q wedge
#612026-04-27F11/F12/Ctrl+F12 layout polish + widget upstream cleanup
#592026-04-26About page: logo placement + wider text box + clean toolbar gap
#582026-04-26README: refresh for the last few weeks of merged work
#572026-04-26Global Config: configurable Post-Load destination page (F2 / F3 / F11)
#562026-04-26Translate Manu's Spanish source comments inline (English in [EN: ...])
#552026-04-26Songconfig: tighten Title/BPM/TPB label spacing; widen Title field
#542026-04-26Order List: cycle focus back when Up is pressed at row 0
#532026-04-26About page: clamp text-box height so it never overlaps the toolbar
#522026-04-26F5 Play Song: align pattern display rows with the Pattern Editor (F2)
#512026-04-25ESC main menu: Schism-style discoverable navigation + adjacent UI fixes
#502026-04-25Minor tweaks: status messages, help nav, midimacro/F10 unblock, Ctrl-Q quit
#492026-04-22MIDI In: optional tempo chase from incoming MIDI Clock (0xF8)
#482026-04-22CI: tag-triggered cross-platform release packaging
#462026-04-21UI polish: F1 toggle, F3 row alignment, F12/Ctrl+F12 layout, file-load typeahead
#452026-04-21Fix remaining macOS build warnings
#422026-04-18Fix -Winconsistent-missing-override warnings on macOS AppleClang
#412026-04-18Lua Console: fix invisible rendering, dead keyboard, and swallowed shortcuts (closes Lua part of #28)
#402026-04-18Rock-steady MIDI timer: monotonic clock, drift-free schedule, no UAF on stop
#392026-04-17macOS UI polish: toolbar overlap, column alignment, focus cycle, keydebug, keybindings editor
#332026-04-16macOS app bundle, keyboard support, and UI layout updates
#322026-04-16Add palette editor
#312026-04-16Add platform build scripts
#292026-04-15macOS .app bundle + window_icon + auto build-date + § key on Finnish/EU layouts
#262026-04-14CUI_RUSure: Enter fires focused Yes/No button on same frame
#242026-04-14Help text: uniform CMD-X/ALT-X on macOS, normalize source lines
#232026-04-13mouse-wheel zoom: preserve current window size (fixes #15 feedback)
#222026-04-13add Humanize Velocities (ALT+H) — Paketti-inspired
#202026-04-13Add Multichannel .MID and per-track .MID export
#182026-04-13UX polish: page title F-key labels + pattern editor row alignment + statusmsg bleed fix
#172026-04-13Add GitHub Actions CI: Windows x86/x64, macOS arm64/x86_64, Linux x86_64
#162026-04-13UI polish: playback info, page title shortcuts, Ctrl+M MIDI export, community skins
#152026-04-13Cross-platform bug fixes: skin double-free, screen bleed, macOS Cmd key, layout/clamp
#142026-04-13Pattern operations: Undo, Replicate, Double/Halve/Clone, Interpolate, Reverse, Rotate, Solo, Follow
#132026-04-13PR-C: Configurable keyboard shortcuts (infrastructure)
#122026-04-13PR-D: Add Lua 5.4 scripting with REPL console

Open pull requests

#DateTitle
#1412026-05-29Samples PR B (engine): SampleOutputDevice voice mixer + routing + audio wake-up
#1402026-05-29Samples PR A: sample pool + .zt SMPL/SMIX persistence + WAV loader (foundation, silent)

Closed pull requests (proposed, not merged)

#DateTitle
#1302026-05-18CC Envelopes (Shift+F6) + Help keyjazz
#602026-04-26Hotfixes: ESC handling, shortcut format, playhead consistency, page-layout polish
#472026-04-22macOS: capture F1/F2/F5..F12 via NSEvent aux-control monitor
#252026-04-14UI focus & cursor nav: skip zero-size sliders and read-only TextBox
#212026-04-13macOS .app bundle + non-US keyboard + Cmd shortcuts + UI layout pass
#192026-04-13Palette Editor (Shift+Ctrl+F12): live color editing + 7 presets
#112026-04-13UI polish: playback info, page title shortcuts, Ctrl+M MIDI export, community skins
#102026-04-13Cross-platform bug fixes: skin double-free, screen bleed, macOS Cmd key, layout/clamp
#92026-04-13Pattern operations: Undo, Replicate, Double/Halve/Clone, Interpolate, Reverse, Rotate, Solo, Follow
#82026-04-13PR-C: Configurable keyboard shortcuts (infrastructure)
#72026-04-13PR-D: Add Lua 5.4 scripting with REPL console
#62026-04-12Cross-platform port + new features: CMake, RtMidi, Lua, pattern ops

Local commits

Authored on /Users/esaruoho/work/ztrackerprime. Some commits are squashed into the PRs above when they land upstream.

DateSHAMessage
2026-05-31f0debefLua: midimacro :send(), instrument CC envelopes; update README (#157)
2026-05-314d96726Lua: midimacro :send(), instrument CC envelopes; update README
2026-05-313124cb6ci: run ctest (incl. Lua API self-test) on the macOS jobs too (#156)
2026-05-310aa7cf3Lua: notifiers (zt.on / zt.off / zt.fire) for play/stop/row/idle events (#155)
2026-05-311ec95efci: run ctest (incl. Lua API self-test) on the macOS jobs too
2026-05-314da70beLua: notifiers (zt.on / zt.off / zt.fire) for play/stop/row/idle events
2026-05-31b4a8556Lua: full API self-test (lua/selftest.lua) + --lua-test runner + ctest (#154)
2026-05-31d57250dLua: full API self-test (lua/selftest.lua) + --lua-test runner + ctest
2026-05-31c9bd3caLua console: wrap long scrollback lines instead of clipping them (#153)
2026-05-3123d8abfLua console: wrap long scrollback lines instead of clipping them
2026-05-3151c24c7Lua console: clip scrollback lines to the console width (#152)
2026-05-312ef4275Lua console: MIDI macros, arpeggios, song message, instrument extras, file I/O (#151)
2026-05-3144fc586Lua console: clip scrollback lines to the console width
2026-05-31ce18363Lua console: MIDI macros, arpeggios, song message, instrument extras, file I/O
2026-05-31b0ed0a8Lua console: full cell access, order list, note names, constants (#150)
2026-05-31e041142Lua console: full cell access, order list, note names, constants
2026-05-313420483Lua console: object layer for patterns, tracks, transport (#149)
2026-05-310de207aLua console: object layer for patterns, tracks, transport
2026-05-318fd9ff0index on esa/lua-objects-tracks-patterns: 1c1f53b Lua console: Renoise-style object layer (zt.song, zt.instrument(i))
2026-05-3153bc24eLua console overhaul: Tab cycling, rprint/oprint/help, and Renoise-style objects (#148)
2026-05-311c1f53bLua console: Renoise-style object layer (zt.song, zt.instrument(i))
2026-05-3134ab580Lua console: real Tab completion (cycling) + Renoise-style introspection
2026-05-31c65bebekeybuffer: treat AltGr as plain Alt for shortcuts (KDE/X11 fix) (#143)
2026-05-316213217Don't bleed the playback status line over a modal popup (#146)
2026-05-3113db973Palettes: fix Hotdog Stand (bright yellow), alphabetize list, doc headless screenshots (#147)
2026-05-312020b54Pattern Editor keymap: Block Functions family on Ctrl + Ctrl-Shift-P Song Duration (#144)
2026-05-31fe3d3e8MainMenu: highlight the current page when reopening the ESC menu (#145)
2026-05-31849c02bPalettes: fix Hotdog Stand (bright yellow), alphabetize list, doc headless screenshots
2026-05-312201596Don't bleed the playback status line over a modal popup
2026-05-31b849296MainMenu: also highlight Play Song when reopening ESC menu while playing
2026-05-31897e01fMainMenu: highlight the current page when reopening the ESC menu
2026-05-31ae71d73Pattern Editor: bind whole Block Functions family on Ctrl (B/E/U too)
2026-05-31ce6d672help: add Ctrl-Shift-P Song Duration entry to F2 Pattern Operations
2026-05-31fc5df68Pattern Editor keymap: Ctrl-D = select one beat, Ctrl-Shift-P = duration
2026-05-319153f41keybuffer: treat AltGr as plain Alt for shortcuts (KDE/X11 fix)
2026-05-30b8fca47skill: refresh ztrackerprime contributor skill (drift fixes + foot-guns) (#142)
2026-05-304936fe4skill: add shortcut-map updates + foot-guns that didn't land in the first commit
2026-05-30194cb57skill: refresh ztrackerprime contributor skill (drift fixes + foot-guns)
2026-05-296221e9csamples PR B (engine): SampleOutputDevice voice mixer + routing + audio wake-up
2026-05-291b77298samples PR A: sample pool + .zt SMPL/SMIX persistence + WAV loader
2026-05-291c91e66docs: sample-playback design doc + incremental PR plan
2026-05-29a159ee6spike: enable ENABLEAUDIO to validate dormant SDL3 audio backend
2026-05-29b9803f2build: add macOS -> Windows x86 (XP) cross-build script (#139)
2026-05-299452a83build: add macOS -> Windows x86 (XP) cross-build script
2026-05-2998530e2README: fix stale minimum-resolution claim (1024x700 -> 840x480) (#138)
2026-05-2996a1f1cREADME: human edit 2026-05-29 09:29:46
2026-05-2976b4de3README: human edit 2026-05-29 09:18:09
2026-05-29d7daacdREADME: human edit 2026-05-29 09:15:17
2026-05-2911335fdREADME: document PianoKey + Create 16 Channels, fix macOS regen command (#137)
2026-05-2982a5640Instrument Editor: "Create 16 Channels" for the current MIDI device (#136)
2026-05-293231ea3F2 F2: "PianoKey" toggle for Ableton/Logic keyjazz layout (#135)
2026-05-257a2104bCHANGELOG: name the release zt 2026_05_25_2
2026-05-25bab9b7dLinux: rpath=$ORIGIN so bundled libSDL3.so.0 is found at runtime (#134)
2026-05-2533a9d18Linux: rpath=$ORIGIN so bundled libSDL3.so.0 is found at runtime
2026-05-25e99b226Alt-P / Ctrl-P rebind: duplicate-pattern + paste-continuously + Song Duration (#133)
2026-05-25c88de80Alt-P / Ctrl-P rebind: duplicate-pattern + paste-continuously + Song Duration
2026-05-181a66642CC Envelopes v2: per-instrument, CCizer-aware (Shift+F6) (#132)
2026-05-18d3d6d78Help (F1) page: modifier+key jumps to documented shortcut (#131)
2026-05-140e7d8e1IEdit keyjazz when slider focused + Alt-P centering + Ctrl+C/V/P clipboard (#129)
2026-05-14d45482dCC Console: double-click reset + Ctrl+F2 drawmode cycle (#128)
2026-05-145b3cacdWindows: Ctrl+Shift+grave fixes CC drawmode cycle + keyjazz in mouse-draw (#127)
2026-05-14ca8fedaCI: bundle CCizer banks + SysEx examples in release artifacts (#126)
2026-05-133b8280aCC Drawmode: one-key arm-and-draw + visual cleanup (#125)
2026-05-12f62ef2cCC Drawmode: cycle through CCizer slots + Shortcuts rebind (#123)
2026-05-129430fcapalettes: regenerate all 7 hand-tuned ones from Schism's IT data (#122)
2026-05-12be25b09ztskin: port multiplatform skin compiler/decompiler CLI (#119)
2026-05-1229a57c2.gitattributes: union-merge doc/CHANGELOG.txt (#121)
2026-05-122a59dcdbuild-all.sh: one-shot wrapper around the per-platform build scripts (#120)
2026-05-12c4ad81aSysconfig MIDI: preserve devices on Refresh + in-your-face open errors (#118)
2026-05-128580467Quit confirmation: default focus to Yes, so Ctrl-Q + Enter quits (#101)
2026-05-048ef5fbfwindows-x86-xp: static-link MinGW C++/pthread runtime so XP can launch zt.exe (#117)
2026-05-025d2880bmidiInQueue: serialise insert/pop/check/size/clear with std::mutex (#116)
2026-05-02af5ac64Pattern Editor: Ctrl+H — Find / Replace Note popup (#115)
2026-05-02105ab95test: SysEx receive queue stress + concurrency suite (#114)
2026-05-02c180b5eLinux ALSA MIDI input — initial implementation (needs hardware verification) (#113)
2026-05-0258ea0e3ListBox: defuse the OnSelect mousestate-clobber foot-gun (#112)
2026-05-02682c576Pattern Editor: Ctrl+Shift+F fills selection with note at cursor (#111)
2026-05-0257b8a34Pattern Editor: ALT+SHIFT+Q / ALT+SHIFT+A transpose by octave (#110)
2026-05-02571646aPattern Editor: drop stale MIDI-in queue on enter() (#109)
2026-05-028e7e9d5skill: add freshness signal + correct cross-platform SysEx receive status (#108)
2026-05-02c5f34cbCLAUDE.md + skill: bug reports are branch + PR + push, no asking (#107)
2026-05-027ce8be8CC Console: reset slider widget pool on file switch (#106)
2026-05-02ef210b5.gitignore: add pycache/ and *.pyc
2026-05-01952b5a3Paketti CCizer rename + show inst/port/channel in title
2026-05-01740bca7Import 9 Schism Tracker palettes + reusable importer script
2026-05-0190431c6ESC menu: window size & zoom presets (1024x640 to 2560x1440 3x)
2026-05-01d632256README: fix About screenshot (was Palette Editor + Main Menu)
2026-05-0182070e3README + screenshots: a tour of every zTracker' page
2026-05-01748256aF12 Sysconfig: stop CCizer/SysEx folder inputs overlapping
2026-05-01b0ffe96SysEx Librarian: real ListBox file selector
2026-05-01d642259Headless + script CLI: run zt windowless, drive from a file, dump PNGs
2026-04-3068ec144Skill: codify list-pane idiom + 8 page-construction invariants
2026-04-3027172faCC Console: real ListBox file selector + fix vanishing-sibling bug
2026-04-30fdb9675CC Console: fix Slot/CC#/Name/Slider/Learn column overlap
2026-04-3035c505dShift+F2: ESC cancels capture/learn instead of opening main menu
2026-04-30b781a26zt-screenshot.sh: capture by CGWindow ID, fix SDL window detection (audit P17)
2026-04-3011cedbfAdd CCBN roundtrip test (audit P18)
2026-04-30b181584Audit M9 + L15 + L16: localtime_r, recv rotation, ownership doc
2026-04-3022d5fccAudit M6 + M7: heap-alloc macOS sysex packet list + seed recv_seq
2026-04-30f9c77b8Windows SysEx receive: wire MIM_LONGDATA -> zt_sysex_inq (audit P19)
2026-04-303f04c4fCache *.syx midimacros at song-load (audit H3 + M10)
2026-04-30b1515a3Audit cluster: H2 + M8 + L13 + L14 + L12
2026-04-30af2897dWindows SysEx send: poll MHDR_DONE before unprepare (audit H1)
2026-04-30f86a026CC Console: real ValueSlider widgets + need_refresh on every key handler
2026-04-306bd1305Skill + CLAUDE.md: document CCizer + SysEx pages and PRs #78-#84
2026-04-30c053248Pattern row -> SysEx file: midimacros named *.syx dispatch as files
2026-04-3074b1647SysEx Librarian (Shift+F5): send .syx files + auto-capture responses
2026-04-30a3857c2SysEx I/O foundation: send (3 platforms) + receive ring + queue
2026-04-3084d7ff5Pattern Editor + CC Console: auto-route, drawmode badge, undo
2026-04-30bebb7ebPer-instrument CCizer bank + optional CCBN .zt chunk
2026-04-304eb3feeformatting
2026-04-307aae858ztracker_mac no longer exists
2026-04-30d373382CC drawmode: pretty-print learnt CCizer slot names in status
2026-04-3076020d8CC Console: MIDI Learn per slot + .cc-midi sidecar
2026-04-306433e97Pattern Editor: Ctrl+Shift+§ CC drawmode (incoming CC -> S/W effects)
2026-04-30b1fe4b4F12 Sysconfig: CCizer Folder text input
2026-04-30a23811btest_ccizer: portability shim for Windows (MSVC + MinGW)
2026-04-309f92e8eCC Console (Shift+F3) + Shift+F2/F3 reshuffle
2026-04-293b961b1Unify Shortcuts & MIDI Mappings into one Shift+F3 page
2026-04-29948d028MIDI Mappings page: bind 4 / 8 audition to incoming MIDI
2026-04-29b023c00F10 Song Message: caret + cursor nav + crash signal handler
2026-04-298fb67f1macOS MIDI Out: re-resolve endpoint by name on send failure
2026-04-29bd6a610Hotfix: F10 robustness + Load/Save list clamps at edges
2026-04-295784a56F11 4/8 Audition Step: move legend below the slider
2026-04-294d67fd0Pattern Editor: configurable advance for 4 / 8 note audition
2026-04-297bf972fPattern Editor: restore 4/8 note audition + 1/§/. editing keys
2026-04-297430e6eSplit skill into thin SKILL.md + references/, add recipes & glossary
2026-04-29616ea43Sanitize SKILL.md — remove personal context, dated snapshots, anecdotes
2026-04-29a41fb1eAdd in-repo SKILL.md for AI agents that load .claude/skills/
2026-04-29e660070Add CLAUDE.md — contributor notes for AI assistants
2026-04-28d2f19edESC menu: "Copy Relaunch Command" -- round-trips current MIDI / song state to clipboard
2026-04-28a2824dcCLI: also accept --flag=value, single-dash -flag; fix bare-word match
2026-04-2840ddc57CLI: --help, --list-midi-in, --midi-in, --midi-clock
2026-04-2837fcd68VU meters: replace Frankenstein bar formula with linear fade
2026-04-28055b5ccRe-enable VU meters: harden draw against null/stale instrument access
2026-04-28c4dbcadShift+F4: dedicated Keyjazz slot -- Tab here to enter, focus highlights
2026-04-28131f5baRemove DISABLE_UNFINISHED_* gates -- F4 / Shift+F4 / F10 are shipping features
2026-04-28bd4a4baF4/Shift+F4 + Arpeggio keyjazz: drop premature mousestate=0 clobber + add visible Keyjazz panel
2026-04-28d6d93efShift+F4 Arpeggio editor: keyjazz audition
2026-04-2838a4a09F3 InstEditor: revert PR #61's frame extension; numbers go back outside frame
2026-04-28e476016Revert: Ctrl-S in F4/Shift+F4 saves the song (matches title hint)
2026-04-2887b2713Reorder ListBox::mouseupdate: bMouseIsDown reset AFTER switch, not before
2026-04-28c966802Arpeggio editor: shift Length and below down 1 row to clear preset listbox
2026-04-28fb0f0bbF4/Shift+F4: 1-char gap between label and slider/textfield (DRY)
2026-04-28049b69fStrip diagnostic status messages -- the actual freeze fix landed in 60d3ac5
2026-04-2860d3ac5Fix UI freeze after click: always consume button-up in ListBox::mouseupdate
2026-04-282ea68e1Diagnostic: write S-key dispatch outcome to status line
2026-04-2816603ccF4/Shift+F4: also swallow Cmd-S (macOS habit), not just Ctrl-S
2026-04-28ca0a254Real KeyBuffer integration tests + fix saturation-drain bug they found
2026-04-286425284Integration tests for save-key dispatch + editor preset/sync cycle
2026-04-2889460dfFix Ctrl-S freeze in F4/Shift+F4: consume the key when swallowing
2026-04-288520740Preset selector decision logic extracted + 72-check regression suite
2026-04-281d1628fF4/Shift+F4: drop preset-dedupe guard so every click applies
2026-04-2896b513eF4/Shift+F4 preset selector: single-click selects, P cycles when focused
2026-04-28726fe68Unit-test harness + preset data extraction
2026-04-28295f726F4/Shift+F4: refresh slider widgets after preset is applied
2026-04-28f298d96Arpeggio editor: nudge preset listbox +1 column (x=46 → 47) to match F4 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-2876bd2a2F4: pin doc-block x to column 4 so it lines up with Shift+F4's triggers
2026-04-28076a9c3F4/Shift+F4 preset listbox: positions, ordering, robustness
2026-04-281f93654F4/Shift+F4: SkinSelector-style inline preset listbox
2026-04-281af9f6dSwallow Ctrl-S inside F4 (MIDI Macro) and Shift+F4 (Arpeggio) editors
2026-04-28fce0a1eAnchor F4/Shift+F4 doc lines just above toolbar so they stop floating
2026-04-28af6e8e0Cmd-W behaves as Ctrl-W on macOS; mouse-wheel scrolls Help/About/Song Message
2026-04-27d8ff1fdMatch docs placement: 'Trigger from pattern' below the grid in both editors
2026-04-2795ad943Arpeggio editor: row of space between sliders; docs match macro layout
2026-04-27188e7b3Revert Cmd+S=save: it stole the Pattern Editor Set-Instrument shortcut
2026-04-2704270faCmd+S saves on macOS; double-click MIDI port toggles
2026-04-27316f593F4 toggles Macro<->Arp; remove em-dash junk in titles
2026-04-274f7b078ValueSlider: stop drag on mouse-up; fix arp keys-hint overflow
2026-04-277aaaba5F4 + Shift+F4: rearrange overlapping help text
2026-04-2763e0dbaF4 + Shift+F4: page-level shortcuts, name follows preset, trigger info on screen
2026-04-2717dce64F4 + Shift+F4: legacy migration, cursor sanity, slot delete, modified indicator
2026-04-278f5e3a3F4 + Shift+F4 editors: robust input + presets + focus visibility
2026-04-27e7ef8e3Arpeggio editor: fix crash on entry, fix overlapping layout
2026-04-2727f4672Arpeggio playback: actually loop at repeat_pos
2026-04-2767e9f92Implement MIDI Macro and Arpeggio editors + playback
2026-04-271c49b15midi-io: fix crash when opening a second MIDI In device
2026-04-274ed7ff5Enable MIDI Macro + Arpeggio editor pages on F4 / Shift+F4
2026-04-274f287c5F11/F12/Ctrl+F12 polish: About box, Post-Load names, F11 toggle
2026-04-273beb77bSysconfig F12: align Latency/Bank/Alias with MIDI Out list, normalise Open device button
2026-04-272acf9f5F11/F12/Ctrl+F12 layout polish + widget upstream cleanup
2026-04-2739a3517OrderEditor: handle left-click to move the cursor
2026-04-27588126cF12 MIDI list: Enter/Space toggle device + surface run-log
2026-04-27df40768Fix two macOS crashes: MIDI-thread NSWindow + Cmd+Q popup loop
2026-04-272caddb9midi-io: fix crash when opening a second MIDI In device
2026-04-266fc479aAbout page: keep each copyright + author on a single row
2026-04-26debe5edAbout page: lift textbox 1 row, extend bottom 2 rows
2026-04-26bbe472eAbout page: capitalize zTracker in license line
2026-04-261fd17e4About page: move Esa below Nic Soudee, grow textbox by 5 rows
2026-04-264905595About page: 2026 dates, add Esa Juhani Ruoho to coding, split License line
2026-04-268eb177eAbout page: nudge textbox 1 row lower, end 2 rows lower
2026-04-265889b6aAbout page: widen textbox by 4 chars, lift 2 rows, shrink height to 75%
2026-04-2635bb895About page: shift textbox 1 col left, anchor top to overlap logo
2026-04-26ac4df38About page: textbox sits below the logo, logo back at row 9
2026-04-2693651dfAbout page: lift logo to row 7, widen text box another 20%
2026-04-26d61de86About page: lift logo 3 rows, widen text box 20%, keep clear of toolbar
2026-04-26fe592baREADME: refresh for the last few weeks of merged work
2026-04-26ba72136Post-Load Page: configurable destination after a successful load
2026-04-26a6bca71Translate Manu's Spanish source comments inline (English in [EN: ...])
2026-04-26b159099Songconfig: tighten Title/BPM/TPB label spacing; widen Title field
2026-04-2688653a7Order List: cycle focus back when Up is pressed at row 0
2026-04-2609ebab5About page: clamp text-box height so it never overlaps the toolbar
2026-04-262f4e318F5 Play Song: align pattern display rows with the Pattern Editor (F2)
2026-04-2610357fbTranslate Manu's Spanish source comments inline (English in [EN: ...])
2026-04-2634b34ccHelp: re-indent continuation lines after macOS shortcut rewrite
2026-04-26d9ef935Songconfig: tighten Title/BPM/TPB label spacing; widen Title field
2026-04-26fcf0053Order List: cycle focus back when Up is pressed at row 0
2026-04-26e24828bAbout page: clamp text-box height so it never overlaps the toolbar
2026-04-26223cc00F5 Play Song: align pattern display rows with the Pattern Editor (F2)
2026-04-26841783cESC menu: open in Load (Ctrl-L) view; let Keybindings page bind Ctrl-Q
2026-04-266910eb9ESC main menu: flush popup region so Up/Down updates highlight
2026-04-261e0761bESC menu polish: include Songmsg + Midimacro; fix Keybindings Ctrl-S leak
2026-04-26ca24037ESC main menu (Schism-style) — Phase 1: discoverable navigation
2026-04-268240232help.txt: section-wide colon alignment + rewriter formula fix
2026-04-2685b929dF10 Song Message: managed null-terminated mirror; help.txt cleanups
2026-04-26d847f84F10 Song Message: enable SDL text input on the page
2026-04-26df969f2F10 Song Message: fix layout, dangling text pointer, backspace, Enter
2026-04-263f45d9aEnable F10 Song Message editor (in-place edits already persist)
2026-04-2623b3b3aHelp: Shift-Tab from first section now wraps to last section
2026-04-26f0e73a8Unblock Midimacro editor; help: octave keys, no Cmd-TAB rewrite
2026-04-26b42e7cfMidimacro editor: bind to plain Ctrl-M (export moves to Ctrl-Shift-M)
2026-04-25d297c65Midimacro editor: add Ctrl-Alt-M as guaranteed-working shortcut
2026-04-2576c8c9dMidimacro editor: bind to plain Shift-F4 (no Cmd/Ctrl/Alt needed)
2026-04-25f7d02a8macOS: free Cmd-Q from the menu so Pattern Editor can use it for Transpose-Up
2026-04-25b0b8c70Quit shortcut: accept plain Ctrl-Q, not just Ctrl-Alt-Q
2026-04-25197c756CI: harden libpng/zlib fetch against transient mirror failures
2026-04-25a38d7e4Default skin: paint out empty bargraph frames in toolbar.png
2026-04-25debc2e2F5 Play Song: show live playback status (Ord/Pat/Row/Time)
2026-04-25ea4f058Pattern Editor: only post View Mode status on actual change
2026-04-25dd6edb6Minor tweaks: status messages, help nav, F4 binding
2026-04-2599b809cCI: re-enable branch-gate to validate README-MAC.txt in packaged DMGs
2026-04-255b47568CI/macOS: ship README-MAC.txt with quarantine-fix instructions
2026-04-25a339b1dCI: drop temporary pr-release-packaging branch-gate before merge
2026-04-25232daddCI: temporarily run packaging on every push to pr-release-packaging
2026-04-25e6e0f9fCI: add workflow_dispatch trigger for manual packaging test runs
2026-04-23739bb2cGlobal Config: UI toggles for MIDI In Sync + Chase MIDI Tempo
2026-04-23e45c541MIDI In: optional tempo chase from incoming MIDI Clock
2026-04-223c487f8CI: tag-triggered cross-platform release packaging
2026-04-219467247F3: shift right-side panel down 1 row to match instrument list
2026-04-216b2f282After file load, switch to Instrument Editor (F3)
2026-04-219ccb9f2Global Config page 2 focus + padding, Sysconfig alignment, Ctrl-click Conf
2026-04-218037ff6UI polish: F1 toggle, F3 row align, Sysconfig spacing, Global cfg align, FileList typeahead
2026-04-21cd5927fFix remaining macOS build warnings
2026-04-184c98ea2Fix -Winconsistent-missing-override warnings (macOS AppleClang)
2026-04-1803e51c3Lua Console: tab completion + full API listing on open
2026-04-18a8d81c7Let Ctrl/Alt/Cmd shortcuts through on text-input pages
2026-04-18afe59b5Lua Console: fix invisible rendering + broken keyboard input
2026-04-18b618067Rock-steady MIDI timer: monotonic clock, drift-free schedule, no UAF on stop
2026-04-1806eb551macOS Finnish ISO: fix § (Note Off) and <>/octave-up-down keys
2026-04-17b79e689F12 Sysconfig layout + tab-order, symmetric page-nav buttons, RUSure title padding
2026-04-17bf7c89bAdd in-app keybindings editor (Ctrl+Alt+K)
2026-04-177cf0343Add ZT_KEYDEBUG=1 full-trace keyboard logger
2026-04-17ff1ff79Silence sprintf deprecation noise; emit compile_commands.json for clangd
2026-04-17b034f55Skip invisible and text-only elements in UP/DOWN focus cycle
2026-04-17179f26eAlign F3 instrument list and description column edges
2026-04-17a7641e7Fix F5 and F11 views overlapping the toolbar at low resolution
2026-04-16d05937eFix pattern editor overlapping the toolbar at low resolution
2026-04-16fec9c44Restore megagrump compiler warning fixes
2026-04-16994541fAdd macOS app bundle and UI layout updates
2026-04-16fa6e16cAdd palette editor
2026-04-16eefcde9Add platform build scripts
2026-04-1677579e2.DS_Store
2026-04-16a51a81eadd #include <algorithm> to CDataBuf.cpp for std::min/std::max
2026-04-16d08a8e8add #include <algorithm> to CDataBuf.cpp for std::min/std::max
2026-04-151c09408fix Skin::setpath / switchskin signatures to match Skins.h (post-rebase)
2026-04-1557db86ffix CMakeLists: guard TARGET_BUNDLE_CONTENT_DIR behind if(APPLE)
2026-04-1529774bdfix rebase merge artifacts: remove duplicate blocks in font.cpp and CUI_Config.cpp
2026-04-14dbeea67Palette Editor: fix include case so Linux / MinGW CI finds Skins.h
2026-04-1445448dbPalette Editor: move checkbox to row 10 to avoid swatch label collision
2026-04-145591b71Palette Editor: revert inline redrawscreen, layout regression in Pattern Editor
2026-04-14b3696f5revert TRACKS_ROW_Y to PAGE_TITLE_ROW_Y + 2 (fix cascade regression)
2026-04-1435bf481CUI_RUSure: Enter fires the focused button (Yes/No) on the same frame
2026-04-1456948d4Help text: uniform CMD-X/ALT-X on macOS, normalize source lines
2026-04-1399e830fPalette Editor: "Reset skin to default" checkbox, tint slider auto-bumps hue
2026-04-133be3093Palette Editor: atomic update on click, skin presets do real skin switch
2026-04-13a7e708aSkin recolor: per-pixel signed delta, no LUT, no banding
2026-04-137811b6cSkin recolor: anchor LUT on the skin's authoring colors
2026-04-136b6bbcaPalette Editor: funnel every palette write through recolor, speed up remap, IT-style listbox
2026-04-1318b73f9PNG recoloring: toolbar/buttons follow palette via luminance remap
2026-04-1328c8a75Palette Editor: move global sliders out of toolbar zone, walk R/G/B with arrows
2026-04-132388924Palette Editor: skins as presets, RGB sliders, brightness/contrast/tint
2026-04-138b065b8Palette Editor: fix layout overlap, add mouse, ship presets
2026-04-134e717d4add Palette Editor (Shift+Ctrl+F12): live color editing + 7 predefined palettes
2026-04-130534cbffix: rebuild main.cpp and CUI_Patterneditor.cpp from master
2026-04-1364ec077remove accidentally-committed libpng/zlib source tree
2026-04-134e67c24Palette Editor: copy palettes/ into .app bundle + add 7 skins to preset panel
2026-04-13bf5edafPalette Editor: redesign layout — bigger swatches, per-slot labels, clear selection highlight
2026-04-133e8a5e4Global Config: Current Settings textbox y 24->25 (one row lower)
2026-04-1369f901aremove Replicate at Cursor (duplicated in PR #14); mark zt-screenshot.sh as macOS-only
2026-04-13779dbecGlobal Config: Current Settings textbox y 23->24 (moved 1 row down)
2026-04-137dd1a12Global Config: Current Settings textbox auto-fits content height (count newlines)
2026-04-1326066dckeys: KS_META (Cmd) for ALT shortcuts; restore Replicate at Cursor; § scancode debug
2026-04-130357f6ePEParms dialog: add DrawMode checkbox row (toggles regular <-> effect-draw)
2026-04-13284feeaSysconfig: Open device button y=47 (one below list border, not overlapping)
2026-04-139a3c59dSysconfig: Open device button up 2 rows so it sits right below the device list box
2026-04-130091b8bSysconfig: Open device button xsize 15->14 so right edge aligns with device list right edge
2026-04-136517e75fix § key on Finnish/EU layouts: SCANCODE_NONUSBACKSLASH -> SDLK_GRAVE
2026-04-135f740dekeys: § Note Off, Shift+§ drawmode toggle, Ctrl+1-0 step (Finnish kbd fallbacks)
2026-04-1336fd4a4InstEditor: MidiOutDeviceSelector ysize 13->14 (one extra row at bottom)
2026-04-13053cda9Pattern Editor: F2-F2 toggles regular <-> effect-draw mode (Shift+~ alternative)
2026-04-135b0867dBank slider width 14->16; Open device buttons down 1 row
2026-04-130d28b5dGlobal Config: shrink Current Settings textbox so it doesn't bleed over the bottom ruler
2026-04-1330ede8bGlobal Config: add (Ctrl+F12) to title; page 1 fields +2 rows so they clear the Return button
2026-04-139294ed9revert: titles back to 'Name (Fn)' format
2026-04-1375ec045InstEditor: fm->y -1 each so labels sit inside the frame, not on its top edge
2026-04-130de3c98InstEditor: all y +1 row (start one row lower)
2026-04-1337d61f7InstEditor: visible inst rows 39 -> 40 (show one more)
2026-04-139cb8036add zt-screenshot.sh + revert Sample/Instrument rename + InstEditor fm down 1 + Order List clip at 039
2026-04-133d1f9farevert: undo Sample Editor X left-shift (broke layout)
2026-04-137b0e7bcUI: Help one more row taller (bottom margin 9 -> 8)
2026-04-13602b0f3UI: Sample Editor left-shift, Help bottom margin, Order List taller
2026-04-132810fa2UI: Help textbox one row lower (y=12)
2026-04-13ccefb12UI: Pattern Editor +1, Sample Editor +1, Order List label, Help height, F1 toggle, skins
2026-04-134d8c6f4UI: one-row gap between title and content; Order List label/data fixed
2026-04-13766d46eUI: title centered, content on first row below title, pattern grid left-aligned
2026-04-1382fe3bclayout pass: left-aligned titles, (Fn) Name format, tighter content
2026-04-136b25945ci: use fixed buffer size instead of PATH_MAX for bundle_resources_path (MSVC)
2026-04-13b39c8ceci: copy zt.app bundle instead of flat zt binary on macOS
2026-04-138fa64dafix § key on Finnish/EU layouts: SCANCODE_NONUSBACKSLASH -> SDLK_GRAVE
2026-04-133d6597amacOS: Help path + auto build-date version string
2026-04-13fcfcac4macOS: proper .app bundle with 'zt' icon + configurable window_icon
2026-04-138642f61add Multichannel .MID and per-track .MID export
2026-04-1375ac98dmouse-wheel zoom preserves current window size (fix window-resize jitter)
2026-04-134aff040move Lua into extlibs/lua/ (per @m6502 review feedback)
2026-04-13334813dadd Humanize Velocities (ALT+H) — Paketti-inspired
2026-04-13d581769ci: disable unused SDL3 X11 extensions on Linux build
2026-04-13e5a32d8fix MSVC link: unify is_saving extern decl as std::atomic<int>
2026-04-137c0a594fix Windows link: include <SDL_main.h> in one TU only
2026-04-1367ffc10ci: fix Linux apt package name (libxscrnsaver-dev -> libxss-dev)
2026-04-134f08ffbci: install SDL3 X11/Wayland build deps on Linux
2026-04-13bcb56b4fix Windows build: include windows.h before mmsystem.h in winmm_compat.h
2026-04-135686f1cUX polish: page title F-key labels + pattern editor row alignment + statusmsg bleed fix
2026-04-13b0edb20ci: fetch libpng/zlib sources at build time + replace libsdl3-dev with source build
2026-04-138caa481add GitHub Actions CI: Windows x86 (XP-compat), Windows x64, macOS arm64, macOS x86_64, Linux x86_64
2026-04-13a7290dcadd UI polish: playback info, page title shortcuts, Ctrl+M MIDI export, community skins
2026-04-1301a4f60PR-A: cross-platform bug fixes
2026-04-13ff5f742add pattern operations: Undo, Replicate, Double, Halve, Clone, Interpolate, Reverse, Rotate, Solo, Follow
2026-04-1321f4e08Add configurable keyboard shortcuts infrastructure (loads/saves to zt.conf)
2026-04-1372606c1Add Lua 5.4 scripting with REPL console and zTracker API bindings
2026-04-123745890add IT/Paketti pattern operations: halve, interpolate, solo, reverse, rotate, follow
2026-04-1283db7abupdate changelog with Lua scripting and configurable shortcuts
2026-04-125ade7ccadd Lua 5.4 scripting with REPL console and zTracker API bindings (#1)
2026-04-12f39152dconfigurable keyboard shortcuts saved to zt.conf (#11)
2026-04-123f69e5bupdate changelog with Undo, Double/Clone Pattern, MIDI export
2026-04-12d6f93d4add Undo (Cmd+Z), Double Pattern (Ctrl+Shift+G), Clone Pattern (Ctrl+Shift+D)
2026-04-121df5b20quick MIDI export shortcut (Ctrl+M) + changelog update
2026-04-12815e924< > for octave up/down, backtick/§ for note off, faster key repeat
2026-04-121a3c6a2fix F12 System Config layout: skin selector and MIDI lists no longer overlap
2026-04-1227a0a6bfix Replicate at Cursor: source is above cursor, not including cursor row
2026-04-1241c5453add Replicate at Cursor (ALT+R / Cmd+R) — ported from Paketti
2026-04-12f9c86a4fix #18 System Config: cursor up/down navigates between lists and controls
2026-04-12488f6e9update changelog with ztconf editor, playback info, closed issues
2026-04-12e74785bshow playback position at bottom of Pattern Editor during playback (#16)
2026-04-12d862cfbin-app zt.conf editor: all settings editable from System Configuration (F12)
2026-04-122737bb5update changelog with Cmd key and Backspace fixes
2026-04-12997f1d9all ALT shortcuts now work with Cmd on macOS via KS_HAS_ALT macro
2026-04-12b9e198cCmd+1-0 sets edit step on macOS (KS_META accepted alongside KS_ALT)
2026-04-12b21c601macOS Backspace works as Delete, update changelog with all recent fixes
2026-04-12be44e98remove debug fprintf from pattern editor
2026-04-1238967caalign all pages to TRACKS_ROW_Y, fix key repeat, move version string up
2026-04-12aa11a25fix Help ESC goes to Pattern Editor, fix #17 bleed (agent: enter/leave/draw clear)
2026-04-1256c0f99fix #17 screen bleed on page switch + fix F11/F12 title labels
2026-04-12409f8f7fix #15 Pattern Editor full height + fix #13 ListBox cursor clamp on resize
2026-04-129e9f26eupdate CHANGELOG with all recent fixes, close resolved issues (#4, #8)
2026-04-125ec7750fix MIDI device name display, help.txt path fallbacks, F3 alignment
2026-04-1238e65b5fix help.txt path on macOS: use relative path when zt_directory is empty
2026-04-12be1715bfix macOS .app crash: allocate cur_dir before GetCurrentDirectory call
2026-04-12a2f459cremove temp files accidentally committed
2026-04-128c06613add shortcut keys to all page titles + fix start-mac.sh for .app bundle
2026-04-12cb954b6proper macOS .app bundle with icon, Info.plist, bundled resources
2026-04-123d897adadd CHANGELOG.md documenting all cross-platform fork changes for upstream PR
2026-04-1284b5d87align Help page with Pattern Editor: same start row, full window width/height
2026-04-1218e3f9dadd start scripts for all platforms + fix F1 toggle Help
2026-04-1239563baadd start-mac.sh: one-command build and run
2026-04-12b1e0644fix skin switching crash: guard against double-free of SDL surfaces
2026-04-1295e34d6F1 toggles Help screen (pressing F1 while Help is open closes it)
2026-04-1204686b0bump version to v2026_04_12
2026-04-1259d791bfix macOS startup crash: copy zt.conf+skins next to binary, guard postAction null ptrs
2026-04-129dd0725fix macOS path separators: backslash -> forward slash for skins, argv, cwd
2026-04-1229d1dbeupdate README for cross-platform + restore 8-bit PNG support
2026-04-1217a73b1add macOS Cmd key support: Cmd maps to ALT so all ALT shortcuts work with Cmd on Mac
2026-04-1246d1d44add 5 community skins + old 0.85 skins from cmicali/ztracker
2026-04-122f5c078const char* cleanup: fix all string-literal-to-char* warnings across 19 files
2026-04-125a70863credit @rbruinier and @superjohan for ztracker_mac cross-platform groundwork
2026-04-124ff57a2Phase 4: macOS native build works. One source tree, two targets.
2026-04-12caa7ff5Phase 2+3: RtMidi, portable timer, std::thread/mutex, platform abstraction layer.
2026-04-1233f107eCMake cross-build from macOS + MinGW-w64, default to windowed mode.
2019-01-042518ad0removal of outdated email address for Daniel
2019-01-04cd5250efix features list
2019-01-04201ee57added links
2019-01-04d2831c9added list of features
2019-01-04f71b641readme.md updates
2019-01-04b5a242bmoved building.txt to readme.md
2019-01-049cfc43aold 0.85 skins + readme
2019-01-048cb4f405 zTracker skins added into the repo