Download LMMS
Downloading and using LMMS is free! Just choose the operating system you want to run LMMS on:
Install LMMS on Linux
Click one of the buttons below to download LMMS for Linux.
Stable Versions
LinuxLMMS 1.2.2
Note for macOS users: if you're using macOS 10.14(Mojave) or newer, please use the according version. The macOS 10.13 build is buggy on 10.14 or newer.
New changes in 1.2.2: (2020-06-25)
-
General improvements
-
UI improvements
- Note selection: Editing values works in dialog (#5438)
-
Bug Fixes
- Piano Roll - Fix retrigger with vol/pan sliders (#5271)
- Fix a rare crash on export (#5293)
- Fix LMMS not launching when AppImage has spaces in name (#5297)
- Fix vertical piano being unresponsive when clicked too fast (#5262)
- Fix crash with Grooove VST (#5300)
- Fix crash on deleting instrument with controller connections on knobs (#5306)
- Fix notes being placed at negative positions on MIDI import (#5343)
- Fix scrolling direction in the song editor due to stuck Ctrl/Shift (#5286)
- Fix stuck notes with Helm VST on tempo automation (#5365)
- Fix file factory delimeter position (#5378)
- Fix a muted demo project "Greippi - Krem Kaakkuja (Second Flight Remix)" (aeac24c)
- Fix controls linking misbehaviors (#5336)
- Fix loading and saving of .fxb/.fxp files on Windows (#5411)
- Fix crashes and hangs on importing some Hydrogen drum kit songs (#5420)
- Fix freeze when replacing Mallets with another instrument (#5428)
- DrumSynth: ensure correct envelope length in any sample rate (#5467)
- AFP: fix loading start and loop points if the loop point is automated (#5472)
- Select the correct piano key for marking semitones (#5478)
- Ensure consistent use of effect gate (#5475)
- Fix Piano roll crashing when window is vertically scaled too large (#5449)
- Fix some memory errors with JACK audio/MIDI (#5452)
- JackMidi: Remove confusing warnings at shutdown (737fcd3)
- Fix SF2 player crashing when file is not a soundfont, with FluidSynth 2 (#5487)
- BB editor: fix mouse event affecting wrong beats due to the cursor shape (#5489)
- Fix knobs moving too fast on some platforms (#5360)
- Fix notes created in BB editor resizing incorrectly when resizing a selection (#5515)
- Fix some patterns not being saved in project (#5537)
-
Localization
Previous features and fixes:
Click to show/hide
- General Improvements
- Respect OS' case sensitivity when checking for existing files (#4768)
- Remove MIDI connections from factory .mmpz files (#5163)
- Show FreeBSD in the build version info (732448c)
- Fix build with musl C runtime library (#4825)
- Fix debug build broken in RC8 (a233291)
- DrumSynth: Make the parsing logic safer (#4869)
- macOS: Disable soundio on for stability (991ffcd)
- Allow sample track clips to be resized smaller than one bar (#4933)
- Don't require X11Extras on Linux when VSTs are disabled (#4953)
- Allow recording chords directly from the piano-roll (#4938)
- Fix more issues with ZynAddSubFX and/or VSTs related to automation (#4942)
- Better default sounds for Nescaline and Freeboy (#4968)
- DMG rebranding (#5013)
- Don't quit command-line rendering when failed to load sample files (1ab1280)
- Allow building SF2 player with FluidSynth 2 (#4678)
- Disable FX auto quit by default to avoid buggy behaviors (#4378)
- Enable VST sync by default (69a51eb)
- Improve handling of nan/inf (#4743)
- Allow undoing note movements (6df6f12)
- MIDI import/export: map volume with the full range (#4785)
- Add a hidden setting to toggle built-in sound sanitizer (#4787)
- Don't let silent instruments wake up sleeping effects (#4792)
- Bring back PortAudio support on Windows (#4770)
- Initialize peak controller value with the base value (#4382)
- Quit exit if failing to save project (#4428)
- CMake: Fix errors when path contains spaces (d1c36d7)
- CMake: Fix FindSndio module (c45a21a)
- Fix project URL for some files (e9f2b57)
- Don't let VST/ZynAddSubFX block whole audio playback (#4460, 9fe74c2)
- Some demo project license fixes (#4481)
- Fix
CMake < 3.1compatibility when cross-compiling (#4530) - Remove Qt temporary files after loading ZynAddSubFX settings (#4551)
- Extend Sndio audio backend support to more OS (#4486)
- Improve handling of invalid backend setting (91ca660)
- Enable Carla on macOS (#4558)
- macOS: Fix macOS compilation without SDL (46512fd)
- VST: Wait for reply when updating sample rate (d0b3be7)
- VST: Fix VSTs on Fedora 27 (#4276)
- AppImage: Use bundled jack if missing (#4094)
- AppImage: Fix AppImage tool path (fc9c3ea)
- Always remove infs/nans (#3706)
- Add support for .pat previews, drag+drop (a8e8746)
- Fix typo: Phrygolydian to phrygian (#4223)
- Change default working directory location (#4288)
- Disable fluidsynth audio backends if possible (#4300)
- Revert
CONTRIBUTORSfile removal (#4307) - Update
rpmallocsubmodule to 1.3.0 (fce9326) - Allow controlling VST effects without own GUI (235e8ee)
- Add AppImage support to Linux builds (#3688, #4026)
- Replace MemoryManager implementation with rpmalloc (#3873)
- Use weak loading of libjack (#3887)
- Note sorting algorithm rework (#3881)
- Openbsd sndio support, apply abs call fix (#3839)
- Various arpeggio improvements (#3858, #3867)
- Switch Travis-CI to Qt5.9.2 (d0194e6)
- Disable portaudio on Windows to prevent runtime error (#3889)
- Add input validation to linearToLogScale() (#3932)
- Fix recent files not working on KDE (#3872)
- CMake: Fix non-existing target warnings (0dbdafc)
- Unsolo mixer channels on delete (#3982)
- Automation Editor - Straighten out draw line function (#3997)
- Open correct VST folder in previously saved projects with existing VeSTige instruments (#3550)
- Add missing macOS packages to Travis and the macOS wiki (#3595)
- Proper Case Renames (#3573)
- Ogg files - Silence warning message and fix obsolete vorbis tag message (#3634)
- New export encodings: MP3 (#3615, #3641), 24 bit WAV (#3552), variable bit rate OGG (#3552)
- Save the correct subwindow size when it's hidden (#3589)
- Suppress midi in events on export (#3778)
- Correct spelling in fft_helpers.cpp (#3645)
- Ensure midi port exists before removing (#3655)
- MIDI - Don't apply base velocity to all controller values (#3678)
- Cancel track rename with Escape key (#3676)
- Equalizer plugin, refinement to analysis display (#3530)
- Remove executable file permissions for theme files (#3752)
- Update Freeboy files from Game Music Emu 0.6.1. (#3618)
- Respect build options in export dialogs (#3714)
- Build support for Haiku (BeOS) Operating System
- Build support for OpenBSD/sndio backend (#2690, #2707)
- Better handling of corrupt projects/presets
- Export as loop support for CLI (#2131)
- Added Apple MIDI support (#1153)
- Fix "Dummy" audio selection (#2376)
- MIDI export support (#1686, #3733)
- MIDI import
- Dedicated folders for plugins, instrument patches (#1807)
- Fast-switch support for instrument dialogs (#1987)
- Improved support for HDPI displays (pixel independent font sizes)
- SDL is now the default audio back-end for new installations (#1600)
- Prevent overwriting of recover files (#2174)
- Added LocklessList and use it for new play handles (#2895)
- Remove broken FLP import, revert project to GPLv2+ only (#2904)
- Improved file input validation (#2523)
- Extended arpeggiator functions (#2130)
- Disable minimization on all subwindows (#2983)
- Sample tracks can be played from any song position (#3133)
- Allow moving tracks by dragging the track label button (#3271)
- Option to allow auto save while playing (#3088)
- Make Controller Rack fixed width (#3240)
- Easier note resizing in the Piano Roll (#3304)
- Add a 'clear' button to line edits in the Sidebar (#3329)
- Don't count muted tracks in track length when exporting (#3390)
- Prevent issues with large files, Bump up sample limits to 300MB and 90 minutes (#3411, #3293)
- Automation editor fixes: Delete points regardless of quantisation, new points clear out surrounding points, use
<Ctrl>to override the behaviour (#3352) - Fixes for msys2/mingw builds on Windows (#3369)
- Fix opening of project files on macOS (#3219)
- Add SF2 support for macOS (#3446)
- Include past automation patterns in processing (#3382)
- Added and fix automation labels for Mixer elements (#3453)
- Add a new demo song - Buzzer Beater (Kicker challenge winner) (#3482)
- Always use the master channel for preset previews (#3503)
- Remove limited recover session (#3545)
- Provide support for fallback config values, make autosave on by default (#3551)
- New metronome samples (#3513)
- Folders/Paths
- Make templates folder configurable
- FX Mixer
- Added "Remove unused channels" feature
- Added Mixer "solo" mode
- Shortcut
SHIFT + INSERTadds new channel
- New Instruments:
- Gig Player - Plays Giga Sample Banks (similar in usage to SoundFont files) (screenshot)
- FX - Effects Plugins
- Effects now sort-able, list in proper alphabetical order (#2834)
- Equalizer plugin - A new native parametric graphic EQ effects plugin (screenshot)
- New Bitcrush effects plugin (screenshot)
- New Crossover EQ plugin (can be used as a tonestack) (screenshot)
- New Multitap Echo plugin (screenshot)
- New ReverbSC plugin (screenshot)
- Native effect plugins redesigned to fit with the new theme (#2831)
- Noncyclic smoothing for waveshaper and dynamics processor to avoid unwanted distortion (#3137)
- Sample exact models/controllers
- Supported by FX mixer, Instrument VOL knob, Amplifier FX plugin, WaveShaper, LFO Controller, Dual Filter, BassBoost
- Allows smooth sidechaining with peak controller
- Allows AM modulation with LFO controller
- Track Enhancements:
- Add ability for instruments to ignore "master" pitch slider
- Quick FX Mixer assignment from the track context menu
- Added Automation Track pattern "flip" (horizontal/vertical)
- Better thumbnails/previews of Piano Roll patterns
- Fix crash when changing note velocity (#2713)
- Added Step cloning in Beat/Bassline Editor (screenshot)
- New BB tracks have the same length as first (#2883)
- Metronome (#2278):
- The metronome can now be turned on and off with a new button
- Will play during song, pattern and BB playback when turned on
- Metronome is ignored during export
- Project templates:
- The default template can now be saved explicitly using a new option in the file menu
- File menu has a new option "New from template"
- User presets are now also shown in the tool button menu and in the "New from template" menu
- UI Improvements
- Make splash screen text white (#5149)
- Show Beat/Bassline Editor on clicking track labels of B/B tracks (#5060)
- Enable dark title bar on macOS (df79f8c)
- macOS: Add shortcuts for inserting bars, deleting bars and deleting notes on Apple keyboard (#4851)
- AudioFileProcessor: Better tooltip for ping-pong loop (#4868)
- VST: Add VST always-on-top config option (17f6235)
- VST: Ensure VST windows show properly in taskbar (6fef905)
- VST: Don't show error when loading empty VeSTige instance (205b575)
- Equalizer: Fix spectrum window formula (#4895)
- Equalizer: Use brighter and more opaque colors for the spectrum view (#4772)
- Don't draw note detuning info over the volume/panning area (#4965, 9ff882d)
- Fix hanging cursor in piano-roll (#4960)
- Update splash screen (#5002, #5019)
- Treat empty patterns in song editors as Beat/Bassline patterns only if zoomed enough (5a92105)
- Decrease the margin of the LFO graph for better appearance (d9f5e8a)
- Redesign the LMMS logo and mimetype icons (#4519)
- Deselect FX channel's name text when losing focus (#4293)
- Setup Dialog - Fix bottom of letters cut off (#4483)
- Make the oscilloscope colors available as properties (#4512)
- Update LMMS UI more frequently (#4570)
- Styling: Add File Browser Styling (#4085)
- Window behavior: Reset window title after render (a39ea2b)
- Piano Roll: Erase on mouse button drag in erase mode (#4150)
- Piano Roll: Draw the entire length of a notes pitch bend info (#4233)
- Piano Roll: Adjust contrast of marked semitones in the piano roll (#4239)
- Piano Roll: Change selected notes color (#4243)
- Piano Roll: Change Detune To Pitch Bend in Piano Roll (#4194)
- Widgets: Fix incrementation of LcdSpinBox QInputDialog (38b69a7)
- Widgets: Fix some bugs with LFO waveform drag and drop (#4227)
- Widgets: Adjust MDI subwindow buttons contrast in the MenuBar (#4242)
- Tracks: Fix UI glitch where track ticks did not line up (#4171)
- Tracks: Better behavior when left-clicking a TCO (#4290)
- LCD Alignment Fix (#3864)
- Improve Automation Point delete radius and size (#3902)
- Fix monstro's osc 3 vol knob values (#3912)
- Remove text from project notes of factory templates (#3939)
- Automation Editor - remove (comment out) unimplemented buttons (#4051)
- Piano Roll - Don't quantize when pasting notes (#4058)
- Brand new theme (#2806)
- Fix misaligned controls icon in the VeSTige plugin (#3664)
- Update classic/style.css with TabWidget, TrackView, PianoView and Fader colors (#3665)
- Fixes for project loading progress display (#3672)
- Add a border on non-fixed BB patterns (#3758)
- Paint a black rectangle under patterns to prevent glitches (#3759)
- Enable HiDPI Scaling (Qt 5.6+ only) (#3814)
- Range Select in Song Editor
- Horizontal mouse wheel support in Song Editor
- Group copy/move in song editor
- Better collection and displaying of startup errors (both GUI and CLI)
- Better name handling for copied patterns
- Allow the disabling of ".bak" files
- Piano Roll shortcut
Alt+Left/Alt+Rightswitches between Piano Roll patterns - Add Quantize button to Piano Roll
- Marking Piano Roll semitones marks on all octaves (#2193)
- Better incompatible theme detection (forces minor version check)
- Recursive sample/preset/project searching in File Browser
- Add X/Y pad to Delay FX plugin (screenshot)
- Added deselect shortcut support for Piano Roll (
CTRL + SHIFT + A) - Adjacently insert cloned tracks (#170)
- Status message on splash screen during load (#1696)
- Display plugin information for native plugins (#1985)
- Draw note names on the white keys when "Enable note labels in piano roll" is selected (#2285)
- ALSA audio device can now be selected from a combo box (#2135, #1600)
- Fix style for Qt5 about dialog (#2781)
- Finer zoom level - 12.5% (#2517)
- Piano roll notes are drawn flat, borderless and transparent (#2827)
- Subwindow title bars are themeable now (#2516)
- Newly added instruments inherit the size of a BB pattern (#2883)
- Add a Rename option in controller context menu (#2804)
- Render the mixer levels in a dBFS scale (#2672)
- Rename track and FX channel names directly, without using a dialog (#2916, #2918)
- Recover dialog redesign (#2176, #2908)
- Various new CSS properties added for better themeability
- Redesign mixer faders, show exactly when clipping and when over -6db (#3056)
- dBV is actually mislabeled dBFS (#3095)
- Set default suffix in 'Save as' file save dialog (#2230)
- Redesign the Delay Plugin (#3120), Dynamics Processor Plugin (#3327), Dual Filter Plugin (#3484), Bitcrush Plugin (#3575)
- Fixes for the classic theme (#3226, #3424)
- Set text below the icon on Sidebar buttons (#3256)
- New, more distinguishable automation slope icons (#3282)
- Window size fixes (#3334, #3329)
- Remove non-document menu icons on macOS (#3363)
- Piano Roll and Automation editor grid redesign (#3062)
- Fix Mixer labels cutting off (#3241)
- Make beat notes visible in MelodyPattern (#3375)
- Anti-aliasing in AutomationPatternView and AutomationEditor (#3386)
- Switch cursor icon when changing tool in Automation editor (#3414)
- Disable HiDPI mode on Windows (#3531)
- Switch WidgetTab to use artwork tabs (#3569)
- Bug Fixes
- Fix building RemoteVstPlugin with Wine >= 4.14 (#5210)
- Fix stuck keys when dragging on the piano view (#5127)
- Fix crash on unmarking octave semitones (#5184)
- Fix invalid MIDI Program Change decoding (#5154)
- Rubberband fix for selecting a large area in the song editor (#5003)
- VeSTige: show icon on 'Turn off all notes' button (#5237)
- RemoteVstPlugin: fix crashes when failed to open a file (#5235)
- Organic: fix glitch at the beginning of a note (#5252)
- Fix broken audio sample exporting on high sampling rate (#5226)
- AppImage: Fix JACK detection (e54969c)
- Fix ZynAddSubFX pitch resetting on project load/export (04768ee, 97d5529)
- VST: Fix crash when using 32bit VSTs on 64bit Linux with VST sync turned on (3aeacca)
- Fix crash when trying to drop controls into the empty automation editor (#4882)
- Fix crash Ctrl + dragging patterns between instances (#4882)
- Fix creating new ZynAddSubFX banks on Linux (#4905)
- Fix empty editors after closing them and creating a new project (#4891)
- Fix crash when loading presets with broken controller connections (#4939, 934ea6d)
- Fixes crash on cloning patterns on Qt >= 5.12 due to cursor issues (#4918)
- Fix notes getting stuck under high CPU conditions (#4908)
- Fix crashes due to race conditions in NotePlayHandleManager (#4966)
- Fix LADSPA automations getting disconnected on export (#4972)
- Fix crash on removing sample track clips while playing (#4982)
- Fix sample tracks out of sync if the processing sample rate is different from 44100Hz (#4991)
- Fix the genre metadata of exported MP3 files wrongly set to Blues (47d6388)
- Fix metadata not written correctly when exporting multiple tracks (#5005)
- AppImage: Fix Carla detection (9799f3c)
- AppImage: bundle JACK fallback library correctly (97e738a)
- Fix VST track cloning in Beat/Bassline editor (fb5c8f5)
- Fix unusable instrumet track dropped on the Beat/Bassline editor (43b700d)
- Fix song editor visualization after maximizing (#4698)
- Fix minor glitches with sample tracks (#4666)
- Fix hangs and glitches when automating VST plugins (#4692)
- Fix crash on pressing a key when VSTi without GUI loaded (277e8b6)
- Fix occasional hang of Sinnah VST (3a94ed3)
- Fix some VSTs out of sync (614bca7)
- Windows: support more than 62 simultaneous VST plugins (9c9290e)
- Fix lost control links in copied automation patterns (#4723)
- Fix wrong tooltip texts on the FX mixer (#4740)
- Don't render automation tracks in Beat/Bassline tracks as a separate track (#4747)
- Keep off-grid position of TCOs on group moving (#4262)
- Fix infinite MIDI note with VST made in Cabbage (#4766)
- Fix builds on macOS Mojave 10.14 (#4767)
- Fix the inability to open VST presets in some languages (227e88a)
- Fix undesirable clipping from internal sanitizer (8618ab5)
- Fix Linux HiDPI handling (bbedfa9)
- Ensure the restore button of a subwindow shows up correctly (#4819)
- Fix automation processing priority (#4387)
- Piano roll: Fix some crashes when no pattern is open (#4392)
- Piano roll: reset editing mode when lost focus (#4393)
- Fix crash when loading project with missing peak controller effect (#4391)
- LADSPA: Fix undefined reference due to vectorization (#4434)
- Fix hang on exit from specific MIDI devices + WinMM (#4451)
- Fix path/file name encoding issues (#4401)
- Windows: VST DLL load failure and setting loading/saving error (792e478, 0f3b41f)
- Windows: ZynAddSubFX setting loading/saving error (9d0aae2)
- Windows: sample file loading error (ddcae47)
- Windows: WAV export error (1af0f08)
- Windows: MIDI import error (3e538d5, 112d342)
- Improve STK rawwave path handling (62d505b)
- Fix occasional audio interface deadlock (#4450)
- Fix hidden sample track panning knobs when using compact track buttons (#4477)
- Fix ZynAddSubFX knobs disconnecting from controllers when exporting (#4493)
- AppImage: Fix launcher script (#4525)
- Fix Freeboy noise channel playback (#4538)
- Fix a rare crash when automating tempo while stacking/arpeggio is on (#4545)
- Fix some VSTs ignoring sample rate changes (de427bb)
- Fix hang when updateInOutCount called from processReplacing (cc2ae66)
- Fix VST transport flags usage in VST sync (2c5cda5)
- Fix VST windows resizing partially (53dadd5)d the resizing case.
- Fix RemoteVstPlugin spawning console host processes (0ad8527)
- Fix some VST hangs due to uninitialized COM/OLE in RemoteVstPlugin (4c7c68f)
- Fix some VSTs resetting sounds due to using programs as presets (c3db486)
- Fix decimal separator handling when loading real numbers (#4547)
- Fix crash on Windows due to disabled PortAudio (3064f03)
- macOS: Fix ZynAddSubFX "Show GUI" (#4065)
- macOS: Fix ZynAddSubFX NaN issue (#4261)
- UI: Fix patman logo (#3660)
- UI: Fix theme after upgrade (#4199)
- UI: Fix splash screen on Windows (c3438a1)
- ZynAddSubFX: Fix decimal point issue after switching to Qt5 (#4244)
- Fix quantization of pasted notes (7de9649)
- Allow individual velocity/pan changes with alt (#3923)
- Use
${CMAKE_DL_LIBS}inCMakeLists.txt(bd8c272) - VST: Fix some deadlocks by removing plugin lock (6e0dda6)
- VST: Fix AmpliTube crash (709fc79)
- VST: Fix lack of sound in iZotope plugins (5ccd222)
- Fix command line rendering with VSTs (#4093)
- Add journaling checkpoint to recording notes (#4144)
- Better wine prefix detection (#4176)
- Fix rendering cancellation with VSTs (#4189)
- Fix deadlock on multi-track export with SDL (#4083)
- Fix redundant path elements (#4211, #4271)
- Ensure correct length of automation patterns in BB editor (#4212)
- Remove MIDI connection from factory files (#4207)
- Play correct note when dragging left side of virtual keyboard (#4265)
- Fix stack overflow in RemoteVstPlugin (#4279)
- Fix preset preview issues with peak controllers (#3904)
- Prevent left-clicking TCO from decreasing its size (#4290)
- Limit the automation-editor scaled-level tooltip to the grid (#4308)
- Fix detuning crash after deleting the note being edited (#4324)
- Fix crash when job queue is full (#4335)
- Fix occasional crash when moving TCOs (#4339)
- Fix crash on exit from MIDI connections (#4340)
- Remove release time from arpeggiated note (#4355)
- Remove FluidSynth requirement for background picture (#4364)
- Restart flanger LFO on playback state change/exporting (#4363)
- Fix VST sub-window creation glitches in project loading (a2cb7e9)
- Fix effect dialog layout glitches (1220374)
- Fix X11 embedding on Qt4 (55da698)
- Fix toggling UI for non-embedded VST effects (ee18011)
- Preserve VST GUI positions and keep them on top (fcc883f)
- VST: Add workaround for small effect window on project load (b808631)
- Fix RemoteVstPlugin not exiting when effect removed (55d3fbc)
- Fix crash when re-opening VST effect manage dialog (24ae559)
- Fix Mallets crash when STK rawwave files can't be loaded (75a6502)
- Handle shrank automation patterns correctly (#4012)
- Linkage issue fixes due to inlined functions (#3815)
- Fix destructor call in NotePlayHandleManager (#3884)
- Fix sfxr buffer noise (#3883)
- ZynAddSubFx: Fix preset loading (#3891)
- PlayHandle: Zero out buffer before processing (6fc4577)
- Fix single-streamed instruments inheriting envelopes when dropped on occupied tracks (#3900)
- Fix crashes and deadlocks with previewing preset (#3905)
- Fix LB302 producing a noise burst when a project is opened (#3844)
- LADSPA - Fix various floating point errors (#3927)
- Fix wrong value interpolation (#3929)
- Fix off-by-one/heap-buffer-overflow as reported by ASAN (eb09ff6)
- Fix a bug when changing value by double click on fader/knob on native EQ (#4018)
- Fix various bugs when using JACK (#4005)
- Fix a qt4 crash (#4037)
- Fix VST plugin compilation in 64bit Ubuntu (#3593)
- Fix empty VST tracks creating noise in playback (#3798)
- Fix some VST deadlocks/hangs (fe98a9a)
- Fix segfault on VST plugin I/O change (7429cb8)
- Don't use VST-provided memory when loading chunks (#3805)
- Don't let VST plugins make the main window transparent (#3809)
- Fix position marker height on startup (#3587)
- Fix "out of buffers" crash (#3783)
- Fix sound while playing from piano roll, when BB tracks are muted (#3804)
- Stop some autosave crashes (#3841)
- Fix builds from directories with spaces (#3604)
- Fix artifacts when rendering as 24 bit WAV (#3617)
- Fix crash when pressing Q in not existing piano roll. (#3609)
- Fix sample track muting the playing sample in addition to the one being muted (#3591)
- Fix rounding issue in automatable model (pan knobs, coarse knobs) (#3597)
- Fixes to recent files (#3621)
- Fix inverted zooming (#3570)
- Fix recording of sustained midi notes (#3710, #3774, #3803)
- Fix midi sustain not working when envelope is on (#3730)
- Fix deadlock when exporting is finished, if the project has any Sample TCOs. (#3742)
- Fixes to recover file system (#3722)
- Disable HiDPI fix for Windows 7 and older (b2919d6)
- Fix occasional crashes on export with Delay based effects (#3680)
- Fix producing of NaN from Env/LFO parameter change while playing (#3761)
- Fix 'Enable Master Pitch' not showing properly across instruments (#3753)
- Fix some memory leaks (#3779)
- Fix Vibed when the "P" parameter has non-zero value (#3789)
- "Code profiling" driven performance and bug fixes
- Fix AudioFileProcessor redraw issues
- Fix maximize/restore window behavior in Song Editor when opening track
- Fix crash when moving channels (#1584)
- Fix noise at end of some sample previews
- Fixed position of "Factory Presets" file divider in file browser
- Don't store templates in "Recently opened" list (#1812)
- Disable VST instrument previews (prevents crashes)
- Fix several color/display/cursor/sizing issues
- Moving play cursor changes beat/bar/ticks display
- Fix Nescaline high-note crash
- Fix exporting crash on some locales/languages
- Fix crash when deleting Beat/Bassline Pattern during playback
- Fix fine-tuned note position when copying/pasting
- Fix output range/NaNs in SFXR instrument (#1879)
- Better clamping behavior in automation editor (#1907)
- Fix distorted sound with Multiband EQ
- Fix opening projects with non-ASCII characters in the name (#1995)
- Prevent running as root on Linux / Unix / Mac (override available)
- Fix noise when automating length of Delay and Flanger plugins
- Fix midi sustain not working with sf2 player (#2758)
- Fixes newly added tracks in BB having wrong size (#2808)
- Fix Zynaddsubfx-GUI on FreeBSD
- Fix VST freezes on Arch and other systems (#2739)
- Fix MIDI sustain pedal not working with sf2 player (#2877)
- Fixed freeze when finishing export (#2879)
- Fixed crash on canceling the export (#2928)
- Pattern::changeTimeSignature() was off by one (#2959)
- Fix 'Set Linear' not saving properly (#2742)
- Fix controllers not getting removed when switching projects (#2980)
- Fix recursive filtering and duplicates in File browser (#3184)
- Fix precision when dragging knobs and faders (#3075, #3254)
- Fix Mallets not loading on Windows (#3230)
- Fix inverted zoom direction (#3273)
- Fix various spelling issues (#3243, #3279)
- Fixes for Command line rendering (#3322, #3341, #3413, #3352)
- Fix sample track buffer leak (4254597)
- Fix saving of multiple TempoSyncKnobModels (#3281)
- Fix TimeLineWidget overflow (#3410)
- Fix hang while importing MIDI (#3409)
- Fix distortion when automating Crossover EQ Faders (#3343)
- Floating point error fixes (#3428, #3425)
- Fix hang on windows when upgrading (4708fe6)
- Fix wrong order of Peak and LFO controllers when loading projects (#3438)
- Fix discovery of external native plugins (7251c84)
- Fix a crash when clicking on a compact track label button (#3463)
- Fix resetting of AFP endpoints when rendering (e65b1c8)
- Correct the Delay synchronization (#3522)
- EQ plugin now responds to wet / dry control (#3520)
- Fix factory samples not saving as relative links (#3510)
- LFO controller now has correct frequency with multiple connections (#3535)
- Fix automation processing in BB tracks (#3481)
- Don't change sample TCO length if tempo is changed (#3543)
- Remove glitching from the Flanger and Delay plugins (#3524)
- Flanger LFO rate synchronized (#3521)
- Fix alternate shading for changing time signature (#3559)
- Fix pattern length not changing while shifting notes (#3567)
- Fix time signature changing doesn't update song editor grid immediately (#3572)
- Fix CMP0050 compilation warnings (#3583)
- Fix export project for sample tracks with vst effects on it (#3571)
- Fix project rendering with numerator automation (#3576)
- Fix export - double dialog windows on writing over existing file (#3526)
- Languages/Locale
- Better French translations in the menu item file (#4711)
- Fix too long translations to fix the UI misalignment (#5185)
- Update translations from Transifex (fad89d6)
- Fix minor issues in German translations (457f2c6)
- German: show correct accelerator key in the context menu (fbdd09d)
- Add i18n maintenance script (96c5f05)
- Improve translations for multiple languages (96c5f05)
- Switched to Transifex for handing locale updates
- Better handling of non-ASCII (Latin1) characters (#1325)
- Added/fixed some missing translation items (#2065)
- Improved translations: French (#2065), Chinese (Simplified), Russian, Spanish, Italian, Portuguese, Czech, Dutch, Ukrainian, Japanese (#2344), Slovenian, Dutch
- Added translations: Malay, Hindi, Swedish, Chinese (Traditional)
Known issues with this release:
.AppImage executable before running:chmod +x ~/Downloads/lmms-*.AppImage
Alpha Versions
LinuxLMMS 1.3.0-alpha.2 Linux ARM64
LMMS 1.3.0-alpha.2
1.3.0-alpha.2
This is a release from the development branch, like nightly builds (but not exactly).
The degree of stability provided by this release is greater than that of nightly builds but less than that of stable releases. Crashes may happen, and in the worst case scenario your project files may break. Project files saved in this release cannot be reopened in previous versions of LMMS, making it a one-way upgrade. New features added in an alpha release may be modified or even removed prior to the next stable release - projects made using these features may not necessarily load in later versions of LMMS.
That said, we recommend this release to most users over the nightly builds.
System requirements
The system requirements for LMMS have changed since the last release. Notably, 32-bit builds have been dropped.
| platform | OS requirements | CPU requirements |
|---|---|---|
| Linux (x86_64) | glibc 2.35 (Ubuntu 22.04 equivalent or newer) | x86_64-v2 or higher |
| Linux (arm64) | glibc 2.39 (Ubuntu 24.04 equivalent or newer) | ARMv8-A or higher |
| macOS (x86_64) | macOS 10.13 (High Sierra) or newer | x86_64-v2 or higher |
| macOS (arm64) | macOS 11.0 (Big Sur) or newer | Apple M1 or newer |
| Windows (x86_64) | Windows 10 or 11 | x86_64-v2 or higher |
| Windows (arm64) | Windows 11 | ARMv8.1-A or higher (Windows 11 requirement) |
Changelog
This release contains over 5 years of work completed since the previous alpha.1 release, including 932 commits and 3457 files changed by 65 contributors. It brings 8 new native plugins, ARM64 builds, many new features and quality-of-life improvements, hundreds of bug fixes, and many performance improvements.
Major features
- Detachable windows (#3532)
- Alternative tunings (microtonality) and keyboard mappings (#5522)
- Native LinuxVST support (#6048)
- Tap Tempo tool (#6375)
- Dispersion effect (#6683)
- SlicerT (slicer plugin) (#6857)
- LOMM (upward/downward multiband compressor) (#6925)
- Granular Pitch Shifter effect (#7328)
- Splitting (and resizing) for all types of clips (#7477)
- Workspace panning by dragging the mouse (#7595)
- SlewDistortion effect (#7641)
- Pitch bending directly in the Piano Roll (#7759)
- Oscilloscope plugin (#7937)
- Frequency Shifter effect (#8140)
Minor features
- Alias-free oscillators (#5826)
- Carla: Expose parameters for automation (#5846)
- Allow editing the tangents of Cubic Hermite progressions (#5924)
- LV2: Implement
LV2_BUF_SIZE__boundedBlockLengthandLV2_BUF_SIZE__fixedBlockLength(#6254) - Allow recording pitch automation directly into the Piano Roll (#6297)
- New loop marker shortcuts (#6382)
- Transpose MIDI clips in Song Editor (#6409)
- Mallets: Add random knob function (#6466)
- BitCrush: Allow negative value for stereo difference (#6475)
- LV2: Implement Lv2 Worker (#6484)
- SF2Player: Add microtonality support (#6580)
- SF2Player: Add support for per-note detuning and panning (#6602)
- Add MP3 import (#6750)
- Sample and Hold for LFO Controller (#6850)
- Ghost notes for the Automation Editor (#6940)
- Allow filtering by effect type in the effect select dialog (#7024)
- Peak indicators in mixer strips (#7295)
- Continuous auto-scrolling (#7396)
- SDL input and output device configuration (#7421)
- Add note reversal tool to the Piano Roll (#7606)
- AppImage: Initial support for wayland (#7704)
- Add ability to change sample rate in the settings menu (#7719)
- Add strum tool to the Piano Roll (#7725)
- Add option to favorite items in the file browser (#7753)
- Add new "Psychoacoustic Clipper" LADSPA effect (#7783)
- Add setting for default auto-scroll state (#7851)
- Lb302: Velocity and note panning, code cleanup, and performance improvements (#8132)
- Sf2Player: Add search bar for patches (#8193)
Small enhancements, quality-of-life features, and performance improvements
- New LADSPA control dialog (#2068)
- Don't recalculate the song length for every added clip while loading (#5236)
- Use better colors in the Piano Roll's default and classic themes (#5953)
- Preserve FX channel when replacing track (#5957)
- Show detailed CPU load information in a tooltip (#5970)
- SpectrumAnalyzer: Improve performance by caching most used computations (#6003)
- Default to FLAC compression level 5 (#6052)
- SF2Player: Speed up loading (#6075)
- Color submenu and undoable colors (#6165)
- Extend denormal protection through DAZ flag to all capable CPUs (#6167)
- Microtuner UI update (#6206)
- Show error message when loading an invalid sample file (#6286)
- Fix Song Editor selection CPU hog (#6303)
- Make loop markers snap to same increments as clips (#6313)
- Reload stylesheet when CSS file changes (#6331)
- Allow opening .midi and .rmi files from sidebar (#6417)
- VST2: Make VST sync always-on and non-global (#6418)
- Allow resizing pattern clips from the left (#6584)
- Improve readability of text floats (#6607)
- Draggable effects (#6648)
- Change zoom in
SongEditorto a Slider Zoom (#6664) - Add confirm removal on mixer channels (#6691)
- Add instrument plugins to Song Editor via right click (#6698)
- Add .DirIcon to AppImage (#6715)
- Fix startup lag caused by
FileBrowser::expandItems(#6721) - Extend
TabWidget's style sheet options (#6732) - Unmute all sends when soloing in the mixer (#6746)
- Add BPM tags to built-in beat loops (#6747)
- Modifier keys for mouse wheel adjustments (#6770)
- Add mixer LCD channels for Instrument & Sample tracks (#6831)
- Vertically center
SideBarWidget's title with the icon and remove underlining (#6833) - Include mounted volumes in file dialog on Linux (#6834)
- Show Knob value on mouse over (#6835)
- Make files visible when searching in
FileBrowser(#6845) - Display flats in Piano Roll's keys dropdown (#6865)
- Changed sharps to music sharps Unicode (#6873)
- SetupDialog: Display message on buffer size larger than 256 (#6906)
- Improve color contrast of
lcd_21pink.pngasset (#6914) - Compressor: Improve lookahead algorithm (#6953)
- Improve search performance in
FileBrowser(#6962) - More prominent search (#6968)
- Analyze and improve search in the file browser (again) (#6985)
- Compressor: Disable background autofill (#6986)
- Changed bar lines to follow snap size (#7034)
- Resizable mixer window (#7037)
- Scalable consistent faders with themeable gradients, marker at unity, dbFS by default (#7045)
- Hide the LED button for "Custom Base Velocity" (#7067)
- Add menu option and hotkeys to move controllers/effects (#7139)
- Enable different colors for oscilloscope channels (#7155)
- Compressor: Make background themeable (#7157)
- Optimize map accesses in
LadspaManager(#7173) - Font size adjustments (#7185)
- Only repaint
LcdWidgetif necessary (#7187) - Remove "GENERAL SETTINGS" tab from instrument and sample track windows (#7188)
- GUI adjustments around base velocity (#7196)
- A few accessibility changes in default theme (#7202)
- Remove high quality mode (#7219)
- Remove global oversampling (#7228)
- Warn about LADSPA problems (#7267)
- Resizable mixer channels/strips (#7293)
- Add "Show Hidden Content" checkbox to the file browser (#7309)
- Open up some GUI elements to theming (#7314)
- Improve mix sanitization behavior (#7323)
- LV2: Improve plugin description (#7357)
- Remove term "blacklist" (#7365)
- Improve performance when rendering sample waveforms (#7366)
- Optimize PNG images using ImageOptim (#7384)
- Add input dialog to the mixer channel LCD spin box (#7399)
- SlicerT: UI update (#7453)
- Proportional horizontal scroll (#7474)
- Reintroduce fast math functions (#7495)
- Maximize button for resizable instruments (#7514)
- Optimize dBFS/amplitude conversion functions (#7535)
- Optimise usage of
powusing fast equivalent andexp2(#7548) - Inline
TimePosandTimeSigfunctions to improve performance (#7549) - Improve performance of sample rate getters (#7552)
- Add beat preview for pattern clips (#7559)
- Sample Track Recording with JACK backend (#7567)
- Song Editor: Improve performance of auto-scroll, scroll, zoom, and clip dragging (#7570)
- Faders with a dB scale (instead of linear/percentage) (#7636)
- Improve search behavior in the file browser (#7679)
- Allow plugins to be skipped at runtime (#7691)
- Improve performance when rendering sample waveforms (follow-up) (#7695)
- Handle
SIGINT(#7698) - FileBrowser: "Open containing folder" automatically selects file in the OS's file manager (#7700)
- Update mute and solo buttons, add them to instrument windows (#7708)
- ZynAddSubFX: HiDPI support on Linux (#7710)
- Allow cutting multiple notes at once in Piano Roll (#7715)
- ExportProjectDialog: Remove arbitrary loop count limit (#7724)
- Improve
lmms::fastRand()and use it instead ofstd::rand()(#7741) - Global spacebar play (#7762)
- Amplifier: Upgrade PNG assets to SVG (#7770)
- BassBooster: Upgrade PNG assets to SVG (#7771)
- Bitcrusher: Upgrade PNG assets to SVG (#7772)
- Dispersion: Upgrade PNG assets to SVG (#7773)
- DualFilter: Upgrade PNG assets to SVG (#7774)
- Flanger: Upgrade PNG assets to SVG (#7775)
- PeakController: Upgrade PNG assets to SVG (#7776)
- ReverbSC: Upgrade PNG assets to SVG (#7777)
- Add build flags to output of
lmms --version(#7780) - CrossoverEQ: Rework GUI and use SVG assets (#7781)
- VeSTige and VST Effect assets replacement (#7791)
- Add Playhead and Timeline to Pattern Editor (#7794)
- StereoMatrix: Upgrade assets to SVG (#7803)
- Auto assign MIDI device when track is created (#7835)
- Use system cursors instead of embedded raster images where possible (#7838)
- Make playhead red when recording (#7847)
- SlicerT: Add option to clear all notes (#7850)
- Save scale/key highlighting, and many more editor options (#7854)
- Inputs and Outputs Selection for JACK backend (#7919)
- Fix sensitivity of tangent editing in Automation Editor (#7946)
- Add info
TextFloatfor Piano Roll knife tool (and make cut notes auto selected) (#7953) - Escape emails in plugin author field (#7975)
- Allow export of only the selected notes (#7991)
- Remove the Gate knob from effects (#8011)
- Glue all notes if none are selected (#8018)
- Allow Tempo Sync Knobs and Bars to be logarithmic (#8058)
- Auto-quit rework (#8070)
- TapTempo: Refactor and improve accuracy (#8098)
- Add file browser context menu option for opening samples in SlicerT (#8100)
- Add platform identifier to save files (#8116)
- Make arrow "stepper" buttons themeable and use SVG assets (#8123)
- Centralize standard LMMS plugin logo (#8124)
- Use SVG asset for knife tool icon (#8128)
- Increase clip resize grip width (#8169)
- Add help message & icon to empty automation editor (#8171)
- Add horizontal scroll bar to the File Browser (#8184)
- Improve strum tool LMB event (#8195)
- Improve performance when moving channels in the Mixer (#8235)
- Fix VST parameter automation performance (#8253)
- Remove unused default volume model in
SamplePlayHandlewhich was causing performance issues (#8349) - Add double-click actions to global volume & transposition (#8372)
- Fix slow MIDI operations by only initializing the detuning clip when needed (#8380)
- Fix clips being hard to move when zoomed out (#8385)
- Make tiny notes easier to move (#8386)
Bug fixes
- Fix build due to missing includes (80a6672)
- MidiOss: Fix a typo which breaks build (877a931)
- FreeBoy: Fix division by zero (#5734)
- Implement note types and fix issues with zero-length notes (#5902)
- Save Piano Roll's behavior at stop state (#5942)
- Compressor: Fix interaction between input gain and audition (#5999)
- WaveShaper: Fix regression (#6040)
- Fix empty automation patterns treated as disconnected (#6041)
- Fix collapsing a directory triggering preview in file browser (#6060)
- VST2: Fix wrong pitch after starting LMMS with non-default sampling rate (#6068)
- Fix cloning of pattern tracks (#6077)
- Fix occasional project save failures (#6107)
- Fix CMT Echo Delay Line malfunction (#6151)
- Fix crash when zooming out during knife mode (#6184)
- Prevent segfaults with future lmmsrc.xml version (#6208)
- Make preset saving oblivious to mute/solo/muteBeforeSolo states (#6214)
- Fix a bug where the BPM is modulo'd by 256 on MIDI export (#6215)
- Fix MIDI output note setting (#6236)
- Fix changing LcdSpinBox value changing their init value (#6241)
- Add missing disconnect statements in
PianoRoll(#6245) - Fix crash when using shortcut keys in the Pinao Roll (#6252)
- MidiOss: Use unbuffered I/O to access the device node (#6276)
- Fix broken data file upgrade (#6279)
- EQ: Fix small memory leaks in EQ dialog (#6300)
- MidiImport: Use automation track for MIDI program change events (#6308)
- LV2: Don't show ports with prop
notOnGUI(#6310) - Undoable add/remove bar (#6347)
- Kill orphaned subprocesses on crash (#6366)
- AppImage: Fix project file decompression (#6384)
- AudioFileProcessor: Include the last sample frame (#6399)
- Carla: Fix version detction in
CarlaBase(#6403) - LV2: Fix response to sample rate changes (#6419)
- Correctly upgrade projects saved by LMMS forks (#6424)
- MidiRawClient: Fix setting useless param (#6431)
- VST2: Don't send
effEditIdleon CLI rendering (#6440) - Fix a typo in 420769a which breaks the microtuner (#6458)
- LV2: Block plugins that require GUI support (#6486)
- Fix regression from #6481 (#6522)
- Fix master pitch behavior to transpose instead of detune (#6544)
- Make shifting notes by octaves respect microtuning (#6545)
- Fix AM pitch shift compatibility with 1.2 projects (#6554)
- Fix pause issues (#6590)
- Fix recording not possible with MIDI keyboard in PianoRoll (#6593)
- Fix invalid sample rate for Sample Track files (#6594)
- Refactor
SampleBufferand fix several sample-related bugs (#6610) - Fix recent files menu on old KDE in a different way (#6612)
- EQ: Fix math errors (#6655)
- Fix loading automated parameters of certain plugins and saving/loading Vibed's string data (#6670)
- FreeBoy: Fix CPU time bug (#6680)
- Add references to namespaces in
inheritsfunction call (#6687) - EQ: Set default shelf resonance to 0.707 (#6694)
- Don't auto-quantize notes when recording MIDI input (#6714)
- Fix for adding new FX channel while in solo (#6717)
- Fix automation crash (#6718)
- Fix uninitialized variable "pCurPreset" (#6723)
- Fix audio file transposed an octave down between versions (#6725)
- Look for
libcarla_native-plugin.dllon Windows (#6726) - Partially revert #6721 and improve performance of
Directory::addItems(#6738) - Fix scan for LinuxVST effects (#6751)
- Replace corrupted default samples with fixed ones (#6752)
- Fix occasional crash when clicking Key button in piano roll with no clip (#6757)
- Fix note copy/paste in the Pattern Editor (#6803)
- Fix marked notes bleeding into note velocity (#6807)
- Fix segfault when clicking "Auto Detect" in Connection Settings window (#6811)
- Fix regressions from #6477 (#6826)
- Fix the base note automation fix (#6832)
- Fix
std::vectorrefactor mistake (#6836) - Fix a few memory issues found with ASan (#6843)
- Fix sample tracks in old projects losing FX channel (#6851)
- Make off-grid automation nodes draggable (#6852)
- Compressor: Fix arithmetic exception in Debug mode (#6854)
- Fix invalid use of iterators in Piano Roll (#6869)
- Fix zero-length beat notes ending too soon (#6872)
- Add instrument play handles unconditionally (#6875)
- Fix memory leaks (#6879)
- Fix Compressor zero divisions (#6887)
- Fix instrument release fade-out (#6908)
- Fix a Jack audio segfault (#6912)
- Mallets: Some small fixes (#6913)
- Fix loading samples unsupported by
libsndfile(#6918) - Fix
LcdFloatSpinBoxmouse behavior and negative values (#6923) - SF2Player: Set voice tuning relative to initial value (#6924)
- Fix invalid iterators in Piano Roll (again) (#6943)
- LV2: Fix losing automation on export (#6944)
- Fix conditional jump on an uninitialized value (#6945)
- LV2: Delay setting worker interface to fix segfault (#6947)
- SF2Player: Fix freeze on project unloading with shared SoundFonts (#6950)
- LV2: Fix handling of instantiation failure (#6951)
- Fix CLI render crash (#6952)
- AudioFileProcessor: Fix reverse bug (#6958)
- LV2: Fix instrument instantiation crash (#6977)
- Fix regression involving missed filters in #6962 (#6978)
- Fix crash when changing track color and refactor colour interfaces and storage (#6991)
- Fix memory leaks within tests (#7001)
- Fix lost connections when restoring automation clip (#7002)
- Fix for wrong arpeggio pattern (#7007)
- Compressor: Hideable controls (#7008)
- SpectrumAnalyzer: Fix floating point exception (#7018)
- Handle divisions by 0 in Lb302 and Monstro (#7021)
- Fix arpeggiator sorted mode (#7025)
- LOMM: Fix crossovers (#7026)
- Fix Editor windows keeping focus after close (#7035)
- EQ: Fix peak updates (#7038)
- Fix regressions from #6610 (#7040)
- LOMM: Add
setSampleRatetoBasicFiltersand update allpass sample rate (#7048) - Fix crash on subsequent song loads (#7051)
- Fix sliding of waveform when drawing sample in reverse (#7063)
- Fix most of the track cloning for MIDI ports (#7066)
- Add private setters for the "from" and "to" values in
AudioFileProcessorWaveView(#7071) - Fix invalidated iterator when removing notes in Piano Roll (#7080)
- Fix deletion of mixer channels when calling
MixerView::clear(#7081) - SF2Player: Fix missing nullptr initialization (#7084)
- Fix playback within
Sample(#7100) - Prevent out of bound read in
Sample::playRaw(#7113) - Reenable song editor zooming (#7118)
- AudioFileProcessor: Fix crash after loading reversed sample (#7124)
- EQ: Fix a NaN in
EqSpectrumView(#7140) - Fix NaNs in basic filters and Equalizer (#7141)
- Fix mixer channel deletion message when loading another project (#7154)
- DynamicsProcessor: Fix various bugs (#7168)
- SlicerT: Fix filter glitch (#7174)
- Fix infinite loop in
InstrumentPlayHandle::play(#7176) - Fix loading of CMT delays with locale-dependent names (#7206)
- Move icon determination into
TrackLabelButtonagain (#7209) - SlicerT: Fix crash when loading a sample with no detected slices (#7214)
- Make instrument release time independent of the sample rate (#7217)
- Only set sample clips for valid files (#7224)
- Kicker: Fix release stage (#7226)
- Lb302: Consistent decay regardless of sample rate (#7230)
- Fix upgrade routine for BPM renamings (#7235)
- Add support for "factorysample:" prefix / Fix "bassloopes" typo (#7236)
- DualFilter: Reset filters when effect is enabled/disabled to avoid pops (#7237)
- Lb302: Replace
processingSampleRatewithoutputSampleRate(#7239) - AudioFileProcessor: Fix crash when playing with loop while no sample is loaded (#7266)
- Fix missing initialization of some variables in
TrackContentWidget(#7271) - Fix crash when automating the Delay Time parameter in SWH Reverse Delay (#7277)
- Set "child subreaper" process attribute on Linux (#7315)
- TripleOscillator: Fix white noise generator when multiple notes are played at once (#7318)
- Use
src_set_ratioto fix artifacts withinSampleplayback (#7321) - macOS: Change drag copy shortcut from Command to Option (#7325)
- Compressor: Fix uninitialized values (#7343)
- Reduce memory leaks (#7345)
- GranularPitchShifter: Fix glide 0 division (#7348)
- GranularPitchShifter: Fix bad init values (#7354)
- LOMM: Fix distortion and delay bug (#7355)
- Revert "Reduce memory leaks (#7345)" (#7360)
- Change
SampleFrame's sample index type tosize_tto avoid integer overflow (#7362) - Define
fpp_tandf_cnt_tto be of typesize_tto avoid integer overflow (#7363) - Monstro: Fix buzz in 2nd oscillator (#7368)
- ZynAddSubFx: Fix filter frequency (#7381)
- Fixed alt + left or right causing a crash in PianoRoll (#7390)
- Fix duplication of solo state when cloning tracks (#7391)
- ZynAddSubFx: Fix filter frequency (again) (#7401)
- Revert "Switch to libsamplerate's callback API in
Sample(#7361)" (#7410) - Fix memleaks in help/version (#7423)
- Do not put the main thread in realtime or high priority (#7436)
- Refactor and fix PortAudio backend (#7444)
- Do not save MIDI connections in presets (#7445)
- Fix Sample Clip Reversing Position (#7446)
- Fix export of empty projects (#7458)
- Fix metronome skips at high tempos (#7483)
- Xpressive: Fix crash when using integrate function (#7499)
- Lb302: Fix regression causing silence (#7504)
- SlicerT: Partially revert #7453 (#7519)
- AudioFileProcessor: Fix various bugs (#7533)
- PeakController: Fix attack/decay, use linear interpolation between samples (#7566)
- Remove the FIFO thread and fix deadlock during export (#7568)
- Recording logarithmic automation hotfix (#7621)
- Downgrade
RemoteVstPluginbuild back to C++17 (#7624) - SID: Fix dropout when instrument is used for the first time (#7673)
- Improve mono compatibility with LADSPA plugins (#7674)
- SharedMemory: Make key optional, default to shorter UID on macOS (#7681)
- AppImage: Fix Wine VSTs on Arch Linux (#7686)
- Fix libjack.so.0 detection for openSUSE (#7690)
- Refactor OGG export and always use VBR (#7697)
- Fix additional warnings when Carla is missing (#7722)
- Fix stk/rawwaves for MSYS2 (#7736)
- Fix crash when switching opened projects (#7797)
- Fix memory leak in
RemoteVstPlugin::loadPresetFile(#7827) - Fix audio resampling functionality (#7858)
- Fix crash when playing Pattern Editor without Pattern Track (#7862)
- Revert "PeakController: Fix attack/decay, use linear interpolation between samples (#7566)" (#7871)
- Ensure clips have auto-resizing enabled by default (#7874)
- Fix knob linking / refactor linking (#7883)
- Don't copy
DetuningHelperinNotecopy constructor (#7888) - Fix resized samples getting shifted after tempo change (#7890)
- Fix crash when reversing empty MIDI clip (#7893)
- Update sample length when loading new sample via double-click (#7898)
- Fix Piano Roll key events from leaking to other instrument windows (#7915)
- Flanger: Fix "Invert" checkbox functionality (#7929)
- Fix handling of file names with periods (#7934)
- Don't undo zoom! (#7943)
- Fix crash01, cello01, and e-organ01 sample lengths (#7948)
- Fix auto-resize when dragging sample files onto sample clips (#7952)
- Fix effect gate logic (#7971)
- VST2: Disable ASLR when building
RemoteVstPluginon Windows to fix some broken VSTs (#7976) - VST2: Disable ASLR when building
RemoteVstPluginon Linux to fix some broken Wine VSTs (#7987) - Fix import of xpt and xptz files (#7990)
- Set the sample rate for MP3 exports (#7998)
- Fix a segfault if JACK libs are missing (#8026)
- Fix several problems from #7919 (#8032)
- VST2: Fix null pointer deref when getting window size (#8051)
- PathUtil: Serialization and Formatting (#8103)
- Fix note quantization resetting clip length (#8131)
- Fix mute/solo icons not matching initial mixer channel state (#8145)
- Fix help menu crashes upon program close in Xpressive and Slew Distortion (#8150)
- Fix Shift+Space corrupting playback state when used on stopped editors (#8154)
- Fix truncated OGG exports (#8156)
- AudioFileProcessor: Fix wrong beat length depending on sample rate (#8176)
- Fix sample clips getting out of sync (#8183)
- Fix sample clip loop exporting (#8192)
- AudioFileProcessor: Update amplify model when new sample is loaded (#8198)
- Fix
AutomatableSlidercreating too many journal entries (#8223) - Vibed: Fix regression caused by
fastRandInc(#8225) - Set file format combo box unconditionally (#8237)
- Fix
PianoRolltimeline constantly emittingpositionJumpedduring Record-Play (#8252) - Emit the
playbackPositionJumpedsignal only when the active timeline jumps (#8256) - Fix empty value returned by
FileRevealer::getSelectCommand()(#8281) - Prevent key modifiers in
MainWindowfrom getting stuck (#8282) - Fix Settings bug that occurs when not using JACK (#8299)
- SlicerT: Remove localization of key name (#8305)
- OpulenZ: Fix level scaling knob (#8308)
- Sf2Player: Fix segfault when opening GUI during load (#8322)
- Prevent zero-length notes during MIDI recording (#8328)
- Fix "Send to new SlicerT instance" not sending to Pattern Editor (#8339)
- Fix beat clips being created with a length of 0 in the pattern editor (#8355)
- SlewDistortion: Fix tanh mode (#8363)
- Fix sample track playback in pattern editor (#8375)
- Fix MIDI import of multi-track files and CC automation (#8383)
- Fix
FloatModel::getDigitCount()returning wrong value (#8394) - Fix Sndio backend & cleanup compilation on OpenBSD (#8407)
- Fix
AudioBuffer::absPeakValue()not actually being absolute (#8422) - LV2: Fix crash by only accessing Lv2 Worker if instantiated (#8426)
- Remove
Modelconstraints onVolumeKnob(#8438) - Fix FPE in Automation Editor on startup (#8457)
- AudioFileProcessor: Fix crash when attempting to play sample that failed to load (#8469)
- Export symbols of LADSPA plugins (#8480)
- Fix crash when opening Automation Editor after setting ghost notes (#8488)
- Fix the default frames per audio buffer (#8523)
UI fixes
- Add "natural" scrolling support for trackpads (#5510)
- Fix wrong cursor for selected resizeable clips in Song Editor (#5996)
- Fix clip rendering inconsistency (#6182)
- Don't draw position arrow when line is out of view (#6191)
- Fix spinbox offsets in MIDI tab of instruments (#6235)
- Update PianoRoll to immediately reflect note changes in BBEditor (#6242)
- Only show Piano Roll when editable (#6295)
- Fix track handles disappearing (#6338)
- LB302: Use "TB-303" consistently (#6344)
- Fix colour of Master bus on FX Mixer when switching project (#6421)
- Limit height of position line to height of all tracks (#6509)
- Fix blank lines in language dropdown menu (#6512)
- Make notes in MIDI clips easily visible under any track color (#6539)
- Fix pattern clip colors from pre-1.3 versions (#6563)
- Fix several issues raised at Transifex (#6568)
- Fix unwanted scrolling when changing track name (#6583)
- AudioFileProcessor: Fix broken playback cursor (#6601)
- Make note octave highlight in piano roll obey microtonality (#6663)
- Fix
LcdFloatSpinBoxconstructor and label alignment (#6686) - Include
cstdint(#6697) - SID: Add filter image back (#6731)
- EQ: Fix Lowpass and Highpass display (#6748)
- Fix scale highlighting with vertical zooming (#6761)
- Convert MIDI CC indexes from 1-indexed to 0-indexed (#6774)
- Fix HiDPI issues in the setup dialog (#6779)
- Fix HiDPI issues for menus (#6787)
- Fix HiDPI issue of sample track window (#6788)
- Fix HiDPI issues for elements based on
QTreeView(#6789) - LV2: Improve control visualization (#6799)
- Fix updates to
TempoSyncKnob's context menu string for custom tempo (#6827) - Patman: Update display file name when opening GUI (#6870)
- Update
SampleBuffererror message (#6892) - SubWindow: Increase to respect child's
sizeHint(#6956) - LV2: Fix help window issues (#6957)
- Fix minimum size of LADSPA dialogs (#7019)
- Run without terminal for non-debug Windows builds (#7022)
- Fix
Faderpixmaps (#7041) - Some minor UI fixes (#7044)
- Fix scaling of PixmapButton in layouts (#7053)
- Fix mixer channel updates on solo/mute (#7055)
- AudioFileProcessor: Fix missing playback indicator when dragging and dropping samples (#7064)
- Center effects W/D knob at 0 (#7077)
- Track resizing behavior (#7114)
- Fix missing icons for some instruments (#7132)
- Apply master gain outside audio devices (#7135)
- Fix NaNs for some dbFS value displays (-∞ dbFS) (#7142)
- EQ: Fix display flickering (#7146)
- Set mixer channel LCD when its index changes (#7160)
- Fix empty pattern window regression (#7177)
- Fix Piano Roll rendering regression (#7181)
- Scalable LFO graph (#7203)
- Fix shifting of sample waveform during zoom (#7222)
- Fix UI freeze when zooming in on long samples (#7253)
- Update widths of combo boxes (#7262)
- Fix incorrect rounding of automation nodes (#7269)
- Fix incorrect rounding of automation nodes (again) (#7282)
- Fix position line disappearing when zoomed out (#7296)
- Adjust rendering of
BarModelEditor(#7299) - Change the wording of Instrument Plugin Dialogue (#7301)
- Capitalise root sidebar widget (#7350)
- AudioFileProcessor: Fix zooming and sliding of the waveform view (#7377)
- Fix visual glitch when renaming tracks (#7413)
- Implement
EffectRackView::sizeHint()to fix instrument height (#7428) - Fix bug with continuous auto-scrolling when smooth scrolling is enabled (#7433)
- Fix typo in
DataFileerror message (#7478) - EQ: Remove unnecessary space from resonance knob tooltip (#7485)
- Fix hardcoded fonts scaling issues (#7493)
- Compressor: Replace infinite ratio icons (#7501)
- Shrink mixer channel strip (#7502)
- Make the send button and receive arrow occupy the same space (#7503)
- Restore some whitespace to the mixer channel layout (#7507)
- Fix empty editor windows (#7515)
- Individual knob labels rendered using the widget's font size (#7525)
- Fix the maximization of sub windows (#7530)
- Fix unrestricted splash screen geometry (#7588)
- Disable focus for new channel button in Mixer (#7597)
- Fix styling on message boxes (#7608)
- Fix coarse gridlines being half as wide every 8 bars (#7610)
- Change tooltip window flags (#7613)
- Fix 3 minor typos (#7635)
- Do not set
Qt::WA_OpaquePaintEvent(#7643) - Fix logarithmic behavior when dragging knobs and sliders (#7647)
- Vectorscope: Fix broken UI under Wayland (#7652)
- SpectrumAnalyzer: Fix missing icons (#7667)
- Fix incorrect graph step size behavior (#7703)
- Fix envelope and LFO graph size on resizeable instruments (#7738)
- Ensure hidden full-screen windows are restored in the correct position (#7752)
- Revert "Change tooltip window flags (#7613)" (#7761)
- Fix Clip Creation Quantization in Song Editor (#7763)
- Fix track operations widget vertical alignment (#7765)
- Fix SVG Scaling; Allow SVGs to be rendered at sizes other than their natural size (#7769)
- Fix track operations button alignment, size, and style (#7779)
- Fix missing update to mixer channel name when created (#7795)
- Update Classic Theme (#7799)
- Fix microtuning warning text widening instruments (#7805)
- Make buttons automatable on macOS (#7813)
- VeSTige: Fix file browser filter (#7816)
- ZynAddSubFX: Filter FREQ brought back to 64, fix lowpass issues (#7844)
- Fix issue with Mixer key events and Track Label Button focus (#7870)
- Fix Position Line gradient appearing in all editors no matter which one is playing (#7882)
- Ignore "Keep plugin windows on top" setting when on wayland (#7901)
- Fix quick access letter conflict with Export and Export Tracks (#7927)
- LOMM: Set Init button to non-checkable (#7940)
- Fix
TextFloatflickering (#7942) - Update clip length after clearing all notes (#7960)
- Carla: Fix broken GUI on Wayland (#7966)
- Fix
PianoRoll::getKeyand remove dead code (#8008) - Fix several typos in user-facing strings (#8090)
- Fix untoggleable buttons not updating connected models (#8144)
- Allow Piano Roll to open empty again, but with a help icon (#8148)
- SlewDistortion: Fix missing icon in help window (#8151)
- Fix Clang compiler misidentification in About dialog (#8153)
- Fix track moving not updating
PatternClipView(#8155) - AudioFileProcessor: Fix reverse mode desync on new sample load (#8158)
- Fix unknown arch+os info in versioninfo (#8159)
- Fix Pattern Editor not updating (#8175)
- Fix hardcoded max dB value when double-clicking knobs (#8189)
- Fix Pattern Editor UI updates when adjusting note volume via scrolling (#8196)
- Fix velocity/panning change affecting unselected notes (#8201)
- Fix subwindow size on load (#8204)
- Avoid adding journal checkpoints when initially creating volume knobs (#8214)
- Fix clips not retaining colors or names after using "Clear notes out of bounds" (#8234)
- Fix pitch bending, strum, and knife tools affecting per-note velocity/panning (#8243)
- Fix key inputs not updating time display (#8266)
- Forbid clip pasting when clipboard empty (#8268)
- Fix volume knob and tooltip bugs (#8359)
- Don't show irrelevant context menu options when right-clicking projects on the sidebar (#8368)
- Fix attached subwindows occasionally snapping to minimum size (#8387)
- Fix pan/velocity underflow when dragging lower than window bottom (#8389)
- Fix subwindows occasionally snapping to minimum size 2: Electric Boogaloo (#8396)
- Fix automation clip view desync when editing node values via double-click (#8414)
- Sf2Player: Fix loading when no soundfont is specified (#8432)
- Don't hide BeatClip names (#8456)
- Fix default Piano Roll zoom and quantization (#8484)
- Allow Ctrl-Drag copying tracks via
TrackGrip(#8495) - Fix
CONTRIBUTORSfile generation to fix blank "Involved" tab in the About dialog (#8518)
Code maintenance
- Tests: Fix CMP0115 CMake warning (b4854f8)
- LV2: Fix all code-style issues with curly braces (fa5f2aa)
- AudioEngine: Introduce
RequestChangesGuard: an RAII verion ofrequestChangeInModel(371f7f5) - Remove song import global automation (#5229)
- Remove GUI menu items for global automation (#5230)
- Compile LMMS using C++17 (#5838)
- Use MEMBER, not WRITE for mouseHotspot Q_PROPERTYs (#5955)
- Fix Editor build warning (#6008)
- Simplify an if-else (#6046)
- Replace some identical function calls with a variable (#6050)
- Remove
using namespace std;from some headers (#6076) - Macro cleanup (#6095)
- clang-format: Prepare plugin descriptor init'ers (#6123)
- Rename
MixertoAudioEngine(#6127) - Eliminate deprecated
registerkeyword (#6133) - Namespace
lmms(#6174) - Split
InstrumentTrack(#6176) - Add missing cstddef include (#6178)
- Rename "mixer" to "audioengine" on lmmsrc.xml (#6181)
- Disable tooltips through event filter (#6192)
- Run
dos2unix(#6198) - Rename
TCOand related toClip(#6226) - Fix build issue when
-fpermissiveisn't enabled (#6231) - Rename
FxMixertoMixer(#6239) - Rename
TCOtoClipin the clipboard data (#6278) - Rename Beat/Bassline to Pattern (#6284)
- Rename TCO and BB to clip and pattern in save files (#6309)
- Improve includes (#6320)
- Split RemotePlugin.h into separate files (#6322)
- Add .clang-format and .clang-tidy (#6323)
- Rename LedCheckbox to LedCheckBox in filenames (#6345)
- Fix casing of filenames and code in
plugins/(#6350) - Rename 'dialogs' folder to 'modal', add missing modals (#6367)
- Move widget files, add folder for track and instrument (#6374)
- Fix Qt deprecations (#6386)
- Refactor shared memory (#6404)
- clang-tidy: Apply
modernize-use-overrideeverywhere (#6439) - Clean up macros a bit (#6444)
- Fix clazy warning: "Signature is not normalized." (#6445)
- clang-tidy: Apply
modernize-redundant-void-argeverywhere (#6446) - Add missing
gui::prefixes to types inAudioSoundIo(#6447) - clang-tidy: Apply
modernize-use-bool-literals(#6448) - clang-tidy: Apply
modernize-use-equals-defaulteverywhere (#6450) - clang-tidy: Run
modernize-use-emplaceeverywhere (#6451) - clang-tidy: Apply
modernize-use-usingeverywhere (#6453) - Replace
QVectorwithstd::vector(#6477) - clang-tidy: Apply
modernize-use-autoeverywhere (#6480) - clang-tidy: Apply
modernize-loop-converteverywhere (#6481) - clang-tidy: Apply
modernize-avoid-c-arrayseverywhere (#6564) - Fix whitespace (#6572)
- Use Qt layouts for mixer channels (#6591)
- Replace deprecated
QString::sprintfwithQString::arg(#6598) - Flanger: Move class declarations into namespace
lmms(#6600) - Fix include guards and copyright statements (#6603)
- MidiImport: Remove more global automation (#6605)
- Fix more Qt deprecation warnings (#6615)
- clang-tidy: Apply
readability-const-return-type(#6618) - Update .clang-format (#6619)
- Fix comparing int with bool (#6637)
- Remove redundant
nameChangedsignal fromInstrumentTrack(#6742) - Classier enums (#6760)
- MidiApple.cpp: Fix getName to allow build with GCC (#6791)
- Improve recognition of compiler and platforms (#6795)
- Carla: Update
DummyCarla.cppto useCARLA_PLUGIN_EXPORT(#6814) - Replace global Qt declarations with standard equivalents (#6821)
- (Re)move identical calls to
InstrumentTrack::processAudioBuffer(#6867) - Use UTF-8 for MSVC source and execution charset (#6876)
- Revamp synchronization with the audio engine (#6881)
- Update some old file filtering code (#6882)
- Update copyright year (#6888)
- Fix warnings in Clang build (#6893)
- Wrap resource urls in double quotes (#6898)
- Switched
LadspaEffect/CMakeLists.txtto useLMMS_HAVE_*instead ofWANT_*(#6903) - Rewrite Amplifier plugin code (#6989)
- LV2: Migrate to new LV2 header paths (#6990)
- Enforce lazy loading for
FileBrowser(#6996) - Split
TimeLineWidgetinto core and GUI parts (#7004) - Add missing copyright in
SampleDecoder.cpp(#7030) - Abstraction in
MixerChannelView(#7057) - Migrate to CTest (#7062)
- AudioFileProcessor: Disentangle and clean the classes (#7069)
- Update
src/common/to coding conventions (#7082) - Remove
MemoryManager(#7128) - Redesign file browser searching (#7130)
- Replace
QRegExpwithQRegularExpression(#7133) - Revisit the initialization for local variables (#7143)
- Simplify sample frame operations (make it a class) (#7156)
- Refactor
gui_templates.h(#7159) - Conditionally remove use of
QApplication::desktopinComboBox.cpp(#7179) - Style format
DrumSynth(#7189) - Use layouts for the instrument sound shaping tab / Extract classes for Envelope and LFO graphs (#7193)
- Scalable envelope graph (#7194)
- Add native system semaphore and Windows shared memory (#7212)
- Streamline instrument flags (#7227)
InstrumentSoundShapingrefactoring (#7229)- Revamp resource embedding (#7241)
- Fix for
-Werror=self-movein test for GCC >= 13 (#7288) - Suppress warnings in third-party code (#7319)
- Fix MSVC warnings up to level 2 (#7329)
- Remove
MemoryHelper(#7335) - GranularPitchShifter: Start running upon initialization (#7356)
- Use recursive mutex for
requestChangeInModel/doneChangeInModel(#7359) - Switch to libsamplerate's callback API in
Sample(#7361) - Remove
BufferManager::clear(#7378) - Re-enable disabled GCC warnings where possible (#7379)
- Remove
typeInfostruct fromlmms_basics.h(#7380) - Clean up
lmms_math.h(#7382) - Fix include of array in
BasicFilters.h(#7398) - Reformat
MixerChannelViewclasses (#7431) - Fix build regression from #7380 (#7437)
- Remove support for SDL1 (#7443)
- Refactor to move
positionChangedsignal toTimeline(#7454) - Flanger: Remove
Noiseclass (#7473) - Refactor Effect processing (#7484)
- Remove dead code using
#if 0(#7521) - Tidy up
MixerChannelView(#7527) - Track operations widget with layout (#7537)
- Make
PluginView::isResizablea virtual (#7541) - Upgrade to C++20 (#7554)
- Use templates for common geometric constants (#7558)
- Remove usage of
QTextCodecin Hydrogen Import plugin (#7562) - Remove obsolete workaround for Qt4 (#7590)
- Clean up some header files and move a bit of debugging logic to Cmake (#7677)
- Update math functions to C++ standard library (#7685)
- Use C++20
std::numbers,std::lerp()(#7696) - Use length-bounded string/memory functions (#7709)
- Rename
AudioPort->AudioBusHandle(#7712) - Fix Clang warning due to implicit conversion from int to float for the
RAND_MAXmacro (#7717) - Use C++20 in
RemoteVstPlugin(#7916) - Remove
m_inBuffromAudioJack(#7922) - Move
FileRevealerinto thelmms::guinamespace (#7923) - Rename some include guards (#7924)
- Refactor global spacebar play (#7926)
- Audio buffer views (#7945)
- Remove
m_resizablefrom Clips (#7954) - Remove
currentPatternChanged()that has no effect (#7989) - Remove
Knob::setHtmlLabel(#7993) - Remove lots of useless/misplaced includes (#7999)
- Audio buffer view improvements (#8016)
- OpulenZ: Fix compilation error (#8040)
- Remove
fastMemCpy()fromRemotePluginBase(#8114) - Use
std::round()instead ofnearbyintf()(#8119) - Remove
SampleLoader(#8186) - Refactor
ExportProjectDialog(#8215) - Replace
fpp_twithf_cnt_t(#8311) - Resolve remaining C++20 TODOs (#8326)
- Oscilloscope: Add missing
QApplicationandQThreadincludes (#8377) - GranularPitchShifter: Revert "Start running upon initialization (#7356)" (#8398)
- TapTempo: Fix missing include (#8421)
- Fix a few warnings (#8465)
- Move
SampleThumbnailinto thelmms::guinamespace (#8470)
Build system / CI / Dependencies
- Fix wrong variable name in CreateTempFile (46c246a)
- Pull vcpkg quietly on AppVeyor (fd18305)
- Update Docker image version for ShellCheck (9d5d86d)
- Fix "invalid macro definition" error in VSCode (#6051)
- Fix CMake check for
SFC_SET_COMPRESSION_LEVEL(#6054) - Update exprtk submodule to 93a9f44 (#6130)
- Use modern CMake targets for SDL2 (#6132)
- Fix compilation on macOS aarch64 (#6152)
- Update CPU to Pentium 4 for win32 builds (#6155)
- Let CircleCI use linux.gcc:18:04 (#6158)
- Fix MSVC architecture detection with non-VS generators (#6175)
- Fix QRC dependency issues (#6349)
- Add check-strings (#6379)
- Correctly detect architecture on powerpc* (#6415)
- Add
check-namespacescript (#6438) - Split lines in .clang-tidy (#6449)
- Migrate CI to GitHub Actions (#6476)
- Remove a workaround for broken
install-qt-action(#6482) - Fix
check-stringsverification (#6485) - Improve use of strip command (#6505)
- Support Sf2 Player, Mallets, PortAudio, and Lame compilation with MSVC (#6507)
- Support building AppImage on non-Ubuntu systems (#6510)
- Don't require comment after
#elseincheck-namespace(#6513) - Fix Visual Studio 2022 detection (#6520)
- Add HIIR library to LMMS (#6553)
- Fix transport 'file' not allowed error (#6557)
- Support ZynAddSubFx compilation with MSVC (#6561)
- Show pull request number in version string (#6565)
- Only rebuild translations when ts files change (#6566)
- Update HIIR submodule to latest (#6622)
- Update
BashCompletion.cmake(#6634) - Update ExprTk package (#6646)
- Fix typo (#6652)
- Fix STK rawwave installation in Windows builds (#6705)
- Fix hiir submodule detection (#6755)
- Fix generator expression in strip command (#6762)
- Bump veal submodule (#6771)
- Consolidate and simplify
CMAKE_POLICYentries (#6780) - ZynAddSubFX: Fix Apple install script (#6782)
- Fix GCC builds on macOS (#6784)
- Allow Apple install step to fail CI (#6796)
- Bump
mingw-std-threadssubmodule (#6817) - Add options to enable sanitizers (#6840)
- Expose targets and versions for more dependencies (#6842)
- Enable build under NixOS (#6855)
- Improve CI cache usage (#6868)
- Push policy stack in
InstallDependenciesmodule (#6878) - Use
residsubmodule fromlibsidplayfp(#6883) - Bump SWH and TAP LADSPA plugin submodules (#6937)
- Update remote of ZynAddSubFX's
instrumentssubmodule (#6939) - Run CI build on macOS 12 (#6960)
- Enable LADSPA plugins on MSVC (#6973)
- Update Linux CI to Ubuntu 20.04 (#7015)
- Update URL of tap-plugins submodule (#7087)
- Fix vcpkg dependencies (#7088)
- Add
WANT_OSSas a configuration option (#7099) - Use GitHub mirror of tap-plugins (#7110)
- Remove message location check from
check-stringstest (#7112) - Update
game-music-emusubmodule (#7144) - Update
jack2submodule to latest (#7147) - Update
carlasubmodule (#7149) - CMake: Replace
EXEC_PROGRAMwithexecute_process(#7166) - Bump project year (#7167)
- Replace call
QT5_WRAP_UIwithCMAKE_AUTOUIC(#7200) - Bump Qt minimum version to 5.9 (#7204)
- Support VSTs on Linux even if Wine is unavailable (#7205)
- Update ZynAddSubFX (#7250)
- Remove support for MSYS2 (#7251)
- CPack: Refactor AppImage and Apple DMG Generation (#7252)
- Modernize compiler and linker flags (#7255)
- Fix native Linux VST on ARM64 (#7257)
- Update MinGW CI to Ubuntu 20.04 (#7259)
- Fix macOS CI builds (#7261)
- Update
upload-artifactsactions (#7263) FindWineimprovements (#7268)- Fix fftw linking when cross-compiling (#7276)
- Remove
mingw-std-threadsfrom 3rd party deps and use native libs/headers instead (#7283) - Add support for Apple Silicon (#7285)
- Fix to allow NSIS packaging to work for non-MSVC Windows builds (#7287)
- Update
vealsubmodule (#7290) - Remove
debianfolder (#7311) - Run CMake with
-Werror=devin CI (#7322) - Fix caching for macOS CI jobs (#7326)
- Cleanup of MinGW-related scripts (#7327)
- Add Qt6 support (#7339)
- Apply warning flags to
RemoteVstPlugintoo (#7389) - Add yamllint checks (#7424)
- Add gprof profiling support (#7547)
- Xpressive: Update
ExprTksubmodule (#7571) - Update macOS CI (#7572)
- Fix the MSVC CI fail happening due to outdated vcpkg (#7589)
- Remove
pkg-configfrom Brewfile (#7593) - Revert
pkgconfremoval (#7605) - Remove 32-bit CI support for Windows builds (#7619)
- ZynAddSubFX: Update
zynaddsubfxsubmodule (#7625) - Add support for Windows on ARM64 (#7644)
- Bump project year (#7645)
- Add VST support for Gentoo Linux (#7665)
- CI: Switch linux-x86_64 to Ubuntu 22.04 (#7678)
- CI: Switch mingw64 to Ubuntu 24.04 (#7682)
- Add VST64 targets for Linux ARM64 (#7687)
- Remove
libgalliumfrom the AppImage (#7693) - VersionInfo: Mimic github's hash styling (#7694)
- Improve Qt5 detection on macOS (#7699)
- Fix vcpkg builds (#7702)
- AppImage: Use fully qualified path when calling appimagetool (#7707)
- Make
portsmfa git submodule (#7755) - Enable
CMAKE_EXPORT_COMPILE_COMMANDS(#7804) - Update
qt5-x11embedsubmodule to latest version (#7825) - Add Windows arm64 CI builds (#7848)
- Upgrade to Windows 2022 / Visual Studio 2022 (#7897)
- Set minimum deployment target for macOS builds (#8004)
- AppImage: Un-pollute
/usr/lib(#8053) - Remove custom winebuild task (#8077)
- Update macOS runner image and XCode version (#8092)
- Make apprun-hooks POSIX compliant (#8121)
- Bump minimum Qt version to 5.15 (#8129)
- CMake: Check for PERL's
List::MoreUtils(#8180) - Bump project year (#8207)
- Use vcpkg for MinGW dependencies (#8218)
- CMake: Fix build for CYGWIN (#8247)
- Docs: Fix update
libstk0-devtolibstk-devfor Debian/Ubuntu (#8409) - Remove
suilfrom MSYS2 dependencies (#8420) - Bump
upload-artifactto v7, don't zip (#8423) - Remove unnecessary
CHECK_INCLUDE_FILES()calls (#8451) - Add CMake options for targeting specific microarchitectures (#8464)
- macOS: Switch from appdmg to dmgbuild (#8471)
- Don't compress man page in during build (#8494)
- Change
TARGET_UARCHdefault from 'native' to 'none' (#8507) - Add
ENV{MSYSTEM}to installers created by MSYS2 (#8521)
Meta / Other
- Update translations (726fae2)
- Update freeze/reorg disclaimer (5f32df5)
- README: Use CircleCI build passed badge (fa407d2)
- Remove the reorganization disclaimer (c8a9d45)
- Replace the CI status badge with GitHub Actions (fc2f6a0)
- Update README.md with the new logo (#6009)
- Fix CONTRIBUTORS and .mailmap (#6033)
- Fix typo in doc/lmms.1 (#6429)
- Ensure that build and target are directories in .gitignore (#6884)
- Add GitHub issue forms for bug reports and feature requests (#7102)
- Remove the missing spoken.flac file from "unfa - Spoken" (#7208)
- Remove demo project Greshz-CoolSnip.mmpz (#7248)
- Update translations (#7529)
- Revise README (#7545)
- Major German translation rework (#7612)
- Revert "Major German translation rework (#7612)" (#7628)
- Add clangd cache to .gitignore (#7846)
- Update translations (#8149)
- Clarify VST support to VST2 and mention LV2 support in README (#8233)
- Update .mailmap, AUTHORS, and CONTRIBUTORS (#8283)
- Add Doxygen docs to Github Pages (#8329)
Nightly Versions
Linux ARM64LMMS @3d97b11 Linux
LMMS @3d97b11
Other options
LMMS is included in most major Linux distribution's package repositories.
Please contact us if your distribution is not listed here.
Ubuntu, Linux Mint, Debian (deb)
For installing LMMS on Debian based distributions such as Debian itself, Ubuntu or Linux Mint, just click the button below.
Install LMMS now
From your package manager
If this doesn't work for you, run this command in a terminal.
$ sudo apt-get install lmms
Mandriva, Mageia (rpm)
Run the following command as root in a terminal:
$ urpmi lmms
Fedora, RedHat, CentOS (rpm)
Run the following command as root in a terminal:
$ yum install lmms
Arch Linux
Run the following command in a terminal:
$ sudo pacman -S lmms
VST Support
For VST support, please install wine or wine-staging from the repository
Slackware Linux
# sbopkg -i fltk -i lmms
openSUSE
Run the following command in a terminal:
$ sudo zypper install lmms
AOSC OS
AOSC OS ships LMMS on various architectural ports (AMD64/x86_64, ARMv7, and more to come in the future), with VST support enabled by default on AMD64.
To install LMMS on AOSC OS with PackageKit (recommended):
$ pkcon install lmms
To install LMMS on AOSC OS with DPKG:
$ sudo apt install lmms
Build LMMS from source
If your Linux distribution does not provide a lmms package (or only an outdated one), you can still build LMMS from source. Visit the LMMS development wiki on GitHub for instructions on how to compile LMMS for Linux.
Install LMMS on Windows
Click one of the buttons below to download LMMS for Windows
Stable Versions
WindowsLMMS 1.2.2 Windows 32-bit
LMMS 1.2.2
Note for macOS users: if you're using macOS 10.14(Mojave) or newer, please use the according version. The macOS 10.13 build is buggy on 10.14 or newer.
New changes in 1.2.2: (2020-06-25)
-
General improvements
-
UI improvements
- Note selection: Editing values works in dialog (#5438)
-
Bug Fixes
- Piano Roll - Fix retrigger with vol/pan sliders (#5271)
- Fix a rare crash on export (#5293)
- Fix LMMS not launching when AppImage has spaces in name (#5297)
- Fix vertical piano being unresponsive when clicked too fast (#5262)
- Fix crash with Grooove VST (#5300)
- Fix crash on deleting instrument with controller connections on knobs (#5306)
- Fix notes being placed at negative positions on MIDI import (#5343)
- Fix scrolling direction in the song editor due to stuck Ctrl/Shift (#5286)
- Fix stuck notes with Helm VST on tempo automation (#5365)
- Fix file factory delimeter position (#5378)
- Fix a muted demo project "Greippi - Krem Kaakkuja (Second Flight Remix)" (aeac24c)
- Fix controls linking misbehaviors (#5336)
- Fix loading and saving of .fxb/.fxp files on Windows (#5411)
- Fix crashes and hangs on importing some Hydrogen drum kit songs (#5420)
- Fix freeze when replacing Mallets with another instrument (#5428)
- DrumSynth: ensure correct envelope length in any sample rate (#5467)
- AFP: fix loading start and loop points if the loop point is automated (#5472)
- Select the correct piano key for marking semitones (#5478)
- Ensure consistent use of effect gate (#5475)
- Fix Piano roll crashing when window is vertically scaled too large (#5449)
- Fix some memory errors with JACK audio/MIDI (#5452)
- JackMidi: Remove confusing warnings at shutdown (737fcd3)
- Fix SF2 player crashing when file is not a soundfont, with FluidSynth 2 (#5487)
- BB editor: fix mouse event affecting wrong beats due to the cursor shape (#5489)
- Fix knobs moving too fast on some platforms (#5360)
- Fix notes created in BB editor resizing incorrectly when resizing a selection (#5515)
- Fix some patterns not being saved in project (#5537)
-
Localization
Previous features and fixes:
Click to show/hide
- General Improvements
- Respect OS' case sensitivity when checking for existing files (#4768)
- Remove MIDI connections from factory .mmpz files (#5163)
- Show FreeBSD in the build version info (732448c)
- Fix build with musl C runtime library (#4825)
- Fix debug build broken in RC8 (a233291)
- DrumSynth: Make the parsing logic safer (#4869)
- macOS: Disable soundio on for stability (991ffcd)
- Allow sample track clips to be resized smaller than one bar (#4933)
- Don't require X11Extras on Linux when VSTs are disabled (#4953)
- Allow recording chords directly from the piano-roll (#4938)
- Fix more issues with ZynAddSubFX and/or VSTs related to automation (#4942)
- Better default sounds for Nescaline and Freeboy (#4968)
- DMG rebranding (#5013)
- Don't quit command-line rendering when failed to load sample files (1ab1280)
- Allow building SF2 player with FluidSynth 2 (#4678)
- Disable FX auto quit by default to avoid buggy behaviors (#4378)
- Enable VST sync by default (69a51eb)
- Improve handling of nan/inf (#4743)
- Allow undoing note movements (6df6f12)
- MIDI import/export: map volume with the full range (#4785)
- Add a hidden setting to toggle built-in sound sanitizer (#4787)
- Don't let silent instruments wake up sleeping effects (#4792)
- Bring back PortAudio support on Windows (#4770)
- Initialize peak controller value with the base value (#4382)
- Quit exit if failing to save project (#4428)
- CMake: Fix errors when path contains spaces (d1c36d7)
- CMake: Fix FindSndio module (c45a21a)
- Fix project URL for some files (e9f2b57)
- Don't let VST/ZynAddSubFX block whole audio playback (#4460, 9fe74c2)
- Some demo project license fixes (#4481)
- Fix
CMake < 3.1compatibility when cross-compiling (#4530) - Remove Qt temporary files after loading ZynAddSubFX settings (#4551)
- Extend Sndio audio backend support to more OS (#4486)
- Improve handling of invalid backend setting (91ca660)
- Enable Carla on macOS (#4558)
- macOS: Fix macOS compilation without SDL (46512fd)
- VST: Wait for reply when updating sample rate (d0b3be7)
- VST: Fix VSTs on Fedora 27 (#4276)
- AppImage: Use bundled jack if missing (#4094)
- AppImage: Fix AppImage tool path (fc9c3ea)
- Always remove infs/nans (#3706)
- Add support for .pat previews, drag+drop (a8e8746)
- Fix typo: Phrygolydian to phrygian (#4223)
- Change default working directory location (#4288)
- Disable fluidsynth audio backends if possible (#4300)
- Revert
CONTRIBUTORSfile removal (#4307) - Update
rpmallocsubmodule to 1.3.0 (fce9326) - Allow controlling VST effects without own GUI (235e8ee)
- Add AppImage support to Linux builds (#3688, #4026)
- Replace MemoryManager implementation with rpmalloc (#3873)
- Use weak loading of libjack (#3887)
- Note sorting algorithm rework (#3881)
- Openbsd sndio support, apply abs call fix (#3839)
- Various arpeggio improvements (#3858, #3867)
- Switch Travis-CI to Qt5.9.2 (d0194e6)
- Disable portaudio on Windows to prevent runtime error (#3889)
- Add input validation to linearToLogScale() (#3932)
- Fix recent files not working on KDE (#3872)
- CMake: Fix non-existing target warnings (0dbdafc)
- Unsolo mixer channels on delete (#3982)
- Automation Editor - Straighten out draw line function (#3997)
- Open correct VST folder in previously saved projects with existing VeSTige instruments (#3550)
- Add missing macOS packages to Travis and the macOS wiki (#3595)
- Proper Case Renames (#3573)
- Ogg files - Silence warning message and fix obsolete vorbis tag message (#3634)
- New export encodings: MP3 (#3615, #3641), 24 bit WAV (#3552), variable bit rate OGG (#3552)
- Save the correct subwindow size when it's hidden (#3589)
- Suppress midi in events on export (#3778)
- Correct spelling in fft_helpers.cpp (#3645)
- Ensure midi port exists before removing (#3655)
- MIDI - Don't apply base velocity to all controller values (#3678)
- Cancel track rename with Escape key (#3676)
- Equalizer plugin, refinement to analysis display (#3530)
- Remove executable file permissions for theme files (#3752)
- Update Freeboy files from Game Music Emu 0.6.1. (#3618)
- Respect build options in export dialogs (#3714)
- Build support for Haiku (BeOS) Operating System
- Build support for OpenBSD/sndio backend (#2690, #2707)
- Better handling of corrupt projects/presets
- Export as loop support for CLI (#2131)
- Added Apple MIDI support (#1153)
- Fix "Dummy" audio selection (#2376)
- MIDI export support (#1686, #3733)
- MIDI import
- Dedicated folders for plugins, instrument patches (#1807)
- Fast-switch support for instrument dialogs (#1987)
- Improved support for HDPI displays (pixel independent font sizes)
- SDL is now the default audio back-end for new installations (#1600)
- Prevent overwriting of recover files (#2174)
- Added LocklessList and use it for new play handles (#2895)
- Remove broken FLP import, revert project to GPLv2+ only (#2904)
- Improved file input validation (#2523)
- Extended arpeggiator functions (#2130)
- Disable minimization on all subwindows (#2983)
- Sample tracks can be played from any song position (#3133)
- Allow moving tracks by dragging the track label button (#3271)
- Option to allow auto save while playing (#3088)
- Make Controller Rack fixed width (#3240)
- Easier note resizing in the Piano Roll (#3304)
- Add a 'clear' button to line edits in the Sidebar (#3329)
- Don't count muted tracks in track length when exporting (#3390)
- Prevent issues with large files, Bump up sample limits to 300MB and 90 minutes (#3411, #3293)
- Automation editor fixes: Delete points regardless of quantisation, new points clear out surrounding points, use
<Ctrl>to override the behaviour (#3352) - Fixes for msys2/mingw builds on Windows (#3369)
- Fix opening of project files on macOS (#3219)
- Add SF2 support for macOS (#3446)
- Include past automation patterns in processing (#3382)
- Added and fix automation labels for Mixer elements (#3453)
- Add a new demo song - Buzzer Beater (Kicker challenge winner) (#3482)
- Always use the master channel for preset previews (#3503)
- Remove limited recover session (#3545)
- Provide support for fallback config values, make autosave on by default (#3551)
- New metronome samples (#3513)
- Folders/Paths
- Make templates folder configurable
- FX Mixer
- Added "Remove unused channels" feature
- Added Mixer "solo" mode
- Shortcut
SHIFT + INSERTadds new channel
- New Instruments:
- Gig Player - Plays Giga Sample Banks (similar in usage to SoundFont files) (screenshot)
- FX - Effects Plugins
- Effects now sort-able, list in proper alphabetical order (#2834)
- Equalizer plugin - A new native parametric graphic EQ effects plugin (screenshot)
- New Bitcrush effects plugin (screenshot)
- New Crossover EQ plugin (can be used as a tonestack) (screenshot)
- New Multitap Echo plugin (screenshot)
- New ReverbSC plugin (screenshot)
- Native effect plugins redesigned to fit with the new theme (#2831)
- Noncyclic smoothing for waveshaper and dynamics processor to avoid unwanted distortion (#3137)
- Sample exact models/controllers
- Supported by FX mixer, Instrument VOL knob, Amplifier FX plugin, WaveShaper, LFO Controller, Dual Filter, BassBoost
- Allows smooth sidechaining with peak controller
- Allows AM modulation with LFO controller
- Track Enhancements:
- Add ability for instruments to ignore "master" pitch slider
- Quick FX Mixer assignment from the track context menu
- Added Automation Track pattern "flip" (horizontal/vertical)
- Better thumbnails/previews of Piano Roll patterns
- Fix crash when changing note velocity (#2713)
- Added Step cloning in Beat/Bassline Editor (screenshot)
- New BB tracks have the same length as first (#2883)
- Metronome (#2278):
- The metronome can now be turned on and off with a new button
- Will play during song, pattern and BB playback when turned on
- Metronome is ignored during export
- Project templates:
- The default template can now be saved explicitly using a new option in the file menu
- File menu has a new option "New from template"
- User presets are now also shown in the tool button menu and in the "New from template" menu
- UI Improvements
- Make splash screen text white (#5149)
- Show Beat/Bassline Editor on clicking track labels of B/B tracks (#5060)
- Enable dark title bar on macOS (df79f8c)
- macOS: Add shortcuts for inserting bars, deleting bars and deleting notes on Apple keyboard (#4851)
- AudioFileProcessor: Better tooltip for ping-pong loop (#4868)
- VST: Add VST always-on-top config option (17f6235)
- VST: Ensure VST windows show properly in taskbar (6fef905)
- VST: Don't show error when loading empty VeSTige instance (205b575)
- Equalizer: Fix spectrum window formula (#4895)
- Equalizer: Use brighter and more opaque colors for the spectrum view (#4772)
- Don't draw note detuning info over the volume/panning area (#4965, 9ff882d)
- Fix hanging cursor in piano-roll (#4960)
- Update splash screen (#5002, #5019)
- Treat empty patterns in song editors as Beat/Bassline patterns only if zoomed enough (5a92105)
- Decrease the margin of the LFO graph for better appearance (d9f5e8a)
- Redesign the LMMS logo and mimetype icons (#4519)
- Deselect FX channel's name text when losing focus (#4293)
- Setup Dialog - Fix bottom of letters cut off (#4483)
- Make the oscilloscope colors available as properties (#4512)
- Update LMMS UI more frequently (#4570)
- Styling: Add File Browser Styling (#4085)
- Window behavior: Reset window title after render (a39ea2b)
- Piano Roll: Erase on mouse button drag in erase mode (#4150)
- Piano Roll: Draw the entire length of a notes pitch bend info (#4233)
- Piano Roll: Adjust contrast of marked semitones in the piano roll (#4239)
- Piano Roll: Change selected notes color (#4243)
- Piano Roll: Change Detune To Pitch Bend in Piano Roll (#4194)
- Widgets: Fix incrementation of LcdSpinBox QInputDialog (38b69a7)
- Widgets: Fix some bugs with LFO waveform drag and drop (#4227)
- Widgets: Adjust MDI subwindow buttons contrast in the MenuBar (#4242)
- Tracks: Fix UI glitch where track ticks did not line up (#4171)
- Tracks: Better behavior when left-clicking a TCO (#4290)
- LCD Alignment Fix (#3864)
- Improve Automation Point delete radius and size (#3902)
- Fix monstro's osc 3 vol knob values (#3912)
- Remove text from project notes of factory templates (#3939)
- Automation Editor - remove (comment out) unimplemented buttons (#4051)
- Piano Roll - Don't quantize when pasting notes (#4058)
- Brand new theme (#2806)
- Fix misaligned controls icon in the VeSTige plugin (#3664)
- Update classic/style.css with TabWidget, TrackView, PianoView and Fader colors (#3665)
- Fixes for project loading progress display (#3672)
- Add a border on non-fixed BB patterns (#3758)
- Paint a black rectangle under patterns to prevent glitches (#3759)
- Enable HiDPI Scaling (Qt 5.6+ only) (#3814)
- Range Select in Song Editor
- Horizontal mouse wheel support in Song Editor
- Group copy/move in song editor
- Better collection and displaying of startup errors (both GUI and CLI)
- Better name handling for copied patterns
- Allow the disabling of ".bak" files
- Piano Roll shortcut
Alt+Left/Alt+Rightswitches between Piano Roll patterns - Add Quantize button to Piano Roll
- Marking Piano Roll semitones marks on all octaves (#2193)
- Better incompatible theme detection (forces minor version check)
- Recursive sample/preset/project searching in File Browser
- Add X/Y pad to Delay FX plugin (screenshot)
- Added deselect shortcut support for Piano Roll (
CTRL + SHIFT + A) - Adjacently insert cloned tracks (#170)
- Status message on splash screen during load (#1696)
- Display plugin information for native plugins (#1985)
- Draw note names on the white keys when "Enable note labels in piano roll" is selected (#2285)
- ALSA audio device can now be selected from a combo box (#2135, #1600)
- Fix style for Qt5 about dialog (#2781)
- Finer zoom level - 12.5% (#2517)
- Piano roll notes are drawn flat, borderless and transparent (#2827)
- Subwindow title bars are themeable now (#2516)
- Newly added instruments inherit the size of a BB pattern (#2883)
- Add a Rename option in controller context menu (#2804)
- Render the mixer levels in a dBFS scale (#2672)
- Rename track and FX channel names directly, without using a dialog (#2916, #2918)
- Recover dialog redesign (#2176, #2908)
- Various new CSS properties added for better themeability
- Redesign mixer faders, show exactly when clipping and when over -6db (#3056)
- dBV is actually mislabeled dBFS (#3095)
- Set default suffix in 'Save as' file save dialog (#2230)
- Redesign the Delay Plugin (#3120), Dynamics Processor Plugin (#3327), Dual Filter Plugin (#3484), Bitcrush Plugin (#3575)
- Fixes for the classic theme (#3226, #3424)
- Set text below the icon on Sidebar buttons (#3256)
- New, more distinguishable automation slope icons (#3282)
- Window size fixes (#3334, #3329)
- Remove non-document menu icons on macOS (#3363)
- Piano Roll and Automation editor grid redesign (#3062)
- Fix Mixer labels cutting off (#3241)
- Make beat notes visible in MelodyPattern (#3375)
- Anti-aliasing in AutomationPatternView and AutomationEditor (#3386)
- Switch cursor icon when changing tool in Automation editor (#3414)
- Disable HiDPI mode on Windows (#3531)
- Switch WidgetTab to use artwork tabs (#3569)
- Bug Fixes
- Fix building RemoteVstPlugin with Wine >= 4.14 (#5210)
- Fix stuck keys when dragging on the piano view (#5127)
- Fix crash on unmarking octave semitones (#5184)
- Fix invalid MIDI Program Change decoding (#5154)
- Rubberband fix for selecting a large area in the song editor (#5003)
- VeSTige: show icon on 'Turn off all notes' button (#5237)
- RemoteVstPlugin: fix crashes when failed to open a file (#5235)
- Organic: fix glitch at the beginning of a note (#5252)
- Fix broken audio sample exporting on high sampling rate (#5226)
- AppImage: Fix JACK detection (e54969c)
- Fix ZynAddSubFX pitch resetting on project load/export (04768ee, 97d5529)
- VST: Fix crash when using 32bit VSTs on 64bit Linux with VST sync turned on (3aeacca)
- Fix crash when trying to drop controls into the empty automation editor (#4882)
- Fix crash Ctrl + dragging patterns between instances (#4882)
- Fix creating new ZynAddSubFX banks on Linux (#4905)
- Fix empty editors after closing them and creating a new project (#4891)
- Fix crash when loading presets with broken controller connections (#4939, 934ea6d)
- Fixes crash on cloning patterns on Qt >= 5.12 due to cursor issues (#4918)
- Fix notes getting stuck under high CPU conditions (#4908)
- Fix crashes due to race conditions in NotePlayHandleManager (#4966)
- Fix LADSPA automations getting disconnected on export (#4972)
- Fix crash on removing sample track clips while playing (#4982)
- Fix sample tracks out of sync if the processing sample rate is different from 44100Hz (#4991)
- Fix the genre metadata of exported MP3 files wrongly set to Blues (47d6388)
- Fix metadata not written correctly when exporting multiple tracks (#5005)
- AppImage: Fix Carla detection (9799f3c)
- AppImage: bundle JACK fallback library correctly (97e738a)
- Fix VST track cloning in Beat/Bassline editor (fb5c8f5)
- Fix unusable instrumet track dropped on the Beat/Bassline editor (43b700d)
- Fix song editor visualization after maximizing (#4698)
- Fix minor glitches with sample tracks (#4666)
- Fix hangs and glitches when automating VST plugins (#4692)
- Fix crash on pressing a key when VSTi without GUI loaded (277e8b6)
- Fix occasional hang of Sinnah VST (3a94ed3)
- Fix some VSTs out of sync (614bca7)
- Windows: support more than 62 simultaneous VST plugins (9c9290e)
- Fix lost control links in copied automation patterns (#4723)
- Fix wrong tooltip texts on the FX mixer (#4740)
- Don't render automation tracks in Beat/Bassline tracks as a separate track (#4747)
- Keep off-grid position of TCOs on group moving (#4262)
- Fix infinite MIDI note with VST made in Cabbage (#4766)
- Fix builds on macOS Mojave 10.14 (#4767)
- Fix the inability to open VST presets in some languages (227e88a)
- Fix undesirable clipping from internal sanitizer (8618ab5)
- Fix Linux HiDPI handling (bbedfa9)
- Ensure the restore button of a subwindow shows up correctly (#4819)
- Fix automation processing priority (#4387)
- Piano roll: Fix some crashes when no pattern is open (#4392)
- Piano roll: reset editing mode when lost focus (#4393)
- Fix crash when loading project with missing peak controller effect (#4391)
- LADSPA: Fix undefined reference due to vectorization (#4434)
- Fix hang on exit from specific MIDI devices + WinMM (#4451)
- Fix path/file name encoding issues (#4401)
- Windows: VST DLL load failure and setting loading/saving error (792e478, 0f3b41f)
- Windows: ZynAddSubFX setting loading/saving error (9d0aae2)
- Windows: sample file loading error (ddcae47)
- Windows: WAV export error (1af0f08)
- Windows: MIDI import error (3e538d5, 112d342)
- Improve STK rawwave path handling (62d505b)
- Fix occasional audio interface deadlock (#4450)
- Fix hidden sample track panning knobs when using compact track buttons (#4477)
- Fix ZynAddSubFX knobs disconnecting from controllers when exporting (#4493)
- AppImage: Fix launcher script (#4525)
- Fix Freeboy noise channel playback (#4538)
- Fix a rare crash when automating tempo while stacking/arpeggio is on (#4545)
- Fix some VSTs ignoring sample rate changes (de427bb)
- Fix hang when updateInOutCount called from processReplacing (cc2ae66)
- Fix VST transport flags usage in VST sync (2c5cda5)
- Fix VST windows resizing partially (53dadd5)d the resizing case.
- Fix RemoteVstPlugin spawning console host processes (0ad8527)
- Fix some VST hangs due to uninitialized COM/OLE in RemoteVstPlugin (4c7c68f)
- Fix some VSTs resetting sounds due to using programs as presets (c3db486)
- Fix decimal separator handling when loading real numbers (#4547)
- Fix crash on Windows due to disabled PortAudio (3064f03)
- macOS: Fix ZynAddSubFX "Show GUI" (#4065)
- macOS: Fix ZynAddSubFX NaN issue (#4261)
- UI: Fix patman logo (#3660)
- UI: Fix theme after upgrade (#4199)
- UI: Fix splash screen on Windows (c3438a1)
- ZynAddSubFX: Fix decimal point issue after switching to Qt5 (#4244)
- Fix quantization of pasted notes (7de9649)
- Allow individual velocity/pan changes with alt (#3923)
- Use
${CMAKE_DL_LIBS}inCMakeLists.txt(bd8c272) - VST: Fix some deadlocks by removing plugin lock (6e0dda6)
- VST: Fix AmpliTube crash (709fc79)
- VST: Fix lack of sound in iZotope plugins (5ccd222)
- Fix command line rendering with VSTs (#4093)
- Add journaling checkpoint to recording notes (#4144)
- Better wine prefix detection (#4176)
- Fix rendering cancellation with VSTs (#4189)
- Fix deadlock on multi-track export with SDL (#4083)
- Fix redundant path elements (#4211, #4271)
- Ensure correct length of automation patterns in BB editor (#4212)
- Remove MIDI connection from factory files (#4207)
- Play correct note when dragging left side of virtual keyboard (#4265)
- Fix stack overflow in RemoteVstPlugin (#4279)
- Fix preset preview issues with peak controllers (#3904)
- Prevent left-clicking TCO from decreasing its size (#4290)
- Limit the automation-editor scaled-level tooltip to the grid (#4308)
- Fix detuning crash after deleting the note being edited (#4324)
- Fix crash when job queue is full (#4335)
- Fix occasional crash when moving TCOs (#4339)
- Fix crash on exit from MIDI connections (#4340)
- Remove release time from arpeggiated note (#4355)
- Remove FluidSynth requirement for background picture (#4364)
- Restart flanger LFO on playback state change/exporting (#4363)
- Fix VST sub-window creation glitches in project loading (a2cb7e9)
- Fix effect dialog layout glitches (1220374)
- Fix X11 embedding on Qt4 (55da698)
- Fix toggling UI for non-embedded VST effects (ee18011)
- Preserve VST GUI positions and keep them on top (fcc883f)
- VST: Add workaround for small effect window on project load (b808631)
- Fix RemoteVstPlugin not exiting when effect removed (55d3fbc)
- Fix crash when re-opening VST effect manage dialog (24ae559)
- Fix Mallets crash when STK rawwave files can't be loaded (75a6502)
- Handle shrank automation patterns correctly (#4012)
- Linkage issue fixes due to inlined functions (#3815)
- Fix destructor call in NotePlayHandleManager (#3884)
- Fix sfxr buffer noise (#3883)
- ZynAddSubFx: Fix preset loading (#3891)
- PlayHandle: Zero out buffer before processing (6fc4577)
- Fix single-streamed instruments inheriting envelopes when dropped on occupied tracks (#3900)
- Fix crashes and deadlocks with previewing preset (#3905)
- Fix LB302 producing a noise burst when a project is opened (#3844)
- LADSPA - Fix various floating point errors (#3927)
- Fix wrong value interpolation (#3929)
- Fix off-by-one/heap-buffer-overflow as reported by ASAN (eb09ff6)
- Fix a bug when changing value by double click on fader/knob on native EQ (#4018)
- Fix various bugs when using JACK (#4005)
- Fix a qt4 crash (#4037)
- Fix VST plugin compilation in 64bit Ubuntu (#3593)
- Fix empty VST tracks creating noise in playback (#3798)
- Fix some VST deadlocks/hangs (fe98a9a)
- Fix segfault on VST plugin I/O change (7429cb8)
- Don't use VST-provided memory when loading chunks (#3805)
- Don't let VST plugins make the main window transparent (#3809)
- Fix position marker height on startup (#3587)
- Fix "out of buffers" crash (#3783)
- Fix sound while playing from piano roll, when BB tracks are muted (#3804)
- Stop some autosave crashes (#3841)
- Fix builds from directories with spaces (#3604)
- Fix artifacts when rendering as 24 bit WAV (#3617)
- Fix crash when pressing Q in not existing piano roll. (#3609)
- Fix sample track muting the playing sample in addition to the one being muted (#3591)
- Fix rounding issue in automatable model (pan knobs, coarse knobs) (#3597)
- Fixes to recent files (#3621)
- Fix inverted zooming (#3570)
- Fix recording of sustained midi notes (#3710, #3774, #3803)
- Fix midi sustain not working when envelope is on (#3730)
- Fix deadlock when exporting is finished, if the project has any Sample TCOs. (#3742)
- Fixes to recover file system (#3722)
- Disable HiDPI fix for Windows 7 and older (b2919d6)
- Fix occasional crashes on export with Delay based effects (#3680)
- Fix producing of NaN from Env/LFO parameter change while playing (#3761)
- Fix 'Enable Master Pitch' not showing properly across instruments (#3753)
- Fix some memory leaks (#3779)
- Fix Vibed when the "P" parameter has non-zero value (#3789)
- "Code profiling" driven performance and bug fixes
- Fix AudioFileProcessor redraw issues
- Fix maximize/restore window behavior in Song Editor when opening track
- Fix crash when moving channels (#1584)
- Fix noise at end of some sample previews
- Fixed position of "Factory Presets" file divider in file browser
- Don't store templates in "Recently opened" list (#1812)
- Disable VST instrument previews (prevents crashes)
- Fix several color/display/cursor/sizing issues
- Moving play cursor changes beat/bar/ticks display
- Fix Nescaline high-note crash
- Fix exporting crash on some locales/languages
- Fix crash when deleting Beat/Bassline Pattern during playback
- Fix fine-tuned note position when copying/pasting
- Fix output range/NaNs in SFXR instrument (#1879)
- Better clamping behavior in automation editor (#1907)
- Fix distorted sound with Multiband EQ
- Fix opening projects with non-ASCII characters in the name (#1995)
- Prevent running as root on Linux / Unix / Mac (override available)
- Fix noise when automating length of Delay and Flanger plugins
- Fix midi sustain not working with sf2 player (#2758)
- Fixes newly added tracks in BB having wrong size (#2808)
- Fix Zynaddsubfx-GUI on FreeBSD
- Fix VST freezes on Arch and other systems (#2739)
- Fix MIDI sustain pedal not working with sf2 player (#2877)
- Fixed freeze when finishing export (#2879)
- Fixed crash on canceling the export (#2928)
- Pattern::changeTimeSignature() was off by one (#2959)
- Fix 'Set Linear' not saving properly (#2742)
- Fix controllers not getting removed when switching projects (#2980)
- Fix recursive filtering and duplicates in File browser (#3184)
- Fix precision when dragging knobs and faders (#3075, #3254)
- Fix Mallets not loading on Windows (#3230)
- Fix inverted zoom direction (#3273)
- Fix various spelling issues (#3243, #3279)
- Fixes for Command line rendering (#3322, #3341, #3413, #3352)
- Fix sample track buffer leak (4254597)
- Fix saving of multiple TempoSyncKnobModels (#3281)
- Fix TimeLineWidget overflow (#3410)
- Fix hang while importing MIDI (#3409)
- Fix distortion when automating Crossover EQ Faders (#3343)
- Floating point error fixes (#3428, #3425)
- Fix hang on windows when upgrading (4708fe6)
- Fix wrong order of Peak and LFO controllers when loading projects (#3438)
- Fix discovery of external native plugins (7251c84)
- Fix a crash when clicking on a compact track label button (#3463)
- Fix resetting of AFP endpoints when rendering (e65b1c8)
- Correct the Delay synchronization (#3522)
- EQ plugin now responds to wet / dry control (#3520)
- Fix factory samples not saving as relative links (#3510)
- LFO controller now has correct frequency with multiple connections (#3535)
- Fix automation processing in BB tracks (#3481)
- Don't change sample TCO length if tempo is changed (#3543)
- Remove glitching from the Flanger and Delay plugins (#3524)
- Flanger LFO rate synchronized (#3521)
- Fix alternate shading for changing time signature (#3559)
- Fix pattern length not changing while shifting notes (#3567)
- Fix time signature changing doesn't update song editor grid immediately (#3572)
- Fix CMP0050 compilation warnings (#3583)
- Fix export project for sample tracks with vst effects on it (#3571)
- Fix project rendering with numerator automation (#3576)
- Fix export - double dialog windows on writing over existing file (#3526)
- Languages/Locale
- Better French translations in the menu item file (#4711)
- Fix too long translations to fix the UI misalignment (#5185)
- Update translations from Transifex (fad89d6)
- Fix minor issues in German translations (457f2c6)
- German: show correct accelerator key in the context menu (fbdd09d)
- Add i18n maintenance script (96c5f05)
- Improve translations for multiple languages (96c5f05)
- Switched to Transifex for handing locale updates
- Better handling of non-ASCII (Latin1) characters (#1325)
- Added/fixed some missing translation items (#2065)
- Improved translations: French (#2065), Chinese (Simplified), Russian, Spanish, Italian, Portuguese, Czech, Dutch, Ukrainian, Japanese (#2344), Slovenian, Dutch
- Added translations: Malay, Hindi, Swedish, Chinese (Traditional)
Known issues with this release:
Alpha Versions
WindowsLMMS 1.3.0-alpha.2 Windows ARM64
LMMS 1.3.0-alpha.2
1.3.0-alpha.2
This is a release from the development branch, like nightly builds (but not exactly).
The degree of stability provided by this release is greater than that of nightly builds but less than that of stable releases. Crashes may happen, and in the worst case scenario your project files may break. Project files saved in this release cannot be reopened in previous versions of LMMS, making it a one-way upgrade. New features added in an alpha release may be modified or even removed prior to the next stable release - projects made using these features may not necessarily load in later versions of LMMS.
That said, we recommend this release to most users over the nightly builds.
System requirements
The system requirements for LMMS have changed since the last release. Notably, 32-bit builds have been dropped.
| platform | OS requirements | CPU requirements |
|---|---|---|
| Linux (x86_64) | glibc 2.35 (Ubuntu 22.04 equivalent or newer) | x86_64-v2 or higher |
| Linux (arm64) | glibc 2.39 (Ubuntu 24.04 equivalent or newer) | ARMv8-A or higher |
| macOS (x86_64) | macOS 10.13 (High Sierra) or newer | x86_64-v2 or higher |
| macOS (arm64) | macOS 11.0 (Big Sur) or newer | Apple M1 or newer |
| Windows (x86_64) | Windows 10 or 11 | x86_64-v2 or higher |
| Windows (arm64) | Windows 11 | ARMv8.1-A or higher (Windows 11 requirement) |
Changelog
This release contains over 5 years of work completed since the previous alpha.1 release, including 932 commits and 3457 files changed by 65 contributors. It brings 8 new native plugins, ARM64 builds, many new features and quality-of-life improvements, hundreds of bug fixes, and many performance improvements.
Major features
- Detachable windows (#3532)
- Alternative tunings (microtonality) and keyboard mappings (#5522)
- Native LinuxVST support (#6048)
- Tap Tempo tool (#6375)
- Dispersion effect (#6683)
- SlicerT (slicer plugin) (#6857)
- LOMM (upward/downward multiband compressor) (#6925)
- Granular Pitch Shifter effect (#7328)
- Splitting (and resizing) for all types of clips (#7477)
- Workspace panning by dragging the mouse (#7595)
- SlewDistortion effect (#7641)
- Pitch bending directly in the Piano Roll (#7759)
- Oscilloscope plugin (#7937)
- Frequency Shifter effect (#8140)
Minor features
- Alias-free oscillators (#5826)
- Carla: Expose parameters for automation (#5846)
- Allow editing the tangents of Cubic Hermite progressions (#5924)
- LV2: Implement
LV2_BUF_SIZE__boundedBlockLengthandLV2_BUF_SIZE__fixedBlockLength(#6254) - Allow recording pitch automation directly into the Piano Roll (#6297)
- New loop marker shortcuts (#6382)
- Transpose MIDI clips in Song Editor (#6409)
- Mallets: Add random knob function (#6466)
- BitCrush: Allow negative value for stereo difference (#6475)
- LV2: Implement Lv2 Worker (#6484)
- SF2Player: Add microtonality support (#6580)
- SF2Player: Add support for per-note detuning and panning (#6602)
- Add MP3 import (#6750)
- Sample and Hold for LFO Controller (#6850)
- Ghost notes for the Automation Editor (#6940)
- Allow filtering by effect type in the effect select dialog (#7024)
- Peak indicators in mixer strips (#7295)
- Continuous auto-scrolling (#7396)
- SDL input and output device configuration (#7421)
- Add note reversal tool to the Piano Roll (#7606)
- AppImage: Initial support for wayland (#7704)
- Add ability to change sample rate in the settings menu (#7719)
- Add strum tool to the Piano Roll (#7725)
- Add option to favorite items in the file browser (#7753)
- Add new "Psychoacoustic Clipper" LADSPA effect (#7783)
- Add setting for default auto-scroll state (#7851)
- Lb302: Velocity and note panning, code cleanup, and performance improvements (#8132)
- Sf2Player: Add search bar for patches (#8193)
Small enhancements, quality-of-life features, and performance improvements
- New LADSPA control dialog (#2068)
- Don't recalculate the song length for every added clip while loading (#5236)
- Use better colors in the Piano Roll's default and classic themes (#5953)
- Preserve FX channel when replacing track (#5957)
- Show detailed CPU load information in a tooltip (#5970)
- SpectrumAnalyzer: Improve performance by caching most used computations (#6003)
- Default to FLAC compression level 5 (#6052)
- SF2Player: Speed up loading (#6075)
- Color submenu and undoable colors (#6165)
- Extend denormal protection through DAZ flag to all capable CPUs (#6167)
- Microtuner UI update (#6206)
- Show error message when loading an invalid sample file (#6286)
- Fix Song Editor selection CPU hog (#6303)
- Make loop markers snap to same increments as clips (#6313)
- Reload stylesheet when CSS file changes (#6331)
- Allow opening .midi and .rmi files from sidebar (#6417)
- VST2: Make VST sync always-on and non-global (#6418)
- Allow resizing pattern clips from the left (#6584)
- Improve readability of text floats (#6607)
- Draggable effects (#6648)
- Change zoom in
SongEditorto a Slider Zoom (#6664) - Add confirm removal on mixer channels (#6691)
- Add instrument plugins to Song Editor via right click (#6698)
- Add .DirIcon to AppImage (#6715)
- Fix startup lag caused by
FileBrowser::expandItems(#6721) - Extend
TabWidget's style sheet options (#6732) - Unmute all sends when soloing in the mixer (#6746)
- Add BPM tags to built-in beat loops (#6747)
- Modifier keys for mouse wheel adjustments (#6770)
- Add mixer LCD channels for Instrument & Sample tracks (#6831)
- Vertically center
SideBarWidget's title with the icon and remove underlining (#6833) - Include mounted volumes in file dialog on Linux (#6834)
- Show Knob value on mouse over (#6835)
- Make files visible when searching in
FileBrowser(#6845) - Display flats in Piano Roll's keys dropdown (#6865)
- Changed sharps to music sharps Unicode (#6873)
- SetupDialog: Display message on buffer size larger than 256 (#6906)
- Improve color contrast of
lcd_21pink.pngasset (#6914) - Compressor: Improve lookahead algorithm (#6953)
- Improve search performance in
FileBrowser(#6962) - More prominent search (#6968)
- Analyze and improve search in the file browser (again) (#6985)
- Compressor: Disable background autofill (#6986)
- Changed bar lines to follow snap size (#7034)
- Resizable mixer window (#7037)
- Scalable consistent faders with themeable gradients, marker at unity, dbFS by default (#7045)
- Hide the LED button for "Custom Base Velocity" (#7067)
- Add menu option and hotkeys to move controllers/effects (#7139)
- Enable different colors for oscilloscope channels (#7155)
- Compressor: Make background themeable (#7157)
- Optimize map accesses in
LadspaManager(#7173) - Font size adjustments (#7185)
- Only repaint
LcdWidgetif necessary (#7187) - Remove "GENERAL SETTINGS" tab from instrument and sample track windows (#7188)
- GUI adjustments around base velocity (#7196)
- A few accessibility changes in default theme (#7202)
- Remove high quality mode (#7219)
- Remove global oversampling (#7228)
- Warn about LADSPA problems (#7267)
- Resizable mixer channels/strips (#7293)
- Add "Show Hidden Content" checkbox to the file browser (#7309)
- Open up some GUI elements to theming (#7314)
- Improve mix sanitization behavior (#7323)
- LV2: Improve plugin description (#7357)
- Remove term "blacklist" (#7365)
- Improve performance when rendering sample waveforms (#7366)
- Optimize PNG images using ImageOptim (#7384)
- Add input dialog to the mixer channel LCD spin box (#7399)
- SlicerT: UI update (#7453)
- Proportional horizontal scroll (#7474)
- Reintroduce fast math functions (#7495)
- Maximize button for resizable instruments (#7514)
- Optimize dBFS/amplitude conversion functions (#7535)
- Optimise usage of
powusing fast equivalent andexp2(#7548) - Inline
TimePosandTimeSigfunctions to improve performance (#7549) - Improve performance of sample rate getters (#7552)
- Add beat preview for pattern clips (#7559)
- Sample Track Recording with JACK backend (#7567)
- Song Editor: Improve performance of auto-scroll, scroll, zoom, and clip dragging (#7570)
- Faders with a dB scale (instead of linear/percentage) (#7636)
- Improve search behavior in the file browser (#7679)
- Allow plugins to be skipped at runtime (#7691)
- Improve performance when rendering sample waveforms (follow-up) (#7695)
- Handle
SIGINT(#7698) - FileBrowser: "Open containing folder" automatically selects file in the OS's file manager (#7700)
- Update mute and solo buttons, add them to instrument windows (#7708)
- ZynAddSubFX: HiDPI support on Linux (#7710)
- Allow cutting multiple notes at once in Piano Roll (#7715)
- ExportProjectDialog: Remove arbitrary loop count limit (#7724)
- Improve
lmms::fastRand()and use it instead ofstd::rand()(#7741) - Global spacebar play (#7762)
- Amplifier: Upgrade PNG assets to SVG (#7770)
- BassBooster: Upgrade PNG assets to SVG (#7771)
- Bitcrusher: Upgrade PNG assets to SVG (#7772)
- Dispersion: Upgrade PNG assets to SVG (#7773)
- DualFilter: Upgrade PNG assets to SVG (#7774)
- Flanger: Upgrade PNG assets to SVG (#7775)
- PeakController: Upgrade PNG assets to SVG (#7776)
- ReverbSC: Upgrade PNG assets to SVG (#7777)
- Add build flags to output of
lmms --version(#7780) - CrossoverEQ: Rework GUI and use SVG assets (#7781)
- VeSTige and VST Effect assets replacement (#7791)
- Add Playhead and Timeline to Pattern Editor (#7794)
- StereoMatrix: Upgrade assets to SVG (#7803)
- Auto assign MIDI device when track is created (#7835)
- Use system cursors instead of embedded raster images where possible (#7838)
- Make playhead red when recording (#7847)
- SlicerT: Add option to clear all notes (#7850)
- Save scale/key highlighting, and many more editor options (#7854)
- Inputs and Outputs Selection for JACK backend (#7919)
- Fix sensitivity of tangent editing in Automation Editor (#7946)
- Add info
TextFloatfor Piano Roll knife tool (and make cut notes auto selected) (#7953) - Escape emails in plugin author field (#7975)
- Allow export of only the selected notes (#7991)
- Remove the Gate knob from effects (#8011)
- Glue all notes if none are selected (#8018)
- Allow Tempo Sync Knobs and Bars to be logarithmic (#8058)
- Auto-quit rework (#8070)
- TapTempo: Refactor and improve accuracy (#8098)
- Add file browser context menu option for opening samples in SlicerT (#8100)
- Add platform identifier to save files (#8116)
- Make arrow "stepper" buttons themeable and use SVG assets (#8123)
- Centralize standard LMMS plugin logo (#8124)
- Use SVG asset for knife tool icon (#8128)
- Increase clip resize grip width (#8169)
- Add help message & icon to empty automation editor (#8171)
- Add horizontal scroll bar to the File Browser (#8184)
- Improve strum tool LMB event (#8195)
- Improve performance when moving channels in the Mixer (#8235)
- Fix VST parameter automation performance (#8253)
- Remove unused default volume model in
SamplePlayHandlewhich was causing performance issues (#8349) - Add double-click actions to global volume & transposition (#8372)
- Fix slow MIDI operations by only initializing the detuning clip when needed (#8380)
- Fix clips being hard to move when zoomed out (#8385)
- Make tiny notes easier to move (#8386)
Bug fixes
- Fix build due to missing includes (80a6672)
- MidiOss: Fix a typo which breaks build (877a931)
- FreeBoy: Fix division by zero (#5734)
- Implement note types and fix issues with zero-length notes (#5902)
- Save Piano Roll's behavior at stop state (#5942)
- Compressor: Fix interaction between input gain and audition (#5999)
- WaveShaper: Fix regression (#6040)
- Fix empty automation patterns treated as disconnected (#6041)
- Fix collapsing a directory triggering preview in file browser (#6060)
- VST2: Fix wrong pitch after starting LMMS with non-default sampling rate (#6068)
- Fix cloning of pattern tracks (#6077)
- Fix occasional project save failures (#6107)
- Fix CMT Echo Delay Line malfunction (#6151)
- Fix crash when zooming out during knife mode (#6184)
- Prevent segfaults with future lmmsrc.xml version (#6208)
- Make preset saving oblivious to mute/solo/muteBeforeSolo states (#6214)
- Fix a bug where the BPM is modulo'd by 256 on MIDI export (#6215)
- Fix MIDI output note setting (#6236)
- Fix changing LcdSpinBox value changing their init value (#6241)
- Add missing disconnect statements in
PianoRoll(#6245) - Fix crash when using shortcut keys in the Pinao Roll (#6252)
- MidiOss: Use unbuffered I/O to access the device node (#6276)
- Fix broken data file upgrade (#6279)
- EQ: Fix small memory leaks in EQ dialog (#6300)
- MidiImport: Use automation track for MIDI program change events (#6308)
- LV2: Don't show ports with prop
notOnGUI(#6310) - Undoable add/remove bar (#6347)
- Kill orphaned subprocesses on crash (#6366)
- AppImage: Fix project file decompression (#6384)
- AudioFileProcessor: Include the last sample frame (#6399)
- Carla: Fix version detction in
CarlaBase(#6403) - LV2: Fix response to sample rate changes (#6419)
- Correctly upgrade projects saved by LMMS forks (#6424)
- MidiRawClient: Fix setting useless param (#6431)
- VST2: Don't send
effEditIdleon CLI rendering (#6440) - Fix a typo in 420769a which breaks the microtuner (#6458)
- LV2: Block plugins that require GUI support (#6486)
- Fix regression from #6481 (#6522)
- Fix master pitch behavior to transpose instead of detune (#6544)
- Make shifting notes by octaves respect microtuning (#6545)
- Fix AM pitch shift compatibility with 1.2 projects (#6554)
- Fix pause issues (#6590)
- Fix recording not possible with MIDI keyboard in PianoRoll (#6593)
- Fix invalid sample rate for Sample Track files (#6594)
- Refactor
SampleBufferand fix several sample-related bugs (#6610) - Fix recent files menu on old KDE in a different way (#6612)
- EQ: Fix math errors (#6655)
- Fix loading automated parameters of certain plugins and saving/loading Vibed's string data (#6670)
- FreeBoy: Fix CPU time bug (#6680)
- Add references to namespaces in
inheritsfunction call (#6687) - EQ: Set default shelf resonance to 0.707 (#6694)
- Don't auto-quantize notes when recording MIDI input (#6714)
- Fix for adding new FX channel while in solo (#6717)
- Fix automation crash (#6718)
- Fix uninitialized variable "pCurPreset" (#6723)
- Fix audio file transposed an octave down between versions (#6725)
- Look for
libcarla_native-plugin.dllon Windows (#6726) - Partially revert #6721 and improve performance of
Directory::addItems(#6738) - Fix scan for LinuxVST effects (#6751)
- Replace corrupted default samples with fixed ones (#6752)
- Fix occasional crash when clicking Key button in piano roll with no clip (#6757)
- Fix note copy/paste in the Pattern Editor (#6803)
- Fix marked notes bleeding into note velocity (#6807)
- Fix segfault when clicking "Auto Detect" in Connection Settings window (#6811)
- Fix regressions from #6477 (#6826)
- Fix the base note automation fix (#6832)
- Fix
std::vectorrefactor mistake (#6836) - Fix a few memory issues found with ASan (#6843)
- Fix sample tracks in old projects losing FX channel (#6851)
- Make off-grid automation nodes draggable (#6852)
- Compressor: Fix arithmetic exception in Debug mode (#6854)
- Fix invalid use of iterators in Piano Roll (#6869)
- Fix zero-length beat notes ending too soon (#6872)
- Add instrument play handles unconditionally (#6875)
- Fix memory leaks (#6879)
- Fix Compressor zero divisions (#6887)
- Fix instrument release fade-out (#6908)
- Fix a Jack audio segfault (#6912)
- Mallets: Some small fixes (#6913)
- Fix loading samples unsupported by
libsndfile(#6918) - Fix
LcdFloatSpinBoxmouse behavior and negative values (#6923) - SF2Player: Set voice tuning relative to initial value (#6924)
- Fix invalid iterators in Piano Roll (again) (#6943)
- LV2: Fix losing automation on export (#6944)
- Fix conditional jump on an uninitialized value (#6945)
- LV2: Delay setting worker interface to fix segfault (#6947)
- SF2Player: Fix freeze on project unloading with shared SoundFonts (#6950)
- LV2: Fix handling of instantiation failure (#6951)
- Fix CLI render crash (#6952)
- AudioFileProcessor: Fix reverse bug (#6958)
- LV2: Fix instrument instantiation crash (#6977)
- Fix regression involving missed filters in #6962 (#6978)
- Fix crash when changing track color and refactor colour interfaces and storage (#6991)
- Fix memory leaks within tests (#7001)
- Fix lost connections when restoring automation clip (#7002)
- Fix for wrong arpeggio pattern (#7007)
- Compressor: Hideable controls (#7008)
- SpectrumAnalyzer: Fix floating point exception (#7018)
- Handle divisions by 0 in Lb302 and Monstro (#7021)
- Fix arpeggiator sorted mode (#7025)
- LOMM: Fix crossovers (#7026)
- Fix Editor windows keeping focus after close (#7035)
- EQ: Fix peak updates (#7038)
- Fix regressions from #6610 (#7040)
- LOMM: Add
setSampleRatetoBasicFiltersand update allpass sample rate (#7048) - Fix crash on subsequent song loads (#7051)
- Fix sliding of waveform when drawing sample in reverse (#7063)
- Fix most of the track cloning for MIDI ports (#7066)
- Add private setters for the "from" and "to" values in
AudioFileProcessorWaveView(#7071) - Fix invalidated iterator when removing notes in Piano Roll (#7080)
- Fix deletion of mixer channels when calling
MixerView::clear(#7081) - SF2Player: Fix missing nullptr initialization (#7084)
- Fix playback within
Sample(#7100) - Prevent out of bound read in
Sample::playRaw(#7113) - Reenable song editor zooming (#7118)
- AudioFileProcessor: Fix crash after loading reversed sample (#7124)
- EQ: Fix a NaN in
EqSpectrumView(#7140) - Fix NaNs in basic filters and Equalizer (#7141)
- Fix mixer channel deletion message when loading another project (#7154)
- DynamicsProcessor: Fix various bugs (#7168)
- SlicerT: Fix filter glitch (#7174)
- Fix infinite loop in
InstrumentPlayHandle::play(#7176) - Fix loading of CMT delays with locale-dependent names (#7206)
- Move icon determination into
TrackLabelButtonagain (#7209) - SlicerT: Fix crash when loading a sample with no detected slices (#7214)
- Make instrument release time independent of the sample rate (#7217)
- Only set sample clips for valid files (#7224)
- Kicker: Fix release stage (#7226)
- Lb302: Consistent decay regardless of sample rate (#7230)
- Fix upgrade routine for BPM renamings (#7235)
- Add support for "factorysample:" prefix / Fix "bassloopes" typo (#7236)
- DualFilter: Reset filters when effect is enabled/disabled to avoid pops (#7237)
- Lb302: Replace
processingSampleRatewithoutputSampleRate(#7239) - AudioFileProcessor: Fix crash when playing with loop while no sample is loaded (#7266)
- Fix missing initialization of some variables in
TrackContentWidget(#7271) - Fix crash when automating the Delay Time parameter in SWH Reverse Delay (#7277)
- Set "child subreaper" process attribute on Linux (#7315)
- TripleOscillator: Fix white noise generator when multiple notes are played at once (#7318)
- Use
src_set_ratioto fix artifacts withinSampleplayback (#7321) - macOS: Change drag copy shortcut from Command to Option (#7325)
- Compressor: Fix uninitialized values (#7343)
- Reduce memory leaks (#7345)
- GranularPitchShifter: Fix glide 0 division (#7348)
- GranularPitchShifter: Fix bad init values (#7354)
- LOMM: Fix distortion and delay bug (#7355)
- Revert "Reduce memory leaks (#7345)" (#7360)
- Change
SampleFrame's sample index type tosize_tto avoid integer overflow (#7362) - Define
fpp_tandf_cnt_tto be of typesize_tto avoid integer overflow (#7363) - Monstro: Fix buzz in 2nd oscillator (#7368)
- ZynAddSubFx: Fix filter frequency (#7381)
- Fixed alt + left or right causing a crash in PianoRoll (#7390)
- Fix duplication of solo state when cloning tracks (#7391)
- ZynAddSubFx: Fix filter frequency (again) (#7401)
- Revert "Switch to libsamplerate's callback API in
Sample(#7361)" (#7410) - Fix memleaks in help/version (#7423)
- Do not put the main thread in realtime or high priority (#7436)
- Refactor and fix PortAudio backend (#7444)
- Do not save MIDI connections in presets (#7445)
- Fix Sample Clip Reversing Position (#7446)
- Fix export of empty projects (#7458)
- Fix metronome skips at high tempos (#7483)
- Xpressive: Fix crash when using integrate function (#7499)
- Lb302: Fix regression causing silence (#7504)
- SlicerT: Partially revert #7453 (#7519)
- AudioFileProcessor: Fix various bugs (#7533)
- PeakController: Fix attack/decay, use linear interpolation between samples (#7566)
- Remove the FIFO thread and fix deadlock during export (#7568)
- Recording logarithmic automation hotfix (#7621)
- Downgrade
RemoteVstPluginbuild back to C++17 (#7624) - SID: Fix dropout when instrument is used for the first time (#7673)
- Improve mono compatibility with LADSPA plugins (#7674)
- SharedMemory: Make key optional, default to shorter UID on macOS (#7681)
- AppImage: Fix Wine VSTs on Arch Linux (#7686)
- Fix libjack.so.0 detection for openSUSE (#7690)
- Refactor OGG export and always use VBR (#7697)
- Fix additional warnings when Carla is missing (#7722)
- Fix stk/rawwaves for MSYS2 (#7736)
- Fix crash when switching opened projects (#7797)
- Fix memory leak in
RemoteVstPlugin::loadPresetFile(#7827) - Fix audio resampling functionality (#7858)
- Fix crash when playing Pattern Editor without Pattern Track (#7862)
- Revert "PeakController: Fix attack/decay, use linear interpolation between samples (#7566)" (#7871)
- Ensure clips have auto-resizing enabled by default (#7874)
- Fix knob linking / refactor linking (#7883)
- Don't copy
DetuningHelperinNotecopy constructor (#7888) - Fix resized samples getting shifted after tempo change (#7890)
- Fix crash when reversing empty MIDI clip (#7893)
- Update sample length when loading new sample via double-click (#7898)
- Fix Piano Roll key events from leaking to other instrument windows (#7915)
- Flanger: Fix "Invert" checkbox functionality (#7929)
- Fix handling of file names with periods (#7934)
- Don't undo zoom! (#7943)
- Fix crash01, cello01, and e-organ01 sample lengths (#7948)
- Fix auto-resize when dragging sample files onto sample clips (#7952)
- Fix effect gate logic (#7971)
- VST2: Disable ASLR when building
RemoteVstPluginon Windows to fix some broken VSTs (#7976) - VST2: Disable ASLR when building
RemoteVstPluginon Linux to fix some broken Wine VSTs (#7987) - Fix import of xpt and xptz files (#7990)
- Set the sample rate for MP3 exports (#7998)
- Fix a segfault if JACK libs are missing (#8026)
- Fix several problems from #7919 (#8032)
- VST2: Fix null pointer deref when getting window size (#8051)
- PathUtil: Serialization and Formatting (#8103)
- Fix note quantization resetting clip length (#8131)
- Fix mute/solo icons not matching initial mixer channel state (#8145)
- Fix help menu crashes upon program close in Xpressive and Slew Distortion (#8150)
- Fix Shift+Space corrupting playback state when used on stopped editors (#8154)
- Fix truncated OGG exports (#8156)
- AudioFileProcessor: Fix wrong beat length depending on sample rate (#8176)
- Fix sample clips getting out of sync (#8183)
- Fix sample clip loop exporting (#8192)
- AudioFileProcessor: Update amplify model when new sample is loaded (#8198)
- Fix
AutomatableSlidercreating too many journal entries (#8223) - Vibed: Fix regression caused by
fastRandInc(#8225) - Set file format combo box unconditionally (#8237)
- Fix
PianoRolltimeline constantly emittingpositionJumpedduring Record-Play (#8252) - Emit the
playbackPositionJumpedsignal only when the active timeline jumps (#8256) - Fix empty value returned by
FileRevealer::getSelectCommand()(#8281) - Prevent key modifiers in
MainWindowfrom getting stuck (#8282) - Fix Settings bug that occurs when not using JACK (#8299)
- SlicerT: Remove localization of key name (#8305)
- OpulenZ: Fix level scaling knob (#8308)
- Sf2Player: Fix segfault when opening GUI during load (#8322)
- Prevent zero-length notes during MIDI recording (#8328)
- Fix "Send to new SlicerT instance" not sending to Pattern Editor (#8339)
- Fix beat clips being created with a length of 0 in the pattern editor (#8355)
- SlewDistortion: Fix tanh mode (#8363)
- Fix sample track playback in pattern editor (#8375)
- Fix MIDI import of multi-track files and CC automation (#8383)
- Fix
FloatModel::getDigitCount()returning wrong value (#8394) - Fix Sndio backend & cleanup compilation on OpenBSD (#8407)
- Fix
AudioBuffer::absPeakValue()not actually being absolute (#8422) - LV2: Fix crash by only accessing Lv2 Worker if instantiated (#8426)
- Remove
Modelconstraints onVolumeKnob(#8438) - Fix FPE in Automation Editor on startup (#8457)
- AudioFileProcessor: Fix crash when attempting to play sample that failed to load (#8469)
- Export symbols of LADSPA plugins (#8480)
- Fix crash when opening Automation Editor after setting ghost notes (#8488)
- Fix the default frames per audio buffer (#8523)
UI fixes
- Add "natural" scrolling support for trackpads (#5510)
- Fix wrong cursor for selected resizeable clips in Song Editor (#5996)
- Fix clip rendering inconsistency (#6182)
- Don't draw position arrow when line is out of view (#6191)
- Fix spinbox offsets in MIDI tab of instruments (#6235)
- Update PianoRoll to immediately reflect note changes in BBEditor (#6242)
- Only show Piano Roll when editable (#6295)
- Fix track handles disappearing (#6338)
- LB302: Use "TB-303" consistently (#6344)
- Fix colour of Master bus on FX Mixer when switching project (#6421)
- Limit height of position line to height of all tracks (#6509)
- Fix blank lines in language dropdown menu (#6512)
- Make notes in MIDI clips easily visible under any track color (#6539)
- Fix pattern clip colors from pre-1.3 versions (#6563)
- Fix several issues raised at Transifex (#6568)
- Fix unwanted scrolling when changing track name (#6583)
- AudioFileProcessor: Fix broken playback cursor (#6601)
- Make note octave highlight in piano roll obey microtonality (#6663)
- Fix
LcdFloatSpinBoxconstructor and label alignment (#6686) - Include
cstdint(#6697) - SID: Add filter image back (#6731)
- EQ: Fix Lowpass and Highpass display (#6748)
- Fix scale highlighting with vertical zooming (#6761)
- Convert MIDI CC indexes from 1-indexed to 0-indexed (#6774)
- Fix HiDPI issues in the setup dialog (#6779)
- Fix HiDPI issues for menus (#6787)
- Fix HiDPI issue of sample track window (#6788)
- Fix HiDPI issues for elements based on
QTreeView(#6789) - LV2: Improve control visualization (#6799)
- Fix updates to
TempoSyncKnob's context menu string for custom tempo (#6827) - Patman: Update display file name when opening GUI (#6870)
- Update
SampleBuffererror message (#6892) - SubWindow: Increase to respect child's
sizeHint(#6956) - LV2: Fix help window issues (#6957)
- Fix minimum size of LADSPA dialogs (#7019)
- Run without terminal for non-debug Windows builds (#7022)
- Fix
Faderpixmaps (#7041) - Some minor UI fixes (#7044)
- Fix scaling of PixmapButton in layouts (#7053)
- Fix mixer channel updates on solo/mute (#7055)
- AudioFileProcessor: Fix missing playback indicator when dragging and dropping samples (#7064)
- Center effects W/D knob at 0 (#7077)
- Track resizing behavior (#7114)
- Fix missing icons for some instruments (#7132)
- Apply master gain outside audio devices (#7135)
- Fix NaNs for some dbFS value displays (-∞ dbFS) (#7142)
- EQ: Fix display flickering (#7146)
- Set mixer channel LCD when its index changes (#7160)
- Fix empty pattern window regression (#7177)
- Fix Piano Roll rendering regression (#7181)
- Scalable LFO graph (#7203)
- Fix shifting of sample waveform during zoom (#7222)
- Fix UI freeze when zooming in on long samples (#7253)
- Update widths of combo boxes (#7262)
- Fix incorrect rounding of automation nodes (#7269)
- Fix incorrect rounding of automation nodes (again) (#7282)
- Fix position line disappearing when zoomed out (#7296)
- Adjust rendering of
BarModelEditor(#7299) - Change the wording of Instrument Plugin Dialogue (#7301)
- Capitalise root sidebar widget (#7350)
- AudioFileProcessor: Fix zooming and sliding of the waveform view (#7377)
- Fix visual glitch when renaming tracks (#7413)
- Implement
EffectRackView::sizeHint()to fix instrument height (#7428) - Fix bug with continuous auto-scrolling when smooth scrolling is enabled (#7433)
- Fix typo in
DataFileerror message (#7478) - EQ: Remove unnecessary space from resonance knob tooltip (#7485)
- Fix hardcoded fonts scaling issues (#7493)
- Compressor: Replace infinite ratio icons (#7501)
- Shrink mixer channel strip (#7502)
- Make the send button and receive arrow occupy the same space (#7503)
- Restore some whitespace to the mixer channel layout (#7507)
- Fix empty editor windows (#7515)
- Individual knob labels rendered using the widget's font size (#7525)
- Fix the maximization of sub windows (#7530)
- Fix unrestricted splash screen geometry (#7588)
- Disable focus for new channel button in Mixer (#7597)
- Fix styling on message boxes (#7608)
- Fix coarse gridlines being half as wide every 8 bars (#7610)
- Change tooltip window flags (#7613)
- Fix 3 minor typos (#7635)
- Do not set
Qt::WA_OpaquePaintEvent(#7643) - Fix logarithmic behavior when dragging knobs and sliders (#7647)
- Vectorscope: Fix broken UI under Wayland (#7652)
- SpectrumAnalyzer: Fix missing icons (#7667)
- Fix incorrect graph step size behavior (#7703)
- Fix envelope and LFO graph size on resizeable instruments (#7738)
- Ensure hidden full-screen windows are restored in the correct position (#7752)
- Revert "Change tooltip window flags (#7613)" (#7761)
- Fix Clip Creation Quantization in Song Editor (#7763)
- Fix track operations widget vertical alignment (#7765)
- Fix SVG Scaling; Allow SVGs to be rendered at sizes other than their natural size (#7769)
- Fix track operations button alignment, size, and style (#7779)
- Fix missing update to mixer channel name when created (#7795)
- Update Classic Theme (#7799)
- Fix microtuning warning text widening instruments (#7805)
- Make buttons automatable on macOS (#7813)
- VeSTige: Fix file browser filter (#7816)
- ZynAddSubFX: Filter FREQ brought back to 64, fix lowpass issues (#7844)
- Fix issue with Mixer key events and Track Label Button focus (#7870)
- Fix Position Line gradient appearing in all editors no matter which one is playing (#7882)
- Ignore "Keep plugin windows on top" setting when on wayland (#7901)
- Fix quick access letter conflict with Export and Export Tracks (#7927)
- LOMM: Set Init button to non-checkable (#7940)
- Fix
TextFloatflickering (#7942) - Update clip length after clearing all notes (#7960)
- Carla: Fix broken GUI on Wayland (#7966)
- Fix
PianoRoll::getKeyand remove dead code (#8008) - Fix several typos in user-facing strings (#8090)
- Fix untoggleable buttons not updating connected models (#8144)
- Allow Piano Roll to open empty again, but with a help icon (#8148)
- SlewDistortion: Fix missing icon in help window (#8151)
- Fix Clang compiler misidentification in About dialog (#8153)
- Fix track moving not updating
PatternClipView(#8155) - AudioFileProcessor: Fix reverse mode desync on new sample load (#8158)
- Fix unknown arch+os info in versioninfo (#8159)
- Fix Pattern Editor not updating (#8175)
- Fix hardcoded max dB value when double-clicking knobs (#8189)
- Fix Pattern Editor UI updates when adjusting note volume via scrolling (#8196)
- Fix velocity/panning change affecting unselected notes (#8201)
- Fix subwindow size on load (#8204)
- Avoid adding journal checkpoints when initially creating volume knobs (#8214)
- Fix clips not retaining colors or names after using "Clear notes out of bounds" (#8234)
- Fix pitch bending, strum, and knife tools affecting per-note velocity/panning (#8243)
- Fix key inputs not updating time display (#8266)
- Forbid clip pasting when clipboard empty (#8268)
- Fix volume knob and tooltip bugs (#8359)
- Don't show irrelevant context menu options when right-clicking projects on the sidebar (#8368)
- Fix attached subwindows occasionally snapping to minimum size (#8387)
- Fix pan/velocity underflow when dragging lower than window bottom (#8389)
- Fix subwindows occasionally snapping to minimum size 2: Electric Boogaloo (#8396)
- Fix automation clip view desync when editing node values via double-click (#8414)
- Sf2Player: Fix loading when no soundfont is specified (#8432)
- Don't hide BeatClip names (#8456)
- Fix default Piano Roll zoom and quantization (#8484)
- Allow Ctrl-Drag copying tracks via
TrackGrip(#8495) - Fix
CONTRIBUTORSfile generation to fix blank "Involved" tab in the About dialog (#8518)
Code maintenance
- Tests: Fix CMP0115 CMake warning (b4854f8)
- LV2: Fix all code-style issues with curly braces (fa5f2aa)
- AudioEngine: Introduce
RequestChangesGuard: an RAII verion ofrequestChangeInModel(371f7f5) - Remove song import global automation (#5229)
- Remove GUI menu items for global automation (#5230)
- Compile LMMS using C++17 (#5838)
- Use MEMBER, not WRITE for mouseHotspot Q_PROPERTYs (#5955)
- Fix Editor build warning (#6008)
- Simplify an if-else (#6046)
- Replace some identical function calls with a variable (#6050)
- Remove
using namespace std;from some headers (#6076) - Macro cleanup (#6095)
- clang-format: Prepare plugin descriptor init'ers (#6123)
- Rename
MixertoAudioEngine(#6127) - Eliminate deprecated
registerkeyword (#6133) - Namespace
lmms(#6174) - Split
InstrumentTrack(#6176) - Add missing cstddef include (#6178)
- Rename "mixer" to "audioengine" on lmmsrc.xml (#6181)
- Disable tooltips through event filter (#6192)
- Run
dos2unix(#6198) - Rename
TCOand related toClip(#6226) - Fix build issue when
-fpermissiveisn't enabled (#6231) - Rename
FxMixertoMixer(#6239) - Rename
TCOtoClipin the clipboard data (#6278) - Rename Beat/Bassline to Pattern (#6284)
- Rename TCO and BB to clip and pattern in save files (#6309)
- Improve includes (#6320)
- Split RemotePlugin.h into separate files (#6322)
- Add .clang-format and .clang-tidy (#6323)
- Rename LedCheckbox to LedCheckBox in filenames (#6345)
- Fix casing of filenames and code in
plugins/(#6350) - Rename 'dialogs' folder to 'modal', add missing modals (#6367)
- Move widget files, add folder for track and instrument (#6374)
- Fix Qt deprecations (#6386)
- Refactor shared memory (#6404)
- clang-tidy: Apply
modernize-use-overrideeverywhere (#6439) - Clean up macros a bit (#6444)
- Fix clazy warning: "Signature is not normalized." (#6445)
- clang-tidy: Apply
modernize-redundant-void-argeverywhere (#6446) - Add missing
gui::prefixes to types inAudioSoundIo(#6447) - clang-tidy: Apply
modernize-use-bool-literals(#6448) - clang-tidy: Apply
modernize-use-equals-defaulteverywhere (#6450) - clang-tidy: Run
modernize-use-emplaceeverywhere (#6451) - clang-tidy: Apply
modernize-use-usingeverywhere (#6453) - Replace
QVectorwithstd::vector(#6477) - clang-tidy: Apply
modernize-use-autoeverywhere (#6480) - clang-tidy: Apply
modernize-loop-converteverywhere (#6481) - clang-tidy: Apply
modernize-avoid-c-arrayseverywhere (#6564) - Fix whitespace (#6572)
- Use Qt layouts for mixer channels (#6591)
- Replace deprecated
QString::sprintfwithQString::arg(#6598) - Flanger: Move class declarations into namespace
lmms(#6600) - Fix include guards and copyright statements (#6603)
- MidiImport: Remove more global automation (#6605)
- Fix more Qt deprecation warnings (#6615)
- clang-tidy: Apply
readability-const-return-type(#6618) - Update .clang-format (#6619)
- Fix comparing int with bool (#6637)
- Remove redundant
nameChangedsignal fromInstrumentTrack(#6742) - Classier enums (#6760)
- MidiApple.cpp: Fix getName to allow build with GCC (#6791)
- Improve recognition of compiler and platforms (#6795)
- Carla: Update
DummyCarla.cppto useCARLA_PLUGIN_EXPORT(#6814) - Replace global Qt declarations with standard equivalents (#6821)
- (Re)move identical calls to
InstrumentTrack::processAudioBuffer(#6867) - Use UTF-8 for MSVC source and execution charset (#6876)
- Revamp synchronization with the audio engine (#6881)
- Update some old file filtering code (#6882)
- Update copyright year (#6888)
- Fix warnings in Clang build (#6893)
- Wrap resource urls in double quotes (#6898)
- Switched
LadspaEffect/CMakeLists.txtto useLMMS_HAVE_*instead ofWANT_*(#6903) - Rewrite Amplifier plugin code (#6989)
- LV2: Migrate to new LV2 header paths (#6990)
- Enforce lazy loading for
FileBrowser(#6996) - Split
TimeLineWidgetinto core and GUI parts (#7004) - Add missing copyright in
SampleDecoder.cpp(#7030) - Abstraction in
MixerChannelView(#7057) - Migrate to CTest (#7062)
- AudioFileProcessor: Disentangle and clean the classes (#7069)
- Update
src/common/to coding conventions (#7082) - Remove
MemoryManager(#7128) - Redesign file browser searching (#7130)
- Replace
QRegExpwithQRegularExpression(#7133) - Revisit the initialization for local variables (#7143)
- Simplify sample frame operations (make it a class) (#7156)
- Refactor
gui_templates.h(#7159) - Conditionally remove use of
QApplication::desktopinComboBox.cpp(#7179) - Style format
DrumSynth(#7189) - Use layouts for the instrument sound shaping tab / Extract classes for Envelope and LFO graphs (#7193)
- Scalable envelope graph (#7194)
- Add native system semaphore and Windows shared memory (#7212)
- Streamline instrument flags (#7227)
InstrumentSoundShapingrefactoring (#7229)- Revamp resource embedding (#7241)
- Fix for
-Werror=self-movein test for GCC >= 13 (#7288) - Suppress warnings in third-party code (#7319)
- Fix MSVC warnings up to level 2 (#7329)
- Remove
MemoryHelper(#7335) - GranularPitchShifter: Start running upon initialization (#7356)
- Use recursive mutex for
requestChangeInModel/doneChangeInModel(#7359) - Switch to libsamplerate's callback API in
Sample(#7361) - Remove
BufferManager::clear(#7378) - Re-enable disabled GCC warnings where possible (#7379)
- Remove
typeInfostruct fromlmms_basics.h(#7380) - Clean up
lmms_math.h(#7382) - Fix include of array in
BasicFilters.h(#7398) - Reformat
MixerChannelViewclasses (#7431) - Fix build regression from #7380 (#7437)
- Remove support for SDL1 (#7443)
- Refactor to move
positionChangedsignal toTimeline(#7454) - Flanger: Remove
Noiseclass (#7473) - Refactor Effect processing (#7484)
- Remove dead code using
#if 0(#7521) - Tidy up
MixerChannelView(#7527) - Track operations widget with layout (#7537)
- Make
PluginView::isResizablea virtual (#7541) - Upgrade to C++20 (#7554)
- Use templates for common geometric constants (#7558)
- Remove usage of
QTextCodecin Hydrogen Import plugin (#7562) - Remove obsolete workaround for Qt4 (#7590)
- Clean up some header files and move a bit of debugging logic to Cmake (#7677)
- Update math functions to C++ standard library (#7685)
- Use C++20
std::numbers,std::lerp()(#7696) - Use length-bounded string/memory functions (#7709)
- Rename
AudioPort->AudioBusHandle(#7712) - Fix Clang warning due to implicit conversion from int to float for the
RAND_MAXmacro (#7717) - Use C++20 in
RemoteVstPlugin(#7916) - Remove
m_inBuffromAudioJack(#7922) - Move
FileRevealerinto thelmms::guinamespace (#7923) - Rename some include guards (#7924)
- Refactor global spacebar play (#7926)
- Audio buffer views (#7945)
- Remove
m_resizablefrom Clips (#7954) - Remove
currentPatternChanged()that has no effect (#7989) - Remove
Knob::setHtmlLabel(#7993) - Remove lots of useless/misplaced includes (#7999)
- Audio buffer view improvements (#8016)
- OpulenZ: Fix compilation error (#8040)
- Remove
fastMemCpy()fromRemotePluginBase(#8114) - Use
std::round()instead ofnearbyintf()(#8119) - Remove
SampleLoader(#8186) - Refactor
ExportProjectDialog(#8215) - Replace
fpp_twithf_cnt_t(#8311) - Resolve remaining C++20 TODOs (#8326)
- Oscilloscope: Add missing
QApplicationandQThreadincludes (#8377) - GranularPitchShifter: Revert "Start running upon initialization (#7356)" (#8398)
- TapTempo: Fix missing include (#8421)
- Fix a few warnings (#8465)
- Move
SampleThumbnailinto thelmms::guinamespace (#8470)
Build system / CI / Dependencies
- Fix wrong variable name in CreateTempFile (46c246a)
- Pull vcpkg quietly on AppVeyor (fd18305)
- Update Docker image version for ShellCheck (9d5d86d)
- Fix "invalid macro definition" error in VSCode (#6051)
- Fix CMake check for
SFC_SET_COMPRESSION_LEVEL(#6054) - Update exprtk submodule to 93a9f44 (#6130)
- Use modern CMake targets for SDL2 (#6132)
- Fix compilation on macOS aarch64 (#6152)
- Update CPU to Pentium 4 for win32 builds (#6155)
- Let CircleCI use linux.gcc:18:04 (#6158)
- Fix MSVC architecture detection with non-VS generators (#6175)
- Fix QRC dependency issues (#6349)
- Add check-strings (#6379)
- Correctly detect architecture on powerpc* (#6415)
- Add
check-namespacescript (#6438) - Split lines in .clang-tidy (#6449)
- Migrate CI to GitHub Actions (#6476)
- Remove a workaround for broken
install-qt-action(#6482) - Fix
check-stringsverification (#6485) - Improve use of strip command (#6505)
- Support Sf2 Player, Mallets, PortAudio, and Lame compilation with MSVC (#6507)
- Support building AppImage on non-Ubuntu systems (#6510)
- Don't require comment after
#elseincheck-namespace(#6513) - Fix Visual Studio 2022 detection (#6520)
- Add HIIR library to LMMS (#6553)
- Fix transport 'file' not allowed error (#6557)
- Support ZynAddSubFx compilation with MSVC (#6561)
- Show pull request number in version string (#6565)
- Only rebuild translations when ts files change (#6566)
- Update HIIR submodule to latest (#6622)
- Update
BashCompletion.cmake(#6634) - Update ExprTk package (#6646)
- Fix typo (#6652)
- Fix STK rawwave installation in Windows builds (#6705)
- Fix hiir submodule detection (#6755)
- Fix generator expression in strip command (#6762)
- Bump veal submodule (#6771)
- Consolidate and simplify
CMAKE_POLICYentries (#6780) - ZynAddSubFX: Fix Apple install script (#6782)
- Fix GCC builds on macOS (#6784)
- Allow Apple install step to fail CI (#6796)
- Bump
mingw-std-threadssubmodule (#6817) - Add options to enable sanitizers (#6840)
- Expose targets and versions for more dependencies (#6842)
- Enable build under NixOS (#6855)
- Improve CI cache usage (#6868)
- Push policy stack in
InstallDependenciesmodule (#6878) - Use
residsubmodule fromlibsidplayfp(#6883) - Bump SWH and TAP LADSPA plugin submodules (#6937)
- Update remote of ZynAddSubFX's
instrumentssubmodule (#6939) - Run CI build on macOS 12 (#6960)
- Enable LADSPA plugins on MSVC (#6973)
- Update Linux CI to Ubuntu 20.04 (#7015)
- Update URL of tap-plugins submodule (#7087)
- Fix vcpkg dependencies (#7088)
- Add
WANT_OSSas a configuration option (#7099) - Use GitHub mirror of tap-plugins (#7110)
- Remove message location check from
check-stringstest (#7112) - Update
game-music-emusubmodule (#7144) - Update
jack2submodule to latest (#7147) - Update
carlasubmodule (#7149) - CMake: Replace
EXEC_PROGRAMwithexecute_process(#7166) - Bump project year (#7167)
- Replace call
QT5_WRAP_UIwithCMAKE_AUTOUIC(#7200) - Bump Qt minimum version to 5.9 (#7204)
- Support VSTs on Linux even if Wine is unavailable (#7205)
- Update ZynAddSubFX (#7250)
- Remove support for MSYS2 (#7251)
- CPack: Refactor AppImage and Apple DMG Generation (#7252)
- Modernize compiler and linker flags (#7255)
- Fix native Linux VST on ARM64 (#7257)
- Update MinGW CI to Ubuntu 20.04 (#7259)
- Fix macOS CI builds (#7261)
- Update
upload-artifactsactions (#7263) FindWineimprovements (#7268)- Fix fftw linking when cross-compiling (#7276)
- Remove
mingw-std-threadsfrom 3rd party deps and use native libs/headers instead (#7283) - Add support for Apple Silicon (#7285)
- Fix to allow NSIS packaging to work for non-MSVC Windows builds (#7287)
- Update
vealsubmodule (#7290) - Remove
debianfolder (#7311) - Run CMake with
-Werror=devin CI (#7322) - Fix caching for macOS CI jobs (#7326)
- Cleanup of MinGW-related scripts (#7327)
- Add Qt6 support (#7339)
- Apply warning flags to
RemoteVstPlugintoo (#7389) - Add yamllint checks (#7424)
- Add gprof profiling support (#7547)
- Xpressive: Update
ExprTksubmodule (#7571) - Update macOS CI (#7572)
- Fix the MSVC CI fail happening due to outdated vcpkg (#7589)
- Remove
pkg-configfrom Brewfile (#7593) - Revert
pkgconfremoval (#7605) - Remove 32-bit CI support for Windows builds (#7619)
- ZynAddSubFX: Update
zynaddsubfxsubmodule (#7625) - Add support for Windows on ARM64 (#7644)
- Bump project year (#7645)
- Add VST support for Gentoo Linux (#7665)
- CI: Switch linux-x86_64 to Ubuntu 22.04 (#7678)
- CI: Switch mingw64 to Ubuntu 24.04 (#7682)
- Add VST64 targets for Linux ARM64 (#7687)
- Remove
libgalliumfrom the AppImage (#7693) - VersionInfo: Mimic github's hash styling (#7694)
- Improve Qt5 detection on macOS (#7699)
- Fix vcpkg builds (#7702)
- AppImage: Use fully qualified path when calling appimagetool (#7707)
- Make
portsmfa git submodule (#7755) - Enable
CMAKE_EXPORT_COMPILE_COMMANDS(#7804) - Update
qt5-x11embedsubmodule to latest version (#7825) - Add Windows arm64 CI builds (#7848)
- Upgrade to Windows 2022 / Visual Studio 2022 (#7897)
- Set minimum deployment target for macOS builds (#8004)
- AppImage: Un-pollute
/usr/lib(#8053) - Remove custom winebuild task (#8077)
- Update macOS runner image and XCode version (#8092)
- Make apprun-hooks POSIX compliant (#8121)
- Bump minimum Qt version to 5.15 (#8129)
- CMake: Check for PERL's
List::MoreUtils(#8180) - Bump project year (#8207)
- Use vcpkg for MinGW dependencies (#8218)
- CMake: Fix build for CYGWIN (#8247)
- Docs: Fix update
libstk0-devtolibstk-devfor Debian/Ubuntu (#8409) - Remove
suilfrom MSYS2 dependencies (#8420) - Bump
upload-artifactto v7, don't zip (#8423) - Remove unnecessary
CHECK_INCLUDE_FILES()calls (#8451) - Add CMake options for targeting specific microarchitectures (#8464)
- macOS: Switch from appdmg to dmgbuild (#8471)
- Don't compress man page in during build (#8494)
- Change
TARGET_UARCHdefault from 'native' to 'none' (#8507) - Add
ENV{MSYSTEM}to installers created by MSYS2 (#8521)
Meta / Other
- Update translations (726fae2)
- Update freeze/reorg disclaimer (5f32df5)
- README: Use CircleCI build passed badge (fa407d2)
- Remove the reorganization disclaimer (c8a9d45)
- Replace the CI status badge with GitHub Actions (fc2f6a0)
- Update README.md with the new logo (#6009)
- Fix CONTRIBUTORS and .mailmap (#6033)
- Fix typo in doc/lmms.1 (#6429)
- Ensure that build and target are directories in .gitignore (#6884)
- Add GitHub issue forms for bug reports and feature requests (#7102)
- Remove the missing spoken.flac file from "unfa - Spoken" (#7208)
- Remove demo project Greshz-CoolSnip.mmpz (#7248)
- Update translations (#7529)
- Revise README (#7545)
- Major German translation rework (#7612)
- Revert "Major German translation rework (#7612)" (#7628)
- Add clangd cache to .gitignore (#7846)
- Update translations (#8149)
- Clarify VST support to VST2 and mention LV2 support in README (#8233)
- Update .mailmap, AUTHORS, and CONTRIBUTORS (#8283)
- Add Doxygen docs to Github Pages (#8329)
Nightly Versions
Windows ARM64 (clang)LMMS @3d97b11 Windows (msvc)
LMMS @3d97b11 Windows
LMMS @3d97b11
Install LMMS on macOS
Click one of the buttons below to download LMMS for macOS
Stable Versions
macOS Intel (10.13)LMMS 1.2.2 macOS Intel (10.14)
LMMS 1.2.2
Note for macOS users: if you're using macOS 10.14(Mojave) or newer, please use the according version. The macOS 10.13 build is buggy on 10.14 or newer.
New changes in 1.2.2: (2020-06-25)
-
General improvements
-
UI improvements
- Note selection: Editing values works in dialog (#5438)
-
Bug Fixes
- Piano Roll - Fix retrigger with vol/pan sliders (#5271)
- Fix a rare crash on export (#5293)
- Fix LMMS not launching when AppImage has spaces in name (#5297)
- Fix vertical piano being unresponsive when clicked too fast (#5262)
- Fix crash with Grooove VST (#5300)
- Fix crash on deleting instrument with controller connections on knobs (#5306)
- Fix notes being placed at negative positions on MIDI import (#5343)
- Fix scrolling direction in the song editor due to stuck Ctrl/Shift (#5286)
- Fix stuck notes with Helm VST on tempo automation (#5365)
- Fix file factory delimeter position (#5378)
- Fix a muted demo project "Greippi - Krem Kaakkuja (Second Flight Remix)" (aeac24c)
- Fix controls linking misbehaviors (#5336)
- Fix loading and saving of .fxb/.fxp files on Windows (#5411)
- Fix crashes and hangs on importing some Hydrogen drum kit songs (#5420)
- Fix freeze when replacing Mallets with another instrument (#5428)
- DrumSynth: ensure correct envelope length in any sample rate (#5467)
- AFP: fix loading start and loop points if the loop point is automated (#5472)
- Select the correct piano key for marking semitones (#5478)
- Ensure consistent use of effect gate (#5475)
- Fix Piano roll crashing when window is vertically scaled too large (#5449)
- Fix some memory errors with JACK audio/MIDI (#5452)
- JackMidi: Remove confusing warnings at shutdown (737fcd3)
- Fix SF2 player crashing when file is not a soundfont, with FluidSynth 2 (#5487)
- BB editor: fix mouse event affecting wrong beats due to the cursor shape (#5489)
- Fix knobs moving too fast on some platforms (#5360)
- Fix notes created in BB editor resizing incorrectly when resizing a selection (#5515)
- Fix some patterns not being saved in project (#5537)
-
Localization
Previous features and fixes:
Click to show/hide
- General Improvements
- Respect OS' case sensitivity when checking for existing files (#4768)
- Remove MIDI connections from factory .mmpz files (#5163)
- Show FreeBSD in the build version info (732448c)
- Fix build with musl C runtime library (#4825)
- Fix debug build broken in RC8 (a233291)
- DrumSynth: Make the parsing logic safer (#4869)
- macOS: Disable soundio on for stability (991ffcd)
- Allow sample track clips to be resized smaller than one bar (#4933)
- Don't require X11Extras on Linux when VSTs are disabled (#4953)
- Allow recording chords directly from the piano-roll (#4938)
- Fix more issues with ZynAddSubFX and/or VSTs related to automation (#4942)
- Better default sounds for Nescaline and Freeboy (#4968)
- DMG rebranding (#5013)
- Don't quit command-line rendering when failed to load sample files (1ab1280)
- Allow building SF2 player with FluidSynth 2 (#4678)
- Disable FX auto quit by default to avoid buggy behaviors (#4378)
- Enable VST sync by default (69a51eb)
- Improve handling of nan/inf (#4743)
- Allow undoing note movements (6df6f12)
- MIDI import/export: map volume with the full range (#4785)
- Add a hidden setting to toggle built-in sound sanitizer (#4787)
- Don't let silent instruments wake up sleeping effects (#4792)
- Bring back PortAudio support on Windows (#4770)
- Initialize peak controller value with the base value (#4382)
- Quit exit if failing to save project (#4428)
- CMake: Fix errors when path contains spaces (d1c36d7)
- CMake: Fix FindSndio module (c45a21a)
- Fix project URL for some files (e9f2b57)
- Don't let VST/ZynAddSubFX block whole audio playback (#4460, 9fe74c2)
- Some demo project license fixes (#4481)
- Fix
CMake < 3.1compatibility when cross-compiling (#4530) - Remove Qt temporary files after loading ZynAddSubFX settings (#4551)
- Extend Sndio audio backend support to more OS (#4486)
- Improve handling of invalid backend setting (91ca660)
- Enable Carla on macOS (#4558)
- macOS: Fix macOS compilation without SDL (46512fd)
- VST: Wait for reply when updating sample rate (d0b3be7)
- VST: Fix VSTs on Fedora 27 (#4276)
- AppImage: Use bundled jack if missing (#4094)
- AppImage: Fix AppImage tool path (fc9c3ea)
- Always remove infs/nans (#3706)
- Add support for .pat previews, drag+drop (a8e8746)
- Fix typo: Phrygolydian to phrygian (#4223)
- Change default working directory location (#4288)
- Disable fluidsynth audio backends if possible (#4300)
- Revert
CONTRIBUTORSfile removal (#4307) - Update
rpmallocsubmodule to 1.3.0 (fce9326) - Allow controlling VST effects without own GUI (235e8ee)
- Add AppImage support to Linux builds (#3688, #4026)
- Replace MemoryManager implementation with rpmalloc (#3873)
- Use weak loading of libjack (#3887)
- Note sorting algorithm rework (#3881)
- Openbsd sndio support, apply abs call fix (#3839)
- Various arpeggio improvements (#3858, #3867)
- Switch Travis-CI to Qt5.9.2 (d0194e6)
- Disable portaudio on Windows to prevent runtime error (#3889)
- Add input validation to linearToLogScale() (#3932)
- Fix recent files not working on KDE (#3872)
- CMake: Fix non-existing target warnings (0dbdafc)
- Unsolo mixer channels on delete (#3982)
- Automation Editor - Straighten out draw line function (#3997)
- Open correct VST folder in previously saved projects with existing VeSTige instruments (#3550)
- Add missing macOS packages to Travis and the macOS wiki (#3595)
- Proper Case Renames (#3573)
- Ogg files - Silence warning message and fix obsolete vorbis tag message (#3634)
- New export encodings: MP3 (#3615, #3641), 24 bit WAV (#3552), variable bit rate OGG (#3552)
- Save the correct subwindow size when it's hidden (#3589)
- Suppress midi in events on export (#3778)
- Correct spelling in fft_helpers.cpp (#3645)
- Ensure midi port exists before removing (#3655)
- MIDI - Don't apply base velocity to all controller values (#3678)
- Cancel track rename with Escape key (#3676)
- Equalizer plugin, refinement to analysis display (#3530)
- Remove executable file permissions for theme files (#3752)
- Update Freeboy files from Game Music Emu 0.6.1. (#3618)
- Respect build options in export dialogs (#3714)
- Build support for Haiku (BeOS) Operating System
- Build support for OpenBSD/sndio backend (#2690, #2707)
- Better handling of corrupt projects/presets
- Export as loop support for CLI (#2131)
- Added Apple MIDI support (#1153)
- Fix "Dummy" audio selection (#2376)
- MIDI export support (#1686, #3733)
- MIDI import
- Dedicated folders for plugins, instrument patches (#1807)
- Fast-switch support for instrument dialogs (#1987)
- Improved support for HDPI displays (pixel independent font sizes)
- SDL is now the default audio back-end for new installations (#1600)
- Prevent overwriting of recover files (#2174)
- Added LocklessList and use it for new play handles (#2895)
- Remove broken FLP import, revert project to GPLv2+ only (#2904)
- Improved file input validation (#2523)
- Extended arpeggiator functions (#2130)
- Disable minimization on all subwindows (#2983)
- Sample tracks can be played from any song position (#3133)
- Allow moving tracks by dragging the track label button (#3271)
- Option to allow auto save while playing (#3088)
- Make Controller Rack fixed width (#3240)
- Easier note resizing in the Piano Roll (#3304)
- Add a 'clear' button to line edits in the Sidebar (#3329)
- Don't count muted tracks in track length when exporting (#3390)
- Prevent issues with large files, Bump up sample limits to 300MB and 90 minutes (#3411, #3293)
- Automation editor fixes: Delete points regardless of quantisation, new points clear out surrounding points, use
<Ctrl>to override the behaviour (#3352) - Fixes for msys2/mingw builds on Windows (#3369)
- Fix opening of project files on macOS (#3219)
- Add SF2 support for macOS (#3446)
- Include past automation patterns in processing (#3382)
- Added and fix automation labels for Mixer elements (#3453)
- Add a new demo song - Buzzer Beater (Kicker challenge winner) (#3482)
- Always use the master channel for preset previews (#3503)
- Remove limited recover session (#3545)
- Provide support for fallback config values, make autosave on by default (#3551)
- New metronome samples (#3513)
- Folders/Paths
- Make templates folder configurable
- FX Mixer
- Added "Remove unused channels" feature
- Added Mixer "solo" mode
- Shortcut
SHIFT + INSERTadds new channel
- New Instruments:
- Gig Player - Plays Giga Sample Banks (similar in usage to SoundFont files) (screenshot)
- FX - Effects Plugins
- Effects now sort-able, list in proper alphabetical order (#2834)
- Equalizer plugin - A new native parametric graphic EQ effects plugin (screenshot)
- New Bitcrush effects plugin (screenshot)
- New Crossover EQ plugin (can be used as a tonestack) (screenshot)
- New Multitap Echo plugin (screenshot)
- New ReverbSC plugin (screenshot)
- Native effect plugins redesigned to fit with the new theme (#2831)
- Noncyclic smoothing for waveshaper and dynamics processor to avoid unwanted distortion (#3137)
- Sample exact models/controllers
- Supported by FX mixer, Instrument VOL knob, Amplifier FX plugin, WaveShaper, LFO Controller, Dual Filter, BassBoost
- Allows smooth sidechaining with peak controller
- Allows AM modulation with LFO controller
- Track Enhancements:
- Add ability for instruments to ignore "master" pitch slider
- Quick FX Mixer assignment from the track context menu
- Added Automation Track pattern "flip" (horizontal/vertical)
- Better thumbnails/previews of Piano Roll patterns
- Fix crash when changing note velocity (#2713)
- Added Step cloning in Beat/Bassline Editor (screenshot)
- New BB tracks have the same length as first (#2883)
- Metronome (#2278):
- The metronome can now be turned on and off with a new button
- Will play during song, pattern and BB playback when turned on
- Metronome is ignored during export
- Project templates:
- The default template can now be saved explicitly using a new option in the file menu
- File menu has a new option "New from template"
- User presets are now also shown in the tool button menu and in the "New from template" menu
- UI Improvements
- Make splash screen text white (#5149)
- Show Beat/Bassline Editor on clicking track labels of B/B tracks (#5060)
- Enable dark title bar on macOS (df79f8c)
- macOS: Add shortcuts for inserting bars, deleting bars and deleting notes on Apple keyboard (#4851)
- AudioFileProcessor: Better tooltip for ping-pong loop (#4868)
- VST: Add VST always-on-top config option (17f6235)
- VST: Ensure VST windows show properly in taskbar (6fef905)
- VST: Don't show error when loading empty VeSTige instance (205b575)
- Equalizer: Fix spectrum window formula (#4895)
- Equalizer: Use brighter and more opaque colors for the spectrum view (#4772)
- Don't draw note detuning info over the volume/panning area (#4965, 9ff882d)
- Fix hanging cursor in piano-roll (#4960)
- Update splash screen (#5002, #5019)
- Treat empty patterns in song editors as Beat/Bassline patterns only if zoomed enough (5a92105)
- Decrease the margin of the LFO graph for better appearance (d9f5e8a)
- Redesign the LMMS logo and mimetype icons (#4519)
- Deselect FX channel's name text when losing focus (#4293)
- Setup Dialog - Fix bottom of letters cut off (#4483)
- Make the oscilloscope colors available as properties (#4512)
- Update LMMS UI more frequently (#4570)
- Styling: Add File Browser Styling (#4085)
- Window behavior: Reset window title after render (a39ea2b)
- Piano Roll: Erase on mouse button drag in erase mode (#4150)
- Piano Roll: Draw the entire length of a notes pitch bend info (#4233)
- Piano Roll: Adjust contrast of marked semitones in the piano roll (#4239)
- Piano Roll: Change selected notes color (#4243)
- Piano Roll: Change Detune To Pitch Bend in Piano Roll (#4194)
- Widgets: Fix incrementation of LcdSpinBox QInputDialog (38b69a7)
- Widgets: Fix some bugs with LFO waveform drag and drop (#4227)
- Widgets: Adjust MDI subwindow buttons contrast in the MenuBar (#4242)
- Tracks: Fix UI glitch where track ticks did not line up (#4171)
- Tracks: Better behavior when left-clicking a TCO (#4290)
- LCD Alignment Fix (#3864)
- Improve Automation Point delete radius and size (#3902)
- Fix monstro's osc 3 vol knob values (#3912)
- Remove text from project notes of factory templates (#3939)
- Automation Editor - remove (comment out) unimplemented buttons (#4051)
- Piano Roll - Don't quantize when pasting notes (#4058)
- Brand new theme (#2806)
- Fix misaligned controls icon in the VeSTige plugin (#3664)
- Update classic/style.css with TabWidget, TrackView, PianoView and Fader colors (#3665)
- Fixes for project loading progress display (#3672)
- Add a border on non-fixed BB patterns (#3758)
- Paint a black rectangle under patterns to prevent glitches (#3759)
- Enable HiDPI Scaling (Qt 5.6+ only) (#3814)
- Range Select in Song Editor
- Horizontal mouse wheel support in Song Editor
- Group copy/move in song editor
- Better collection and displaying of startup errors (both GUI and CLI)
- Better name handling for copied patterns
- Allow the disabling of ".bak" files
- Piano Roll shortcut
Alt+Left/Alt+Rightswitches between Piano Roll patterns - Add Quantize button to Piano Roll
- Marking Piano Roll semitones marks on all octaves (#2193)
- Better incompatible theme detection (forces minor version check)
- Recursive sample/preset/project searching in File Browser
- Add X/Y pad to Delay FX plugin (screenshot)
- Added deselect shortcut support for Piano Roll (
CTRL + SHIFT + A) - Adjacently insert cloned tracks (#170)
- Status message on splash screen during load (#1696)
- Display plugin information for native plugins (#1985)
- Draw note names on the white keys when "Enable note labels in piano roll" is selected (#2285)
- ALSA audio device can now be selected from a combo box (#2135, #1600)
- Fix style for Qt5 about dialog (#2781)
- Finer zoom level - 12.5% (#2517)
- Piano roll notes are drawn flat, borderless and transparent (#2827)
- Subwindow title bars are themeable now (#2516)
- Newly added instruments inherit the size of a BB pattern (#2883)
- Add a Rename option in controller context menu (#2804)
- Render the mixer levels in a dBFS scale (#2672)
- Rename track and FX channel names directly, without using a dialog (#2916, #2918)
- Recover dialog redesign (#2176, #2908)
- Various new CSS properties added for better themeability
- Redesign mixer faders, show exactly when clipping and when over -6db (#3056)
- dBV is actually mislabeled dBFS (#3095)
- Set default suffix in 'Save as' file save dialog (#2230)
- Redesign the Delay Plugin (#3120), Dynamics Processor Plugin (#3327), Dual Filter Plugin (#3484), Bitcrush Plugin (#3575)
- Fixes for the classic theme (#3226, #3424)
- Set text below the icon on Sidebar buttons (#3256)
- New, more distinguishable automation slope icons (#3282)
- Window size fixes (#3334, #3329)
- Remove non-document menu icons on macOS (#3363)
- Piano Roll and Automation editor grid redesign (#3062)
- Fix Mixer labels cutting off (#3241)
- Make beat notes visible in MelodyPattern (#3375)
- Anti-aliasing in AutomationPatternView and AutomationEditor (#3386)
- Switch cursor icon when changing tool in Automation editor (#3414)
- Disable HiDPI mode on Windows (#3531)
- Switch WidgetTab to use artwork tabs (#3569)
- Bug Fixes
- Fix building RemoteVstPlugin with Wine >= 4.14 (#5210)
- Fix stuck keys when dragging on the piano view (#5127)
- Fix crash on unmarking octave semitones (#5184)
- Fix invalid MIDI Program Change decoding (#5154)
- Rubberband fix for selecting a large area in the song editor (#5003)
- VeSTige: show icon on 'Turn off all notes' button (#5237)
- RemoteVstPlugin: fix crashes when failed to open a file (#5235)
- Organic: fix glitch at the beginning of a note (#5252)
- Fix broken audio sample exporting on high sampling rate (#5226)
- AppImage: Fix JACK detection (e54969c)
- Fix ZynAddSubFX pitch resetting on project load/export (04768ee, 97d5529)
- VST: Fix crash when using 32bit VSTs on 64bit Linux with VST sync turned on (3aeacca)
- Fix crash when trying to drop controls into the empty automation editor (#4882)
- Fix crash Ctrl + dragging patterns between instances (#4882)
- Fix creating new ZynAddSubFX banks on Linux (#4905)
- Fix empty editors after closing them and creating a new project (#4891)
- Fix crash when loading presets with broken controller connections (#4939, 934ea6d)
- Fixes crash on cloning patterns on Qt >= 5.12 due to cursor issues (#4918)
- Fix notes getting stuck under high CPU conditions (#4908)
- Fix crashes due to race conditions in NotePlayHandleManager (#4966)
- Fix LADSPA automations getting disconnected on export (#4972)
- Fix crash on removing sample track clips while playing (#4982)
- Fix sample tracks out of sync if the processing sample rate is different from 44100Hz (#4991)
- Fix the genre metadata of exported MP3 files wrongly set to Blues (47d6388)
- Fix metadata not written correctly when exporting multiple tracks (#5005)
- AppImage: Fix Carla detection (9799f3c)
- AppImage: bundle JACK fallback library correctly (97e738a)
- Fix VST track cloning in Beat/Bassline editor (fb5c8f5)
- Fix unusable instrumet track dropped on the Beat/Bassline editor (43b700d)
- Fix song editor visualization after maximizing (#4698)
- Fix minor glitches with sample tracks (#4666)
- Fix hangs and glitches when automating VST plugins (#4692)
- Fix crash on pressing a key when VSTi without GUI loaded (277e8b6)
- Fix occasional hang of Sinnah VST (3a94ed3)
- Fix some VSTs out of sync (614bca7)
- Windows: support more than 62 simultaneous VST plugins (9c9290e)
- Fix lost control links in copied automation patterns (#4723)
- Fix wrong tooltip texts on the FX mixer (#4740)
- Don't render automation tracks in Beat/Bassline tracks as a separate track (#4747)
- Keep off-grid position of TCOs on group moving (#4262)
- Fix infinite MIDI note with VST made in Cabbage (#4766)
- Fix builds on macOS Mojave 10.14 (#4767)
- Fix the inability to open VST presets in some languages (227e88a)
- Fix undesirable clipping from internal sanitizer (8618ab5)
- Fix Linux HiDPI handling (bbedfa9)
- Ensure the restore button of a subwindow shows up correctly (#4819)
- Fix automation processing priority (#4387)
- Piano roll: Fix some crashes when no pattern is open (#4392)
- Piano roll: reset editing mode when lost focus (#4393)
- Fix crash when loading project with missing peak controller effect (#4391)
- LADSPA: Fix undefined reference due to vectorization (#4434)
- Fix hang on exit from specific MIDI devices + WinMM (#4451)
- Fix path/file name encoding issues (#4401)
- Windows: VST DLL load failure and setting loading/saving error (792e478, 0f3b41f)
- Windows: ZynAddSubFX setting loading/saving error (9d0aae2)
- Windows: sample file loading error (ddcae47)
- Windows: WAV export error (1af0f08)
- Windows: MIDI import error (3e538d5, 112d342)
- Improve STK rawwave path handling (62d505b)
- Fix occasional audio interface deadlock (#4450)
- Fix hidden sample track panning knobs when using compact track buttons (#4477)
- Fix ZynAddSubFX knobs disconnecting from controllers when exporting (#4493)
- AppImage: Fix launcher script (#4525)
- Fix Freeboy noise channel playback (#4538)
- Fix a rare crash when automating tempo while stacking/arpeggio is on (#4545)
- Fix some VSTs ignoring sample rate changes (de427bb)
- Fix hang when updateInOutCount called from processReplacing (cc2ae66)
- Fix VST transport flags usage in VST sync (2c5cda5)
- Fix VST windows resizing partially (53dadd5)d the resizing case.
- Fix RemoteVstPlugin spawning console host processes (0ad8527)
- Fix some VST hangs due to uninitialized COM/OLE in RemoteVstPlugin (4c7c68f)
- Fix some VSTs resetting sounds due to using programs as presets (c3db486)
- Fix decimal separator handling when loading real numbers (#4547)
- Fix crash on Windows due to disabled PortAudio (3064f03)
- macOS: Fix ZynAddSubFX "Show GUI" (#4065)
- macOS: Fix ZynAddSubFX NaN issue (#4261)
- UI: Fix patman logo (#3660)
- UI: Fix theme after upgrade (#4199)
- UI: Fix splash screen on Windows (c3438a1)
- ZynAddSubFX: Fix decimal point issue after switching to Qt5 (#4244)
- Fix quantization of pasted notes (7de9649)
- Allow individual velocity/pan changes with alt (#3923)
- Use
${CMAKE_DL_LIBS}inCMakeLists.txt(bd8c272) - VST: Fix some deadlocks by removing plugin lock (6e0dda6)
- VST: Fix AmpliTube crash (709fc79)
- VST: Fix lack of sound in iZotope plugins (5ccd222)
- Fix command line rendering with VSTs (#4093)
- Add journaling checkpoint to recording notes (#4144)
- Better wine prefix detection (#4176)
- Fix rendering cancellation with VSTs (#4189)
- Fix deadlock on multi-track export with SDL (#4083)
- Fix redundant path elements (#4211, #4271)
- Ensure correct length of automation patterns in BB editor (#4212)
- Remove MIDI connection from factory files (#4207)
- Play correct note when dragging left side of virtual keyboard (#4265)
- Fix stack overflow in RemoteVstPlugin (#4279)
- Fix preset preview issues with peak controllers (#3904)
- Prevent left-clicking TCO from decreasing its size (#4290)
- Limit the automation-editor scaled-level tooltip to the grid (#4308)
- Fix detuning crash after deleting the note being edited (#4324)
- Fix crash when job queue is full (#4335)
- Fix occasional crash when moving TCOs (#4339)
- Fix crash on exit from MIDI connections (#4340)
- Remove release time from arpeggiated note (#4355)
- Remove FluidSynth requirement for background picture (#4364)
- Restart flanger LFO on playback state change/exporting (#4363)
- Fix VST sub-window creation glitches in project loading (a2cb7e9)
- Fix effect dialog layout glitches (1220374)
- Fix X11 embedding on Qt4 (55da698)
- Fix toggling UI for non-embedded VST effects (ee18011)
- Preserve VST GUI positions and keep them on top (fcc883f)
- VST: Add workaround for small effect window on project load (b808631)
- Fix RemoteVstPlugin not exiting when effect removed (55d3fbc)
- Fix crash when re-opening VST effect manage dialog (24ae559)
- Fix Mallets crash when STK rawwave files can't be loaded (75a6502)
- Handle shrank automation patterns correctly (#4012)
- Linkage issue fixes due to inlined functions (#3815)
- Fix destructor call in NotePlayHandleManager (#3884)
- Fix sfxr buffer noise (#3883)
- ZynAddSubFx: Fix preset loading (#3891)
- PlayHandle: Zero out buffer before processing (6fc4577)
- Fix single-streamed instruments inheriting envelopes when dropped on occupied tracks (#3900)
- Fix crashes and deadlocks with previewing preset (#3905)
- Fix LB302 producing a noise burst when a project is opened (#3844)
- LADSPA - Fix various floating point errors (#3927)
- Fix wrong value interpolation (#3929)
- Fix off-by-one/heap-buffer-overflow as reported by ASAN (eb09ff6)
- Fix a bug when changing value by double click on fader/knob on native EQ (#4018)
- Fix various bugs when using JACK (#4005)
- Fix a qt4 crash (#4037)
- Fix VST plugin compilation in 64bit Ubuntu (#3593)
- Fix empty VST tracks creating noise in playback (#3798)
- Fix some VST deadlocks/hangs (fe98a9a)
- Fix segfault on VST plugin I/O change (7429cb8)
- Don't use VST-provided memory when loading chunks (#3805)
- Don't let VST plugins make the main window transparent (#3809)
- Fix position marker height on startup (#3587)
- Fix "out of buffers" crash (#3783)
- Fix sound while playing from piano roll, when BB tracks are muted (#3804)
- Stop some autosave crashes (#3841)
- Fix builds from directories with spaces (#3604)
- Fix artifacts when rendering as 24 bit WAV (#3617)
- Fix crash when pressing Q in not existing piano roll. (#3609)
- Fix sample track muting the playing sample in addition to the one being muted (#3591)
- Fix rounding issue in automatable model (pan knobs, coarse knobs) (#3597)
- Fixes to recent files (#3621)
- Fix inverted zooming (#3570)
- Fix recording of sustained midi notes (#3710, #3774, #3803)
- Fix midi sustain not working when envelope is on (#3730)
- Fix deadlock when exporting is finished, if the project has any Sample TCOs. (#3742)
- Fixes to recover file system (#3722)
- Disable HiDPI fix for Windows 7 and older (b2919d6)
- Fix occasional crashes on export with Delay based effects (#3680)
- Fix producing of NaN from Env/LFO parameter change while playing (#3761)
- Fix 'Enable Master Pitch' not showing properly across instruments (#3753)
- Fix some memory leaks (#3779)
- Fix Vibed when the "P" parameter has non-zero value (#3789)
- "Code profiling" driven performance and bug fixes
- Fix AudioFileProcessor redraw issues
- Fix maximize/restore window behavior in Song Editor when opening track
- Fix crash when moving channels (#1584)
- Fix noise at end of some sample previews
- Fixed position of "Factory Presets" file divider in file browser
- Don't store templates in "Recently opened" list (#1812)
- Disable VST instrument previews (prevents crashes)
- Fix several color/display/cursor/sizing issues
- Moving play cursor changes beat/bar/ticks display
- Fix Nescaline high-note crash
- Fix exporting crash on some locales/languages
- Fix crash when deleting Beat/Bassline Pattern during playback
- Fix fine-tuned note position when copying/pasting
- Fix output range/NaNs in SFXR instrument (#1879)
- Better clamping behavior in automation editor (#1907)
- Fix distorted sound with Multiband EQ
- Fix opening projects with non-ASCII characters in the name (#1995)
- Prevent running as root on Linux / Unix / Mac (override available)
- Fix noise when automating length of Delay and Flanger plugins
- Fix midi sustain not working with sf2 player (#2758)
- Fixes newly added tracks in BB having wrong size (#2808)
- Fix Zynaddsubfx-GUI on FreeBSD
- Fix VST freezes on Arch and other systems (#2739)
- Fix MIDI sustain pedal not working with sf2 player (#2877)
- Fixed freeze when finishing export (#2879)
- Fixed crash on canceling the export (#2928)
- Pattern::changeTimeSignature() was off by one (#2959)
- Fix 'Set Linear' not saving properly (#2742)
- Fix controllers not getting removed when switching projects (#2980)
- Fix recursive filtering and duplicates in File browser (#3184)
- Fix precision when dragging knobs and faders (#3075, #3254)
- Fix Mallets not loading on Windows (#3230)
- Fix inverted zoom direction (#3273)
- Fix various spelling issues (#3243, #3279)
- Fixes for Command line rendering (#3322, #3341, #3413, #3352)
- Fix sample track buffer leak (4254597)
- Fix saving of multiple TempoSyncKnobModels (#3281)
- Fix TimeLineWidget overflow (#3410)
- Fix hang while importing MIDI (#3409)
- Fix distortion when automating Crossover EQ Faders (#3343)
- Floating point error fixes (#3428, #3425)
- Fix hang on windows when upgrading (4708fe6)
- Fix wrong order of Peak and LFO controllers when loading projects (#3438)
- Fix discovery of external native plugins (7251c84)
- Fix a crash when clicking on a compact track label button (#3463)
- Fix resetting of AFP endpoints when rendering (e65b1c8)
- Correct the Delay synchronization (#3522)
- EQ plugin now responds to wet / dry control (#3520)
- Fix factory samples not saving as relative links (#3510)
- LFO controller now has correct frequency with multiple connections (#3535)
- Fix automation processing in BB tracks (#3481)
- Don't change sample TCO length if tempo is changed (#3543)
- Remove glitching from the Flanger and Delay plugins (#3524)
- Flanger LFO rate synchronized (#3521)
- Fix alternate shading for changing time signature (#3559)
- Fix pattern length not changing while shifting notes (#3567)
- Fix time signature changing doesn't update song editor grid immediately (#3572)
- Fix CMP0050 compilation warnings (#3583)
- Fix export project for sample tracks with vst effects on it (#3571)
- Fix project rendering with numerator automation (#3576)
- Fix export - double dialog windows on writing over existing file (#3526)
- Languages/Locale
- Better French translations in the menu item file (#4711)
- Fix too long translations to fix the UI misalignment (#5185)
- Update translations from Transifex (fad89d6)
- Fix minor issues in German translations (457f2c6)
- German: show correct accelerator key in the context menu (fbdd09d)
- Add i18n maintenance script (96c5f05)
- Improve translations for multiple languages (96c5f05)
- Switched to Transifex for handing locale updates
- Better handling of non-ASCII (Latin1) characters (#1325)
- Added/fixed some missing translation items (#2065)
- Improved translations: French (#2065), Chinese (Simplified), Russian, Spanish, Italian, Portuguese, Czech, Dutch, Ukrainian, Japanese (#2344), Slovenian, Dutch
- Added translations: Malay, Hindi, Swedish, Chinese (Traditional)
Known issues with this release:
sudo xattr -d -r com.apple.quarantine /Applications/LMMS.app
Alpha Versions
macOSLMMS 1.3.0-alpha.2 macOS Intel
LMMS 1.3.0-alpha.2
1.3.0-alpha.2
This is a release from the development branch, like nightly builds (but not exactly).
The degree of stability provided by this release is greater than that of nightly builds but less than that of stable releases. Crashes may happen, and in the worst case scenario your project files may break. Project files saved in this release cannot be reopened in previous versions of LMMS, making it a one-way upgrade. New features added in an alpha release may be modified or even removed prior to the next stable release - projects made using these features may not necessarily load in later versions of LMMS.
That said, we recommend this release to most users over the nightly builds.
System requirements
The system requirements for LMMS have changed since the last release. Notably, 32-bit builds have been dropped.
| platform | OS requirements | CPU requirements |
|---|---|---|
| Linux (x86_64) | glibc 2.35 (Ubuntu 22.04 equivalent or newer) | x86_64-v2 or higher |
| Linux (arm64) | glibc 2.39 (Ubuntu 24.04 equivalent or newer) | ARMv8-A or higher |
| macOS (x86_64) | macOS 10.13 (High Sierra) or newer | x86_64-v2 or higher |
| macOS (arm64) | macOS 11.0 (Big Sur) or newer | Apple M1 or newer |
| Windows (x86_64) | Windows 10 or 11 | x86_64-v2 or higher |
| Windows (arm64) | Windows 11 | ARMv8.1-A or higher (Windows 11 requirement) |
Changelog
This release contains over 5 years of work completed since the previous alpha.1 release, including 932 commits and 3457 files changed by 65 contributors. It brings 8 new native plugins, ARM64 builds, many new features and quality-of-life improvements, hundreds of bug fixes, and many performance improvements.
Major features
- Detachable windows (#3532)
- Alternative tunings (microtonality) and keyboard mappings (#5522)
- Native LinuxVST support (#6048)
- Tap Tempo tool (#6375)
- Dispersion effect (#6683)
- SlicerT (slicer plugin) (#6857)
- LOMM (upward/downward multiband compressor) (#6925)
- Granular Pitch Shifter effect (#7328)
- Splitting (and resizing) for all types of clips (#7477)
- Workspace panning by dragging the mouse (#7595)
- SlewDistortion effect (#7641)
- Pitch bending directly in the Piano Roll (#7759)
- Oscilloscope plugin (#7937)
- Frequency Shifter effect (#8140)
Minor features
- Alias-free oscillators (#5826)
- Carla: Expose parameters for automation (#5846)
- Allow editing the tangents of Cubic Hermite progressions (#5924)
- LV2: Implement
LV2_BUF_SIZE__boundedBlockLengthandLV2_BUF_SIZE__fixedBlockLength(#6254) - Allow recording pitch automation directly into the Piano Roll (#6297)
- New loop marker shortcuts (#6382)
- Transpose MIDI clips in Song Editor (#6409)
- Mallets: Add random knob function (#6466)
- BitCrush: Allow negative value for stereo difference (#6475)
- LV2: Implement Lv2 Worker (#6484)
- SF2Player: Add microtonality support (#6580)
- SF2Player: Add support for per-note detuning and panning (#6602)
- Add MP3 import (#6750)
- Sample and Hold for LFO Controller (#6850)
- Ghost notes for the Automation Editor (#6940)
- Allow filtering by effect type in the effect select dialog (#7024)
- Peak indicators in mixer strips (#7295)
- Continuous auto-scrolling (#7396)
- SDL input and output device configuration (#7421)
- Add note reversal tool to the Piano Roll (#7606)
- AppImage: Initial support for wayland (#7704)
- Add ability to change sample rate in the settings menu (#7719)
- Add strum tool to the Piano Roll (#7725)
- Add option to favorite items in the file browser (#7753)
- Add new "Psychoacoustic Clipper" LADSPA effect (#7783)
- Add setting for default auto-scroll state (#7851)
- Lb302: Velocity and note panning, code cleanup, and performance improvements (#8132)
- Sf2Player: Add search bar for patches (#8193)
Small enhancements, quality-of-life features, and performance improvements
- New LADSPA control dialog (#2068)
- Don't recalculate the song length for every added clip while loading (#5236)
- Use better colors in the Piano Roll's default and classic themes (#5953)
- Preserve FX channel when replacing track (#5957)
- Show detailed CPU load information in a tooltip (#5970)
- SpectrumAnalyzer: Improve performance by caching most used computations (#6003)
- Default to FLAC compression level 5 (#6052)
- SF2Player: Speed up loading (#6075)
- Color submenu and undoable colors (#6165)
- Extend denormal protection through DAZ flag to all capable CPUs (#6167)
- Microtuner UI update (#6206)
- Show error message when loading an invalid sample file (#6286)
- Fix Song Editor selection CPU hog (#6303)
- Make loop markers snap to same increments as clips (#6313)
- Reload stylesheet when CSS file changes (#6331)
- Allow opening .midi and .rmi files from sidebar (#6417)
- VST2: Make VST sync always-on and non-global (#6418)
- Allow resizing pattern clips from the left (#6584)
- Improve readability of text floats (#6607)
- Draggable effects (#6648)
- Change zoom in
SongEditorto a Slider Zoom (#6664) - Add confirm removal on mixer channels (#6691)
- Add instrument plugins to Song Editor via right click (#6698)
- Add .DirIcon to AppImage (#6715)
- Fix startup lag caused by
FileBrowser::expandItems(#6721) - Extend
TabWidget's style sheet options (#6732) - Unmute all sends when soloing in the mixer (#6746)
- Add BPM tags to built-in beat loops (#6747)
- Modifier keys for mouse wheel adjustments (#6770)
- Add mixer LCD channels for Instrument & Sample tracks (#6831)
- Vertically center
SideBarWidget's title with the icon and remove underlining (#6833) - Include mounted volumes in file dialog on Linux (#6834)
- Show Knob value on mouse over (#6835)
- Make files visible when searching in
FileBrowser(#6845) - Display flats in Piano Roll's keys dropdown (#6865)
- Changed sharps to music sharps Unicode (#6873)
- SetupDialog: Display message on buffer size larger than 256 (#6906)
- Improve color contrast of
lcd_21pink.pngasset (#6914) - Compressor: Improve lookahead algorithm (#6953)
- Improve search performance in
FileBrowser(#6962) - More prominent search (#6968)
- Analyze and improve search in the file browser (again) (#6985)
- Compressor: Disable background autofill (#6986)
- Changed bar lines to follow snap size (#7034)
- Resizable mixer window (#7037)
- Scalable consistent faders with themeable gradients, marker at unity, dbFS by default (#7045)
- Hide the LED button for "Custom Base Velocity" (#7067)
- Add menu option and hotkeys to move controllers/effects (#7139)
- Enable different colors for oscilloscope channels (#7155)
- Compressor: Make background themeable (#7157)
- Optimize map accesses in
LadspaManager(#7173) - Font size adjustments (#7185)
- Only repaint
LcdWidgetif necessary (#7187) - Remove "GENERAL SETTINGS" tab from instrument and sample track windows (#7188)
- GUI adjustments around base velocity (#7196)
- A few accessibility changes in default theme (#7202)
- Remove high quality mode (#7219)
- Remove global oversampling (#7228)
- Warn about LADSPA problems (#7267)
- Resizable mixer channels/strips (#7293)
- Add "Show Hidden Content" checkbox to the file browser (#7309)
- Open up some GUI elements to theming (#7314)
- Improve mix sanitization behavior (#7323)
- LV2: Improve plugin description (#7357)
- Remove term "blacklist" (#7365)
- Improve performance when rendering sample waveforms (#7366)
- Optimize PNG images using ImageOptim (#7384)
- Add input dialog to the mixer channel LCD spin box (#7399)
- SlicerT: UI update (#7453)
- Proportional horizontal scroll (#7474)
- Reintroduce fast math functions (#7495)
- Maximize button for resizable instruments (#7514)
- Optimize dBFS/amplitude conversion functions (#7535)
- Optimise usage of
powusing fast equivalent andexp2(#7548) - Inline
TimePosandTimeSigfunctions to improve performance (#7549) - Improve performance of sample rate getters (#7552)
- Add beat preview for pattern clips (#7559)
- Sample Track Recording with JACK backend (#7567)
- Song Editor: Improve performance of auto-scroll, scroll, zoom, and clip dragging (#7570)
- Faders with a dB scale (instead of linear/percentage) (#7636)
- Improve search behavior in the file browser (#7679)
- Allow plugins to be skipped at runtime (#7691)
- Improve performance when rendering sample waveforms (follow-up) (#7695)
- Handle
SIGINT(#7698) - FileBrowser: "Open containing folder" automatically selects file in the OS's file manager (#7700)
- Update mute and solo buttons, add them to instrument windows (#7708)
- ZynAddSubFX: HiDPI support on Linux (#7710)
- Allow cutting multiple notes at once in Piano Roll (#7715)
- ExportProjectDialog: Remove arbitrary loop count limit (#7724)
- Improve
lmms::fastRand()and use it instead ofstd::rand()(#7741) - Global spacebar play (#7762)
- Amplifier: Upgrade PNG assets to SVG (#7770)
- BassBooster: Upgrade PNG assets to SVG (#7771)
- Bitcrusher: Upgrade PNG assets to SVG (#7772)
- Dispersion: Upgrade PNG assets to SVG (#7773)
- DualFilter: Upgrade PNG assets to SVG (#7774)
- Flanger: Upgrade PNG assets to SVG (#7775)
- PeakController: Upgrade PNG assets to SVG (#7776)
- ReverbSC: Upgrade PNG assets to SVG (#7777)
- Add build flags to output of
lmms --version(#7780) - CrossoverEQ: Rework GUI and use SVG assets (#7781)
- VeSTige and VST Effect assets replacement (#7791)
- Add Playhead and Timeline to Pattern Editor (#7794)
- StereoMatrix: Upgrade assets to SVG (#7803)
- Auto assign MIDI device when track is created (#7835)
- Use system cursors instead of embedded raster images where possible (#7838)
- Make playhead red when recording (#7847)
- SlicerT: Add option to clear all notes (#7850)
- Save scale/key highlighting, and many more editor options (#7854)
- Inputs and Outputs Selection for JACK backend (#7919)
- Fix sensitivity of tangent editing in Automation Editor (#7946)
- Add info
TextFloatfor Piano Roll knife tool (and make cut notes auto selected) (#7953) - Escape emails in plugin author field (#7975)
- Allow export of only the selected notes (#7991)
- Remove the Gate knob from effects (#8011)
- Glue all notes if none are selected (#8018)
- Allow Tempo Sync Knobs and Bars to be logarithmic (#8058)
- Auto-quit rework (#8070)
- TapTempo: Refactor and improve accuracy (#8098)
- Add file browser context menu option for opening samples in SlicerT (#8100)
- Add platform identifier to save files (#8116)
- Make arrow "stepper" buttons themeable and use SVG assets (#8123)
- Centralize standard LMMS plugin logo (#8124)
- Use SVG asset for knife tool icon (#8128)
- Increase clip resize grip width (#8169)
- Add help message & icon to empty automation editor (#8171)
- Add horizontal scroll bar to the File Browser (#8184)
- Improve strum tool LMB event (#8195)
- Improve performance when moving channels in the Mixer (#8235)
- Fix VST parameter automation performance (#8253)
- Remove unused default volume model in
SamplePlayHandlewhich was causing performance issues (#8349) - Add double-click actions to global volume & transposition (#8372)
- Fix slow MIDI operations by only initializing the detuning clip when needed (#8380)
- Fix clips being hard to move when zoomed out (#8385)
- Make tiny notes easier to move (#8386)
Bug fixes
- Fix build due to missing includes (80a6672)
- MidiOss: Fix a typo which breaks build (877a931)
- FreeBoy: Fix division by zero (#5734)
- Implement note types and fix issues with zero-length notes (#5902)
- Save Piano Roll's behavior at stop state (#5942)
- Compressor: Fix interaction between input gain and audition (#5999)
- WaveShaper: Fix regression (#6040)
- Fix empty automation patterns treated as disconnected (#6041)
- Fix collapsing a directory triggering preview in file browser (#6060)
- VST2: Fix wrong pitch after starting LMMS with non-default sampling rate (#6068)
- Fix cloning of pattern tracks (#6077)
- Fix occasional project save failures (#6107)
- Fix CMT Echo Delay Line malfunction (#6151)
- Fix crash when zooming out during knife mode (#6184)
- Prevent segfaults with future lmmsrc.xml version (#6208)
- Make preset saving oblivious to mute/solo/muteBeforeSolo states (#6214)
- Fix a bug where the BPM is modulo'd by 256 on MIDI export (#6215)
- Fix MIDI output note setting (#6236)
- Fix changing LcdSpinBox value changing their init value (#6241)
- Add missing disconnect statements in
PianoRoll(#6245) - Fix crash when using shortcut keys in the Pinao Roll (#6252)
- MidiOss: Use unbuffered I/O to access the device node (#6276)
- Fix broken data file upgrade (#6279)
- EQ: Fix small memory leaks in EQ dialog (#6300)
- MidiImport: Use automation track for MIDI program change events (#6308)
- LV2: Don't show ports with prop
notOnGUI(#6310) - Undoable add/remove bar (#6347)
- Kill orphaned subprocesses on crash (#6366)
- AppImage: Fix project file decompression (#6384)
- AudioFileProcessor: Include the last sample frame (#6399)
- Carla: Fix version detction in
CarlaBase(#6403) - LV2: Fix response to sample rate changes (#6419)
- Correctly upgrade projects saved by LMMS forks (#6424)
- MidiRawClient: Fix setting useless param (#6431)
- VST2: Don't send
effEditIdleon CLI rendering (#6440) - Fix a typo in 420769a which breaks the microtuner (#6458)
- LV2: Block plugins that require GUI support (#6486)
- Fix regression from #6481 (#6522)
- Fix master pitch behavior to transpose instead of detune (#6544)
- Make shifting notes by octaves respect microtuning (#6545)
- Fix AM pitch shift compatibility with 1.2 projects (#6554)
- Fix pause issues (#6590)
- Fix recording not possible with MIDI keyboard in PianoRoll (#6593)
- Fix invalid sample rate for Sample Track files (#6594)
- Refactor
SampleBufferand fix several sample-related bugs (#6610) - Fix recent files menu on old KDE in a different way (#6612)
- EQ: Fix math errors (#6655)
- Fix loading automated parameters of certain plugins and saving/loading Vibed's string data (#6670)
- FreeBoy: Fix CPU time bug (#6680)
- Add references to namespaces in
inheritsfunction call (#6687) - EQ: Set default shelf resonance to 0.707 (#6694)
- Don't auto-quantize notes when recording MIDI input (#6714)
- Fix for adding new FX channel while in solo (#6717)
- Fix automation crash (#6718)
- Fix uninitialized variable "pCurPreset" (#6723)
- Fix audio file transposed an octave down between versions (#6725)
- Look for
libcarla_native-plugin.dllon Windows (#6726) - Partially revert #6721 and improve performance of
Directory::addItems(#6738) - Fix scan for LinuxVST effects (#6751)
- Replace corrupted default samples with fixed ones (#6752)
- Fix occasional crash when clicking Key button in piano roll with no clip (#6757)
- Fix note copy/paste in the Pattern Editor (#6803)
- Fix marked notes bleeding into note velocity (#6807)
- Fix segfault when clicking "Auto Detect" in Connection Settings window (#6811)
- Fix regressions from #6477 (#6826)
- Fix the base note automation fix (#6832)
- Fix
std::vectorrefactor mistake (#6836) - Fix a few memory issues found with ASan (#6843)
- Fix sample tracks in old projects losing FX channel (#6851)
- Make off-grid automation nodes draggable (#6852)
- Compressor: Fix arithmetic exception in Debug mode (#6854)
- Fix invalid use of iterators in Piano Roll (#6869)
- Fix zero-length beat notes ending too soon (#6872)
- Add instrument play handles unconditionally (#6875)
- Fix memory leaks (#6879)
- Fix Compressor zero divisions (#6887)
- Fix instrument release fade-out (#6908)
- Fix a Jack audio segfault (#6912)
- Mallets: Some small fixes (#6913)
- Fix loading samples unsupported by
libsndfile(#6918) - Fix
LcdFloatSpinBoxmouse behavior and negative values (#6923) - SF2Player: Set voice tuning relative to initial value (#6924)
- Fix invalid iterators in Piano Roll (again) (#6943)
- LV2: Fix losing automation on export (#6944)
- Fix conditional jump on an uninitialized value (#6945)
- LV2: Delay setting worker interface to fix segfault (#6947)
- SF2Player: Fix freeze on project unloading with shared SoundFonts (#6950)
- LV2: Fix handling of instantiation failure (#6951)
- Fix CLI render crash (#6952)
- AudioFileProcessor: Fix reverse bug (#6958)
- LV2: Fix instrument instantiation crash (#6977)
- Fix regression involving missed filters in #6962 (#6978)
- Fix crash when changing track color and refactor colour interfaces and storage (#6991)
- Fix memory leaks within tests (#7001)
- Fix lost connections when restoring automation clip (#7002)
- Fix for wrong arpeggio pattern (#7007)
- Compressor: Hideable controls (#7008)
- SpectrumAnalyzer: Fix floating point exception (#7018)
- Handle divisions by 0 in Lb302 and Monstro (#7021)
- Fix arpeggiator sorted mode (#7025)
- LOMM: Fix crossovers (#7026)
- Fix Editor windows keeping focus after close (#7035)
- EQ: Fix peak updates (#7038)
- Fix regressions from #6610 (#7040)
- LOMM: Add
setSampleRatetoBasicFiltersand update allpass sample rate (#7048) - Fix crash on subsequent song loads (#7051)
- Fix sliding of waveform when drawing sample in reverse (#7063)
- Fix most of the track cloning for MIDI ports (#7066)
- Add private setters for the "from" and "to" values in
AudioFileProcessorWaveView(#7071) - Fix invalidated iterator when removing notes in Piano Roll (#7080)
- Fix deletion of mixer channels when calling
MixerView::clear(#7081) - SF2Player: Fix missing nullptr initialization (#7084)
- Fix playback within
Sample(#7100) - Prevent out of bound read in
Sample::playRaw(#7113) - Reenable song editor zooming (#7118)
- AudioFileProcessor: Fix crash after loading reversed sample (#7124)
- EQ: Fix a NaN in
EqSpectrumView(#7140) - Fix NaNs in basic filters and Equalizer (#7141)
- Fix mixer channel deletion message when loading another project (#7154)
- DynamicsProcessor: Fix various bugs (#7168)
- SlicerT: Fix filter glitch (#7174)
- Fix infinite loop in
InstrumentPlayHandle::play(#7176) - Fix loading of CMT delays with locale-dependent names (#7206)
- Move icon determination into
TrackLabelButtonagain (#7209) - SlicerT: Fix crash when loading a sample with no detected slices (#7214)
- Make instrument release time independent of the sample rate (#7217)
- Only set sample clips for valid files (#7224)
- Kicker: Fix release stage (#7226)
- Lb302: Consistent decay regardless of sample rate (#7230)
- Fix upgrade routine for BPM renamings (#7235)
- Add support for "factorysample:" prefix / Fix "bassloopes" typo (#7236)
- DualFilter: Reset filters when effect is enabled/disabled to avoid pops (#7237)
- Lb302: Replace
processingSampleRatewithoutputSampleRate(#7239) - AudioFileProcessor: Fix crash when playing with loop while no sample is loaded (#7266)
- Fix missing initialization of some variables in
TrackContentWidget(#7271) - Fix crash when automating the Delay Time parameter in SWH Reverse Delay (#7277)
- Set "child subreaper" process attribute on Linux (#7315)
- TripleOscillator: Fix white noise generator when multiple notes are played at once (#7318)
- Use
src_set_ratioto fix artifacts withinSampleplayback (#7321) - macOS: Change drag copy shortcut from Command to Option (#7325)
- Compressor: Fix uninitialized values (#7343)
- Reduce memory leaks (#7345)
- GranularPitchShifter: Fix glide 0 division (#7348)
- GranularPitchShifter: Fix bad init values (#7354)
- LOMM: Fix distortion and delay bug (#7355)
- Revert "Reduce memory leaks (#7345)" (#7360)
- Change
SampleFrame's sample index type tosize_tto avoid integer overflow (#7362) - Define
fpp_tandf_cnt_tto be of typesize_tto avoid integer overflow (#7363) - Monstro: Fix buzz in 2nd oscillator (#7368)
- ZynAddSubFx: Fix filter frequency (#7381)
- Fixed alt + left or right causing a crash in PianoRoll (#7390)
- Fix duplication of solo state when cloning tracks (#7391)
- ZynAddSubFx: Fix filter frequency (again) (#7401)
- Revert "Switch to libsamplerate's callback API in
Sample(#7361)" (#7410) - Fix memleaks in help/version (#7423)
- Do not put the main thread in realtime or high priority (#7436)
- Refactor and fix PortAudio backend (#7444)
- Do not save MIDI connections in presets (#7445)
- Fix Sample Clip Reversing Position (#7446)
- Fix export of empty projects (#7458)
- Fix metronome skips at high tempos (#7483)
- Xpressive: Fix crash when using integrate function (#7499)
- Lb302: Fix regression causing silence (#7504)
- SlicerT: Partially revert #7453 (#7519)
- AudioFileProcessor: Fix various bugs (#7533)
- PeakController: Fix attack/decay, use linear interpolation between samples (#7566)
- Remove the FIFO thread and fix deadlock during export (#7568)
- Recording logarithmic automation hotfix (#7621)
- Downgrade
RemoteVstPluginbuild back to C++17 (#7624) - SID: Fix dropout when instrument is used for the first time (#7673)
- Improve mono compatibility with LADSPA plugins (#7674)
- SharedMemory: Make key optional, default to shorter UID on macOS (#7681)
- AppImage: Fix Wine VSTs on Arch Linux (#7686)
- Fix libjack.so.0 detection for openSUSE (#7690)
- Refactor OGG export and always use VBR (#7697)
- Fix additional warnings when Carla is missing (#7722)
- Fix stk/rawwaves for MSYS2 (#7736)
- Fix crash when switching opened projects (#7797)
- Fix memory leak in
RemoteVstPlugin::loadPresetFile(#7827) - Fix audio resampling functionality (#7858)
- Fix crash when playing Pattern Editor without Pattern Track (#7862)
- Revert "PeakController: Fix attack/decay, use linear interpolation between samples (#7566)" (#7871)
- Ensure clips have auto-resizing enabled by default (#7874)
- Fix knob linking / refactor linking (#7883)
- Don't copy
DetuningHelperinNotecopy constructor (#7888) - Fix resized samples getting shifted after tempo change (#7890)
- Fix crash when reversing empty MIDI clip (#7893)
- Update sample length when loading new sample via double-click (#7898)
- Fix Piano Roll key events from leaking to other instrument windows (#7915)
- Flanger: Fix "Invert" checkbox functionality (#7929)
- Fix handling of file names with periods (#7934)
- Don't undo zoom! (#7943)
- Fix crash01, cello01, and e-organ01 sample lengths (#7948)
- Fix auto-resize when dragging sample files onto sample clips (#7952)
- Fix effect gate logic (#7971)
- VST2: Disable ASLR when building
RemoteVstPluginon Windows to fix some broken VSTs (#7976) - VST2: Disable ASLR when building
RemoteVstPluginon Linux to fix some broken Wine VSTs (#7987) - Fix import of xpt and xptz files (#7990)
- Set the sample rate for MP3 exports (#7998)
- Fix a segfault if JACK libs are missing (#8026)
- Fix several problems from #7919 (#8032)
- VST2: Fix null pointer deref when getting window size (#8051)
- PathUtil: Serialization and Formatting (#8103)
- Fix note quantization resetting clip length (#8131)
- Fix mute/solo icons not matching initial mixer channel state (#8145)
- Fix help menu crashes upon program close in Xpressive and Slew Distortion (#8150)
- Fix Shift+Space corrupting playback state when used on stopped editors (#8154)
- Fix truncated OGG exports (#8156)
- AudioFileProcessor: Fix wrong beat length depending on sample rate (#8176)
- Fix sample clips getting out of sync (#8183)
- Fix sample clip loop exporting (#8192)
- AudioFileProcessor: Update amplify model when new sample is loaded (#8198)
- Fix
AutomatableSlidercreating too many journal entries (#8223) - Vibed: Fix regression caused by
fastRandInc(#8225) - Set file format combo box unconditionally (#8237)
- Fix
PianoRolltimeline constantly emittingpositionJumpedduring Record-Play (#8252) - Emit the
playbackPositionJumpedsignal only when the active timeline jumps (#8256) - Fix empty value returned by
FileRevealer::getSelectCommand()(#8281) - Prevent key modifiers in
MainWindowfrom getting stuck (#8282) - Fix Settings bug that occurs when not using JACK (#8299)
- SlicerT: Remove localization of key name (#8305)
- OpulenZ: Fix level scaling knob (#8308)
- Sf2Player: Fix segfault when opening GUI during load (#8322)
- Prevent zero-length notes during MIDI recording (#8328)
- Fix "Send to new SlicerT instance" not sending to Pattern Editor (#8339)
- Fix beat clips being created with a length of 0 in the pattern editor (#8355)
- SlewDistortion: Fix tanh mode (#8363)
- Fix sample track playback in pattern editor (#8375)
- Fix MIDI import of multi-track files and CC automation (#8383)
- Fix
FloatModel::getDigitCount()returning wrong value (#8394) - Fix Sndio backend & cleanup compilation on OpenBSD (#8407)
- Fix
AudioBuffer::absPeakValue()not actually being absolute (#8422) - LV2: Fix crash by only accessing Lv2 Worker if instantiated (#8426)
- Remove
Modelconstraints onVolumeKnob(#8438) - Fix FPE in Automation Editor on startup (#8457)
- AudioFileProcessor: Fix crash when attempting to play sample that failed to load (#8469)
- Export symbols of LADSPA plugins (#8480)
- Fix crash when opening Automation Editor after setting ghost notes (#8488)
- Fix the default frames per audio buffer (#8523)
UI fixes
- Add "natural" scrolling support for trackpads (#5510)
- Fix wrong cursor for selected resizeable clips in Song Editor (#5996)
- Fix clip rendering inconsistency (#6182)
- Don't draw position arrow when line is out of view (#6191)
- Fix spinbox offsets in MIDI tab of instruments (#6235)
- Update PianoRoll to immediately reflect note changes in BBEditor (#6242)
- Only show Piano Roll when editable (#6295)
- Fix track handles disappearing (#6338)
- LB302: Use "TB-303" consistently (#6344)
- Fix colour of Master bus on FX Mixer when switching project (#6421)
- Limit height of position line to height of all tracks (#6509)
- Fix blank lines in language dropdown menu (#6512)
- Make notes in MIDI clips easily visible under any track color (#6539)
- Fix pattern clip colors from pre-1.3 versions (#6563)
- Fix several issues raised at Transifex (#6568)
- Fix unwanted scrolling when changing track name (#6583)
- AudioFileProcessor: Fix broken playback cursor (#6601)
- Make note octave highlight in piano roll obey microtonality (#6663)
- Fix
LcdFloatSpinBoxconstructor and label alignment (#6686) - Include
cstdint(#6697) - SID: Add filter image back (#6731)
- EQ: Fix Lowpass and Highpass display (#6748)
- Fix scale highlighting with vertical zooming (#6761)
- Convert MIDI CC indexes from 1-indexed to 0-indexed (#6774)
- Fix HiDPI issues in the setup dialog (#6779)
- Fix HiDPI issues for menus (#6787)
- Fix HiDPI issue of sample track window (#6788)
- Fix HiDPI issues for elements based on
QTreeView(#6789) - LV2: Improve control visualization (#6799)
- Fix updates to
TempoSyncKnob's context menu string for custom tempo (#6827) - Patman: Update display file name when opening GUI (#6870)
- Update
SampleBuffererror message (#6892) - SubWindow: Increase to respect child's
sizeHint(#6956) - LV2: Fix help window issues (#6957)
- Fix minimum size of LADSPA dialogs (#7019)
- Run without terminal for non-debug Windows builds (#7022)
- Fix
Faderpixmaps (#7041) - Some minor UI fixes (#7044)
- Fix scaling of PixmapButton in layouts (#7053)
- Fix mixer channel updates on solo/mute (#7055)
- AudioFileProcessor: Fix missing playback indicator when dragging and dropping samples (#7064)
- Center effects W/D knob at 0 (#7077)
- Track resizing behavior (#7114)
- Fix missing icons for some instruments (#7132)
- Apply master gain outside audio devices (#7135)
- Fix NaNs for some dbFS value displays (-∞ dbFS) (#7142)
- EQ: Fix display flickering (#7146)
- Set mixer channel LCD when its index changes (#7160)
- Fix empty pattern window regression (#7177)
- Fix Piano Roll rendering regression (#7181)
- Scalable LFO graph (#7203)
- Fix shifting of sample waveform during zoom (#7222)
- Fix UI freeze when zooming in on long samples (#7253)
- Update widths of combo boxes (#7262)
- Fix incorrect rounding of automation nodes (#7269)
- Fix incorrect rounding of automation nodes (again) (#7282)
- Fix position line disappearing when zoomed out (#7296)
- Adjust rendering of
BarModelEditor(#7299) - Change the wording of Instrument Plugin Dialogue (#7301)
- Capitalise root sidebar widget (#7350)
- AudioFileProcessor: Fix zooming and sliding of the waveform view (#7377)
- Fix visual glitch when renaming tracks (#7413)
- Implement
EffectRackView::sizeHint()to fix instrument height (#7428) - Fix bug with continuous auto-scrolling when smooth scrolling is enabled (#7433)
- Fix typo in
DataFileerror message (#7478) - EQ: Remove unnecessary space from resonance knob tooltip (#7485)
- Fix hardcoded fonts scaling issues (#7493)
- Compressor: Replace infinite ratio icons (#7501)
- Shrink mixer channel strip (#7502)
- Make the send button and receive arrow occupy the same space (#7503)
- Restore some whitespace to the mixer channel layout (#7507)
- Fix empty editor windows (#7515)
- Individual knob labels rendered using the widget's font size (#7525)
- Fix the maximization of sub windows (#7530)
- Fix unrestricted splash screen geometry (#7588)
- Disable focus for new channel button in Mixer (#7597)
- Fix styling on message boxes (#7608)
- Fix coarse gridlines being half as wide every 8 bars (#7610)
- Change tooltip window flags (#7613)
- Fix 3 minor typos (#7635)
- Do not set
Qt::WA_OpaquePaintEvent(#7643) - Fix logarithmic behavior when dragging knobs and sliders (#7647)
- Vectorscope: Fix broken UI under Wayland (#7652)
- SpectrumAnalyzer: Fix missing icons (#7667)
- Fix incorrect graph step size behavior (#7703)
- Fix envelope and LFO graph size on resizeable instruments (#7738)
- Ensure hidden full-screen windows are restored in the correct position (#7752)
- Revert "Change tooltip window flags (#7613)" (#7761)
- Fix Clip Creation Quantization in Song Editor (#7763)
- Fix track operations widget vertical alignment (#7765)
- Fix SVG Scaling; Allow SVGs to be rendered at sizes other than their natural size (#7769)
- Fix track operations button alignment, size, and style (#7779)
- Fix missing update to mixer channel name when created (#7795)
- Update Classic Theme (#7799)
- Fix microtuning warning text widening instruments (#7805)
- Make buttons automatable on macOS (#7813)
- VeSTige: Fix file browser filter (#7816)
- ZynAddSubFX: Filter FREQ brought back to 64, fix lowpass issues (#7844)
- Fix issue with Mixer key events and Track Label Button focus (#7870)
- Fix Position Line gradient appearing in all editors no matter which one is playing (#7882)
- Ignore "Keep plugin windows on top" setting when on wayland (#7901)
- Fix quick access letter conflict with Export and Export Tracks (#7927)
- LOMM: Set Init button to non-checkable (#7940)
- Fix
TextFloatflickering (#7942) - Update clip length after clearing all notes (#7960)
- Carla: Fix broken GUI on Wayland (#7966)
- Fix
PianoRoll::getKeyand remove dead code (#8008) - Fix several typos in user-facing strings (#8090)
- Fix untoggleable buttons not updating connected models (#8144)
- Allow Piano Roll to open empty again, but with a help icon (#8148)
- SlewDistortion: Fix missing icon in help window (#8151)
- Fix Clang compiler misidentification in About dialog (#8153)
- Fix track moving not updating
PatternClipView(#8155) - AudioFileProcessor: Fix reverse mode desync on new sample load (#8158)
- Fix unknown arch+os info in versioninfo (#8159)
- Fix Pattern Editor not updating (#8175)
- Fix hardcoded max dB value when double-clicking knobs (#8189)
- Fix Pattern Editor UI updates when adjusting note volume via scrolling (#8196)
- Fix velocity/panning change affecting unselected notes (#8201)
- Fix subwindow size on load (#8204)
- Avoid adding journal checkpoints when initially creating volume knobs (#8214)
- Fix clips not retaining colors or names after using "Clear notes out of bounds" (#8234)
- Fix pitch bending, strum, and knife tools affecting per-note velocity/panning (#8243)
- Fix key inputs not updating time display (#8266)
- Forbid clip pasting when clipboard empty (#8268)
- Fix volume knob and tooltip bugs (#8359)
- Don't show irrelevant context menu options when right-clicking projects on the sidebar (#8368)
- Fix attached subwindows occasionally snapping to minimum size (#8387)
- Fix pan/velocity underflow when dragging lower than window bottom (#8389)
- Fix subwindows occasionally snapping to minimum size 2: Electric Boogaloo (#8396)
- Fix automation clip view desync when editing node values via double-click (#8414)
- Sf2Player: Fix loading when no soundfont is specified (#8432)
- Don't hide BeatClip names (#8456)
- Fix default Piano Roll zoom and quantization (#8484)
- Allow Ctrl-Drag copying tracks via
TrackGrip(#8495) - Fix
CONTRIBUTORSfile generation to fix blank "Involved" tab in the About dialog (#8518)
Code maintenance
- Tests: Fix CMP0115 CMake warning (b4854f8)
- LV2: Fix all code-style issues with curly braces (fa5f2aa)
- AudioEngine: Introduce
RequestChangesGuard: an RAII verion ofrequestChangeInModel(371f7f5) - Remove song import global automation (#5229)
- Remove GUI menu items for global automation (#5230)
- Compile LMMS using C++17 (#5838)
- Use MEMBER, not WRITE for mouseHotspot Q_PROPERTYs (#5955)
- Fix Editor build warning (#6008)
- Simplify an if-else (#6046)
- Replace some identical function calls with a variable (#6050)
- Remove
using namespace std;from some headers (#6076) - Macro cleanup (#6095)
- clang-format: Prepare plugin descriptor init'ers (#6123)
- Rename
MixertoAudioEngine(#6127) - Eliminate deprecated
registerkeyword (#6133) - Namespace
lmms(#6174) - Split
InstrumentTrack(#6176) - Add missing cstddef include (#6178)
- Rename "mixer" to "audioengine" on lmmsrc.xml (#6181)
- Disable tooltips through event filter (#6192)
- Run
dos2unix(#6198) - Rename
TCOand related toClip(#6226) - Fix build issue when
-fpermissiveisn't enabled (#6231) - Rename
FxMixertoMixer(#6239) - Rename
TCOtoClipin the clipboard data (#6278) - Rename Beat/Bassline to Pattern (#6284)
- Rename TCO and BB to clip and pattern in save files (#6309)
- Improve includes (#6320)
- Split RemotePlugin.h into separate files (#6322)
- Add .clang-format and .clang-tidy (#6323)
- Rename LedCheckbox to LedCheckBox in filenames (#6345)
- Fix casing of filenames and code in
plugins/(#6350) - Rename 'dialogs' folder to 'modal', add missing modals (#6367)
- Move widget files, add folder for track and instrument (#6374)
- Fix Qt deprecations (#6386)
- Refactor shared memory (#6404)
- clang-tidy: Apply
modernize-use-overrideeverywhere (#6439) - Clean up macros a bit (#6444)
- Fix clazy warning: "Signature is not normalized." (#6445)
- clang-tidy: Apply
modernize-redundant-void-argeverywhere (#6446) - Add missing
gui::prefixes to types inAudioSoundIo(#6447) - clang-tidy: Apply
modernize-use-bool-literals(#6448) - clang-tidy: Apply
modernize-use-equals-defaulteverywhere (#6450) - clang-tidy: Run
modernize-use-emplaceeverywhere (#6451) - clang-tidy: Apply
modernize-use-usingeverywhere (#6453) - Replace
QVectorwithstd::vector(#6477) - clang-tidy: Apply
modernize-use-autoeverywhere (#6480) - clang-tidy: Apply
modernize-loop-converteverywhere (#6481) - clang-tidy: Apply
modernize-avoid-c-arrayseverywhere (#6564) - Fix whitespace (#6572)
- Use Qt layouts for mixer channels (#6591)
- Replace deprecated
QString::sprintfwithQString::arg(#6598) - Flanger: Move class declarations into namespace
lmms(#6600) - Fix include guards and copyright statements (#6603)
- MidiImport: Remove more global automation (#6605)
- Fix more Qt deprecation warnings (#6615)
- clang-tidy: Apply
readability-const-return-type(#6618) - Update .clang-format (#6619)
- Fix comparing int with bool (#6637)
- Remove redundant
nameChangedsignal fromInstrumentTrack(#6742) - Classier enums (#6760)
- MidiApple.cpp: Fix getName to allow build with GCC (#6791)
- Improve recognition of compiler and platforms (#6795)
- Carla: Update
DummyCarla.cppto useCARLA_PLUGIN_EXPORT(#6814) - Replace global Qt declarations with standard equivalents (#6821)
- (Re)move identical calls to
InstrumentTrack::processAudioBuffer(#6867) - Use UTF-8 for MSVC source and execution charset (#6876)
- Revamp synchronization with the audio engine (#6881)
- Update some old file filtering code (#6882)
- Update copyright year (#6888)
- Fix warnings in Clang build (#6893)
- Wrap resource urls in double quotes (#6898)
- Switched
LadspaEffect/CMakeLists.txtto useLMMS_HAVE_*instead ofWANT_*(#6903) - Rewrite Amplifier plugin code (#6989)
- LV2: Migrate to new LV2 header paths (#6990)
- Enforce lazy loading for
FileBrowser(#6996) - Split
TimeLineWidgetinto core and GUI parts (#7004) - Add missing copyright in
SampleDecoder.cpp(#7030) - Abstraction in
MixerChannelView(#7057) - Migrate to CTest (#7062)
- AudioFileProcessor: Disentangle and clean the classes (#7069)
- Update
src/common/to coding conventions (#7082) - Remove
MemoryManager(#7128) - Redesign file browser searching (#7130)
- Replace
QRegExpwithQRegularExpression(#7133) - Revisit the initialization for local variables (#7143)
- Simplify sample frame operations (make it a class) (#7156)
- Refactor
gui_templates.h(#7159) - Conditionally remove use of
QApplication::desktopinComboBox.cpp(#7179) - Style format
DrumSynth(#7189) - Use layouts for the instrument sound shaping tab / Extract classes for Envelope and LFO graphs (#7193)
- Scalable envelope graph (#7194)
- Add native system semaphore and Windows shared memory (#7212)
- Streamline instrument flags (#7227)
InstrumentSoundShapingrefactoring (#7229)- Revamp resource embedding (#7241)
- Fix for
-Werror=self-movein test for GCC >= 13 (#7288) - Suppress warnings in third-party code (#7319)
- Fix MSVC warnings up to level 2 (#7329)
- Remove
MemoryHelper(#7335) - GranularPitchShifter: Start running upon initialization (#7356)
- Use recursive mutex for
requestChangeInModel/doneChangeInModel(#7359) - Switch to libsamplerate's callback API in
Sample(#7361) - Remove
BufferManager::clear(#7378) - Re-enable disabled GCC warnings where possible (#7379)
- Remove
typeInfostruct fromlmms_basics.h(#7380) - Clean up
lmms_math.h(#7382) - Fix include of array in
BasicFilters.h(#7398) - Reformat
MixerChannelViewclasses (#7431) - Fix build regression from #7380 (#7437)
- Remove support for SDL1 (#7443)
- Refactor to move
positionChangedsignal toTimeline(#7454) - Flanger: Remove
Noiseclass (#7473) - Refactor Effect processing (#7484)
- Remove dead code using
#if 0(#7521) - Tidy up
MixerChannelView(#7527) - Track operations widget with layout (#7537)
- Make
PluginView::isResizablea virtual (#7541) - Upgrade to C++20 (#7554)
- Use templates for common geometric constants (#7558)
- Remove usage of
QTextCodecin Hydrogen Import plugin (#7562) - Remove obsolete workaround for Qt4 (#7590)
- Clean up some header files and move a bit of debugging logic to Cmake (#7677)
- Update math functions to C++ standard library (#7685)
- Use C++20
std::numbers,std::lerp()(#7696) - Use length-bounded string/memory functions (#7709)
- Rename
AudioPort->AudioBusHandle(#7712) - Fix Clang warning due to implicit conversion from int to float for the
RAND_MAXmacro (#7717) - Use C++20 in
RemoteVstPlugin(#7916) - Remove
m_inBuffromAudioJack(#7922) - Move
FileRevealerinto thelmms::guinamespace (#7923) - Rename some include guards (#7924)
- Refactor global spacebar play (#7926)
- Audio buffer views (#7945)
- Remove
m_resizablefrom Clips (#7954) - Remove
currentPatternChanged()that has no effect (#7989) - Remove
Knob::setHtmlLabel(#7993) - Remove lots of useless/misplaced includes (#7999)
- Audio buffer view improvements (#8016)
- OpulenZ: Fix compilation error (#8040)
- Remove
fastMemCpy()fromRemotePluginBase(#8114) - Use
std::round()instead ofnearbyintf()(#8119) - Remove
SampleLoader(#8186) - Refactor
ExportProjectDialog(#8215) - Replace
fpp_twithf_cnt_t(#8311) - Resolve remaining C++20 TODOs (#8326)
- Oscilloscope: Add missing
QApplicationandQThreadincludes (#8377) - GranularPitchShifter: Revert "Start running upon initialization (#7356)" (#8398)
- TapTempo: Fix missing include (#8421)
- Fix a few warnings (#8465)
- Move
SampleThumbnailinto thelmms::guinamespace (#8470)
Build system / CI / Dependencies
- Fix wrong variable name in CreateTempFile (46c246a)
- Pull vcpkg quietly on AppVeyor (fd18305)
- Update Docker image version for ShellCheck (9d5d86d)
- Fix "invalid macro definition" error in VSCode (#6051)
- Fix CMake check for
SFC_SET_COMPRESSION_LEVEL(#6054) - Update exprtk submodule to 93a9f44 (#6130)
- Use modern CMake targets for SDL2 (#6132)
- Fix compilation on macOS aarch64 (#6152)
- Update CPU to Pentium 4 for win32 builds (#6155)
- Let CircleCI use linux.gcc:18:04 (#6158)
- Fix MSVC architecture detection with non-VS generators (#6175)
- Fix QRC dependency issues (#6349)
- Add check-strings (#6379)
- Correctly detect architecture on powerpc* (#6415)
- Add
check-namespacescript (#6438) - Split lines in .clang-tidy (#6449)
- Migrate CI to GitHub Actions (#6476)
- Remove a workaround for broken
install-qt-action(#6482) - Fix
check-stringsverification (#6485) - Improve use of strip command (#6505)
- Support Sf2 Player, Mallets, PortAudio, and Lame compilation with MSVC (#6507)
- Support building AppImage on non-Ubuntu systems (#6510)
- Don't require comment after
#elseincheck-namespace(#6513) - Fix Visual Studio 2022 detection (#6520)
- Add HIIR library to LMMS (#6553)
- Fix transport 'file' not allowed error (#6557)
- Support ZynAddSubFx compilation with MSVC (#6561)
- Show pull request number in version string (#6565)
- Only rebuild translations when ts files change (#6566)
- Update HIIR submodule to latest (#6622)
- Update
BashCompletion.cmake(#6634) - Update ExprTk package (#6646)
- Fix typo (#6652)
- Fix STK rawwave installation in Windows builds (#6705)
- Fix hiir submodule detection (#6755)
- Fix generator expression in strip command (#6762)
- Bump veal submodule (#6771)
- Consolidate and simplify
CMAKE_POLICYentries (#6780) - ZynAddSubFX: Fix Apple install script (#6782)
- Fix GCC builds on macOS (#6784)
- Allow Apple install step to fail CI (#6796)
- Bump
mingw-std-threadssubmodule (#6817) - Add options to enable sanitizers (#6840)
- Expose targets and versions for more dependencies (#6842)
- Enable build under NixOS (#6855)
- Improve CI cache usage (#6868)
- Push policy stack in
InstallDependenciesmodule (#6878) - Use
residsubmodule fromlibsidplayfp(#6883) - Bump SWH and TAP LADSPA plugin submodules (#6937)
- Update remote of ZynAddSubFX's
instrumentssubmodule (#6939) - Run CI build on macOS 12 (#6960)
- Enable LADSPA plugins on MSVC (#6973)
- Update Linux CI to Ubuntu 20.04 (#7015)
- Update URL of tap-plugins submodule (#7087)
- Fix vcpkg dependencies (#7088)
- Add
WANT_OSSas a configuration option (#7099) - Use GitHub mirror of tap-plugins (#7110)
- Remove message location check from
check-stringstest (#7112) - Update
game-music-emusubmodule (#7144) - Update
jack2submodule to latest (#7147) - Update
carlasubmodule (#7149) - CMake: Replace
EXEC_PROGRAMwithexecute_process(#7166) - Bump project year (#7167)
- Replace call
QT5_WRAP_UIwithCMAKE_AUTOUIC(#7200) - Bump Qt minimum version to 5.9 (#7204)
- Support VSTs on Linux even if Wine is unavailable (#7205)
- Update ZynAddSubFX (#7250)
- Remove support for MSYS2 (#7251)
- CPack: Refactor AppImage and Apple DMG Generation (#7252)
- Modernize compiler and linker flags (#7255)
- Fix native Linux VST on ARM64 (#7257)
- Update MinGW CI to Ubuntu 20.04 (#7259)
- Fix macOS CI builds (#7261)
- Update
upload-artifactsactions (#7263) FindWineimprovements (#7268)- Fix fftw linking when cross-compiling (#7276)
- Remove
mingw-std-threadsfrom 3rd party deps and use native libs/headers instead (#7283) - Add support for Apple Silicon (#7285)
- Fix to allow NSIS packaging to work for non-MSVC Windows builds (#7287)
- Update
vealsubmodule (#7290) - Remove
debianfolder (#7311) - Run CMake with
-Werror=devin CI (#7322) - Fix caching for macOS CI jobs (#7326)
- Cleanup of MinGW-related scripts (#7327)
- Add Qt6 support (#7339)
- Apply warning flags to
RemoteVstPlugintoo (#7389) - Add yamllint checks (#7424)
- Add gprof profiling support (#7547)
- Xpressive: Update
ExprTksubmodule (#7571) - Update macOS CI (#7572)
- Fix the MSVC CI fail happening due to outdated vcpkg (#7589)
- Remove
pkg-configfrom Brewfile (#7593) - Revert
pkgconfremoval (#7605) - Remove 32-bit CI support for Windows builds (#7619)
- ZynAddSubFX: Update
zynaddsubfxsubmodule (#7625) - Add support for Windows on ARM64 (#7644)
- Bump project year (#7645)
- Add VST support for Gentoo Linux (#7665)
- CI: Switch linux-x86_64 to Ubuntu 22.04 (#7678)
- CI: Switch mingw64 to Ubuntu 24.04 (#7682)
- Add VST64 targets for Linux ARM64 (#7687)
- Remove
libgalliumfrom the AppImage (#7693) - VersionInfo: Mimic github's hash styling (#7694)
- Improve Qt5 detection on macOS (#7699)
- Fix vcpkg builds (#7702)
- AppImage: Use fully qualified path when calling appimagetool (#7707)
- Make
portsmfa git submodule (#7755) - Enable
CMAKE_EXPORT_COMPILE_COMMANDS(#7804) - Update
qt5-x11embedsubmodule to latest version (#7825) - Add Windows arm64 CI builds (#7848)
- Upgrade to Windows 2022 / Visual Studio 2022 (#7897)
- Set minimum deployment target for macOS builds (#8004)
- AppImage: Un-pollute
/usr/lib(#8053) - Remove custom winebuild task (#8077)
- Update macOS runner image and XCode version (#8092)
- Make apprun-hooks POSIX compliant (#8121)
- Bump minimum Qt version to 5.15 (#8129)
- CMake: Check for PERL's
List::MoreUtils(#8180) - Bump project year (#8207)
- Use vcpkg for MinGW dependencies (#8218)
- CMake: Fix build for CYGWIN (#8247)
- Docs: Fix update
libstk0-devtolibstk-devfor Debian/Ubuntu (#8409) - Remove
suilfrom MSYS2 dependencies (#8420) - Bump
upload-artifactto v7, don't zip (#8423) - Remove unnecessary
CHECK_INCLUDE_FILES()calls (#8451) - Add CMake options for targeting specific microarchitectures (#8464)
- macOS: Switch from appdmg to dmgbuild (#8471)
- Don't compress man page in during build (#8494)
- Change
TARGET_UARCHdefault from 'native' to 'none' (#8507) - Add
ENV{MSYSTEM}to installers created by MSYS2 (#8521)
Meta / Other
- Update translations (726fae2)
- Update freeze/reorg disclaimer (5f32df5)
- README: Use CircleCI build passed badge (fa407d2)
- Remove the reorganization disclaimer (c8a9d45)
- Replace the CI status badge with GitHub Actions (fc2f6a0)
- Update README.md with the new logo (#6009)
- Fix CONTRIBUTORS and .mailmap (#6033)
- Fix typo in doc/lmms.1 (#6429)
- Ensure that build and target are directories in .gitignore (#6884)
- Add GitHub issue forms for bug reports and feature requests (#7102)
- Remove the missing spoken.flac file from "unfa - Spoken" (#7208)
- Remove demo project Greshz-CoolSnip.mmpz (#7248)
- Update translations (#7529)
- Revise README (#7545)
- Major German translation rework (#7612)
- Revert "Major German translation rework (#7612)" (#7628)
- Add clangd cache to .gitignore (#7846)
- Update translations (#8149)
- Clarify VST support to VST2 and mention LV2 support in README (#8233)
- Update .mailmap, AUTHORS, and CONTRIBUTORS (#8283)
- Add Doxygen docs to Github Pages (#8329)
Nightly Versions
macOS IntelLMMS @3d97b11 macOS
LMMS @3d97b11