16.8. Changelog
2.7.0 (Unreleased)
2.6.0 (Unreleased)
STEM file support
- Add simple support for STEM files #13044 
- Add stem controls #13086 
- Add analyser support for stem #13106 
- Add quick effect support on stem #13123 
- Add advanced stem loading COs #13268 
- Add stem files to the taglib lookup table #13612 
- Fix: make „stem_group,mute” a powerwindow button #13751 #13749 
- Stem control test fix #13960 
- Solves problem with special characters in path to stems #13784 
- Enable FFmpeg (free) on Windows. #14695 
- FFmpeg: Use internal aac decoder. If not available give a hint. #14645 
- Fix build with -DSTEM=OFF #13948 
- Fix warning when building without STEM support #14551 
- Fix: exclude stem samples for QML waveform #13655 
- Fix: use generic way to get the group on stem waveform renderer #14291 
Library
- Add color coding for Key column #13390 
- Add Key Color Palettes #13497 
- Add overview column with small waveform #14140 
- Add a rebindable keyboard shortcut for editing items as a replacement for F2 #13148 
- DeveloperTools: restore searchbar shortcut Ctrl+F #14761 
- CmdlineArgs: Add - --rescan-libraryfor rescanning on startup #13661
- Add case-insensitive parsing for Lancelot key notation #14318 
- iTunes: Add iOS importer using the Media Player framework #12690 
- Add Shuffle action to track table header menu #13392 
- Track menu, purge: allow to hide further success popups in the current session #13807 
- Track Info dialogs: move metadata buttons below color picker #13632 
- Track File Export: add «Apply to all» checkbox, remove „.. All” buttons #13614 
- Fix: restore BPM and Bitrate column width #13571 
- Elide key text from the right #13475 
- Playlists: add «Unlock all» and «Delete all unlocked» menu actions #14091 #8960 
Efecte
Waveforms
- Simplify waveform combobox in preferences #13220 #6428 #13226 
- Add minute markers on horizontal waveform overview #13401 #5843 #13648 #13489 
- Add slip waveform to Textured/»High details» type #14039 
- Disable textured waveforms when using OpenGL ES #13381 #13380 
- feat: improve screen rendering framework #13737 
- Rendergraph: Add rendergraph library and use if for waveform rendering #14007 #14021 #14191 #14185 #14188 #14192 #14190 #14186 #14189 #14187 #13470 #14461 #14726 #14706 
- Improve apperrance of marks on the waveforms #13969 
- ControllerRenderingEngine: Patch out unavailable APIs when using GL ES #13382 
- Fix high details waveforms wrapping around after visual index 65K #13491 
- Fix: support for new WaveformData struct in shaders #13474 #13472 
- Fix: remove scaleSignal in waveform analyzer #13416 
- Fix: prevent double free on DigitsRenderer #13859 
- Fix invalid slip render marker #13422 
Auto-DJ
Controller Mappings
Controller Backend
- Add screen renderer to support controllers with a screen #11407 #13334 
- Deprecate - lodash.mixxx.js, and- script.deepMerge#13460
- Add New CO „beats_translate_half” to move beatgrid a half beat #14279 #10811 
- Settings: Add a file and color controller setting types #13669 
- Allow to enable MIDI Through Port in non-developer sessions #13909 
- Refactor: modernize softtakeover code #13553 
- document - ScriptConnectionreadonly properties & slight cleanup #13630
- Modernize Hid/Bulk Lists #13622 
- Prevent deadlock with BULK transfer and reduce log noise #13735 
- Expose convertCharset convenience function to controllers #13935 #14108 
- Add HID error message upon failed open #14184 
- Remove boilerplate and duplication in controller setting definition #13920 
- Allow feedback on every release of a - powerWindowbutton #14335
- Controller Settings: Improve click event filter #14355 
- Controller Settings: Add a collapsible group box #14324 
- Fix: Don’t return in JogWheelBasic on deck absent in option #13425 #14106 
Engine
- Fix: sync rate using the current BPM instead of the file one #13671 #12738 
- Sync: prefer playing inaudible decks over stopped non-sync decks #14580 
- Fix: prevent null CO access when cloning sampler or preview #13740 
- Use correct detected channel count on CoreAudio #14372 
- Fix: revert to max. 36 hotcues, fix one-off issue #14753 
Preferințe
- Waveforms: Group options, adjust tabstops, reorder ui file #13615 
- Controllers: Make extended controller information available for device selection 
- Controllers: Reorganize content into tabs 
- Mixer: Show «real» crossfader configuration #14124 
- Effects: Left/Right key in effect lists trigger hide/unhide #14205 
- Sound Hardware: Open with sprecific I/O tab selected #14346 
- Sound Hardware: Don’t set m_settingsModified in update slots #13450 
- Library, Track Search: Fix accidental use of wrong preference controls #13592 
Skins
- Allow swapping hotcues via dragging and dropping hotcue buttons #13394 #14367 
- Add controls to order Hotcues by position in the track #13808 #14423 
- Drop Hotcue or main Cue button onto Play button to latch - play#14179 #14178 #14753
- Always show tooltips if Ctrl key is pressed #14078 
- Update waveforms_container.xml #13501 
- LegacySkinParser: Short-circuit if template fails to open #13488 
- Tooltips: Fix cue mode setting location #14045 
Experimental Features
- SoundManagerIOS: Remove unsupported/redundant options #13487 
- ControllerRenderingEngine: Disable BGRA when targeting Wasm #13502 
- BaseTrackTableModel: Disable inline track editing on iOS #13494 
- Fix: trigger QML waveform slot at init #13736 
- CoreServices: Default to - ~/Musicas a music directory on WASM and iOS #13498
- CMakeLists: Disable - QTlsBackendOpenSSLPluginon iOS #14375
Target support
- Sound preferences: Add missing ifdefs for building without Rubberband #13577 
- Update Linux-GitHub runner to Ubuntu 24.04.01 LTS #13781 #13880 
- Debiam: Add missing qt6-declarative-private-dev and qt6-base-private-dev package #13904 
- RPM: Add missing deps #14183 
- Show translator file path in debug message #14209 
- Building without tests-tools #14268 
- Remove unmaintained shell.nix #14300 
- Add QGLES2 option for UNIX #14489 
- Don’t set GL_BGRA if QT_OPENGL_ES_2 #14488 
- Windows and macOS: Update to Qt 6.8.3 (requires MSVC 2022) #14655 
Misc Refactorings
- Refactor/shrink modernize scopedtimer #13258 
- Improve use of parented_ptr #13411 
- Pre-allocate memory in basetrackcache to avoid multiple reallocations #13368 
- Bump actions/checkout from 4.1.6 to 4.1.7 #13386 
- Bump actions/checkout from 4.1.7 to 4.2.0 #13713 
- Bump actions/checkout from 4.2.0 to 4.2.1 #13726 
- Bump actions/checkout from 4.2.1 to 4.2.2 #13810 
- Bump azure/trusted-signing-action from 0.3.20 to 0.4.0 #13500 
- Bump azure/trusted-signing-action from 0.4.0 to 0.5.0 #13809 
- Bump actions/upload-artifact from 4.3.4 to 4.3.5 #13539 
- Bump actions/upload-artifact from 4.3.5 to 4.3.6 #13562 
- Bump actions/upload-artifact from 4.3.6 to 4.4.0 #13621 
- Bump actions/upload-artifact from 4.4.0 to 4.4.1 #13725 
- Bump actions/upload-artifact from 4.4.1 to 4.4.3 #13765 
- Bump coverallsapp/github-action from 2.3.0 to 2.3.1 #13766 
- Bump coverallsapp/github-action from 2.3.1 to 2.3.3 #13793 
- Bump coverallsapp/github-action from 2.3.3 to 2.3.4 #13811 
- Bump actions/upload-artifact from 4.3.3 to 4.6.0 #14167 
- Bump azure/trusted-signing-action from 0.5.0 to 0.5.1 #14168 
- Bump coverallsapp/github-action from 2.3.4 to 2.3.6 #14246 
- Bump actions/upload-artifact from 4.6.0 to 4.6.1 #14406 
- chore: update the donate button label #13353 
- WPixmapStore: Change getPixmapNoCache to std::unique_ptr and further optimizations #13369 
- Remove unused setSVG and hash functionality from pixmapsource #13423 
- Remove FAQ from Readme.md #13453 
- Make Paintable::DrawMode an enum class #13424 
- Paintable cleanup #13435 
- hash clean up #13458 
- BaseTrackTableModel: Fix - -Wimplicit-fallthroughwarning on GCC 14.1.1 #13505
- Refactor: fix trivial cpp coreguideline violations #13552 
- Refactor - EngineMixer#13568
- more - ControlDoublePrivateoptimization #13581
- Modernize - ControlValueAtomic#13574
- Optimize control code #13354 
- Fix some minor code issue #13586 
- Static initialization order fix #13594 
- Remove referenceholder #13240 
- chore: add note about ConfigKey naming convention #13658 
- refactor: split out - AutoFileReloaderfrom- QmlAutoReload#13607 #13756 #13755
- Fix Clazy v1.12 errors in main #13770 
- Code cleanup in SidebarModel and WLibrarySidebar #13816 
- Refactor - MovingInterquartileMean#13730
- Improved comments in enginecontrol and use of std::size_t for bufferSize across the codebase #13819 
- Refactor: use higher-level - std::spanbased logic #13654
- VSyncThread: tsan fix pll vars data race #13873 
- Control Indicator: Use atomic to fix tsan detected data race condition of blink value #13875 
- Fix undefined behaviour of infinity() #13884 
- Use atomic for m_bWakeScheduler, protect m_bQuit with mutex #13898 
- Refactor - ValueTransformerand- WBaseWidget#13853
- Avoid data race on m_pStream #13899 
- Cleanup and deprecate more - util/classes #13687 #13968 #13965 #14107 #14095 #14087 #14086
- Github CI(clang-format): Indent Objective-C blocks with 4 spaces #13503 
- Github CI(pre-commit): Add cmake-lint hook #13932 
- Github CI(labeler): Add - developer experienceissue label #14343
- Github CI(labeler): add Dev Tools to - developer experience#14475
- Fix clang-tidy complain #14029 
- Github CI(dependabot): Open PRs against 2.5 branch instead of main #14060 
- Happy New Year 2025! #14098 
- Fix warning in Auto DJ test #14102 
- Fix: Add - QT_VERSION_CHECKed- QCheckBox::checkStateChangedhandlers #14104
- Fix wrong access to ENV var MIXXX_VCPKG_ROOT instead of CMake setting MIXXX_VCPKG_ROOT #14146 
- WOverview: remove unused coefficients #14145 
- Fix missing initialization in Rotary() #14176 
- WPushButton: remove obsolete focusOutEvent() #14177 
- Fix memory leak and use parented_ptr in WTrackMenu #14199 
- Fix Clazy warning in main #14241 
- Fix recently introduced clazy warnings #14336 
- Fix calculation of m_resourcePath in the testing case #14110 
- Add borrowable_ptr, a threadsafe callback solution #1713 
- Include QtConcurrentRun #14303 
- Optimized tooltip generation in WBaseWidget #13952 
- Github CI(pre-commit): qsscheck.py -> added utf-8 in open() #14320 
- Small grammar fix for comment in - BpmControl::slotUpdateRateSlider#14344
- Add links to important guidelines to CONTRIBUTING.md #14342 
- Log Test fixes and refactoring. #14111 
- chore: lint CMakeLists.txt #14369 
- RateControl/Position ScratchController: use std::unique_ptr, PollingControlProxy etc. #14058 
- Controller preferences: Cond-compile out HID settings when building without HID #14376 
- Add missing space to engine controller API documentation #14384 
- Fix prettier pre commit #14416 
- Use std::shared_ptr in controller settings to fix memory leak #14413 
- clean up README.md #14471 
- Fix type safety warnings #14613 
- CMake: Join project() with enable_language() #14577 
- Scenegraph: condition to QML=ON #14487 
- Fix building with Qt 6.9 #14678 
- Fix: import proper QtQml.Models module instead of qmllabs #14675 
- qmlwaveform: Fix moc in Qt 6.9.0 #14649 
2.5.2 (2025-06-13)
Library
- Fix playlist export when name contains a dot #14737 
- Fix loading the wrong track via drag and drop when using symlinks #13708 #13706 
- Fix: byte order in hotcue comments imported from rekordbox #14808 #14789 
- Tracks table: show ReplayGain with max. 2 decimals, full precision in tooltip #14868 #14867 
- Fix keyboard mappings with non-ASCII characters on Linux #14843 #14734 
- Computer feature: enable initial sorting during population #14688 
- Computer feature: avoid false-positve «has children» for non-directory links #14907 
- Fix column header mapping when using external library #13782 
- Fixed Single track cover reload on reload metadata from file #14494 #14409 
Controller Mappings
- Arturia KeyLab Mk1: initial mapping #14502 
- Denon MC7000: slicer mode TypeError #14804 
- Denon MC7000: crossfader curve using wrong parameter #14803 
- DJ TechTools MIDI Fighter Twister: support 4 decks #14557 
- Hercules DJControl Inpulse 500: the crossfader was not reaching 100% to the right end #14722 
- Icon Pro Audio iControls: initial mapping #14591 
- Numark Mixtrack Platinium FX: Fix 4 steps browsing issue #14778 
- Traktor Kontrol S3: Use GUI config for settings #14904 
- Traktor S2 MK3: Fixed LED issue #14717 
- Traktor S4 MK2: Use engine settings API for configuration #14781 
- Traktor S4 MK3: prevent sync lockup, add setting for tempo center snap #14735 #14721 
Controller Backend
Target support
- Fix building with a CMake multi-config setup #14614 
- Fix building with gcc >= 14 with LTO and clang >= 19 (fpclassify) #14749 #14716 
- Fix: gcc - -Warray-bounds=in fidlib by using a flexible member #14798
- Added Linux Mint Codenames to debian_buildenv.sh #14709 
- Add hidden - [Config],notify_max_dbg_timesetting to reduce warnings in developer mode #14015
- Detect arch and fail early if not supported when installing buildenv #14478 
Misc
- Vinyl Control: Reduce sticker drift #14435 
- Fix infinite number of pop ups of the „No Vinyl|Mic|Aux|Passthrough input configured” dialog #14841 #14837 
- Fix adjust Gain after adopting it as ReplayGain only in requesting player #14812 #14806 
- Skins: add loop anchor toggle to Deere, Shade, Tango #14890 #14173 
- Sound Hardware preferences: add manual link for Mic monitoring modes #14889 
- Work around an Ubuntu, Ibus or Qt issue regarding detecting the current keyboard layout. #14883 #14838 #14797 
- Fix BPM rounding for the 3/2 case #14751 
- Update cue & play indicators on paused decks when switching cue mode 14930 9928 
2.5.1 (2025-04-27)
Controller Mappings
- Behringer DDM4000 & BCR2000: Update mappings to 2.5 #14232 #14349 
- DJ TechTools MIDI Fighter Spectra: Add controller mapping #14559 
- Hercules DJControl Inpulse 300: add toneplay, slicer, and beatmatch functionalities #14051 #14057 
- Hercules DJ Console Mk1: Fix pitch bend buttons #14447 
- M-Vave SMC-Mixer: Add controller mapping #14411 #14448 #14457 #14458 
- Numark Mixtrack Platinum: Fix VU Meters #14575 
- Numark NS6II: New mapping #11075 
- Numark Platinum FX: New mapping #12872 
- Pioneer-DDJ-SB3: Fixes slip mode and adds missing knob controls #11307 
- Traktor S4mk3: Set 4 decks, avoid CO warnings for decks 3/4, eg. VU meter #14249 
- Traktor S4mk3: Smooth xfader curve for Const Power mode #14305 #14329 #14103 
- Traktor S4mk3: stop wheel led blinking when track is over/stopped #14028 #13995 
- Traktor Kontrol S3: Use pitch absolute mode as described in the manual #14123 
- Stanton SCS.1m/d; Keith McMillen QuNeo; EKS Otus: use - playpositioninstead of non-existent- visual_playposition#14609 #14603
Controller Backend
- Controllers: Avoid timer warning on button release #14323 
- Controller preferences: Fix notify of pending changes when closing preferences #14234 #14220 
- Controller preferences: Fix broken overwrite dialog («Save as..» not working) #14263 
- Controller preferences: Don’t break support link texts #14079 
- Controller preferences: Fix wrong mapping change confirmation request caused by MidiController::makeInputHandler() #14281 #14280 #14292 
- Controller mapping info: Fix cropped description text #14332 #14117 
- MIDI controller learning: Make control box search usable #14260 
- MIDI controller learning: Don’t reload mapping after learn #14253 
- MIDI controller learning: Correct skin control for mic/aux section #14221 
- MIDI controller learning: Add more cue controls for samplers #14419 
- MIDI controller learning: Continue after the maximum learning time is over #14429 
- Allow - midino0 in MidiController::makeInputHandler() `#14266 #14265
- Fix: provide - incomingDatato MIDI sysex mappings #14368 #13133
- Fix log spam when using Midi for light mapping #14326 #14327 #14333 #14338 #14371 
- Fix crash due to concurrent access in MidiController #14159 
Skins
- Deere/LateNight (64 samplers): Bring back library in regular view #14101 #14097 #14700 
- Fix crash when hiding waveforms in Deere #14170 
- Waveform Overview: Abort play pos dragging if cursor is released outside the valid area #13741 #13732 
- Waveform Overview: Also render analysis progress when triggered by track menu or analysis feature #14150 
- Don’t show «menubar hide» dialog when switching skins #14254 
- Key Wheel: Move to View menu and make it a floating tool window #14256 #14239 
- Center effect parameter names #14598 
- Track menu: highlight row when hovering checkbox #14636 #14680 
Library
- Add Ctrl+Shift+C to copy the content of the selected cell(s) (The Mxxx 2.4 behaviour of Ctrl+C). #14114 #14065 
- Fix MusicBrainz lookup on Windows and macOS #14216 
- Library scanner: Update cached «missing» flag when file is redicovered #14250 
- Hidden Tracks: Allow «load to» via track context manu #14077 
- Update to libdjinterop 0.24.3 - support for Engine 4.1/4.2 #14172 #14289 
- Fix writing metadata via symlink #13711 
- Library menu: change „Engine DJ Prime” to „Engine DJ” #14248 #14682 
- Fix file extension handling during playlist export #14381 
- Fix manual key metadata editing in track properties dialog #14022 #14400 #14295 #14294 
- History: Don’t allow joining with locked previous playlist #14401 #14399 
- Track info dialog: fixed cover label (max) size #14418 
- Track Menu: Reset - ejectafter moving track file to trash #14402
- Fix scrolling issue with coverart columns visible #13719 #14631 
- Developer Tools: multi-word search, no Tab navigation in controls table #14474 
- Analyze feature: respect New / All selection when searching #14660 #14659 
- Stop populating Computer library feature when Mixxx should close #14573 
- Tracks: apply played/missing text color also to selected tracks #13583 
- Tracks: - show_track_menuat index position #14385
- Search related menu: improve checkbox click UX #14637 
- Avoid false missing tracks due to db inconsistency #14615 #14513 
Other Fixes
- Enable R3 time-stretching with Rubberband 4.0.0 API version numbers #14100 
- Preferences Effects: add Hide/Unhide (move) buttons to Effects tab #13329 
- Preferences Effects: left/right key in effect lists trigger hide/unhide #14205 
- Fix beat sync in Flanger effect #14351 
- Apply talkover ducking after main effects to allow using a compressor effect #13844 #12451 
- Fix sporadic deadlocks when closing Mixxx or changing sound devices #14208 #14055 
- PositionScratchController: Fix loop wrap-around case #14379 
- Allow seeking to a hotcue during waveform scratching #14357 #13981 
- Reset saved loop when toggling off after switching cue type #14661 #14657 
Target support
- Allow to build with git „showSignature = true” #14115 #12997 
- Support building with Qt 6.8/6.9 #14080 #14071 #14200 #14204 #14440 #14518 
- Welcome Ubuntu Plucky Puffin; Good bye Mantic Minotaur #14148 #14158 
- Debian: recommend qt6-translations-l10n #14147 
- Allow building without tests-tools via new CMake options BUILD_TESTING and BUILD_BENCH #14269 
- Fix and improve „missing env” error message #14321 
- Qt 6.8: Ensure Mixxx uses „windowsvista” Qt style on Windows #14228 
- Raise macOS target version to 11 (Qt 6.5 requirement). #14440 
- Fail early when building on WSL #14481 
- Remove useless udev rule #14630 
2.5.0 (2024-12-24)
Modernized Platform: Update to Qt6
- Mixxx is now using Qt6, offering improved performance and enhanced compatibility with modern systems. #11863 #11892 
- Build system defaults to Qt6. Qt5 build support will be dropped with Mixxx 2.6 #11934 
- Drop support for macOS versions earlier than 11 
- Drop support for Windows versions earlier than Windows 10 build 1809 
- Drop support for Ubuntu versions earlier than 22.04 
- Require a C++20 compiler 
- DlgAbout: Add Qt version to the dialog #11862 
- WWidget: Disable touch events on macOS (fixing trackpad issues on Qt 6) #11870 
- Various Skin adjustments #11970 #11957 #12050 #12939 #13242 #14014 #13535 #14013 #13959 #14034 #12972 #14035 
- Various Library adjustments #12380 #12478 #13035 #13033 #12488 #12216 #13448 
Engine
- Beats: allow undoing the last BPM/beats change #12954 #12774 #10138 #13339 
- Add beatloop anchor to set and adjust loop from either start or end #12745 #13241 
- Add Rate Tap button #12104 
- Store/restore regular loop when toggling rolling loops #12475 #8947 
- Add - beats_translate_moveControlEncoder #12376
- Looping/Beatjump: use seconds if track has no beats #12961 #11124 
- Add Track colour palette cycling controls - track_color_nextand- track_color_prevto library, decks and samplers #13066 #12905
- Recording: Fix bogus timestamp in CUE sheet after restarting a recording #13966 #13964 
- Improve Taglib/SoundSource logging #13541 
Skins / Interface
- Toggle the menubar with single Alt key press (auto hide) #11526 #13301 
- Allow to edit track title and artist directly within the decks via a delayed double-click #11755 #13930 
- Require a minimum movement before initiating the drag&drop of tracks #12903 
- Add type toggle to cue popup #13215 
- Handle not supported files when dragging to waveforms and spinnies #13206 
- Tooltips: Improve - rate_up/downdescription regarding pitch vs. speed #12590
- Tooltips: Add description for expand/collapse samplers buttons #13005 #12998 
- Track label widgets: Set - show_track_menuonly for main decks #12978
- MacOS: App proxy icon of the playing track to the window title #12116 
- Auto DJ: Force-show decks 3/4 if we are going to use them #13455 
- Auto DJ: Add new random tracks if one track does not exists #13551 
- Allow to set LaunchImage style per color scheme #13731 
- Show wait cursor when re/loading a skin (not during startup) #13747 
- LateNight: Merge vinyl control toggle and status light #12947 #10192 
- LateNight, Deere, Tango: Deactivate beatgrid edit controls if BPM is locked #13320 #13323 #13325 
- LateNight: Use Classic launch image style also for 64 samplers version #13796 
- Adjust some skin controls, to allow point-and-click mapping #13906 
- PreviewDeckN,LoadSelectedTrackAndPlay toggles play/pause if the track is already loaded #12920 #9819 
- Command line interface: Determine whether to color output based on - TERMvariable #13486
- Command line interface: Add option - --start-autodjto start Auto DJ immediately after Mixxx start. #13017 #10189
- Logging: Include timestamps in messages by default #11861 
- Logging: Limit mixxx.log size to 100 MB or via –log-max-file-size #13684 #13660 
- Fix skin reload after changing color scheme #13847 
Efecte
Library
- Shortkeys Cut, Copy, Paste for track list management #12020 #13361 #13364 #13958 #13100 
- Playlists: move tracks with Alt + Up/Down/PageUp/PageDown/Home/End #13092 #10826 #13098 
- Search: Add «type» filter #13338 
- Search: Add «id» filter #13694 
- Search related Tracks menu: Allow to use multiple filters at once #12213 #12211 
- Track menu: Rephrase „Reset” to „Clear” #12955 
- Track menu: Add support for scaling BPM by different ratios #12934 #9133 
- Track menu: Remove from disk: stop and eject all affected decks #13214 
- Track menu: Show Properties in Missing and Hidden view #13426 
- Add multi-track property editor / batch tag editor #12548 #9023 #13299 #13609 #13597 #13631 
- Track property editor: focus the editing field in the track properties that corresponds to the focused column #13841 #14036 
- Computer feature: add sidebar action „Refresh directory tree” #12908 
- Add feedback to directory operations (add, remove, relink) #12436 #10481 
- Add ability to import external playlists as crates #11852 
- Playlists: Update of playlist labels after adding tracks #12866 #12761 
- Tracks: Custom color for missing tracks #12895 
- Tracks: Custom text color for played tracks (qss) #12744 #5911 #12912 #13538 
- History: Show track count and duration in sidebar #12811 #12788 
- Don’t allow pasting tracks into locked playlists/crates or History #12926 
- Optimize Library scrolling #13358 
- Keep the metadata key text unchanged, use it as the origin of information #11096 #11095 #13650 #14011 #14008 #14020 
- Center date values, right-align Track # #13674 
- Analysis: Fix stop button when analyzing crate/playlist #13902 
- Add a debug message, which appears when event loop processing in Mixxx application takes very long #12094 #13900 #13889 #13903 #14012 
Preferințe
Controller Mappings
- Denon MC7000: Add optional jog wheel acceleration to the controller mapping #4684 
- Denon MC7000: Unify parameter button logic and add customizable modes #13589 
- Denon MC7000: Add sampler options to mapping settings #13950 
- MIDI for light: Implement new Active deck heuristic #13513 
- MIDI for light: Add settings GUI #13721 
- Numark Scratch: Add controller settings #13404 
- Pioneer DDJ-FLX4: Mapping improvements #12842 
- Traktor Kontrol S4 MK3: Add setting definition for #12995 
- Traktor Kontrol S4 MK3: Software mixer support and default pad layout customisation #13059 
- Traktor Kontrol S4 Mk3: Rework jogwheel speed compute and motorized platter #13393 
- Traktor Kontrol S4 Mk3: Revert QuickEffect preset offset #13997 
- Traktor Kontrol S4 Mk3: Correct wheel timestamp wrap-around #14016 
Controller Backend
- Send sysex to all handlers #12827 
- Speed up midi sysex receive #12843 
- Add control for showing a deck’s track menu #10825 
- Removed old examples HID keyboard and HID trackpad #12977 
- Allow controller mapping to discard polling #12558 
- Add support for mapping user settings #11300 #13046 #13057 #13045 #13656 #13738 #13979 #13990 
- Registering MIDI Input Handlers From Javascript #12781 #13089 
- Controller IO table: Fix display text for Action/control delegate #13188 
- Drop lodash dependency in ComponentJS #12779 
- Support for bulk devices on Windows and Mac #13008 
- Fix pending reference to the old mapping after selecting «No mapping» #13907 
- Fix crash with GoToItem when no app windows has the focus #13657 
Waveforms
- Visualize slip mode position by splitting waveform (RGB GLSL only) #13002 #13256 #10063 
- Show beats and time until next marker in the waveform #12994 #13311 #13953 #13314 
- Allshader RGB, Filtered and Stacked Waveforms using textures for waveform data #13151 #12641 
- Allow changing the waveform overview type without reloading the skin #13273 
- Overview: Update immediately, when the normalize option or global gain changed #13634 
- Overview: Clear pickup position display when opening cue menu #13693 
Experimental Features
- QML Skin: Can be tested via the –qml command line option #13152 #12139 #13152 
- QML Skin related changes #11423 #12559 #12549 #12541 #12795 #12844 #12546 #12794 #12536 #13058 #12604 #3967 #13009 #13009 #13011 #13506 
- iOS support: Mixxx can be built for iOS #12672 
- iOS support related changes #12689 #12714 #12716 #12698 #12676 #12688 #13379 #13378 #13383 
- Emscripten/WebAssembly support, to run Mixxx hardware independent in a browser #12918 
- Emscripten/WebAssembly related changes #12910 #12913 #12916 #12915 #12921 #12922 #12931 #12940 #12945 #12952 #12930 #12917 
Target support
- Maintain GL ES support #13485 
- Tools: Add - rpm_buildenv.shfor building on Fedora #13069
- Lenient taglib 2.0 guard #12793 
- MixxxApplication: Support linking Qt statically on Linux #12284 
- FindSndFile: Link mpg123 in static builds #13087 
- FindPortMidi: Link ALSA in static builds on Linux #12292 #12291 
- FindLibudev: Link hidapi and libusb with libudev in static builds on Linux #12294 
- FindVorbis: Link ogg in static builds #12297 
- FindSleef: Use OpenMP in static builds #12295 
- macOS packaging: Enable app sandbox in ad-hoc-packaged (i.e. non-notarized) bundles too #12101 
- CMakeLists: Match arbitrary - arm64-osxtriplets #11933
- Disable warning in lib/apple code #13522 
- GitHub CI: Use retry loop for CPack to work around macOS issue #13991 
- Github CI: Enable - WARNINGS_FATALon macOS, too #11905
2.4.2 (2024-11-26)
Controller Mappings
- Denon MC7000: Fix star up/down logic by only handling button down events #13588 
- Intech TEK2: Add initial mapping #13521 
- Korg Kaoss DJ: Update script #12683 
- MIDI for light: Fix unsound timer handling #13117 
- Novation Dicer: Remove Flanger mapping with quickeffect toggle #13196 #13134 
- Numark PartyMix: Fix EQ (script binding) display name #13255 
- Pioneer DDJ-400 and DDJ-FLX4: Remove tap beat mapping to resolve conflict with toggle quantize and fix shift + play #13815 #13813 #13857 
- Reloop Beatmix 2/4: Fix eject button and jog LED being lit on track unload #13601 #13605 
- Reloop Mixage MK1, MK2, Controller Edition: Add initial mapping #12296 
- Sony SIXAXIS: Fix mapping #13319 
Fixes
- Handle not supported files when dragging to waveforms and spinnies #13208 #13271 #13275 
- Fix Sqlite 3.45 builds by using only single quotes for SQL strings #13247 #13257 
- LateNight: Use default colors for sampler overviews (like main decks) #13274 
- Library: Allow to drop files to decks with unsupported or no file extensions #13209 #13204 
- Update build environment with libdjinterop 0.21.0 #13288 
- Recording: with empty config, save default split size immediately #13304 
- Add support for Ubuntu Oracular Oriole and remove Lunar Lobster #13348 
- Mixer preferences: Don’t update EQs/QuickEffects while applying #13333 
- Hardware preferences: Fix UX when applying config with missing/busy devices #13312 
- Fix minor 64 bit CPU performance issue #13355 
- Fix clicks at loop-out when looping into lead-in #13294 
- Fix wrong pitch value on startup, caused by - components.Pot#11814 #13463
- Engine Prime: Fix build-failure #13397 
- Engine Prime: Friendlier error message if export fails #13524 
- macOs: Fix Keyboard shortcuts by not catching num key modifier #13481 #13305 
- Fix detection last sound if track does not end with silence. #13545 #13449 
- Remove false positive critical warning related to library columns #13165 #13164 
- Fix reading metadata for files with wrong extensions #13218 #13205 
- History: remove purged tracks, auto-remove empty playlists #13579 #13578 
- Synchronize AutoDJ next deck with top track in queue #12909 #8956 
- Playlists: Update play duration and bold state in sidebar when dragging tracks into the playlist table #13591 #13590 #13575 
- Playlists: Keep correct track selection (# position) when sorting #13103 
- Track file export: Various fixes #13610 
- Controller engine: Unify/improve logging, expand error dialog’s Details box #13626 
- Fix quantization in the effect engine (metronome effect) #13636 #13733 
- Fix ReplayGain detection in case of short tracks #13680 #13676 #13702 #13703 
- Track menu: Avoid crash and UX issues with track nullptr #13685 
- Disable Properties shortcut in Computer feature views #13698 
- Overview waveform: Add tooltip info about left-click dragging #13739 
- Make - hotcue_focus_color_next/- _prevCOs- ControlPushButtons to allow direct mappings #13764
- Scaled svg cache to speed up drawing in hidpi mode #13679 
- Update to libdjinterop 0.22.1 for Enigine Prime 4.0.1 support #13790 
- HID: Avoid repeated error messages from hid_write()/hid_read() in case of errors #13692 #13660 
- Fix unnecessary painting with covers in library #13715 
- Fix check for unrelated decks playing when starting Auto DJ #13762 #13734 
2.4.1 (2024-05-08)
Controller Mappings
- Behringer DDM4000 & BCR2000: Fix exception in JS code #12969 
- Denon DJ MC6000MK2: Fix mapping of filter knob/button #13166 
- Denon DJ MC7000: Fix redundant argument and migrate to - hotcue_x_status#13113 #13121
- Hercules Inpulse 200: Configure shift-browser knob to scroll the library (quick) #12932 
- Nintendo Wii Remote: Fix hid script regarding addOutput #12973 
- Pioneer CDJ: Fix hid script regarding addOutput #12973 
- Pioneer DDJ-FLX4: Add waveform zoom and other mapping improvements #12896 #12842 
- Traktor Kontrol F1: Fixes for hid-parser and related script #12876 
- Traktor S2 Mk1: fix warnings #13145 
- Traktor S3: Fix mapping crash on macOS #12840 
- Controller I/O table: sort action column by display string #13039 
Target Support
Skins
- Deere: make sampler rows persist #12928 
- Tango: Remove unneeded waveform Singleton #12938 
- Tango 64: fix Main VU meter 
- Prevent possible crash in customs skins using parallel waveforms #13043 #12580 #13136 
- Slider tooltip: consider orientation for up/down shortcut tooltips + add support for WKnobComposed #13088 
- Tooltips: update «hotcue» with saved loop features #12875 
- Polish fx chain controls #12805 
- Waveforms: draw loop gradient at the correct position #13061 #13060 
- Waveform / spinnies: don’t take keyboard focus on click #13174 #13211 
Library
- Sidebar: show track count and duration of History playlists #13020 #13019 #12788 #12880 #12882 
- Computer feature: update removable devices on Linux #12893 #12891 
- Playlists: Prevent removing tracks from locked playlists #12927 
- History feature: Fix removing deleted tracks after export #13016 #13000 
- BPM display uses decimal separator of selected locale #13067 #13051 
- Fix relink directory when migrate between Linux/macOS and Windows #12878 
- Allow adding new directories while watched directories are missing #12937 #10481 
- Require a minimum movement before initiating the drag&drop of tracks #13135 #12902 #12979 
- iTunes/Serato/Traktor/Rhythmbox: Print error if library file could not be opened #13012 
- Playlists: improve table update after deleting (purging) track files #13127 
- Fix Color column width issue #12852 
- Tracks: select track row when clicking the preview button (only when starting preview) #12791 
- Library track menu: show Hide action also in Playlist & Crates #11901 
- iTunes: Obtain FileAccess before accessing iTunes XML #13013 
Miscellaneous
- Remove unnecessary unpolish operation of the style, before polish the new style #12445 
- Developer Tools: Initially sort controls by group name, ascending #12884 
- Waveforms: Fix scratching crossing loop boundaries #13007 
- Track Properties dialog: Prevent wiping metadata when applying twice quickly #12965 #12963 
- AutoDJ: Fix button state after error message about playing deck 3/4 #12976 #12975 
- Avoid beats iterator being one off and DEBUG_ASSERT in Beats::iteratorFrom #13150 #13149 
- Show hint if resource path in CMakeCache.txt does not exist #12929 
- Always calculate the auto value for colorful console output #13153 
- LV Mix EQ: Fix pops when enabling in effect rack #13055 #13073 
- Fix hid addOutput 
2.4.0 (2024-02-16)
Music Library: Backend & Database
- Add new „[AutoDJ],add_random_track” to make this feature accessible from controllers #3076 
- Don’t store or update metadata of missing tracks in the Mixxx database to prevent inconsistencies with file tags #3811 
- Update library schema to 37 for synchronizing file modified time with track source on metadata import/export #3978 #4012 
- Track Metadata: Fix synchronization (import/export) of file tags #4628 #4631 #4847 #10782 
- Track Metadata: Do not overwrite unchanged multi-valued fields #12613 #12587 
- Optionally reset metadata on reimport if file tags are missing, enabled by „[Library] ResetMissingTagMetadataOnImport 1”). #4873 
- Logging: Suppress expected and harmless schema migration errors #4248 
- Fix handling of undefined BPM values #4062 #4063 #4100 #4154 #4165 #4168 
- Automatic analyze and optimize database #4199 
- Re-import and update metadata after files have been modified when loading tracks #4218 
- Re-enable shortcuts after editing controls #4360 #10184 #10523 
- Fix accasional resetting of played counter in database #4578 #10617 
- Experimental: Fix writing of undefined MusicBrainz Recording ID #4694 
- Traktor library: fix importing track key #4701 
- Fix exporting m3u files with tracks and special characters by using the URL format #4752 
- Library Scanner: Sort files before adding them #10919 
- Library Scanner: Fix track relocation query #12462 
- MenuBar: Add shortcut for rescanning library #11136 
- Playlists: simplify import function, add whitespace before the # suffix #12246 
- Destroy PlayerInfo after EngineRecord is stopped to fix a debug assertion #12341 #12242 
- iTunes: Modularize importer and use - iTunesLibraryon macOS for compatibility with- Music.app#11353 #11256 #11446 #11444 #11503 #11500 #11509
- iTunes: Fix sporadic crash during unit tests due to a not initialized reference. #11666 
- iTunes: Permit duplicate playlist names by identifying playlists by id (rather than name) #11794 
- iTunes: Re-enable test and add - composer,- playCount,- lastPlayedAtand- dateAddedto model #11948
- Ensure that tracks with an invalid BPM are re-analyzed #2776 
- Add support for exporting crates, playlists and the library to Engine Prime and Denon standalone controllers #2753 #2932 #3102 #3155 #3621 #3776 #3787 #3797 #3798 #4025 #4087 #4102 #4143 #4463 #11815 #12309 #12005 #11816 #11720 #11834 #12452 #11979 
- Rekordbox: Save all loops and correct AAC timing offset for CoreAudio #2779 
- Rekordbox: Fix missing playlists due to invalid child ID #10955 
- Rekordbox: Fix unhandled exception when parsing corrupt PDB files #10452 #4040 
- Improve log messages during schema migration #2979 
Sync
- Add support for setting an explicit leader for sync lock #2768 #3099 #3695 #3734 #3698 #3864 #3867 #3921 #4119 #4135 #4149 #4276 #3944 #11828 #11831 #11829 #12431 #11788 #12234 #12499 
- Fix pitch issue with dynamic tracks and sync while cloning tracks #12515 
- Fix issue with half/double BPM calculation when using sync #3899 #3706 
- Sync Lock: Don’t seek phase when disabling sync #4169 
- Sync Lock: Fix issues with single-playing syncables #4155 #4389 
- Re-sync to leader after scratching #4005 
- Fix audio artifacts when fading from or to zero #4363 
- EngineBuffer: Fix assert when new track is loaded during playback with sync #4682 
Audio Codecs
- Add support for m4v files #4088 
- Fix recovering from FAAD2 decoding issues #2850 
- MP3: Log recoverable errors as info instead of warning #4365 
- MP3: Garbage detection fix #12464 
- Improve robustness of file type detection by considering the actual MIME type of the content. #7970 #4356 #4357 
- Fix file type detection when file has wrong file extension by determining the MIME type from content #4602 #4600 #4615 #7970 #10624 #4683 #10669 
- Fix type detection of AIFF files #4364 
- Fix synchronization time stamps of ModPlug files #4826 #10758 
- ID3v2 parsing: Improve log warnings #4610 
- ID3v2 parsing: Fix inconsistent import of comment field #11249 
- Fix missing file name in file metadata error message #11965 #11964 
- Verify the „first sound” of as an analysis sanity check #4773 #11887 #11946 #11940 
- Fix zeros in the first m4a chunk on Linux #11879 
- Fix overlapping buffers when decoding m4a files using ffmpeg #11760 #11545 
- Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer #4251 #4252 #10500 
Audio Engine
- Add support for Saved loops #2194 #3267 #3202 #4265 #7574 #11006 #11003 #12637 #12632 #12623 #12618 
- Fix an issue when pressing multiple cue buttons at the same time #3382 
- Fix synchronization of main cue point/position #4137 #10478 #4153 
- Adjust ReplayGain: Allow user to update the replaygain value based on a deck pregain value #4031 
- Add halve/double controls for beatjump size #4269 
- Implement Un-replace by double-clicking eject #11246 
- Allow to cancel active loops via beatloop_activate #4328 #9950 
- Slip Mode: Preserve active (regular) loop when leaving Slip Mode #11435 #6993 
- Fix possible crash when ejecting track from a controller #11884 #11819 
- Fix an assertion when loop is before track start #4383 #10556 
- Fix and improve snapping to beats in various situations #4366 #10541 
- Don’t wipe inapplicable sound config immediately #4544 
- Rubberband: Support Version 3 „finer” (near-hi-fi quality) setting, on Windows and MacOs and when available on Linux #4853 #4855 #11047 
- Rubberband: Add missing padding, preventing it from eating the initial transient #11120 
- Rubberband: Improve mono-compatibility for R3 „finer” #11418 
- Auto DJ: Fix sharp cut transition after cueing a track without a defined intro #11629 #11621 
- Auto DJ: Don’t use removed Intro end and outro start makers, use transition time instead #11830 
- Auto DJ: Fix GUI freeze when updating duration for many selected tracks #12530 #12520 #12537 
- KeyControl: fix keylock/unlock bugs, reset pitch_adjust 4710 
- Looping: fix asserts for loop move #11735 
- ReadAheadManager: fix loop wraparound reader condition #11717 
- Slip mode: consider loop for background position only if it was enabled before slip #11848 #11844 
Controller Mappings
- new: Hercules DJControl MIX controller mapping #11279 
- new: Pioneer DDJ-FLX4 controller mapping based on DDJ-400 #11245 
- new: Traktor Kontrol S4 Mk3 controller mapping #11284 
- new: Traktor Kontrol Z1 HID controller mapping #12366 #12426 
- new: Yaeltex MiniMixxx controller mapping #4350 
- Behringer DDM4000 mixer: Update controller mapping #4262 #4799 
- Hercules DJ Console RMX: Replace not defined CO name pitch_reset by pitch_set_default #12441 
- Korg nanoKONTROL2: Don’t try to configure more than 4 main decks #12322 #12317 
- Korg nanoKONTROL2: Removed along with Mixco scripts #2682 
- MAudio Xponent: Removed along with Mixco scripts #2682 
- MIDI4lights: Give beginTimer callbacks the anonymous function expression form #12048 
- Novation Twitch: Removed along with Mixco scripts #2682 
- Numark DJ2GO2 Touch: Fix sampler, hotcue, beatloop buttons #4287 #11595 
- Numark MixTrack Pro 3: Fix beginTimer callback syntax #12401 #12369 
- Roland DJ-505: Make blinking lights blink in sync and other improvements #4159 #4517 
- Traktor Kontrol S2 MK1: Add calibration and refactor #11237 
- Traktor Kontrol S2 MK2 fix loaded chain preset CO #11823 #10667 
- Traktor Kontrol S2 MK3: Use FX select buttons to set quick effect presets #11702 
- Traktor Kontrol S3: script improvements, vanilla-like FX behavior, control initialization, better scratching, and more #11199 #10645 #12409 #12510 
- Various mappings: Fix - waveform_zoomranges #12393
- Various mappings: Ensure required samplers are created #12769 
Controller Backend
- Never raise a fatal error if a controller mapping tries access a non-existent control object #2947 
- Add support to access HID FeatureReports #11326 #10828 #11664 
- Add function to request HID InputReports, to determine controller state at startup #3317 
- Show otherwise hidden HID devices in developer mode #11317 
- Use hidapi’s hidraw backend instead of libusb on Linux #4054 
- Fix broken HID controller mappings Traktor Kontrol S2 MK3 and others #11470 #11461 
- HID mappings: Modernize and document common-hid-packet-parser.js #4718 #4894 
- HID mappings: Small fixes for common-hid-packet-parser.js #11925 
- HID mappings: Add [Main] to the list of valid groups #12102 #12406 
- Consistently use „mapping” instead of „preset” to refer to controller mappings #3472 
- Introduce new control object - [Library],show_track_menuto open/close the track menu #4465
- Introduce new control object - [Library],sort_focused_column#4749 #4763 #10719
- Introduce new control objects - [Master],indicator_250millisand- [Master],indicator_500millis#4157
- Introduce new control object - [Library],clear_search#4331
- Introduce new control object - [Library],focused_widgetto focus library directly #4369 #4490
- Introduce new control object - LoadTrackFromDeckand- LoadTrackFromSampler#11244
- Don’t automatically enable controller if it was disabled before #4244 #10503 
- Enable Qt logging categories for controller logging #4523 
- Fix segfault during Mixxx shutdown due to a stale controller connection #4476 #10553 
- Components JS: Fix syncbutton #4329 
- Components JS: Add script.posMod for euclidean modulo #11415 
- Components JS: make JogWheelBasic correctly switch which deck it controls #11913 #11867 
- Add Trace for the mapping connections, to allow JS profiling #4766 
- Controller preferences: Allow creating a new mapping with «No Mapping» selected #4905 #10540 #10539 
- Add TypeScript declarations for engine and controller scripting API to improve IDE code completion during mapping developent #4759 
- Retire Mixco Scripts #2682 
- Relax strictness of - ControllerScriptInterfaceLegacymethods. #11474 #11473
- Do not show ControlObject aliases in developer tools window #12265 
- Do not use deprecated COs in C++ code/Keyboard Mapping/Skins #11990 
- Fix creation of Sampler - end_of_trackControlObjects #12305 #12304
- Make WHotcueButton learnable with the MIDI Wizard #12252 
- Control picker menu: add - waveform_zoom_set_default#12247
- Remove deprecated ControlObjects from Skins #12030 
- Log warning if deprecated control is used #11972 
- ControlObject alias improvements #11973 
- Keyboard mapping: Repeat certain control actions if key is held #12474 
- Keyboard mapping: Return triggers double-click, move Preview functions to P / Shift+P #12639 
- Keyboard mapping: Various fixes #12730 
- Update keyboard sheet #12578 
- Logging: Add support for - QT_MESSAGE_PATTERNenvironment variable #3204 #3518
- Avoid issue with - stars_up/_downControlObjects #12591
- hotcue_X_color control: Fix color not stored in cue #12733 
Skins
- Increase pixmapCache size limit and made it dependent on devicePixelRatio (for HiDPI/Retina displays) #12416 
- Make beat indicator control behaviour more natural #3608 
- Fix crash when starting without a valid skin directory #4575 #10461 
- Use info not warning for skin COs #4525 
- Passthrough: improve UI / UX #4794 
- Knob: Hide cursor on wheel event for .8s #11077 
- Move skin control hack to c++ (spinny/cover controls, mic/ducking controls) #11183 
- LateNight: Move logo to the right #4677 
- LateNight: Use correct tooltip for key control toggle #4696 
- LateNight: Add toggles to show loop and beatjump controls #4713 
- LateNight: Remove blinking play indicator from mini samplers #4807 
- LateNight: Fix xfader icons in samplers and aux units #12477 
- LateNight: use default RGB waveform colors #12712 
- Add LateNight (64 Samplers) #11715 
- Deere: fix skin/library layout (library missing in default view with Qt6) #11912 
- Deere: use decks» waveform colors for sliders (Vol + pitch) #12129 #10240 
- Shade: Remove initial setting of now accessible effect controls #4398 #10557 
- Shade: Audio Latency meter fix #11601 
- Tango: allow to toggle crossfader independently from mixer #12703 #12654 
- Fix 500ms blocking of the whole event loop, when holding mouse down on title bar on Windows #12359 #12358 #12433 #12458 
- Change SKIN_WARNING to show the skin file and line first, then c++ context #12253 
- Fix style of selected QComboBox items on Windows #12339 #12323 
- Add - skins:path alias #12463
- Remove - Text, use- TrackPropertyor- Label#12004
- Beat spinBox/AutoDJ spinbox: Enter & Esc also move focus to library #4617 #4845 
- Add effect chain menu button to Deere, polish in Tango #12735 
- Skins: reload default.qss when (re)loading a skin #12219 
Waveforms and GL Widgets
- Waveform overhaul based on QOpenGlWindow and introduce full GLSL shader based waveforms, vumeters and spinnies. This fixes a couple of performance issues mainly on macOS. #10989 #10416 #11460 #11556 #11450 #10416 #11734 #12466 #12678 #12731 
- Default to 60 Hz waveform refresh rate #11918 
- Introduce a VSsync mode driven by a phase locked loop #12469 
- Make VSync mode 0 refer to the default mode and make ST_PLL the default on macOS, ST_TIMER otherwise #12489 
- Use WaveformWidgetType::AllShaderRGBWaveform as autoChooseWidgetType #11822 
- Add new „RGB Stacked” waveform #3153 
- Fix micro jitter from clamping position offset to vsync interval #12470 
- Avoid flickering when resizing #12487 
- Invert scroll wheel waveform zoom direction to mach other applications #4195 
- Waveform scrolling: Use set interval setting to fix performance degradation for AMD graphics adapters #11681 #11617 
- Fix OpenGL version detection #11673 
- Fix stopped waveform rendering in case of vinyl control #11977 #10764 
- Fix visual play position related to looping #11840 #11836 #12538 #12506 #12513 
- Fix for visual position while scratching outside of an activated loop #12281 #12274 
- VU-Meter: Don’t use OpenGL by default #11722 
- Make scaling of GLSL RGB and RGB L/R waveform amplitudes consistent with simple waveform #12205 #12356 
- avoid overlapping marks #12273 
- gradually „compact” the markers if the waveform height is reduced #12501 
- Fix clamping of the index for drawing the waveform left of zero position #12411 
- Fix EGL support #11982 #11641 #11935 #11985 #11982 #11995 #11994 #12607 
- Preferences: recall correct waveform type when selecting an overview type #12231 #12226 
Cover Art
- Prevent wrong cover art display due to hash conflicts #2524 #4904 
- Add background color for quick cover art preview #2524 
- Fix coverart tooltip if cover is not cached #12087 
- Add cover art fetcher to the Musicbrainz dialog #10908 #4871 #10795 #10796 #10902 #4851 #11938 #11086 #12041 #12300 #12543 #12532 
- CoverArtCache refactoring + Fix scrolling lag after updating Mixxx #12009 
Efecte
- Effect refactoring: Effect chain saving/loading, parameter hiding/rearrangement, effect preferences overhaul #4467 #4431 #4426 #4457 #4456 #4459 #4462 #4466 #4468 #4472 #4470 #4471 #4483 #4482 #4484 #4486 #4502 #4501 #4518 #4532 #4461 #4548 #4503 #4686 #4691 #4704 #4748 #4833 #10762 #4884 #10802 #10801 #4899 #8817 #10868 #11055 #11135 #11185 #11242 #10837 #10834 #11424 #11376 #11456 #11454 #11695 #12633 #12561 #10859 #10777 #11886 #12282 #12277 #11705 #4469 #11902 #10605 #4702 #10579 #4501 #4502 #4503 #4590 #4593 #11062 
- Add Noise effect #2921 
- Add Pitch Shift effect #4775 #7389 #4810 #4901 #10858 #12481 
- Add Distortion effect #10932 
- Effect parameter knobs: Briefly show parameter value in parameter name widget #11032 #9022 #11034 
- Effect parameter knobs: Implement ValueScaler::Integral, snap value to int #11061 
- Show effect parameter units in parameter name label #11041 #11194 
- Fix gain compensation for the Moog filter #11177 
- Fix memory leak in AutoPan #11346 
- EngineFilterDelay: clamp wrong delay values #4869 
- Clear effect buffer after ejecting a track #10692 
- Center Super knob when loading empty (QuickEffect) chain preset #12320 
- Update EffectSlot meta default value according to loaded effect #12480 #12479 
Target Support
- Added support for macOS ARM builds on M1/M2 Apple silicon #11398 
- Set app_id to fix Mixxx window icon on Wayland #12635 
- Require C++20 but keep Ubuntu Focal support #4889 #4895 #11204 #4832 #4803 #11551 #11573 
- Drop Ubuntu Bionic support, require Qt 5.12 #3687 #3735 #3736 #3985 
- Drop Ubuntu Groovy and Impish support because of EOL #4283 #4849 #12353 
- Add NixOS support #2820 #2828 #2836 #2827 #2827 #2828 #3113 #3089 #3545 
- Windows packaging: Use Azure for signing exe, msi and all dlls with timestamp and sha256 #12465 #4824 #4825 
- macOS packaging: Fix signing and migrate script to - notarytool#12123 #12089 #12095
- macOS packaging: Enable app sandbox and fix related issues #12138 #12457 #12137 #11552 #4018 #10373 
- macOS: Use rounded Mixxx Icon to follow Apples style guide #4545 #10958 
- macOS packaging: Capitalize bundle and executable name (Mixxx.app) #12656 
- OpenBSD: Allow building Mixxx #11083 
- Experimental iOS support #12665 #12666 #12662 #12663 #12661 #12650 
- Fail early in case Taglib 2.0 is found #12709 
Track properties
Preferințe
- Sound Hardware: auto select free device channels #11859 #10163 
- Various layout and UX fixes #12429 #12399 #11663 #11926 #12057 
- macOS: set preferences dialog title to the selected page title #11696 
- macOS: fix the preferences menu and opening the settings directory #11679 
- macOS: fix slider styling in preferences dialog #11647 
- Vinyl control: Improve quality indicator #3279 
- Mixer: apply & save settings only in slotApply(), fix bugs, improve UX #11527 
- Interface: avoid unneeded skin reload, clean up #11853 
- Library: Add link to settings files info in the manual #4367 
- Controllers: add search bars to mapping tables #11165 
- Join Franch translations to „fr” and remove all untranslated English strings. #12699 
- Apply changes from all pages when pressing Apply (like when pressing Okay) #12194 
Known issues
- Volume / Loudness spikes on Windows with M4A/AAC files. Last known working version is Windows 10 build 17763. Affected versions are Windows 10 build 19041 and Windows 11 build 22000. #12289 #11094 
- macOS: Library entries are now sorted using the language depending Unicode Collation Algorithm (UCA). #12517 
- macOS: Visual glitches with the main EQ sliders #12517 
- Linux: possible crash when enabling a MIDI controller #12001 Introduce with Qt 5.15.5, fixed in Qt 5.15.17 and Qt 6.6.3 
- Extra Samplers are created during startup, when found in a saved Sampler Bank #12657 #12809 
Older Changelog
Find older changelog entries here.
Vezi și
For an overview of previous versions, take a look at the timeline.