Page 1 of 1

LMMS Progress Report: December 2025

Posted: Thu Jan 08, 2026 5:56 pm
by messmerd

LMMS Progress Report: December 2025

Welcome back to our monthly series of LMMS Progress Reports!

If you missed last month's report, you can find it here.

2025 in Review

As 2025 has come to a close, let's first take a look back at all the progress made over the last year.

  • 186 commits and 1435 files changed (source)
  • New platforms (Linux arm64 and Windows arm64)
  • Support for older macOS versions
  • Wayland support in Linux AppImages
  • A new plugin (Slew Distortion)
  • Several dozen bug fixes, including VST fixes
  • New workspace navigation by clicking and dragging
  • dB scale faders
  • New mute and solo buttons
  • Piano Roll strum tool
  • Clip splitting and resizing
  • Global spacebar play
  • Pattern Editor improvements
  • Various performance-related improvements
  • Various architectural improvements
  • Dependency updates
  • Qt6 support
  • Much more

Thank you all for your support!

And now back to our regularly scheduled programming.

Nightly News

Despite the holidays, December was another productive month for LMMS development. In total 17 PRs were merged.

  • Timeline update refactor (#7454, #8175, #8183)
    Two years ago, a PR was merged which inadvertently broke the playhead's behavior during Record-Play mode. In order to properly fix this regression, a significant refactor of the timeline code was required, and regulus79 rose to the occasion. Aside from fixing the bug, the code is now significantly cleaner, less convoluted, and more maintainable.

  • Beat preview for pattern clips (#7559, #8155)
    Also by regulus79, this PR adds a beat preview to pattern clips, similar to what MIDI clips have always had. It's a nice quality-of-life feature which will let you easily tell which pattern clip is which without needing to open the Pattern Editor.

  • Fix knob linking / refactor linking (#7883)
    This ambitious PR by szeli1 and allejok96 reworks the way linked knobs function and how they are implemented, fixing a crash in the process.

Other changes:

  • Make playhead red when recording (#7847)
  • Add platform identifier to save files (#8116)
  • Allow PianoRoll to open empty again, but with a help icon (#8148)
  • Update translations (#8149)
  • Fix Clang compiler misidentification in About dialog (#8153)
  • Fix Shift+Space corrupting playback state when used on stopped editors (#8154)
  • Fix truncated OGG exports (#8156)
  • Fix AFP reverse mode desync on new sample load (#8158)
  • Fix unknown arch+os info in versioninfo (#8159)
  • Add help message & icon to empty automation editor (#8171)
  • Fix AudioFileProcessor Wrong Beat Length Depending on Sample Rate (#8176)

In progress

In December, 21 new PRs were opened, of which 10 have already been merged. The following is a list of both new and old PRs which were worked on in the past month.

Nearing completion

  • Improve lmms::fastRand() and use it instead of std::rand() (#7741)
    rubiefawn split the random functions into two variants: One with an inclusive upper bound and the other with an exclusive upper bound.

  • Oscilloscope effect (#7937)
    regulus79 fixed a data race that could occur when the sample rate changes. Now the PR is waiting on more approvals.

  • Frequency Shifter effect (#8140)
    LostRobotMusic's new plugin has undergone a few rounds of review and testing, but needs a couple more approvals before it can be merged.

In the works

  • Ghost notes - create, toggle, repeat, paste (#6527)
    allejok96 recently brought this old PR back from the dead. It adds a number of improvements to the ghost notes feature.

  • Add feature to export tracks (#7119)
    This PR aims to add a context menu option for exporting individual tracks. A few months ago it was marked as a draft, but now after some more work by sakertooth, the PR is again ready for review.

  • Auto-quit rework (#8070)
    messmerd refactored the PR, adding support for busses with a variable number of channels, implementing some more optimizations, and switching from interleaved to non-interleaved audio buffers.

Other PRs

These PRs were also created or worked on during December.

  • Fix SongEditor Snap Size to Adjust with Time Signature (#7620)
  • Don't upload strings from third-party code to Transifex (#8013)
  • Add simple versioned autosave (#8084)
  • Lb302 cleanup (#8132)
  • Add quality of life features to the piano roll (#8143)
  • Visualiser plugin for LMMS (#8164)
  • Pull TransferFunction Plugin Effect and Visualiser Plugin Effect (#8168)
  • Increase Clip Resize Grip Width (#8169)
  • Remove override specifier from saveSettings and loadSettings (#8172)
  • Fix PianoRoll toolbar buttons not being disabled initially (#8173)
  • Sync Playback Between Editors (And Upgrade Automation Editor Timeline) (#8177)
  • Share internal SampleBuffer data instead of the object (#8178)
  • Remove unused argument from AutomatableButton (#8179)
  • CMake: Check for PERL's List::MoreUtils (#8180)
  • Added Tagalog translation by @kevinjanbarluado (#8181)
  • Add Horizontal Scroll Bar to the File Browser (#8184)

Goals for January

We're continuing to work towards the goal of releasing a new alpha version. With #7454 and #7883 now merged, only two 1.3-alpha.2 milestone issues remain before the new release is ready, so we will be focusing on those this month.

New contributors

Closing thoughts

Thanks for reading! We have a lot of work ahead of us, but if you'd like to contribute to LMMS's development, it could go faster. Whether you're a developer or a tester, it all helps!

If you have any questions or suggestions, please let us know below or on our Discord.

Happy New Year!