LMMS Progress Report: June 2025

Welcome back to our monthly series of LMMS Progress Reports!

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

Nightly News

June was another fairly quiet month for Nightly. In total 17 PRs were merged last month, almost entirely bug fixes.

  • Use vector assets for Dispersion plugin (#7773)
    Another plugin's PNG assets have been replaced by SVGs in this PR by rubiefawn.

  • Flanger: connect "Invert" to model (#7929)
    To our embarrassment, it was recently discovered that the Flanger effect's "Invert" checkbox did not actually do anything. With a single line of code, michaelgregorius fixed it, and now the Invert checkbox swaps the left and right feedback channels as intended.

Other changes:

  • Fix Position Line gradient appearing in all editors no matter which one is playing (#7882)
  • Update Sample Length when Loading New Sample via Double-Click (#7898)
  • Fix Piano Roll key events from leaking to other instrument windows (#7915)
  • Remove m_inBuf from AudioJack (#7922)
  • Move FileRevealer into the lmms::gui namespace (#7923)
  • Rename some include guards (#7924)
  • Fix quick access letter conflict with Export and Export Tracks (#7927)
  • Fix handling of filenames with periods (#7934)
  • Make LOMM's Init button non-checkable (#7940)
  • Fix TextFloat flickering (#7942)
  • Don't undo zoom! (#7943)
  • Audio buffer views (#7945)
  • Fix Auto Resize when Dragging Sample Files onto Sample Clips (#7952)
  • Update clip length after clearing all notes (#7960)
  • Fix effect gate logic (#7971)

In progress

In the past month, 30 new PRs were opened, of which 13 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

  • Remove the FIFO thread (#7568)
    This PR by sakertooth simplifies the way AudioEngine renders audio buffers and removes some unnecessary conversions between sample types.

  • Add Beat Preview to PatternClipView (#7559)
    While MIDI clips, sample clips, and automation clips display a visual indication of their contents in the Song Editor, pattern clips conspicuously do not. At least not until this PR by regulus79.

  • Pitch Bending Directly in the Piano Roll (#7759)
    In the past month, this PR has been tested and a bug has been fixed. It is fairly well tested but just needs another code review.

  • Add Playhead and Timeline to Pattern Editor (#7794)
    Continuing the theme of improvements to patterns, regulus79 also made some significant user experience improvements to the Pattern Editor. This PR adds a visual highlight to currently playing beats in the Pattern Editor so users can tell what beats are playing, and adds a timeline similar to the one in the Song Editor and other editor windows.

  • Fix crash when using certain VSTs (#7976)
    Fastigium has been spending a lot of time and effort troubleshooting and fixing a serious VST regression that causes a crash when notes are played on certain older VSTs (such as Synth1), and this PR is the result of that work. It fixes the bug on both the Windows MinGW and Windows MSVC builds, and efforts are also being made to fix it on Linux.

In the works

  • Refactor to move positionChanged signal to Timeline (#7454)
    This PR by regulus79 fixes a regression that was causing the Piano Roll's playhead to be hidden during Record-Play mode.

  • Multi-channel plugins (#7459)
    messmerd has been making some last minute changes, most notably incorporating new audio buffer views from #7945. Unfortunately, an issue came up regarding the handling of the "continue if not quiet" process status of effect plugins, which needs to be addressed.

  • FileDialog Enhancements (#7575)

  • Stream sample previews instead of loading all contents into memory (#7705)
    Some work has been done to simplify the code and fix some small issues.

  • Add ability to drag files to and from external applications (#7849)
    This PR was refactored recently. It works fine for those who have tested it, though another code review is still needed.

  • Fix audio resampling functionality (#7858)
    sakertooth reworked part of the design this past month, and now it is again ready for testing and review.

  • Fix Resized Samples getting Shifted after Tempo Change (#7890)

  • Output combo boxes for Jack driver (#7919)

  • Add Oscilloscope Effect (#7937)

Other PRs

These PRs were also created or worked on during June.

  • Replace uses of std::rand() with lmms::fastRand() (#7741)
  • Explicitly add clips and tracks to their respective containers (#7754)
  • Add Setting for Default Autoscroll State (#7851)
  • Add Duplicate Notes Shortcut to Piano Roll (#7873)
  • Make Resizing Tracks more Natural (#7878)
  • Fix knob linking / refactor linking (#7883)
  • Use C++20 in RemoteVstPlugin (#7916)
  • Refactor Global Spacebar Play (#7926)
  • Better support for smooth scrolling trackpads and mice (#7941)
  • Fix sensitivity of tangent editing in Automation Editor (#7946)
  • Update crash01, cello01, e-organ01 to shorter files (#7948)
  • Add Info TextFloat for Piano Roll Knife Tool (and make cut notes auto selected) (#7953)
  • Remove m_resizable from Clips (#7954)
  • Shift+X for knife (#7959)
  • Vestige: resize on IdVstPluginEditorGeometry (#7963)
  • Fix Carla GUI on Wayland (#7966)
  • Fix Octave Chord in Piano Roll Only (#7974)
  • Fix missing emails in the author section (#7975)

Goals for July

We're continuing to work towards the goal of releasing a new alpha version. Most of the remaining milestone issues are close to completion, so with some concentrated effort we will be able to release it soon. That will be the main focus of our efforts in July.

New contributors

None last month, but this month it could be you!

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.

Have a great July!

P.S. The deadline for BOL11 was pushed back to the end of July, so you still have time to submit a track!