Skip to content

1.3.0-alpha.2

Pre-release
Pre-release

Choose a tag to compare

@messmerd messmerd released this 06 Sep 00:16
4e677cb

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__boundedBlockLength and LV2_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 SongEditor to 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.png asset (#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 LcdWidget if 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 pow using fast equivalent and exp2 (#7548)
  • Inline TimePos and TimeSig functions 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 of std::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 TextFloat for 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 SamplePlayHandle which 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 effEditIdle on 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 SampleBuffer and 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 inherits function 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.dll on 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::vector refactor 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 LcdFloatSpinBox mouse 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 setSampleRate to BasicFilters and 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 TrackLabelButton again (#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 processingSampleRate with outputSampleRate (#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_ratio to fix artifacts within Sample playback (#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 to size_t to avoid integer overflow (#7362)
  • Define fpp_t and f_cnt_t to be of type size_t to 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 RemoteVstPlugin build 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 DetuningHelper in Note copy 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 RemoteVstPlugin on Windows to fix some broken VSTs (#7976)
  • VST2: Disable ASLR when building RemoteVstPlugin on 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 AutomatableSlider creating too many journal entries (#8223)
  • Vibed: Fix regression caused by fastRandInc (#8225)
  • Set file format combo box unconditionally (#8237)
  • Fix PianoRoll timeline constantly emitting positionJumped during Record-Play (#8252)
  • Emit the playbackPositionJumped signal only when the active timeline jumps (#8256)
  • Fix empty value returned by FileRevealer::getSelectCommand() (#8281)
  • Prevent key modifiers in MainWindow from 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 Model constraints on VolumeKnob (#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 LcdFloatSpinBox constructor 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 SampleBuffer error 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 Fader pixmaps (#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 DataFile error 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 TextFloat flickering (#7942)
  • Update clip length after clearing all notes (#7960)
  • Carla: Fix broken GUI on Wayland (#7966)
  • Fix PianoRoll::getKey and 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 CONTRIBUTORS file 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 of requestChangeInModel (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 Mixer to AudioEngine (#6127)
  • Eliminate deprecated register keyword (#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 TCO and related to Clip (#6226)
  • Fix build issue when -fpermissive isn't enabled (#6231)
  • Rename FxMixer to Mixer (#6239)
  • Rename TCO to Clip in 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-override everywhere (#6439)
  • Clean up macros a bit (#6444)
  • Fix clazy warning: "Signature is not normalized." (#6445)
  • clang-tidy: Apply modernize-redundant-void-arg everywhere (#6446)
  • Add missing gui:: prefixes to types in AudioSoundIo (#6447)
  • clang-tidy: Apply modernize-use-bool-literals (#6448)
  • clang-tidy: Apply modernize-use-equals-default everywhere (#6450)
  • clang-tidy: Run modernize-use-emplace everywhere (#6451)
  • clang-tidy: Apply modernize-use-using everywhere (#6453)
  • Replace QVector with std::vector (#6477)
  • clang-tidy: Apply modernize-use-auto everywhere (#6480)
  • clang-tidy: Apply modernize-loop-convert everywhere (#6481)
  • clang-tidy: Apply modernize-avoid-c-arrays everywhere (#6564)
  • Fix whitespace (#6572)
  • Use Qt layouts for mixer channels (#6591)
  • Replace deprecated QString::sprintf with QString::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 nameChanged signal from InstrumentTrack (#6742)
  • Classier enums (#6760)
  • MidiApple.cpp: Fix getName to allow build with GCC (#6791)
  • Improve recognition of compiler and platforms (#6795)
  • Carla: Update DummyCarla.cpp to use CARLA_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.txt to use LMMS_HAVE_* instead of WANT_* (#6903)
  • Rewrite Amplifier plugin code (#6989)
  • LV2: Migrate to new LV2 header paths (#6990)
  • Enforce lazy loading for FileBrowser (#6996)
  • Split TimeLineWidget into 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 QRegExp with QRegularExpression (#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::desktop in ComboBox.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)
  • InstrumentSoundShaping refactoring (#7229)
  • Revamp resource embedding (#7241)
  • Fix for -Werror=self-move in 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 typeInfo struct from lmms_basics.h (#7380)
  • Clean up lmms_math.h (#7382)
  • Fix include of array in BasicFilters.h (#7398)
  • Reformat MixerChannelView classes (#7431)
  • Fix build regression from #7380 (#7437)
  • Remove support for SDL1 (#7443)
  • Refactor to move positionChanged signal to Timeline (#7454)
  • Flanger: Remove Noise class (#7473)
  • Refactor Effect processing (#7484)
  • Remove dead code using #if 0 (#7521)
  • Tidy up MixerChannelView (#7527)
  • Track operations widget with layout (#7537)
  • Make PluginView::isResizable a virtual (#7541)
  • Upgrade to C++20 (#7554)
  • Use templates for common geometric constants (#7558)
  • Remove usage of QTextCodec in 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_MAX macro (#7717)
  • Use C++20 in RemoteVstPlugin (#7916)
  • Remove m_inBuf from AudioJack (#7922)
  • Move FileRevealer into the lmms::gui namespace (#7923)
  • Rename some include guards (#7924)
  • Refactor global spacebar play (#7926)
  • Audio buffer views (#7945)
  • Remove m_resizable from 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() from RemotePluginBase (#8114)
  • Use std::round() instead of nearbyintf() (#8119)
  • Remove SampleLoader (#8186)
  • Refactor ExportProjectDialog (#8215)
  • Replace fpp_t with f_cnt_t (#8311)
  • Resolve remaining C++20 TODOs (#8326)
  • Oscilloscope: Add missing QApplication and QThread includes (#8377)
  • GranularPitchShifter: Revert "Start running upon initialization (#7356)" (#8398)
  • TapTempo: Fix missing include (#8421)
  • Fix a few warnings (#8465)
  • Move SampleThumbnail into the lmms::gui namespace (#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-namespace script (#6438)
  • Split lines in .clang-tidy (#6449)
  • Migrate CI to GitHub Actions (#6476)
  • Remove a workaround for broken install-qt-action (#6482)
  • Fix check-strings verification (#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 #else in check-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_POLICY entries (#6780)
  • ZynAddSubFX: Fix Apple install script (#6782)
  • Fix GCC builds on macOS (#6784)
  • Allow Apple install step to fail CI (#6796)
  • Bump mingw-std-threads submodule (#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 InstallDependencies module (#6878)
  • Use resid submodule from libsidplayfp (#6883)
  • Bump SWH and TAP LADSPA plugin submodules (#6937)
  • Update remote of ZynAddSubFX's instruments submodule (#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_OSS as a configuration option (#7099)
  • Use GitHub mirror of tap-plugins (#7110)
  • Remove message location check from check-strings test (#7112)
  • Update game-music-emu submodule (#7144)
  • Update jack2 submodule to latest (#7147)
  • Update carla submodule (#7149)
  • CMake: Replace EXEC_PROGRAM with execute_process (#7166)
  • Bump project year (#7167)
  • Replace call QT5_WRAP_UI with CMAKE_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-artifacts actions (#7263)
  • FindWine improvements (#7268)
  • Fix fftw linking when cross-compiling (#7276)
  • Remove mingw-std-threads from 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 veal submodule (#7290)
  • Remove debian folder (#7311)
  • Run CMake with -Werror=dev in CI (#7322)
  • Fix caching for macOS CI jobs (#7326)
  • Cleanup of MinGW-related scripts (#7327)
  • Add Qt6 support (#7339)
  • Apply warning flags to RemoteVstPlugin too (#7389)
  • Add yamllint checks (#7424)
  • Add gprof profiling support (#7547)
  • Xpressive: Update ExprTk submodule (#7571)
  • Update macOS CI (#7572)
  • Fix the MSVC CI fail happening due to outdated vcpkg (#7589)
  • Remove pkg-config from Brewfile (#7593)
  • Revert pkgconf removal (#7605)
  • Remove 32-bit CI support for Windows builds (#7619)
  • ZynAddSubFX: Update zynaddsubfx submodule (#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 libgallium from 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 portsmf a git submodule (#7755)
  • Enable CMAKE_EXPORT_COMPILE_COMMANDS (#7804)
  • Update qt5-x11embed submodule 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-dev to libstk-dev for Debian/Ubuntu (#8409)
  • Remove suil from MSYS2 dependencies (#8420)
  • Bump upload-artifact to 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_UARCH default 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)