Changelog
What changed in each release, newest first. The Unreleased section
collects what is on main and not yet published; tools/stamp_project.py
--version X.Y.Z turns it into that version's entry with today's date,
and publish.ps1 puts the entry on the GitHub release. The website shows
this file at maschine2lr.svenbluege.de/changelog.html.
Unreleased
4.29.0 - 2026-09-13
Fixed
- The scrollbar under the drawn controller is gone. The drawing's box came out a fraction of a pixel smaller than the scaled drawing, which was enough for one on every big monitor; the box is rounded up now and sideways scrolling is switched off wherever the drawing fits, which is everywhere but a window too narrow for it at its smallest. A tooltip's hidden box no longer counts towards the page's width either, which gave the whole page a sideways scrollbar at some widths.
Changed
- Dragging a binding and Copy to… work on one layer at a time. A drag moves what the drawing shows: with Shift off, the control's plain binding, with its Shift binding left where it is; with Shift on, only the Shift binding. Copy to… copies the layer the form's tab is on and leaves the other layer in the target profiles as it was. Both used to take both layers together, which made it impossible to rearrange one layer without dragging the other along.
4.28.0 - 2026-09-13
Added
- Check for updates now in the tray menu, under the version line. It asks GitHub right away and answers either way - up to date, an update to install, or that GitHub could not be reached - so there is no waiting for the daily check or restarting the program. Works with the daily check switched off too.
Fixed
- The question about Native Instruments' software at every start is gone. It was asked before anything had been tried, of everyone, and with the WinUSB driver in place the software holds nothing - so the answer changed nothing and the question came back at the next start. The program now claims the Maschine first and asks only when the device is there and cannot be opened while that software runs; stopping it then frees the device on the spot. A "no" is remembered for the session, and Stop Native Instruments software in the tray menu is there as before.
4.27.0 - 2026-09-13
Added
- A Shift layer for the knobs, the touch strip and the dial. Hold
Shift and knob 1 is Clarity instead of Temperature, the strip is
Contrast instead of Exposure, the dial rates instead of stepping through
photos - whatever the profile says, with the screens showing the layer
that is live. In the file the layer is
shift_encoders,shift_touch_stripandshift_master_encoderbeside the plain ones; a control without a Shift binding keeps doing what it does - andnonemakes it dark instead (shift+group_a: none,nonein the knob list), for a knob that should not do its plain job while Shift is held without being given another. In the editor a control's form has the two layers as tabs, Without Shift and With Shift, and under each what the control does there: Bound, Nothing, and on the Shift tab As without Shift. Shift - a key beside the Controls heading, and the one on the drawn controller, the same switch - shows the layer on the drawing and the screens: the controls with a Shift binding change, the rest keep their own, as on the unit. Moving or copying a control takes both layers with it. - What the Shift key does is a setting, The Shift key under
Settings: Hold it (the default) keeps the layer live while the key is
down, Press to switch turns it on with one press and off with the next.
The knobs keep reporting while Shift is held - buttons and knob values
arrive in the same report - so holding it works for a shifted knob;
tools/hardware_explorer.py --shiftmeasures that on a real unit. The key is lit whenever the profile has a Shift layer, bright while it is live.
Changed
- The editor uses a big monitor, and the controller drawing keeps the unit's shape while it does. The shell stopped at the width the drawing was made for, so on a 4K screen it sat in the middle with a hand's width of empty either side and screen previews too small to read. Past 2000 px of window the shell now grows with the monitor, and the drawing grows with it - twice the size on a 4K screen, previews and labels and all. The drawing is scaled rather than reflowed now, so it is 31 by 29 at every size, the proportions of the MK3 itself, instead of stretching wider as the room grew. It is bounded by the window's height as well: a wide but short monitor gets one that can still be seen without scrolling. An HD screen and anything smaller are as they were.
- The editor's layout follows the drawing. Controls and the legend line up with the unit's own edges instead of running off to the side of it, the rail, the drawing and the inspector sit together in the middle of the monitor with the room to spare at the edges rather than in gaps between them, and the work scrolls with the window's own scrollbar instead of a second one inside the page. The profile list keeps its own - it is a list beside the work, not the work. The drawing takes the window's whole height, with only its legend kept in view under it: Profile as text is opened rarely and may fall past the fold, where the drawing is looked at the whole time.
Added
- Discard, beside Apply in the inspector: it puts the control's or screen's settings back the way they are saved, and is live only while there is something to put back. The same answer as the Discard in the question you get when you leave an edited control, without having to leave it - and with the live preview above, a screen layout can now be tried and taken back without ever writing the file.
- A live preview of a screen's layout. Adding Pads, Photo details or any other block to a screen used to mean applying it to find out what it looked like. Now the screen in the editor redraws itself as the form is changed - the renderer the hardware gets, drawn from a copy of the profile that is never written, so nothing reaches the running bridge until Apply. The tile is marked not applied while the picture is ahead of the file, and leaving the form puts the saved one back.
Changed
- The Other buttons list on the screens uses the width it has. It went one under the other and then two abreast whatever the block's width, so a list spanning the whole screen said +6 more beside half a screen of nothing. It now takes as many columns as the width allows - four across a full-width block, two in a half-width one, never narrower than a name and a caption need - and only takes them when the rows would otherwise get thin. One column still reads best, so that is what a list keeps while the rows have room.
Fixed
- Copy to… and Unbind stayed greyed out after binding a control that had nothing on it: the inspector went on describing the control as it was before Apply, until a second Apply or a click away and back rebuilt it. Applying now rebuilds the inspector itself, so the buttons and the Now: line describe what was just saved. A refused save still leaves the form as it is, so the mistake can be corrected.
4.26.0 - 2026-09-12
Fixed
- The colour picker left the controller dead. Lightroom's White Balance
Selector - the eyedropper on W - is a tool of its own, reported as
white_balance, and no profile could match that name: it was not in the tool list at all, so the editor never offered it and the wildcard default profile won, which binds nothing. The eyedropper could only be put down with the mouse or the Esc key. It now has a profile of its own: knobs 1 and 2 trim Temperature and Tint while the eyedropper is still up, pad 8 is Lightroom's automatic white balance, pads 13 and 14 reset the two parameters, and the green Group E, pad 1 (Done) and pad 4 (Esc) each put the tool down.
Added
- A Lightroom shortcut cheat sheet in the editor, for Send keys to Lightroom. Press Lightroom shortcuts… and search by what you want (export, crop, before) or by the keys themselves, narrow it to one module, and pick a row - its keys become the macro, editable afterwards like any other. Arrow keys walk the hits, Enter takes one. The list is Adobe's published reference for Lightroom Classic (Windows keys), some 240 entries grouped by module, with the mouse-only ones left out because the middleware can only type.
- Copy a control to other profiles in the editor. Set up an Undo key, a pad colour or a knob once, press Copy to…, and pick the profiles that should have the same thing on the same control. The dialog lists every other profile with what it has there now - free, already the same, or the binding the copy would replace - so the one profile where that key means something else is visible before you confirm. The copy carries the Shift layer with it and replaces the control's whole configuration, so the key ends up doing there exactly what it does here.
- Profiles for the other Develop tools that had none of their own, which were the same dead end: Guided Upright, Point Color, Point Color inside a mask (it hands you back to the Masking tool, with the mask still selected) and the depth-refinement brush. Every Develop tool now has a profile with a way out, and a test keeps it that way.
Changed
- Select tool offers only the tools Lightroom will actually switch to.
Lightroom reports more tools than it accepts - it names the accepted set
itself when it refuses one - so what a profile can match and what the
action can select are two lists now,
TOOLS_BY_MODULEandSELECTABLE_TOOLS.tools/smoke_test.py --toolsmeasures both against a live Lightroom.
4.25.0 - 2026-08-30
Added
- Send keys to Lightroom: a button, pad, knob tap or dial/knob detent
types a macro of keys into Lightroom's window - any shortcut the SDK
has no call for. The editor builds the macro as a sortable list with
Ctrl / Alt / Shift per key and Pause rows; in the file it is one
line such as
ctrl+shift+eorescape escape. Windows only.
4.24.0 - 2026-08-30
Changed
- Moving and resizing the crop is smooth now and leaves one Crop Rectangle step in the history per dial spin instead of one per detent. The steps go through the develop controller under tracking, the way the sliders do, rather than writing the catalog each time. A Lightroom that does not expose the crop sides to the controller falls back to the old path.
- Sizing the crop with knob 8 keeps up with the hand: the knob's fine detents are summed in the write throttle, the way slider nudges are, so a spin is a few crop steps rather than hundreds queued up.
Added
- Toggle landscape / portrait crop: the crop turned from portrait to landscape or back at its own size, like Lightroom's X key.
- Toggle crop overlay steps the crop tool's guide overlay to the next one. Lightroom's SDK has no call for it, so the middleware types Lightroom's own O into its window (Windows only), switching to the Crop tool first.
Fixed
crop_moveandcrop_scalenever sent theirNOTE:cropreply: the reply code looked at two names before they were declared.
4.23.0 - 2026-08-29
Added
- A click on the Update available notification starts the update (question box first), the same as the tray menu's line.
Fixed
- The update's folder switch never happened: the script waited forever
for the program to end, in a console-less process where
tasklist | findcould not complete, and left an empty "find" window open. It now runs in a hidden console, without pipes and withouttimeout. Anyone on 4.22.0 has to update by hand once; the folder was never touched, and the unpacked copy next to it is cleaned up on start.
4.22.0 - 2026-08-29
Added
- Updates install from the tray. The version line reads Update to Maschine2LR X.Y.Z... when a release is newer; clicking it and saying yes downloads the zip, checks it against GitHub's checksum, unpacks it next to the program folder, quits, swaps the folders and starts the new version - which says so with a notification. Nothing is downloaded before that yes, and the switch is only made once the old program has ended, by a small cmd script that puts the old folder back if the new one cannot be moved into place. A program folder that cannot be written next to (Program Files) is told apart before anything is downloaded, and the download page is offered instead.
4.20.0 - 2026-08-28
Added
- The main dial works the crop in the Crop tool: a turn makes the crop
larger or smaller about its centre, a tilt moves it (and keeps moving
while held), and the ring around the dial lights blue. Knob 8 sizes the
crop too, in far finer steps. Two new actions behind it, Move crop
and Resize crop, are available to any button and, one action per
detent, to the dial and to any knob - knobs can now fire an action per
detent exactly as the dial does, the step riding in the argument
(
+0.25) for precision. The dial's four directions can now carry a colour, which lights their ring LED.
Fixed
- Crop ratios on a photo shot in portrait: Crop to aspect ratio mixed the photo's size as shown with the crop's stored coordinates, so 4:3 on a portrait photo came out at roughly 1:1.7. Landscape photos were never affected.
- Links into the website manual land on the right heading. The pictures load lazily and the page grew as they arrived, pushing the target down; each picture now states its size up front.
4.19.0 - 2026-08-28
Changed
- The editor's Profile as text (advanced) section is folded by default and remembers whether you opened it, across profiles and reloads. Its explanation, and the one on the Controls panel, moved behind a ⓘ, and "filled controls" now reads "lit", which is what they are.
- The editor page picks up a changed CSS or JS file on the next reload instead of after a restart (the content hash in the asset links was computed once at start-up).
4.18.0 - 2026-08-28
Fixed
- The first button press after a start does something. The controller reports on change, so that press was the first report the program ever saw, and it took it as the resting state.
- The editor no longer thinks a profile's text was edited when the file has Windows line ends; that had blocked every change from the drawn controller with "save or discard your edits in the profile text".
- A reload of the profile behind the editor (the list refreshing, another control saved) no longer wipes edits from the form you are in.
4.17.0 - 2026-08-28
Fixed
- The editor asks about unapplied edits on an unbound button too, not only on bound ones and the screens.
- Black & white really switches the photo now. Since Lightroom Classic 7.3 that is a profile choice, so the button does what the panel's switch does: it sets the Adobe Monochrome profile, and on the way back the colour profile the photo had (Adobe Color if the program never saw it). Writing the old setting alone only flipped the switch and hid the colour sliders.
4.16.0 - 2026-08-28
New
- The editor's "Applies when Lightroom is in" is one line now: the two choices in a sentence, the explanation behind an (i).
- The program is built with Python 3.14, and that is the one version the checks run on.
Fixed
- A folder announced by the plugin is accepted only with a drive letter or a POSIX root, whatever Python version runs the check.
4.15.0 - 2026-08-28
New
- The program has to prove it is the program before Lightroom takes a command from it: the plugin only accepts a connection that opens with the token it wrote into its own runtime folder. Any other process on the PC could drive Lightroom through the plugin's port before. Restart Lightroom once after this update so the new plugin is the one running.
- The pages of a match are dragged into order in the editor's profile list (a grip on each page; the arrow keys work too). The Page order field is gone.
- Click any picture on the website to see it full size.
- The website's stylesheet, script and pictures carry a version in their address, so a browser picks up a changed file after a deploy.
Fixed
- Starting Maschine2LR while a copy is already running now shows the explanation and stays until you close it. It used to flash and vanish, leaving a sound and a browser tab.
- The editor's page links its stylesheet and scripts by content hash, so a browser tab from before an update cannot keep using the old ones.
4.14.0 - 2026-08-28
New
- Sounds through the PC's speakers for the controls that have no feel of
their own: a thock per pad hit (louder for a harder hit), a soft tick
per knob detent (a duller one at the end of the parameter's range), a
pop for a knob tap, and, off unless you want it, a tick per LED step on
the touch strip. Switch and volume in the editor's Settings; your own
wavs in the profiles folder's
sounds\replace the built-in ones. - The website shows both Shorts and keeps this changelog.
-
The screens, redrawn. A screen's main area is now two columns, each a stack of blocks (Group buttons, the other buttons as a list, pads, photo details, photo, masks); the tiles are the pads' colours with text and icon in whichever ink reads on them; Groups are always 4×2 and pads 4×4 as on the hardware; the page you are on is marked in the top bar; and everything is drawn at twice the size and scaled down, so it is crisp on the panel and full-size in the editor and the manual. A photo-details block has its own field list, with "new line" markers to say which details share a line, and its own corner badges; the title is a block too. Profiles written before still work unchanged.
-
A caption without an icon wraps onto as many lines as its tile has room for ("Reset Crop" on two lines instead of "Reset C…"); a word too wide for a line is split with a hyphen.
- The editor's page has the logo as its icon.
- The editor is tested in a real browser now (Playwright), on every push.
Fixed
- The splash window's bar stops moving once the program has found (or failed to find) the Maschine; it only runs while starting.
- The 4-D dial's four direction LEDs are drawn as circles in the editor.
- The sounds come right on the hit. The output stream now opens on Windows' WASAPI (about 20 ms to the speaker) instead of the old MME path, where the click trailed the pad by some 200 ms.
- A USB read or write that fails for a reason other than "nothing arrived" now leaves a line in the log. A controller whose input had died used to look like one nobody was touching while its screens kept updating.
4.13.0 - 2026-08-27
Fixed
- Switching to another photo now updates the values under the knobs and on the touch strip. They used to keep the previous photo's values until a slider moved.
- The start-up window's links no longer close it; Donate opens the donation page; a click on the address copies it to the clipboard.
New
- Only one Maschine2LR runs at a time. A second start points you to the tray icon and opens the editor.
- Restore shipped profiles… in the tray menu puts the shipped profiles back over your copies of the same names, after asking and after a backup of your folder. Profiles under your own names stay.
- The manual's driver step has screenshots of Zadig; the website shows the real unit and a video.
4.12.0 - 2026-08-27
New
- A start-up window for the first twenty seconds: version, what the program is doing, whether the Lightroom plugin is in place, and the links to the website, the donation page and the author.
- The program installs the Lightroom plugin by itself at start and keeps it up to date with each release. If Lightroom had the plugin disabled at some point, that flag is cleared too (while Lightroom is closed).
- Update check: once a day the program asks GitHub for a newer release and says so in the tray menu, with a link to the download page.
- Tray menu: Open profiles folder, Add missing shipped profiles (a release's new profiles without touching yours), the website, and a version line.
- The manual is online, with pictures rendered from the released version.
Fixed
- Info boxes opened from the tray menu could not be closed.
- Ctrl+C stops the program when it was started from a console.
- The Crop page's pad 14 is 16:9 as its label says (it was bound to 16:10).
- The editor draws the screen previews in the middle of the display bezel.
Changed
- No installer any more: the release is a zip of the program folder.
Unpack it, start
Maschine2LR.exe.
4.11.0 - 2026-08-27
- Version number, website address, contact and links kept in one place
(
project.json) and stamped everywhere. - The logo.
4.9.1 - 2026-08-26
The first public build: the program folder with the tray icon, the profile editor, the Lightroom plugin and the manual.
This page is generated from the manual in the repository on every publish, and its pictures are rendered by the software itself. Last built 2026-09-14.