Replies: 3 comments
-
Great work and thanks for the overview! |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Thank you for these updates - for both the actual changes and the text summary of them. All of these are greatly appreciated 🎶 🛐 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
LMMS Progress Report: February 2025
Welcome back to our monthly series of LMMS Progress Reports!
The first progress report was well-received, so we're happy to continue.
If you missed last month's report, you can find it here.
Nightly News
February was an incredibly productive month for LMMS development. Our MVP (most valuable programmer) of the month was tresf who contributed over a dozen PRs - mostly fixes for platform-specific bugs.
Removed song import global automation (#5229)
This old PR which automatically upgrades global automations to regular automation tracks was finally merged. Global automations are a little-known feature in LMMS that are largely seen as a mistake due to how hidden and inaccessible they are, so we've been aiming to remove them completely. This PR is a significant step towards that goal.
Math functions and constants (#7558, #7685, #7696)
Developer rubiefawn returned after 10 years to deliver this series of PRs that modernize our usage of math functions and replace our custom math constants with C++20's
std::numbers
. Along the way a few DrumSynth regressions were found and fixed - regressions which would have caused some .ds files to load incorrectly. Some minor performance improvements were also made to .ds file loading.Fixed logarithmic behavior when dragging knobs and sliders (#7647)
Ever notice how difficult it is to adjust logarithmic knobs and sliders with your mouse? They weren't supposed to be like that and now thanks to regulus79 they have been fixed.
Linux x86_64 CI upgrade (#7678)
Our Linux builds for x86_64 are now built on a plain Ubuntu 22.04 build runner rather than a custom Ubuntu 20.04 Docker image. As a result, a number of our dependencies were updated, finally allowing Opus samples to be used in the nightly builds. Unfortunately, support for MP3 samples will have to wait until either Ubuntu 24.04 or the usage of vcpkg for Linux dependencies. Note that due to building on Ubuntu 22.04 now, the equivalent of Ubuntu 22.04 (specifically distros with at least glibc 2.35) is required for running the nightly AppImage.
Fixed broken Windows VSTs on Linux (#7678, #7686, #7690)
This series of PRs from tresf fixed Windows VSTs on Linux AppImages which is something that had been broken for far too long. In the process, the AppImage startup scripts were refactored.
Fixed ZynAddSubFX's GUI on macOS (#7681)
Due to a macOS-specific issue in our shared memory implementation, ZynAddSubFX's GUI could not be opened on macOS. This PR fixes that problem.
Windows MinGW CI upgrade (#7682)
Our Windows MinGW builds are now built on a plain Ubuntu 24.04 build runner rather than a custom Ubuntu 20.04 Docker image. Unfortunately none of our dependencies have been upgraded with this change, though it did bump our MinGW compiler version. With this compiler upgrade, most C++20 features are now usable in the LMMS codebase.
Fixed Carla detection (#7686, #7691, #7722)
Carla used to be present in the LMMS instrument plugins list on Linux even when not installed. This has been fixed.
Fixed envelope and LFO graph size on resizable instruments (#7738)
This fixes the envelope tab of SlicerT which had been painful to look at ever since some changes from a previous PR made it resizable.
Other changes:
AudioPort
->AudioBusHandle
(#7712)In progress
February also saw several newly-opened PRs that add or extend features or fix bugs. Below is a non-exhaustive list.
Nearing completion
Clip splitting and resizing (#7477)
Extensive testing of this PR uncovered a number of bugs, but regulus79 has been steadily working to patch them, bringing this PR closer to completion.
Add shortcut for chord inversions (#7718)
This new PR by regulus79 lets you cycle through the chord inversions of a selection of notes. Neat!
Improve "Open containing folder" feature for file browser (#7700)
AW1534 improved LMMS's file browser by adding an "Open containing folder" context menu action to open a folder in your system's file manager, and making the "Show in file manager" action for files open and select the file in your system's file manager.
dB scale faders (#7636)
In the works
Detachable windows (#3532)
Not much progress has been made since January. There are a few separate PRs that are all trying to modify some window-related code, but there hasn't been enough coordination to prevent everyone from stepping on each others' toes. Due to that, progress has stalled.
Audio recording (#5990)
Not much has happened since January. We're still in need of a way to save recordings to disk rather than always embedding them in project files.
Qt6 support (#7339)
Work has picked back up on the Qt6 upgrade PR. The goal is to allow optionally building LMMS with Qt6, though in the future once we switch all our CI builds to use Qt6, Qt6 could become the default and Qt5 support could be removed. Qt5 reached the end of support in May 2023, and will reach the end of its extended support for commercial users in May of this year, so upgrading to Qt6 is an important task. We're currently trying to get a successful build using Qt6 with Windows MSVC, though there are some zlib-related issues we need to work out. We hope Windows MSVC can become our dedicated Qt6 build during our transition period from Qt5 to Qt6.
Refactor PortAudio backend (#7444)
This PR by sakertooth refactors the PortAudio backend in order to dramatically simplify the code and fix DirectSound and MME when using PortAudio.
Multi-channel plugins (#7459)
Messmerd has been chugging along on this PR, and now all the known bugs are fixed and it is ready for testing. Only a few tasks remain, including optimizations, renaming some classes, and improving the GUI.
Sample caching (#7497)
This PR is being generalized to support not just sample caching but also caching for other resources such as sample thumbnails.
Refactor OGG export (#7697)
Another refactor PR by sakertooth, this time fixing an issue with exported OGG files and setting it to always use VBR (variable bitrate).
Piano Roll strum tool (#7725)
This is an interesting new feature that regulus79 surprised us with out of nowhere. The strum tool allows for easy and intuitive shaping of note positions within chords to produce strum patterns.
Other PRs
These PRs were also opened or worked on during February.
Goals for March
In March, we plan to finish work on open PRs, prioritizing bug fixes and remaining 1.3 milestone issues.
Recently we noticed a regression in ZynAddSubFX which affects the sound of its .xiz presets after opening the ZynAddSubFX GUI. It has been present in the nightly builds since last July. Discussion can be found here. This is something we plan to fix as soon as we can in order to minimize the impact on nightly users.
And as mentioned before, the detachable windows PR and a couple other related PRs are all trying to modify the same window resizing code and this is leading to merge conflicts. The devs involved in these PRs need to coordinate to fix the issues without breaking each others' code. JohannesLorenz brought this point up earlier in a discussion.
New contributors
None last month, but this month it could be you!
Administrative changes
As you can see, some of these changes occurred in January - we just neglected to mention them in the January progress report.
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 March!
We will now leave you with this beautiful springtime poem (apologies to e. e. cummings)
Click to expand
Beta Was this translation helpful? Give feedback.
All reactions