---
Type: desktop-application
ID: org.mixxx.Mixxx
Package: mixxx
ProjectLicense: GPL-2.0
Name:
C: Mixxx DJ Software
Summary:
C: Everything you need to perform live DJ mixes
Description:
C: >-
<p>
Mixxx is free DJ software that gives you everything you need to perform
live DJ mixes. Blend songs together with automatic BPM matching and
remix on-the-fly with looping and hot cues.
Whether you're a pro DJ or just getting started, Mixxx has you covered.
</p>
<p>
Mixxx works with ALSA, JACK, OSS and supports many popular DJ
controllers. Key features include:
</p>
<ul>
<li>Parallel or split scratchable waveform displays</li>
<li>MP3, OGG, WAVE, FLAC, and optional AAC (M4A) playback</li>
<li>WAVE, OGG, and optional MP3 recording</li>
<li>Fast, database-powered library</li>
<li>Crates and playlists for organizing your music</li>
<li>Reads iTunes, Traktor, and Rhythmbox libraries</li>
<li>Cross-platform - works on Windows, Mac OS X and Linux</li>
<li>Shoutcast and Icecast broadcasting</li>
<li>Support for many DJ MIDI and HID controllers out-of-the-box</li>
<li>Advanced MIDI scripting engine for maximum flexibility</li>
<li>Vinyl emulation with Serato, Traktor, and Mixvibes timecode support</li>
<li>Beat and key detection</li>
<li>ReplayGain volume normalization</li>
<li>Automatic crossfading with Auto DJ</li>
<li>Skinnable interface with several skins bundled</li>
</ul>
Categories:
- AudioVideo
- Audio
- Midi
- Mixer
- Player
- Recorder
- Sequencer
Keywords:
C:
- dj
- music
- alsa
- jack:realtime
- standalone
- Terminal=false
Url:
contact: https://mixxx.zulipchat.com
homepage: https://mixxx.org
bugtracker: https://github.com/mixxxdj/mixxx/issues/
help: https://mixxx.org/support/
translate: https://explore.transifex.com/mixxx-dj-software/
donation: https://mixxx.org/donate/
Icon:
cached:
- name: mixxx_mixxx.png
width: 48
height: 48
- name: mixxx_mixxx.png
width: 64
height: 64
- name: mixxx_mixxx.png
width: 128
height: 128
remote:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/icons/128x128/mixxx_mixxx.png
width: 128
height: 128
stock: mixxx
Launchable:
desktop-id:
- org.mixxx.Mixxx.desktop
Provides:
modaliases:
- usb:v22F0p0008d*
- usb:v1C75p*
- usb:v1397p*
- usb:v154Ep*
- usb:v1157p*
- usb:v23C7p*
- usb:v06F8p*
- usb:v15E4p*
- usb:v0944p*
- usb:v17CCp*
- usb:v057Ep*
- usb:v08E4p*
- usb:v2B73p*
- usb:v13E5p*
- usb:v200Cp*
- usb:v0582p*
- usb:v054Cp*
Screenshots:
- default: true
caption:
C: Mixxx with the default LateNight PaleMoon skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-1_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-1_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-1_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-1_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-1_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the LateNight Classic skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-2_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-2_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-2_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-2_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-2_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the Deere skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-3_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-3_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-3_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-3_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-3_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the Shade Classic skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-4_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-4_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-4_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-4_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-4_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the Shade Dark skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-5_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-5_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-5_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-5_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-5_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the Shade Summer Sunset skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-6_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-6_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-6_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-6_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-6_orig.png
width: 3840
height: 2160
- caption:
C: Mixxx with the Tango skin
thumbnails:
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-7_1248x702@1.png
width: 1248
height: 702
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-7_752x423@1.png
width: 752
height: 423
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-7_624x351@1.png
width: 624
height: 351
- url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-7_224x126@1.png
width: 224
height: 126
source-image:
url: org/mixxx/Mixxx/c2e3cb4fecc8ef06e944e8cddde4f416/screenshots/image-7_orig.png
width: 3840
height: 2160
Releases:
- version: 2.5.0
type: stable
unix-timestamp: 1734998400
description:
C: >-
<p>
Modernized Platform: Update to Qt6
</p>
<ul>
<li>
Mixxx is now using Qt6, offering improved performance and enhanced compatibility with modern systems.
#11863
#11892
</li>
<li>
Build system defaults to Qt6. Qt5 build support will be dropped with Mixxx 2.6
#11934
</li>
<li>
Drop support for macOS versions earlier than 11
</li>
<li>
Drop support for Windows versions earlier than Windows 10 build 1809
</li>
<li>
Drop support for Ubuntu versions earlier than 22.04
</li>
<li>
Require a C++20 compiler
</li>
<li>
Support GCC 14
#13504
#13467
</li>
<li>
DlgAbout: Add Qt version to the dialog
#11862
</li>
<li>
WWidget: Disable touch events on macOS (fixing trackpad issues on Qt 6)
#11870
</li>
<li>
Various Skin adjustments
#11970
#11957
#12050
#12939
#13242
#14014
#13535
#14013
#13959
#14034
#12972
#14035
</li>
<li>
Various Library adjustments
#12380
#12478
#13035
#13033
#12488
#12216
#13448
</li>
</ul>
<p>
Engine
</p>
<ul>
<li>
Beats: allow undoing the last BPM/beats change
#12954
#12774
#10138
#13339
</li>
<li>
Add beatloop anchor to set and adjust loop from either start or end
#12745
#13241
</li>
<li>
Add Rate Tap button
#12104
</li>
<li>
Store/restore regular loop when toggling rolling loops
#12475
#8947
</li>
<li>
Add
beats_translate_move
ControlEncoder
#12376
</li>
<li>
Looping/Beatjump: use seconds if track has no beats
#12961
#11124
</li>
<li>
Add Track colour palette cycling controls
track_color_next
and
track_color_prev
to library, decks and samplers
#13066
#12905
</li>
<li>
Add Tempo locking controls
#13041
#13041
#13038
#13199
</li>
<li>
Recording: Fix bogus timestamp in CUE sheet after restarting a recording
#13966
#13964
</li>
<li>
Improve Taglib/SoundSource logging
#13541
</li>
</ul>
<p>
Skins / Interface
</p>
<ul>
<li>
Toggle the menubar with single Alt key press (auto hide)
#11526
#13301
</li>
<li>
Fullscreen toggle rework
#11566
#13189
#13030
</li>
<li>
Allow to edit track title and artist directly within the decks via a delayed double-click
#11755
#13930
</li>
<li>
Require a minimum movement before initiating the drag&drop of tracks
#12903
</li>
<li>
Add type toggle to cue popup
#13215
</li>
<li>
Effect Meta Knob: draws arc from default meta position
#12638
#12634
</li>
<li>
Handle not supported files when dragging to waveforms and spinnies
#13206
</li>
<li>
Tooltips: Improve
rate_up/down
description regarding pitch vs. speed
#12590
</li>
<li>
Tooltips: Add description for expand/collapse samplers buttons
#13005
#12998
</li>
<li>
Track label widgets: Set
show_track_menu
only for main decks
#12978
</li>
<li>
MacOS: App proxy icon of the playing track to the window title
#12116
</li>
<li>
Auto DJ: Force-show decks 3/4 if we are going to use them
#13455
</li>
<li>
Auto DJ: Add new random tracks if one track does not exists
#13551
</li>
<li>
Allow to set LaunchImage style per color scheme
#13731
</li>
<li>
Show wait cursor when re/loading a skin (not during startup)
#13747
</li>
<li>
LateNight: Merge vinyl control toggle and status light
#12947
#10192
</li>
<li>
LateNight, Deere, Tango: Deactivate beatgrid edit controls if BPM is locked
#13320
#13323
#13325
</li>
<li>
LateNight: Add/tweak CueDelete icons
#13495
#13492
</li>
<li>
LateNight: Use Classic launch image style also for 64 samplers version
#13796
</li>
<li>
Adjust some skin controls, to allow point-and-click mapping
#13906
</li>
<li>
PreviewDeckN,LoadSelectedTrackAndPlay toggles play/pause if the track is already loaded
#12920
#9819
</li>
<li>
Command line interface: Determine whether to color output based on
TERM
variable
#13486
</li>
<li>
Command line interface: Add option
--start-autodj
to start Auto DJ immediately after Mixxx start.
#13017
#10189
</li>
<li>
Logging: Include timestamps in messages by default
#11861
</li>
<li>
Logging: Limit mixxx.log size to 100 MB or via --log-max-file-size
#13684
#13660
</li>
<li>
Fix skin reload after changing color scheme
#13847
</li>
</ul>
<p>
Effects
</p>
<ul>
<li>
Add Compressor effect
#12523
</li>
<li>
add Glitch effect
#11329
</li>
<li>
Add backend for Audio Unit (AU) plugins on macOS
#12112
#13938
</li>
<li>
Effect Meta knob: Draw arc from default meta position
#12638
#12634
</li>
<li>
Show newly added effects, read/write HiddenEffects
#13326
#11343
</li>
</ul>
<p>
Library
</p>
<ul>
<li>
Shortkeys Cut, Copy, Paste for track list management
#12020
#13361
#13364
#13958
#13100
</li>
<li>
Playlists: move tracks with Alt + Up/Down/PageUp/PageDown/Home/End
#13092
#10826
#13098
</li>
<li>
Search: Add special BPM filters
#12072
#8191
</li>
<li>
Search: Add "OR" search operator
#12061
#8881
</li>
<li>
Search: Add 'type' filter
#13338
</li>
<li>
Search: Add 'id' filter
#13694
</li>
<li>
Search related Tracks menu: Allow to use multiple filters at once
#12213
#12211
</li>
<li>
Track menu: Rephrase "Reset" to "Clear"
#12955
</li>
<li>
Track menu: Add support for scaling BPM by different ratios
#12934
#9133
</li>
<li>
Track menu: Remove from disk: stop and eject all affected decks
#13214
</li>
<li>
Track menu: add star rating
#12700
#10652
</li>
<li>
Track menu: Show Properties in Missing and Hidden view
#13426
</li>
<li>
Add multi-track property editor / batch tag editor
#12548
#9023
#13299
#13609
#13597
#13631
</li>
<li>
Track property editor: focus the editing field in the track properties that corresponds to the focused column
#13841
#14036
</li>
<li>
Computer feature: add sidebar action "Refresh directory tree"
#12908
</li>
<li>
Add feedback to directory operations (add, remove, relink)
#12436
#10481
</li>
<li>
Add ability to import external playlists as crates
#11852
</li>
<li>
Add 'Shuffle playlist' sidebar action
#12498
#6988
</li>
<li>
Playlists: Update of playlist labels after adding tracks
#12866
#12761
</li>
<li>
Tracks: Custom color for missing tracks
#12895
</li>
<li>
Tracks: Custom text color for played tracks (qss)
#12744
#5911
#12912
#13538
</li>
<li>
History: Show track count and duration in sidebar
#12811
#12788
</li>
<li>
Don't allow pasting tracks into locked playlists/crates or History
#12926
</li>
<li>
Optimize Library scrolling
#13358
</li>
<li>
Keep the metadata key text unchanged, use it as the origin of information
#11096
#11095
#13650
#14011
#14008
#14020
</li>
<li>
Center date values, right-align Track #
#13674
</li>
<li>
Analysis: Fix stop button when analyzing crate/playlist
#13902
</li>
<li>
Add a debug message, which appears when event loop processing in Mixxx application takes very long
#12094
#13900
#13889
#13903
#14012
</li>
</ul>
<p>
Preferences
</p>
<ul>
<li>
Add load point option 'First hotcue'
#12869
#12740
</li>
<li>
MIDI Input editor: allow selecting multiple Options
#12348
</li>
<li>
Apply changes only after pressing Apply in color preferences
#13302
</li>
<li>
Add/reorder tabstops in Library and Waveform preferences
#13846
</li>
<li>
Add missing spacer in interface preferences
#13094
</li>
<li>
Fix fetching of soundcard sample rate
#11951
11949
</li>
</ul>
<p>
Controller Mappings
</p>
<ul>
<li>
Denon MC7000: Add optional jog wheel acceleration to the controller mapping
#4684
</li>
<li>
Denon MC7000: Unify parameter button logic and add customizable modes
#13589
</li>
<li>
Denon MC7000: Add sampler options to mapping settings
#13950
</li>
<li>
MIDI for light: Implement new Active deck heuristic
#13513
</li>
<li>
MIDI for light: Add settings GUI
#13721
</li>
<li>
Numark Scratch: Add controller settings
#13404
</li>
<li>
Pioneer DDJ-FLX4: Mapping improvements
#12842
</li>
<li>
Traktor Kontrol S4 MK3: Add setting definition for
#12995
</li>
<li>
Traktor Kontrol S4 MK3: Software mixer support and default pad layout customisation
#13059
</li>
<li>
Traktor Kontrol S4 Mk3: Rework jogwheel speed compute and motorized platter
#13393
</li>
<li>
Traktor Kontrol S4 Mk3: Revert QuickEffect preset offset
#13997
</li>
<li>
Traktor Kontrol S4 Mk3: Correct wheel timestamp wrap-around
#14016
</li>
</ul>
<p>
Controller Backend
</p>
<ul>
<li>
Send sysex to all handlers
#12827
</li>
<li>
Speed up midi sysex receive
#12843
</li>
<li>
Add control for showing a deck's track menu
#10825
</li>
<li>
Removed old examples HID keyboard and HID trackpad
#12977
</li>
<li>
Reduce log noise with HID device
#13010
#13125
</li>
<li>
Allow controller mapping to discard polling
#12558
</li>
<li>
Add support for mapping user settings
#11300
#13046
#13057
#13045
#13656
#13738
#13979
#13990
</li>
<li>
Registering MIDI Input Handlers From Javascript
#12781
#13089
</li>
<li>
Controller IO table: Fix display text for Action/control delegate
#13188
</li>
<li>
Drop lodash dependency in ComponentJS
#12779
</li>
<li>
Support for bulk devices on Windows and Mac
#13008
</li>
<li>
Drop lodash dependency in ComponentJS
#12779
</li>
<li>
Fix pending reference to the old mapping after selecting 'No mapping'
#13907
</li>
<li>
Fix crash with GoToItem when no app windows has the focus
#13657
</li>
</ul>
<p>
Waveforms
</p>
<ul>
<li>
Visualize slip mode position by splitting waveform (RGB GLSL only)
#13002
#13256
#10063
</li>
<li>
Show beats and time until next marker in the waveform
#12994
#13311
#13953
#13314
</li>
<li>
Don't elide hotcue labels
#13219
#10722
</li>
<li>
Allshader RGB, Filtered and Stacked Waveforms using textures for waveform data
#13151
#12641
</li>
<li>
Allow changing the waveform overview type without reloading the skin
#13273
</li>
<li>
Overview: Update immediately, when the normalize option or global gain changed
#13634
</li>
<li>
Overview: Clear pickup position display when opening cue menu
#13693
</li>
</ul>
<p>
Experimental Features
</p>
<ul>
<li>
QML Skin: Can be tested via the --qml command line option
#13152
#12139
#13152
</li>
<li>
QML Skin related changes
#11423
#12559
#12549
#12541
#12795
#12844
#12546
#12794
#12536
#13058
#12604
#3967
#13009
#13009
#13011
#13506
</li>
<li>
iOS support: Mixxx can be built for iOS
#12672
</li>
<li>
iOS support related changes
#12689
#12714
#12716
#12698
#12676
#12688
#13379
#13378
#13383
</li>
<li>
Emscripten/WebAssembly support, to run Mixxx hardware independent in a browser
#12918
</li>
<li>
Emscripten/WebAssembly related changes
#12910
#12913
#12916
#12915
#12921
#12922
#12931
#12940
#12945
#12952
#12930
#12917
</li>
</ul>
<p>
Target support
</p>
<ul>
<li>
Maintain GL ES support
#13485
</li>
<li>
Tools: Add
rpm_buildenv.sh
for building on Fedora
#13069
</li>
<li>
Lenient taglib 2.0 guard
#12793
</li>
<li>
MixxxApplication: Support linking Qt statically on Linux
#12284
</li>
<li>
FindSndFile: Link mpg123 in static builds
#13087
</li>
<li>
FindPortMidi: Link ALSA in static builds on Linux
#12292
#12291
</li>
<li>
FindLibudev: Link hidapi and libusb with libudev in static builds on Linux
#12294
</li>
<li>
FindVorbis: Link ogg in static builds
#12297
</li>
<li>
FindSleef: Use OpenMP in static builds
#12295
</li>
<li>
macOS packaging: Enable app sandbox in ad-hoc-packaged (i.e. non-notarized) bundles too
#12101
</li>
<li>
CMakeLists: Match arbitrary
arm64-osx
triplets
#11933
</li>
<li>
Disable warning in lib/apple code
#13522
</li>
<li>
GitHub CI: Use retry loop for CPack to work around macOS issue
#13991
</li>
<li>
Github CI: Enable
WARNINGS_FATAL
on macOS, too
#11905
</li>
</ul>
- version: 2.4.2
type: stable
unix-timestamp: 1732579200
description:
C: >-
<p>
Controller Mappings
</p>
<ul>
<li>
Denon MC7000: Fix star up/down logic by only handling button down events
#13588
</li>
<li>
Intech TEK2: Add initial mapping
#13521
</li>
<li>
Korg Kaoss DJ: Update script
#12683
</li>
<li>
MIDI for light: Fix unsound timer handling
#13117
</li>
<li>
Novation Dicer: Remove flanger mapping with quickeffect toggle
#13196
#13134
</li>
<li>
Novation Launchpad X: Fix detection on macOS
#13691
#13633
</li>
<li>
Numark PartyMix: Fix EQ (script binding) display name
#13255
</li>
<li>
Numark Scratch: Add initial mapping
#4834
#13375
</li>
<li>
Pioneer DDJ-400 and DDJ-FLX4: Remove tap beat mapping to resolve conflict with toggle quantize and fix shift + play
#13815
#13813
#13857
</li>
<li>
Reloop Beatmix 2/4: Fix eject button and jog LED being lit on track unload
#13601
#13605
</li>
<li>
Reloop Mixage MK1, MK2, Controller Edition: Add initial mapping
#12296
</li>
<li>
Sony SIXAXIS: Fix mapping
#13319
</li>
</ul>
<p>
Fixes
</p>
<ul>
<li>
Handle not supported files when dragging to waveforms and spinnies
#13208
#13271
#13275
</li>
<li>
Fix Sqlite 3.45 builds by using only single quotes for SQL strings
#13247
#13257
</li>
<li>
LateNight: Use default colors for sampler overviews (like main decks)
#13274
</li>
<li>
Library: Allow to drop files to decks with unsupported or no file extensions
#13209
#13204
</li>
<li>
Update build environment with libdjinterop 0.21.0
#13288
</li>
<li>
Move to GitHub workflow runner macos-12
#13296
#13248
</li>
<li>
Recording: with empty config, save default split size immediately
#13304
</li>
<li>
Allow to drop files with supported MIME type regardless off the file extensions
#13209
#13204
</li>
<li>
Add support for Ubuntu Oracular Oriole and remove Lunar Lobster
#13348
</li>
<li>
Recordbox: Fix string decoding issues
#13293
#13291
</li>
<li>
Mixer preferences: Don't update EQs/QuickEffects while applying
#13333
</li>
<li>
Hardware preferences: Fix UX when applying config with missing/busy devices
#13312
</li>
<li>
Fix minor 64 bit CPU performance issue
#13355
</li>
<li>
Fix clicks at loop-out when looping into lead-in
#13294
</li>
<li>
Fix wrong pitch value on startup, caused by
components.Pot
#11814
#13463
</li>
<li>
Engine Prime: Fix build-failure
#13397
</li>
<li>
Engine Prime: Friendlier error message if export fails
#13524
</li>
<li>
macOs: Fix Keyboard shortcuts by not catching num key modifier
#13481
#13305
</li>
<li>
Skins: fix time display to allow AM/PM
#13430
#13421
</li>
<li>
Fix detection last sound if track does not end with silence.
#13545
#13449
</li>
<li>
Remove false positive critical warning related to library columns
#13165
#13164
</li>
<li>
Fix reading metadata for files with wrong extensions
#13218
#13205
</li>
<li>
History: remove purged tracks, auto-remove empty playlists
#13579
#13578
</li>
<li>
Synchronize AutoDJ next deck with top track in queue
#12909
#8956
</li>
<li>
Playlists: Update play duration and bold state in sidebar when dragging tracks into the playlist table
#13591
#13590
#13575
</li>
<li>
Playlists: Keep correct track selection (# position) when sorting
#13103
</li>
<li>
Track file export: Various fixes
#13610
</li>
<li>
Controller engine: Unify/improve logging, expand error dialog's Details box
#13626
</li>
<li>
Fix quantization in the effect engine (metronome effect)
#13636
#13733
</li>
<li>
Musicbrainz: Improved messages
#13672
#13673
</li>
<li>
Fix ReplayGain detection in case of short tracks
#13680
#13676
#13702
#13703
</li>
<li>
Track menu: Avoid crash and UX issues with track nullptr
#13685
</li>
<li>
Disable Properties shortcut in Computer feature views
#13698
</li>
<li>
Overview waveform: Add tooltip info about left-click dragging
#13739
</li>
<li>
Make
hotcue_focus_color_next
/
_prev
COs
ControlPushButton
s to allow direct mappings
#13764
</li>
<li>
Scaled svg cache to speed up drawing in hidpi mode
#13679
</li>
<li>
Update to libdjinterop 0.22.1 for Enigine Prime 4.0.1 support
#13790
</li>
<li>
HID: Avoid repeated error messages from hid_write()/hid_read() in case of errors
#13692
#13660
</li>
<li>
Fix unnecessary painting with covers in library
#13715
</li>
<li>
Fix check for unrelated decks playing when starting Auto DJ
#13762
#13734
</li>
<li>
Fix read before m_bufferInt during scratching
#13917
#13916
</li>
<li>
Fix waveform EQ High&Mid visualization
#13923
#13922
</li>
</ul>
- version: 2.4.1
type: stable
unix-timestamp: 1715126400
description:
C: >-
<p>
Controller Mappings
</p>
<ul>
<li>
Behringer DDM4000 & BCR2000: Fix exception in JS code
#12969
</li>
<li>
Denon DJ MC6000MK2: Fix mapping of filter knob/button
#13166
</li>
<li>
Denon DJ MC7000: Fix redundant argument and migrate to
hotcue_x_status
#13113
#13121
</li>
<li>
Hercules Inpulse 200: Configure shift-browser knob to scroll the library (quick)
#12932
</li>
<li>
Nintendo Wii Remote: Fix hid script regarding addOutput
#12973
</li>
<li>
Pioneer CDJ: Fix hid script regarding addOutput
#12973
</li>
<li>
Pioneer DDJ-FLX4: Add waveform zoom and other mapping improvements
#12896
#12842
</li>
<li>
Traktor Kontrol F1: Fixes for hid-parser and related script
#12876
</li>
<li>
Traktor S2 Mk1: fix warnings
#13145
</li>
<li>
Traktor S3: Fix mapping crash on macOS
#12840
</li>
<li>
Controller I/O table: sort action column by display string
#13039
</li>
</ul>
<p>
Target Support
</p>
<ul>
<li>
Fix various minor build issues
#12853
#12847
#12822
#12892
#13079
#12989
</li>
<li>
CMakeLists: Always prefer OpenGL framework on macOS
#13080
</li>
<li>
Use capitalized Mixxx in Windows installer and start menu
#13178
</li>
</ul>
<p>
Skins
</p>
<ul>
<li>
Deere: make sampler rows persist
#12928
</li>
<li>
Tango: Remove unneeded waveform Singleton
#12938
</li>
<li>
Tango 64: fix Main VU meter
</li>
<li>
Prevent possible crash in customs skins using parallel waveforms
#13043
#12580
#13136
</li>
<li>
Slider tooltip: consider orientation for up/down shortcut tooltips + add support for WKnobComposed
#13088
</li>
<li>
Tooltips: update 'hotcue' with saved loop features
#12875
</li>
<li>
Animate long press latching of sync button
#12990
#13212
</li>
<li>
Polish fx chain controls
#12805
</li>
<li>
Waveforms: draw loop gradient at the correct position
#13061
#13060
</li>
<li>
Waveform / spinnies: don't take keyboard focus on click
#13174
#13211
</li>
</ul>
<p>
Library
</p>
<ul>
<li>
Sidebar: show track count and duration of History playlists
#13020
#13019
#12788
#12880
#12882
</li>
<li>
Computer feature: update removable devices on Linux
#12893
#12891
</li>
<li>
Playlists: Prevent removing tracks from locked playlists
#12927
</li>
<li>
History feature: Fix removing deleted tracks after export
#13016
#13000
</li>
<li>
BPM display uses decimal separator of selected locale
#13067
#13051
</li>
<li>
Fix relink directory when migrate between Linux/macOS and Windows
#12878
</li>
<li>
Allow adding new directories while watched directories are missing
#12937
#10481
</li>
<li>
Require a minimum movement before initiating the drag&drop of tracks
#13135
#12902
#12979
</li>
<li>
iTunes/Serato/Traktor/Rhythmbox: Print error if library file could not be opened
#13012
</li>
<li>
Playlists: improve table update after deleting (purging) track files
#13127
</li>
<li>
Fix Color column width issue
#12852
</li>
<li>
Tracks: select track row when clicking the preview button (only when starting preview)
#12791
</li>
<li>
Library track menu: show Hide action also in Playlist & Crates
#11901
</li>
<li>
iTunes: Obtain FileAccess before accessing iTunes XML
#13013
</li>
</ul>
<p>
Miscellaneous
</p>
<ul>
<li>
Remove unnecessary unpolish operation of the style, before polish the new style
#12445
</li>
<li>
Developer Tools: Initially sort controls by group name, ascending
#12884
</li>
<li>
Waveforms: Fix scratching crossing loop boundaries
#13007
</li>
<li>
Prohibit un-replace when deck is playing
#13023
#12906
</li>
<li>
Track Properties dialog: Prevent wiping metadata when applying twice quickly
#12965
#12963
</li>
<li>
AutoDJ: Fix button state after error message about playing deck 3/4
#12976
#12975
</li>
<li>
Tagfetcher: Cache fetched covers
#12301
#11084
</li>
<li>
Avoid beats iterator being one off and DEBUG_ASSERT in Beats::iteratorFrom
#13150
#13149
</li>
<li>
Show hint if resource path in CMakeCache.txt does not exist
#12929
</li>
<li>
Always calculate the auto value for colorful console output
#13153
</li>
<li>
Fix FLAC recording on macOS and Windows
#10880
#13154
</li>
<li>
LV Mix EQ: Fix pops when enabling in effect rack
#13055
#13073
</li>
<li>
Fix hid addOutput
</li>
</ul>
- version: 2.4.0
type: stable
unix-timestamp: 1708041600
description:
C: >-
<p>
Music Library: Tracks Table & Track Menu
</p>
<ul>
<li>
Remember track selection when switching library features, fix initial selection etc.
#4177
#4536
#12321
#12064
#11196
#11130
</li>
<li>
Add new library column that shows the last time a track was played
#3140
#3457
#3494
#3596
#3740
</li>
<li>
Add keyboard shortcut Ctrl+Enter to open track properties
#4347
</li>
<li>
Home/End keys jump to first/last row
#4850
</li>
<li>
Wrap selection around at the bottom/top, only if Shift is not pressed
#11090
#11100
#12391
</li>
<li>
Allow to hide/remove tracks from the library by pressing the Delete key
#4330
#7176
#9793
#9837
#10537
#11239
#4577
#10577
#11171
#10761
</li>
<li>
Fix Recording table refresh issues
#4648
</li>
<li>
Show time in addition to the date in the timestamp column
#4900
#10726
#11020
</li>
<li>
Show only the date in Date Added / Last Played columns. Move the time of day to tooltips
#3945
</li>
<li>
Right-align BPM, duration & bitrate values
#11634
#11668
#11657
</li>
<li>
Remove parenthesis from play counter display
#11357
</li>
<li>
Refocus library, after editing skin controls
#11767
</li>
<li>
Fix performance with large playlists
#11851
#11724
</li>
<li>
Add multi-line editor delegate for comment column
#11752
</li>
<li>
Keep current item visible when the view shrinks vertically
#11273
</li>
<li>
macOS scrollbar: Make sure last track is shown in library
#11669
#9495
</li>
<li>
Add action to select loaded track in library
#4740
</li>
<li>
Add menu for Analyze and Reanalyze
#4806
#11873
#11872
</li>
<li>
Add support for overriding analysis settings about variable/constant BPM on a per-track basis
#10931
</li>
<li>
Add menu for looking up track metadata at Discogs, SoundCloud and LastFM
#4772
#4836
</li>
<li>
Add "Delete Track Files" action, does "Move to Trash" with Qt >= 5.15
#4560
#4831
#10763
#11580
#11577
#11583
#3212
#11842
</li>
<li>
Allow to clear the comment field
#4722
#10615
</li>
<li>
Allow to reset loops and also via "[ChannelN], loop_remove" control object
#4802
#10748
#12392
#12521
</li>
<li>
Add 'Update ReplayGain' decks' to track menus
#4031
#4719
</li>
<li>
Restore "Remove from playlist" in History
#11591
#10974
</li>
<li>
Enable Lock BPM action if any selected track BPM is unlocked
#12385
</li>
<li>
Order BPM action by factor, show peview (for single track)
#12701
#10128
</li>
<li>
Provide the same features in all deck track menus
#12214
</li>
<li>
Track table header: Keep menu open after toggling a checkbox
#12218
</li>
</ul>
<p>
Music Library: Sidebar & Searchbar
</p>
<ul>
<li>
Add F2 and Del/Backspace shortcuts for renaming & deleting playlists and crates
#11172
#11235
#4697
#4700
#10294
</li>
<li>
Improve presentation of the History library tree
#2996
#4298
#10533
</li>
<li>
History: Fix sidebar context menu actions
#4384
#4297
#10529
</li>
<li>
History: Add cleanup options
#4726
#9259
#10714
</li>
<li>
History: Fix update of play count after removing tracks
#12258
#12046
#12256
</li>
<li>
Improve UX with right-click and selection after add, rename, delete, duplicate etc.
#11208
#4193
#10488
#11574
#11208
#11712
</li>
<li>
Map Left Arrow Key to jump to parent node and activates it
#4253
</li>
<li>
Crates: only store or activate sibling crate if it's valid
#11770
#11769
</li>
<li>
Add recent searches to a drop down menu of the search box
#3171
#3262
#4505
</li>
<li>
Save search queries across restarts
#4458
#10517
#10561
#4571
</li>
<li>
Enable search in Browse & Recording views
#11014
#11012
#4382
</li>
<li>
Update Clear button when search is disabled
#4447
</li>
<li>
Fix reset to default of search timeout in preferences
#4504
#10589
</li>
<li>
Ctrl+F in focused search box selects the entire search string
#4515
</li>
<li>
Improve keypress handling, fix glitch in popup, strip whitespaces
#4658
</li>
<li>
Enter jumps to track table if search query was transmitted
#4844
Push completion entry to top, to make up/down behave naturally
</li>
<li>
Remove ESC shortcut in favour of new
[Library],focused_widget
#4571
#11030
#10975
</li>
<li>
Restore previous search term when switching between playlists and crates
#11129
#11015
#11477
#11476
</li>
<li>
Add options to disable auto-completion and history
#10942
#10634
</li>
<li>
Require Enter or Right key to search for auto completed strings
#11207
#11289
#11287
</li>
<li>
Allow to use := and quotes to find exact matches
#12063
#10699
</li>
</ul>
<p>
Music Library: Backend & Database
</p>
<ul>
<li>
Add new "[AutoDJ],add_random_track" to make this feature accessible from controllers
#3076
</li>
<li>
Don't store or update metadata of missing tracks in the Mixxx database to prevent inconsistencies with file tags
#3811
</li>
<li>
Update library schema to 37 for synchronizing file modified time with track source on metadata import/export
#3978
#4012
</li>
<li>
Track Metadata: Fix synchronization (import/export) of file tags
#4628
#4631
#4847
#10782
</li>
<li>
Track Metadata: Do not overwrite unchanged multi-valued fields
#12613
#12587
</li>
<li>
Optionally reset metadata on reimport if file tags are missing, enabled by "[Library] ResetMissingTagMetadataOnImport
1").
#4873
</li>
<li>
Logging: Suppress expected and harmless schema migration errors
#4248
</li>
<li>
Fix handling of undefined BPM values
#4062
#4063
#4100
#4154
#4165
#4168
</li>
<li>
Automatic analyze and optimize database
#4199
</li>
<li>
Re-import and update metadata after files have been modified when loading tracks
#4218
</li>
<li>
Re-enable shortcuts after editing controls
#4360
#10184
#10523
</li>
<li>
Allow to remove a track form the disk
#3212
#4639
</li>
<li>
Fix accasional resetting of played counter in database
#4578
#10617
</li>
<li>
Experimental: Fix writing of undefined MusicBrainz Recording ID
#4694
</li>
<li>
Traktor library: fix importing track key
#4701
</li>
<li>
Fix exporting m3u files with tracks and special characters by using the URL format
#4752
</li>
<li>
Library Scanner: Sort files before adding them
#10919
</li>
<li>
Library Scanner: Fix track relocation query
#12462
</li>
<li>
MenuBar: Add shortcut for rescanning library
#11136
</li>
<li>
Playlists: simplify import function, add whitespace before the # suffix
#12246
</li>
<li>
Destroy PlayerInfo after EngineRecord is stopped to fix a debug assertion
#12341
#12242
</li>
<li>
iTunes: Modularize importer and use
iTunesLibrary
on macOS for compatibility with
Music.app
#11353
#11256
#11446
#11444
#11503
#11500
#11509
</li>
<li>
iTunes: Fix sporadic crash during unit tests due to a not initialized reference.
#11666
</li>
<li>
iTunes: Permit duplicate playlist names by identifying playlists by id (rather than name)
#11794
</li>
<li>
iTunes: Re-enable test and add
composer
,
playCount
,
lastPlayedAt
and
dateAdded
to model
#11948
</li>
<li>
Fix setting the wrong default cue color
#11554
#11260
</li>
<li>
Ensure that tracks with an invalid BPM are re-analyzed
#2776
</li>
<li>
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
</li>
<li>
Rekordbox: Save all loops and correct AAC timing offset for CoreAudio
#2779
</li>
<li>
Rekordbox: Fix missing playlists due to invalid child ID
#10955
</li>
<li>
Rekordbox: Fix unhandled exception when parsing corrupt PDB files
#10452
#4040
</li>
<li>
Improve log messages during schema migration
#2979
</li>
<li>
Search related tracks in collection
#3181
#3213
#2796
#4207
</li>
</ul>
<p>
Sync
</p>
<ul>
<li>
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
</li>
<li>
Fix pitch issue with dynamic tracks and sync while cloning tracks
#12515
</li>
<li>
Fix issue with half/double BPM calculation when using sync
#3899
#3706
</li>
<li>
Sync Lock: Don't seek phase when disabling sync
#4169
</li>
<li>
Sync Lock: Fix issues with single-playing syncables
#4155
#4389
</li>
<li>
Re-sync to leader after scratching
#4005
</li>
<li>
Fix audio artifacts when fading from or to zero
#4363
</li>
<li>
EngineBuffer: Fix assert when new track is loaded during playback with sync
#4682
</li>
</ul>
<p>
Audio Codecs
</p>
<ul>
<li>
Add support for m4v files
#4088
</li>
<li>
Fix recovering from FAAD2 decoding issues
#2850
</li>
<li>
MP3: Log recoverable errors as info instead of warning
#4365
</li>
<li>
MP3: Garbage detection fix
#12464
</li>
<li>
MP3: Improve decoding precision on Windows
#11911
#11888
</li>
<li>
AAC encoder: Fix a memory leak
#4386
#4408
</li>
<li>
Improve robustness of file type detection by considering the actual MIME type of the content.
#7970
#4356
#4357
</li>
<li>
Fix file type detection when file has wrong file extension by determining the MIME type from content
#4602
#4600
#4615
#7970
#10624
#4683
#10669
</li>
<li>
Fix type detection of AIFF files
#4364
</li>
<li>
Fix synchronization time stamps of ModPlug files
#4826
#10758
</li>
<li>
ID3v2 parsing: Improve log warnings
#4610
</li>
<li>
ID3v2 parsing: Fix inconsistent import of comment field
#11249
</li>
<li>
Enable Modpug and Wavpack Support on macOS
#11182
#11119
</li>
<li>
Fix missing file name in file metadata error message
#11965
#11964
</li>
<li>
Verify the "first sound" of as an analysis sanity check
#4773
#11887
#11946
#11940
</li>
<li>
Fix zeros in the first m4a chunk on Linux
#11879
</li>
<li>
Fix overlapping buffers when decoding m4a files using ffmpeg
#11760
#11545
</li>
<li>
Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer
#4251
#4252
#10500
</li>
</ul>
<p>
Audio Engine
</p>
<ul>
<li>
Add support for Saved loops
#2194
#3267
#3202
#4265
#7574
#11006
#11003
#12637
#12632
#12623
#12618
</li>
<li>
Fix an issue when pressing multiple cue buttons at the same time
#3382
</li>
<li>
Fix synchronization of main cue point/position
#4137
#10478
#4153
</li>
<li>
Adjust ReplayGain: Allow user to update the replaygain value based on a deck pregain value
#4031
</li>
<li>
Add halve/double controls for beatjump size
#4269
</li>
<li>
Implement Un-eject by pressing eject again
#4668
#11246
</li>
<li>
Implement Un-replace by double-clicking eject
#11246
</li>
<li>
Allow to cancel active loops via beatloop_activate
#4328
#9950
</li>
<li>
Slip Mode: Preserve active (regular) loop when leaving Slip Mode
#11435
#6993
</li>
<li>
Fix possible segfault when ejecting track
#4362
#10497
</li>
<li>
Fix possible crash when ejecting track from a controller
#11884
#11819
</li>
<li>
Fix an assertion when loop is before track start
#4383
#10556
</li>
<li>
Fix and improve snapping to beats in various situations
#4366
#10541
</li>
<li>
Don't wipe inapplicable sound config immediately
#4544
</li>
<li>
Rubberband: Support Version 3 "finer" (near-hi-fi quality) setting, on Windows and MacOs and when available on Linux
#4853
#4855
#11047
</li>
<li>
Rubberband: Add missing padding, preventing it from eating the initial transient
#11120
</li>
<li>
Rubberband: Improve mono-compatibility for R3 "finer"
#11418
</li>
<li>
Fix a possible crash when ejecting a track
#11334
#11257
</li>
<li>
Add a range limits for beatjump_size of 512
#11248
#11203
</li>
<li>
Auto DJ: Fix sharp cut transition after cueing a track without a defined intro
#11629
#11621
</li>
<li>
Auto DJ: Don't use removed Intro end and outro start makers, use transition time instead
#11830
</li>
<li>
Auto DJ: Fix GUI freeze when updating duration for many selected tracks
#12530
#12520
#12537
</li>
<li>
KeyControl: fix keylock/unlock bugs, reset pitch_adjust
4710
</li>
<li>
Looping: fix asserts for loop move
#11735
</li>
<li>
Looping: reset loop_end_pos on eject
#12224
#12223
</li>
<li>
Fix Loop_out not seeking back
#12739
#12742
</li>
<li>
ReadAheadManager: fix loop wraparound reader condition
#11717
</li>
<li>
Slip mode: consider loop for background position only if it was enabled before slip
#11848
#11844
</li>
<li>
Make decks' xfader assignment persistent
#12074
#10122
</li>
<li>
Fix gain issue with cloned tracks
#12435
#10550
</li>
</ul>
<p>
Controller Mappings
</p>
<ul>
<li>
new: Hercules DJControl MIX controller mapping
#11279
</li>
<li>
new: Pioneer DDJ-FLX4 controller mapping based on DDJ-400
#11245
</li>
<li>
new: Traktor Kontrol S4 Mk3 controller mapping
#11284
</li>
<li>
new: Traktor Kontrol Z1 HID controller mapping
#12366
#12426
</li>
<li>
new: Yaeltex MiniMixxx controller mapping
#4350
</li>
<li>
Behringer DDM4000 mixer: Update controller mapping
#4262
#4799
</li>
<li>
Hercules DJ Console RMX: Replace not defined CO name pitch_reset by pitch_set_default
#12441
</li>
<li>
Korg nanoKONTROL2: Don't try to configure more than 4 main decks
#12322
#12317
</li>
<li>
Korg nanoKONTROL2: Removed along with Mixco scripts
#2682
</li>
<li>
MAudio Xponent: Removed along with Mixco scripts
#2682
</li>
<li>
MIDI4lights: Give beginTimer callbacks the anonymous function expression form
#12048
</li>
<li>
Novation Twitch: Removed along with Mixco scripts
#2682
</li>
<li>
Novation Launchpad: Update controller scripts
#2600
#11914
</li>
<li>
Numark DJ2GO2 Touch: Fix sampler, hotcue, beatloop buttons
#4287
#11595
</li>
<li>
Numark MixTrack Pro 3: Fix beginTimer callback syntax
#12401
#12369
</li>
<li>
Roland DJ-505: Make blinking lights blink in sync and other improvements
#4159
#4517
</li>
<li>
Traktor Kontrol S2 MK1: Add calibration and refactor
#11237
</li>
<li>
Traktor Kontrol S2 MK2 fix loaded chain preset CO
#11823
#10667
</li>
<li>
Traktor Kontrol S2 MK3: Use FX select buttons to set quick effect presets
#11702
</li>
<li>
Traktor Kontrol S3: script improvements, vanilla-like FX behavior, control initialization, better scratching, and
more
#11199
#10645
#12409
#12510
</li>
<li>
Various mappings: Fix
waveform_zoom
ranges
#12393
</li>
<li>
Various mappings: Ensure required samplers are created
#12769
</li>
</ul>
<p>
Controller Backend
</p>
<ul>
<li>
Never raise a fatal error if a controller mapping tries access a non-existent control object
#2947
</li>
<li>
Add support to access HID FeatureReports
#11326
#10828
#11664
</li>
<li>
Add function to request HID InputReports, to determine controller state at startup
#3317
</li>
<li>
Exclude HID device: ELAN touch screen
#11324
#11323
</li>
<li>
Show otherwise hidden HID devices in developer mode
#11317
</li>
<li>
Use hidapi's hidraw backend instead of libusb on Linux
#4054
</li>
<li>
Fix broken HID controller mappings Traktor Kontrol S2 MK3 and others
#11470
#11461
</li>
<li>
HID mappings: Modernize and document common-hid-packet-parser.js
#4718
#4894
</li>
<li>
HID mappings: Small fixes for common-hid-packet-parser.js
#11925
</li>
<li>
HID mappings: Add [Main] to the list of valid groups
#12102
#12406
</li>
<li>
Consistently use "mapping" instead of "preset" to refer to controller mappings
#3472
</li>
<li>
Introduce new control object
[Library],show_track_menu
to open/close the track menu
#4465
</li>
<li>
Introduce new control object
[Library],sort_focused_column
#4749
#4763
#10719
</li>
<li>
Introduce new control objects
[Master],indicator_250millis
and
[Master],indicator_500millis
#4157
</li>
<li>
Introduce new control object
[Library],clear_search
#4331
</li>
<li>
Introduce new control object
[Library],focused_widget
to focus library directly
#4369
#4490
</li>
<li>
Introduce new control object
LoadTrackFromDeck
and
LoadTrackFromSampler
#11244
</li>
<li>
Don't automatically enable controller if it was disabled before
#4244
#10503
</li>
<li>
Enable Qt logging categories for controller logging
#4523
</li>
<li>
Fix segfault during Mixxx shutdown due to a stale controller connection
#4476
#10553
</li>
<li>
Components JS: Fix syncbutton
#4329
</li>
<li>
Components JS: Add script.posMod for euclidean modulo
#11415
</li>
<li>
Components JS: make JogWheelBasic correctly switch which deck it controls
#11913
#11867
</li>
<li>
Add Trace for the mapping connections, to allow JS profiling
#4766
</li>
<li>
Controller preferences: Allow creating a new mapping with 'No Mapping' selected
#4905
#10540
#10539
</li>
<li>
Add TypeScript declarations for engine and controller scripting API to improve IDE code completion during mapping
developent
#4759
</li>
<li>
Retire Mixco Scripts
#2682
</li>
<li>
Relax strictness of
ControllerScriptInterfaceLegacy
methods.
#11474
#11473
</li>
<li>
Do not show ControlObject aliases in developer tools window
#12265
</li>
<li>
Do not use deprecated COs in C++ code/Keyboard Mapping/Skins
#11990
</li>
<li>
Fix creation of Sampler
end_of_track
ControlObjects
#12305
#12304
</li>
<li>
Add a test SoftTakeoverTest.CatchOutOfBounds
#12114
#12011
</li>
<li>
Make WHotcueButton learnable with the MIDI Wizard
#12252
</li>
<li>
Control picker menu: add
waveform_zoom_set_default
#12247
</li>
<li>
CO Renaming
#12022
#12021
#11998
#11996
#11980
#12007
</li>
<li>
Remove deprecated ControlObjects from Skins
#12030
</li>
<li>
Log warning if deprecated control is used
#11972
</li>
<li>
ControlObject alias improvements
#11973
</li>
<li>
Keyboard mapping: Repeat certain control actions if key is held
#12474
</li>
<li>
Keyboard mapping: Return triggers double-click, move Preview functions to P / Shift+P
#12639
</li>
<li>
Keyboard mapping: Various fixes
#12730
</li>
<li>
Update keyboard sheet
#12578
</li>
<li>
Logging: Add support for
QT_MESSAGE_PATTERN
environment variable
#3204
#3518
</li>
<li>
Avoid issue with
stars_up/_down
ControlObjects
#12591
</li>
<li>
hotcue_X_color control: Fix color not stored in cue
#12733
</li>
</ul>
<p>
Skins
</p>
<ul>
<li>
Add harmonic keywheel window
#1695
#3622
#3624
</li>
<li>
Allow skin scaling from preferences
#3960
#11588
#11586
</li>
<li>
Fix icon rendering on HiDPI/Retina screens
#12407
#12361
</li>
<li>
Increase pixmapCache size limit and made it dependent on devicePixelRatio (for HiDPI/Retina displays)
#12416
</li>
<li>
Make beat indicator control behaviour more natural
#3608
</li>
<li>
Fix crash if no skin is available
#3918
#3939
</li>
<li>
Fix crash when starting without a valid skin directory
#4575
#10461
</li>
<li>
Fix leaked controls
#4213
#10293
</li>
<li>
Fix switching from Shade to other skins
#4421
#10558
</li>
<li>
Use double click to reset knobs and sliders
#4509
#9947
</li>
<li>
Use info not warning for skin COs
#4525
</li>
<li>
Spinny: Allow to toggle cover art at runtime
#4565
#10015
</li>
<li>
Passthrough: improve UI / UX
#4794
</li>
<li>
Knob: Hide cursor on wheel event for .8s
#11077
</li>
<li>
Move skin control hack to c++ (spinny/cover controls, mic/ducking controls)
#11183
</li>
<li>
LateNight: Move logo to the right
#4677
</li>
<li>
LateNight: Use correct tooltip for key control toggle
#4696
</li>
<li>
LateNight: Add toggles to show loop and beatjump controls
#4713
</li>
<li>
LateNight: Remove blinking play indicator from mini samplers
#4807
</li>
<li>
LateNight: Add buffer underflow indicator
#4906
#10978
</li>
<li>
LateNight: Fix xfader icons in samplers and aux units
#12477
</li>
<li>
LateNight: use default RGB waveform colors
#12712
</li>
<li>
Add LateNight (64 Samplers)
#11715
</li>
<li>
Deere: fix skin/library layout (library missing in default view with Qt6)
#11912
</li>
<li>
Deere: use decks' waveform colors for sliders (Vol + pitch)
#12129
#10240
</li>
<li>
Shade: Remove initial setting of now accessible effect controls
#4398
#10557
</li>
<li>
Shade: Audio Latency meter fix
#11601
</li>
<li>
Tango: allow to toggle crossfader independently from mixer
#12703
#12654
</li>
<li>
Fix outdated tooltips
#11387
#11384
#11860
</li>
<li>
Add settings directory link to Help menu
#11670
#11667
</li>
<li>
Fix sidebar item styling
#11975
#11957
</li>
<li>
Fix 500ms blocking of the whole event loop, when holding mouse down on title bar on Windows
#12359
#12358
#12433
#12458
</li>
<li>
Change SKIN_WARNING to show the skin file and line first, then c++ context
#12253
</li>
<li>
Fix style of selected QComboBox items on Windows
#12339
#12323
</li>
<li>
Fix reading the Spinny cover on Windows
#12103
#11131
</li>
<li>
Fix inconsistent/wrong musical keys in the UI
#12051
#12044
</li>
<li>
Add
skins:
path alias
#12463
</li>
<li>
Remove
Text
, use
TrackProperty
or
Label
#12004
</li>
<li>
Beat spinBox/AutoDJ spinbox: Enter & Esc also move focus to library
#4617
#4845
</li>
<li>
Add effect chain menu button to Deere, polish in Tango
#12735
</li>
<li>
Skins: reload default.qss when (re)loading a skin
#12219
</li>
</ul>
<p>
Waveforms and GL Widgets
</p>
<ul>
<li>
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
</li>
<li>
Default to 60 Hz waveform refresh rate
#11918
</li>
<li>
Introduce a VSsync mode driven by a phase locked loop
#12469
</li>
<li>
Make VSync mode 0 refer to the default mode and make ST_PLL the default on macOS, ST_TIMER otherwise
#12489
</li>
<li>
Use WaveformWidgetType::AllShaderRGBWaveform as autoChooseWidgetType
#11822
</li>
<li>
Add new "RGB Stacked" waveform
#3153
</li>
<li>
Fix micro jitter from clamping position offset to vsync interval
#12470
</li>
<li>
Avoid flickering when resizing
#12487
</li>
<li>
Invert scroll wheel waveform zoom direction to mach other applications
#4195
</li>
<li>
Waveform scrolling: Use set interval setting to fix performance degradation for AMD graphics adapters
#11681
#11617
</li>
<li>
Fix waveform zooming
#11650
#11626
</li>
<li>
Fix OpenGL version detection
#11673
</li>
<li>
Fix crash when no GL context is available
#11963
#11929
</li>
<li>
Fix stopped waveform rendering in case of vinyl control
#11977
#10764
</li>
<li>
Fix visual play position related to looping
#11840
#11836
#12538
#12506
#12513
</li>
<li>
Fix for visual position while scratching outside of an activated loop
#12281
#12274
</li>
<li>
Spinny: Fix drawing of non-square cover arts
#11971
#11967
</li>
<li>
Spinny/VU-Meter: Fix drawing
#12010
#11930
</li>
<li>
VU-Meter: Don't use OpenGL by default
#11722
</li>
<li>
Improve GLSL pre-roll triangles
#12100
#12015
</li>
<li>
Make scaling of GLSL RGB and RGB L/R waveform amplitudes consistent with simple waveform
#12205
#12356
</li>
<li>
Improve rendering of waveform marks
#12203
#12237
</li>
<li>
avoid overlapping marks
#12273
</li>
<li>
gradually "compact" the markers if the waveform height is reduced
#12501
</li>
<li>
Fix clamping of the index for drawing the waveform left of zero position
#12411
</li>
<li>
Fix possible crash when closing Mixxx
#12314
#11737
</li>
<li>
Fix EGL support
#11982
#11641
#11935
#11985
#11982
#11995
#11994
#12607
</li>
<li>
Preferences: recall correct waveform type when selecting an overview type
#12231
#12226
</li>
</ul>
<p>
Cover Art
</p>
<ul>
<li>
Prevent wrong cover art display due to hash conflicts
#2524
#4904
</li>
<li>
Add background color for quick cover art preview
#2524
</li>
<li>
Fix coverart tooltip if cover is not cached
#12087
</li>
<li>
Add cover art fetcher to the Musicbrainz dialog
#10908
#4871
#10795
#10796
#10902
#4851
#11938
#11086
#12041
#12300
#12543
#12532
</li>
<li>
CoverArtCache refactoring + Fix scrolling lag after updating Mixxx
#12009
</li>
</ul>
<p>
Effects
</p>
<ul>
<li>
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
</li>
<li>
Add Noise effect
#2921
</li>
<li>
Add Pitch Shift effect
#4775
#7389
#4810
#4901
#10858
#12481
</li>
<li>
Add Distortion effect
#10932
</li>
<li>
Effect parameter knobs: Briefly show parameter value in parameter name widget
#11032
#9022
#11034
</li>
<li>
Effect parameter knobs: Implement ValueScaler::Integral, snap value to int
#11061
</li>
<li>
Show effect parameter units in parameter name label
#11041
#11194
</li>
<li>
Fix gain compensation for the Moog filter
#11177
</li>
<li>
Fix memory leak in AutoPan
#11346
</li>
<li>
EngineFilterDelay: clamp wrong delay values
#4869
</li>
<li>
Fix crash when changing effect unit routing
#4707
#9331
</li>
<li>
Clear effect buffer after ejecting a track
#10692
</li>
<li>
Center Super knob when loading empty (QuickEffect) chain preset
#12320
</li>
<li>
Don't reset "super" and "mix" knob on startup
#11781
#11773
</li>
<li>
Add a missing early return
#11809
#111808
</li>
<li>
Update EffectSlot meta default value according to loaded effect
#12480
#12479
</li>
</ul>
<p>
Target Support
</p>
<ul>
<li>
Added support for macOS ARM builds on M1/M2 Apple silicon
#11398
</li>
<li>
Set app_id to fix Mixxx window icon on Wayland
#12635
</li>
<li>
Require C++20 but keep Ubuntu Focal support
#4889
#4895
#11204
#4832
#4803
#11551
#11573
</li>
<li>
Drop Ubuntu Bionic support, require Qt 5.12
#3687
#3735
#3736
#3985
</li>
<li>
Drop Ubuntu Groovy and Impish support because of EOL
#4283
#4849
#12353
</li>
<li>
Support Ubuntu Noble and Jammy
#4780
#4857
#12353
</li>
<li>
Add NixOS support
#2820
#2828
#2836
#2827
#2827
#2828
#3113
#3089
#3545
</li>
<li>
Windows packaging: Use Azure for signing exe, msi and all dlls with timestamp and sha256
#12465
#4824
#4825
</li>
<li>
macOS packaging: Fix signing and migrate script to
notarytool
#12123
#12089
#12095
</li>
<li>
macOS packaging: Enable app sandbox and fix related issues
#12138
#12457
#12137
#11552
#4018
#10373
</li>
<li>
macOS: Use rounded Mixxx Icon to follow Apples style guide
#4545
#10958
</li>
<li>
macOS packaging: Capitalize bundle and executable name (Mixxx.app)
#12656
</li>
<li>
OpenBSD: Allow building Mixxx
#11083
</li>
<li>
Improve Linux launcher
#11826
#11820
#11805
#12424
</li>
<li>
Experimental iOS support
#12665
#12666
#12662
#12663
#12661
#12650
</li>
<li>
Fail early in case Taglib 2.0 is found
#12709
</li>
</ul>
<p>
Track properties
</p>
<ul>
<li>
Fix a SIGSEGV after a debug assertion
#4316
</li>
<li>
Apply pending changes also when saving via hotkey
#4562
#10612
</li>
<li>
Fix crash when trying to scale 0.0 BPM
#4587
#1955853
</li>
<li>
Add track color selector
#11436
#10324
</li>
<li>
Don't clear unsaved properties when updating star rating
#11565
#11540
</li>
<li>
Fix glitch in Star rating
#12582
#12576
</li>
<li>
Focus Double-clicked property field for edit
#11764
#11804
#11802
</li>
<li>
Display the samplerate
#12418
</li>
</ul>
<p>
Preferences
</p>
<ul>
<li>
Always show tooltips
#4198
#9716
</li>
<li>
Add option to keep deck playing on track load
#10944
#10548
</li>
<li>
Always enable Alt shortcut keys
#11145
#10413
</li>
<li>
Sound Hardware: auto select free device channels
#11859
#10163
</li>
<li>
Various layout and UX fixes
#12429
#12399
#11663
#11926
#12057
</li>
<li>
macOS: set preferences dialog title to the selected page title
#11696
</li>
<li>
macOS: fix the preferences menu and opening the settings directory
#11679
</li>
<li>
macOS: fix slider styling in preferences dialog
#11647
</li>
<li>
Vinyl control: Improve quality indicator
#3279
</li>
<li>
Mixer: apply & save settings only in slotApply(), fix bugs, improve UX
#11527
</li>
<li>
Mixer: fix reset of EQ auto-reset checkbox
#11818
#11817
</li>
<li>
Interface: avoid unneeded skin reload, clean up
#11853
</li>
<li>
Library: Add link to settings files info in the manual
#4367
</li>
<li>
Controllers: add search bars to mapping tables
#11165
</li>
<li>
Add 13 new translation languages
#4785
#9702
</li>
<li>
Join Franch translations to "fr" and remove all untranslated English strings.
#12699
</li>
<li>
Apply changes from all pages when pressing Apply (like when pressing Okay)
#12194
</li>
</ul>
<p>
Known issues
</p>
<ul>
<li>
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
</li>
<li>
macOS: Library entries are now sorted using the language depending Unicode Collation Algorithm (UCA).
#12517
</li>
<li>
macOS: Visual glitches with the main EQ sliders
#12517
</li>
<li>
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
</li>
<li>
Extra Samplers are created during startup, when found in a saved Sampler Bank
#12657
#12809
</li>
</ul>