16.8. Changelog
2.5.2 (unreleased)
Library
Fix playlist export when name contains a dot #14737
Controller Mappings
Controller Backend
Target support
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
playposition
instead of non-existentvisual_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
midino
0 in MidiController::makeInputHandler() `#14266 #14265Fix: provide
incomingData
to MIDI sysex mappings #14368 #13133Fix 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
eject
after moving track file to trash #14402Fix 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_menu
at index position #14385Search 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_move
ControlEncoder #12376Looping/Beatjump: use seconds if track has no beats #12961 #11124
Add Track colour palette cycling controls
track_color_next
andtrack_color_prev
to library, decks and samplers #13066 #12905Recording: 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
Effect Meta Knob: draws arc from default meta position #12638 #12634
Handle not supported files when dragging to waveforms and spinnies #13206
Tooltips: Improve
rate_up/down
description regarding pitch vs. speed #12590Tooltips: Add description for expand/collapse samplers buttons #13005 #12998
Track label widgets: Set
show_track_menu
only for main decks #12978MacOS: 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
TERM
variable #13486Command line interface: Add option
--start-autodj
to start Auto DJ immediately after Mixxx start. #13017 #10189Logging: 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
Effects
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
Preferences
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
Drop lodash dependency in ComponentJS #12779
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.sh
for building on Fedora #13069Lenient 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-osx
triplets #11933Disable warning in lib/apple code #13522
GitHub CI: Use retry loop for CPack to work around macOS issue #13991
Github CI: Enable
WARNINGS_FATAL
on 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
Allow to drop files with supported MIME type regardless off the file extensions #13209 #13204
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 #13463Engine 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
/_prev
COsControlPushButton
s to allow direct mappings #13764Scaled 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 #13121Hercules 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
iTunesLibrary
on macOS for compatibility withMusic.app
#11353 #11256 #11446 #11444 #11503 #11500 #11509iTunes: 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
,lastPlayedAt
anddateAdded
to model #11948Ensure 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_zoom
ranges #12393Various 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_menu
to open/close the track menu #4465Introduce new control object
[Library],sort_focused_column
#4749 #4763 #10719Introduce new control objects
[Master],indicator_250millis
and[Master],indicator_500millis
#4157Introduce new control object
[Library],clear_search
#4331Introduce new control object
[Library],focused_widget
to focus library directly #4369 #4490Introduce new control object
LoadTrackFromDeck
andLoadTrackFromSampler
#11244Don'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
ControllerScriptInterfaceLegacy
methods. #11474 #11473Do 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_track
ControlObjects #12305 #12304Make WHotcueButton learnable with the MIDI Wizard #12252
Control picker menu: add
waveform_zoom_set_default
#12247Remove 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_PATTERN
environment variable #3204 #3518Avoid issue with
stars_up/_down
ControlObjects #12591hotcue_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 #12463Remove
Text
, useTrackProperty
orLabel
#12004Beat 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
Effects
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 #12095macOS 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
Preferences
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.
参考
For an overview of previous versions, take a look at the timeline.