16.8. Changelog
2.5.0 (Unreleased)
Waveforms
Skins / Interface
Toggle the menubar with single Alt key press (auto hide) #11526 #13301
Fullscreen toggle rework #11566
Allow to edit track title and artist directly within the decks via a delayed double-click #11755
Require a minimum movement before initiating the drag&drop of tracks #12903
Add type toggle to cue popup #13215
add WEffectMetaKnob, draws arc from default meta position #12638 #12634
Handle not supported files when dragging to waveforms and spinnies #13206
Improve
rate_up/down
tooltips, pitch vs. speed #12590Add tooltip for expand/collapse samplers button #13005 #12998
LateNight: Merge vinyl control toggle and status light #12947 #10192
Track label widgets: set
show_track_menu
only for main decks #12978MacOS: App proxy icon of the playing track to the window title #12116
PreviewDeckN,LoadSelectedTrackAndPlay toggles play/pause if the track is already loaded #12920 #9819
Add command line option
--start-autodj
to start Auto DJ immediately after Mixxx start. #13017 #10189Logging: Include timestamps in messages by default #11861
LateNight, Deere, Tango: Deactivate beatgrid edit controls if BPM is locked #13320 #13323 #13325
Engine
Beats: allow undoing the last BPM/beats change #12954 #12774 #10138
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 #12905
Effects
Library
Shortkeys Cut, Copy, Paste for track list management #12020
Track menu: Rephrase «Reset» to «Clear» #12955
Playlists: move tracks with Alt + Up/Down/PageUp/PageDown/Home/End #13092 #10826 #13098
Search: add “type” filter #13338
Search related Tracks menu: Allow to use multiple filters at once #12213 #12211
Add multi-track property editor / batch tag editor #12548 #9023 #13299
Computer feature: add sidebar action «Refresh directory tree» #12908
Library: Custom color for missing tracks #12895
Library: Add feedback to directory operations (add, remove, relink) #12436 #10481
Library: Add support for scaling BPM by different ratios #12934 #9133
Library: Add ability to import external playlists as crates #11852
Playlists: Update of playlist labels after adding tracks #12866 #12761
Tracks: Custom text color for played tracks (qss) #12744 #5911 #12912
History: Show track count and duration in sidebar #12811 #12788
Fixes around cratetablemodel, remove tracks + don’t allow pasting tracks into locked playlists/crates or History #12926
Track menu, Remove from disk: stop and eject all affected decks #13214
Track menu: Show Properties in Missing and Hidden view #13426
Library control: make use of WLibrary::getCurrentTrackTableView() #13335
Optimize Library scrolling in BPMDelegate::paintItem #13358
Library: fix font reset in multiline comment editor #13448
Preferences
Controller Mappings
Controller Backend
Send sysex to all handlers #12827
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
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
Registering MIDI Input Handlers From Javascript #12781 #13089
Drop lodash dependency in ComponentJS #12779
Experimental QML Skin
Add Experimental QML Skin that can be tested via the –qml command line option #13152
Fix type error in
Slider.qml
#11423Allow switching between legacy and new QML UI with command arg #12139
Add PlayerProxy missing current track when created after loading #12559
Fix: Add
qt6-qpa-plugins
to dependencies #12549Fix: Improve knobs by applying selective 4xMSAA on the Arc shape #12541
Add QML interceptor to auto reload on file change #12795 #12844
Add multi-sampling settings for QML #12546 #12794 #12536 #13058
Install qml module on Windows #12604
Fix: handle case where Waveform data is missing #13009
Fix: allow missing COs on QML component #13011
Initialize CmdlineArgs::m_qml #13152
Update to Qt6
Qt6 prepare #11863
Qt6 switch #11892
CMakeLists: Default
QT6
toON
#11934Build with Qt6 and optionally with QML #11608
Use constInsert() template #11847
DlgAbout: Add Qt version to the dialog #11862
CMakeLists: Fix
QT_TRANSLATION_FILE
path for Qt6 #11880LibraryControl: Enable control inputs for Qt6 #11877
Fix wrong Windows buildenv name and missing Qt6 switch for non CI builds #11895
WWidget: Disable touch events on macOS (fixing trackpad issues on Qt 6) #11870
Install libjpeg-turbo::jpeg to fix cover display with Qt6 #11922
Skins: Remove
border: 0px
from sidebar item styling #11970 #11957Skins: Fix checkbox styling on Qt 6 #12050
Skins: Fix Tango waveform splitter #12939
Skin: Fix Tango rate range label position #13242
Introduce wrapper for non const iterators for erase and insert #12201
Fix Qt6/QML build #12255
Fix track color background with Qt6 #12380
multi-line delegate: fix bg color, Qt6 on Linux #12478
Revert «BaseTrackPlayer: Remove references to WaveformWidgetRenderer when using Qt6» #12342
Fix: Replace deprecated
qAsConst
withstd::as_const
#13028Fix Drag’n’drop: avoid unintended drag on hover (WTrackProperty, WCoverArt etc.) #13035 #13033
Fix ambiguous overload error due to native qDebug impl for std::optional #12981
Workaround for Qt6 “selected click” bug #12488
Fix menu icon position #12216
Experimental iOs support
CMakeLists: Support building for iOS #12672
DlgPrefInterface: Disable tooltips on iOS by default #12689
SoundManager: Set up
AVAudioSession
on iOS #12714SoundManager: Use correct PortAudio backend on iOS #12716
DesktopHelper: Add openUrl abstraction to support iOS #12698
iOS packaging: Add Info.plist, launch screen and app icon #12676
CmdlineArgs: Move config directory to a user-accessible location on iOS #12688
CMakeLists: Work around Qt shader bug with Xcode #13379 #13378
AudioUnitManager: Disable unavailable in-process instantiation on iOS #13383
Experimental WebAssembly support
CMakeLists: Add support for targeting Emscripten/WebAssembly #12918
CMakeLists: Emit better errors for exotic target platforms #12910
Build: Add
PORTMIDI
flag for compiling with(out) PortMidi #12913DesktopHelper: Compile out process-spawning on WASM too #12916
MixxxApplication: Use
QWasmIntegrationPlugin
when targeting WebAssembly #12915CMakeLists: Enable asyncify when targeting WASM #12921
Resources: Bundle resources for preloading when targeting Emscripten/WASM #12922
CMakeLists: Add
WASM_ASSERTIONS
option #12931VersionStore: Recognize Emscripten/WebAssembly #12940
OpenGLWindow: Fix sizing on Wasm by setting
Qt::FramelessWindowHint
#12945CMakeLists: Require WebGL 2.0 when building for Wasm #12952
ScreenSaverHelper: Add no-op implementation for WASM #12930
SSE: Check
!defined(__EMSCRIPTEN__)
where intrinsics are unavailable on WASM #12917
Target support
Lenient taglib 2.0 guard #12793
Tools: Add
rpm_buildenv.sh
for building on Fedora #13069README: Recommend running buildenvs over sourcing them on Linux #13071
FindSndFile: Link mpg123 in static builds #13087
macOS packaging: Enable app sandbox in ad-hoc-packaged (i.e. non-notarized) bundles too #12101
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
Misc Refactorings
Add missing
<Qt>
include indefs.h
#11348Engine: Minor refactor to prefer simplified ranged-for-loop #11234
Delete unused EngineFilter #11559
AnalyzerWaveform: Fix commented out code #11561
Remove usage of ControlObject::getControl #11643
Fix unnecessary transfer of the ownership before release which returns the pointer itself #11726
Add
ConfigObject::get-/setValue<EnumType>
#11883Github CI: Enable
WARNINGS_FATAL
on macOS, too #11905Use
mixxx::audio::ChannelCount
type instead ofint
/unsigned char
/etc. #11941Refactor util/timer: cleanup includes #11937
Use
SampleRate
type consistently #11904CMakeLists: Match arbitrary
arm64-osx
triplets #11933Reduce sample buffer memory usage #11988
Fix clazy issues on
main
#12028Tidy and modernize SampleBuffer #11987
Refactor parented_ptr: make trivially destructible in release mode, delete move operations #11981
Labeler: Add more labels to the auto-labeler #12106
FindPortMidi: Link ALSA in static builds on Linux #12292 #12291
Github CI: workaround runner-image issue #12233
FindLibudev: Link hidapi and libusb with libudev in static builds on Linux #12294
FindVorbis: Link ogg in static builds #12297
MixxxApplication: Support linking Qt statically on Linux #12284
FindSleef: Use OpenMP in static builds #12295
Happy New Year 2024! #12486
fix/History: remove obsolete placeholder playlists #12494
Add missing Taglib dependency #12830
fix: typo ;) #12726
refactor: Avoid temporary qlist allocation on midi sysex receive #12843
Labeler: Add
qml
to labeler config #12911WTrackMenu: Add missing wcoverartlabel.h include #12924
Fix clazy complaints and naming #12935
src/library: Sort files into sub-directories #12956
CMakeLists: Fix deduplication trap with
--preload-file
#12944GitHub CI: Add runner that allows cleaning up the download server #12957
GitHub CI: Skip the manifest update job on forks #13278
Refactor FFmpeg soundsource to allow other soundsource to inherit it #13042
Code Style: Add branches around single line blocks. #13097
Add missing member in copy ctor #13229
Refactor/preferences enums #12798
localDateTimeFromUtc: Make argument a const reference and initialize QDateTime at construction #13359
use enum class for waveform overview type #13370
Update to latest vcpkg dependencies #11649 #12512 #12067 #12898 #13155
GitHub actions updates #11544 #11508 #11487 #11438 #11410 #11560 #11578 #11610 #11631 #11710 #11736 #11920 #11961 #12241 #12394 #12447 #12425 #12421 #12799 #12801 #12800 #12736 #12692 #12694 #12695 #12691 #12693 #12625 #12627 #12626 #12577 #13162 #13163 #13187 #13217 #13246 #13232
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
2.3.6 (2023-08-15)
Fixed possible crash when closing Mixxx while browsing the file system #11593 #11589
No longer stop a track with an active loop at the very end #11558 #11557
Allow true gapless playback when repeating full tracks #11532 #9842 #11704
Rhythmbox: Fixed bulk track imports from playlists #11661
Numark DJ2GO2 Touch: Add missing loop_out mapping for the right deck #11595 #11659
Shade: Fixed VU-Meter and other minor issues #11598
Fixed a rare crash when disabling quantize form a controller #11744 #11709
Controller Preferences: Avoid scrollbars in I/O tabs if Info tab exceeds page height #11756
Broadcast: Improved error message in case of timeout #11775
Handle setting
loop_in
andloop_out
to the same position #11771 #10600Fix build issues with Protobuf v23.4 and with clang 32 #11751 #11765 #11762
Disable GL VU-Meters on Windows by default. They can be re-enabled via the command line option
--enableVuMeterGL
. #11787 #11785 #11789Library preferences: Uncheck Serato metadata export when file metadata export is unchecked #11782 #11226
Denon MC6000MK2: Delete mapping for main gain #11792
Improve output in case of some failed file system operations #11783
Fix overlapping buffers when decoding M4A files using FFmpeg before 4.4 #11760 #11545
Don’t reject key values from file metadata with non-minor/-major scales. #11001 #10995
Allow playing tracks with durations of more than 6 hours #11511 #11504
Update latency compensation for Soundtouch version 2.1.1 to 2.3 #11154
2.3.5 (2023-05-10)
Fix empty waveform overview after loading a track (Mixxx 2.3.4 regression) Fixed by #11333 #11359 #11344
Fullscreen: Fix a crash that occurs on Linux after enabling fullsceen and using menu shortcuts e.g. Alt-F. #11328 #11320
Fullscreen: Rebuild & reconnect menu only on desktops with global menu #11350
macOS: Request Microphone and line-in access permission. #11367 #11365
JACK API: Allow to explicit select buffers of 2048 and 4096 frames/period. They are not supported by the automatic buffer setting of the used PortAudio library. #11366 #11341
Pioneer DDJ-400: Make Beat FX section more intuitive #10912
Playlist export: Adopt new extension after changing the playlist type #11332 #11327
LateNight: brighter fx parameter buttons #11397
Fix drift in analysis data after exporting metadata to MP3 files with ID3v1.1 tags #11168 #11159
Tango: Remove VU peak indicators from stacked layout. This fixes a visual regression in Mixxx 2.3.4. #11430 #11362
Hercules P32: Allow optional using pregain instead of dry/wet knob #3538
Improve Color Picker dialog #11439
Fix blank Waveform overview after changing Skin with a track loaded #11453
Linux: Log a warning when the audio thread is not scheduled with real-time policy #11472 #11465
Auto DJ: Fixes stop due to tracks with changed length #11479 #11492 #11448
Fix EQ and waveforms analysis when compiling with GCC 13 #11501 #11483 #11502 #11480 #11488
Numark Mixtrack Pro FX: Fix sound output via WDM-KS on Windows #11393
Fix crash on startup caused by faulty ASIO driver like FlexASIO 1.4 or Music Maker #11426 #10081
Windows: Show a loopback device that allows to mix in system sound #11427 #11451
Fix sorting via column header in external library features #11491 #11499 #11498
Fix wrong waveform background color on recent Linux distributions like Fedora 37 #11164 #11523
Serato Metadata: Don’t import empty (black) cue points #11534 #11530 #11467 #11466 #11283
Track context menu: Immediately adopt new position when resetting cues #11482
Windows: Fix possible crash with faulty mp3 files #11535 #11531 #11528 #11521
2.3.4 (2023-03-03)
Track Properties: Show “date added” as local time #4838 #10776
LateNight: Add a border to the crossfader when Auto DJ is active. #10913
LateNight: Isolate searchbar so maximize button is attached to tracks view. #11132
macOS builds: Perform ad-hoc signing of macOS bundle in Pull request and personal repositories #4774
Waveform: Avoid visual glitch with ranges < 1 px #4804
Build Mixxx on macOS 11, replacing deprecated macOS 10.15 #4863
Add macOS 13.0 (Ventura) support, by using portaudio 19.7.0 #11046
EQ preferences: Properly restore “One EQ for all decks” setting #4886
Cover Art: Fix picking wrong cover file, when track file name contains extra dots #4909
MusicBrainz: Stop fetching after closing the dialog #10878 #10877
MusicBrainz: Fixed stalled GUI after client timeout #10875 #10883
macOs: Fix frozen skin control after Ctrl-Click #10869 #10831
Avoid redundant messages boxes after track loading fails #10889
Use OpenGL VU meter widgets. This aims to improve performance with macOS. #10893 #11052 #10979 #10973 #10983 #11288
Prevent wild numbers from appearing during scratching under vinyl control. #10916
Fixed a possible crash due to a race condition when editing cue points. #10976 #10689
Fixed a possible crash when overing cue point via mouse in the waveforms. #10960 #10956
WTrackMenu: Sort crates and playlists like in sidebar. #11023
WCoverArtLabel: Don’t open full-size cover if no cover is loaded, to avoid an issue when closing. #11022 #11021
Removed integer truncation of the position when reading cue points from the database. #10998
Fix cue points being assigned invalid value of -1.0 #11000 #10993
Auto DJ: Added a warning in a message box when it is started without decks with left and a right crossfader orientation #11018
Fixed crash with FFmpeg decoder #11044
Fixed issue with finding moved library tracks. #11051
Preserve and synchronize ID3v1 tags (TagLib v1.12) #11163 #11123
Replay Gain Preferences: Fix the «adjust by» text in case of negative adjustments #11176
Fix resetting track colors on metadata reimport (Serato metadata): #11217 #11213
Preferences: Fix incomplete version check in 2.3 during upgrade #11229 #9709
JACK buffer size fix #11121
Don’t discard file tags with tuning information like «A#m +50» #10992
Fix visual alignment of beats and waveform in case of decoding issues #11162
Avoid «active key-value observers» messages during skin parsing on macOS #11265
Fullscreen on Linux: Fix issues caused by Ubuntu Unity workaround #11295 #11281 #11294
New Controller Mappings
Controller Fixes
Traktor S3: Fix issues with sampler and hotcue buttons #4676
Numark DJ2Go2: Support HotCue clear with pad #10841
Numark N4: Inverted pitch slider, to match the GUI orientation #11057
Ableton Push: Show as one device #10905
Denon DJ MC7000: off-by-one fix, soft-start/break effect, pitch play, 32 velocity samplers #4902 #4729
Potmeters: Add support for arbitrary maximums in 7-/14-bit handlers from controller scripts #4495
Controller Preferences: Fix some usability issues #10821
Controller mapping table: show readable/translated strings for script bindings #11139
Control picker menu: Added loop_in/out_goto to list #11133
Packaging
2.3.3 (2022-06-21)
Pioneer DDJ-SB3: Fix controller breaking when releasing the shift button #4659
Traktor S3: Push two deck switches to explicitly clone decks #4665 #4671 #10660
Behringer DDM4000: Improve stability and add soft-takeover for encoder knobs #4318 #4799
Denon MC7000: Fix “inverted shift” bug in the controller mapping #4755
Fix spinback and break effect in the controller engine #4708
Preferences: Prevent controller settings being treated as changed even though they were not #4721 #10365
Fix rare crash when closing the progress dialog #4695
Prevent preferences dialog from going out of screen #4613
Fix bug that caused Auto DJ to stop playback after some time #4698 #10093 #10670
Do not reset crossfader when Auto DJ is deactivated #4714 #10683
Change the minimum Auto DJ transition time to -99 #4768 #10739
Samplers, crates, playlists: fix storing import/export paths #4699 #10679
Library: keep hidden tracks in history #4725
Broadcasting: allow multiple connections to same mount if only one is enabled #4750 #10727
Fix a rare mouse vanish bug when controlling knobs #4744 #6922 #10715
Restore keylock from configuration and fix pitch ratio rounding issue #4756 #10518
Improve CSV export of playlists and crates and fix empty rating column #4762
Fix passthrough-related crash in waveform code #4789 #4791 #10650 #10743
Passthrough: stop rendering waveforms and disable Cue/Play indicators 4793
2.3.2 (2022-01-31)
Fix crash when using Doubling/Halving/etc. BPM from track’s Properties window on tracks without BPM #4587 #10625
Fix writing metadata on Windows for files that have never been played #4586 #10620
Preserve file creation time when writing metadata on Windows #4586 #10619
Fix handling of file extension when importing and exporting sampler settings #4539
Fix crash when using an empty directory as resource path using the
--resource-path
command line option #4575 #10461Pioneer DDJ-SB3: Add controller mapping #3821
Don’t wipe sound config during startup if configured devices are unavailable #4544
Append selected file extension when exporting to playlist files #4531 #10066
Fix crash when using midi.sendShortMsg and platform vnc #4635 #10632
Packaging
Downloads of external dependencies are placed in build/downloads
The sources for libkeyfinder are now expected in build/downloads/libkeyfinder-2.2.6.zip instead of build/download/libkeyfinder/v2.2.6.zip
CMake: Adjust the download directory and name of external dependencies #4511
2.3.1 (2021-09-29)
Added mapping for the Numark DJ2GO2 Touch controller #4108 #4287
Added mapping for the Numark Mixtrack Pro FX controller #4160
Updated mapping for Behringer DDM4000 mixer #4262
Updated mapping for Denon MC7000 controller #4021
Hercules Inpulse 300: Add better FX controls and other minor improvements #4246
Denon MC7000: Improve slip mode and jog wheel handling #4021 #4324
Disabled detection of keyboards and mice as HID controllers #4243
Disabled detection of all HID controllers with Apple’s vendor ID. Apple doesn’t build actual controllers. #4260 #4273
Add support for HiDPI scale factors of 125% and 175% (only with Qt 5.14+) #10485 #4161
Fix Echo effect adding left channel samples to right channel #4141
Fix bad phase seek when a channel’s audible status changes #4156
Tango skin: Show crossfader assign buttons by default #4046
Fix keyfinder library in arm64 builds #4047
Fix wrong track being recorded in History #10454 #4041 #4059 #4107 #4296
Fix support for relative paths in the skin system which caused missing images in third-party skins #4151
Fix relocation of directories with special/reserved characters in path name #4146
Update keyboard shortcuts sheet #4042
Library: resize the Played checkbox and BPM lock with the library font #4050
Don’t allow Input focus on waveforms #4134
Fix performance issue on AArch64 by enabling flush-to-zero for floating-point arithmetic #4144
Fix custom key notation not restored correctly after restart #4136
Traktor S3: Disable scratch when switching decks to prevent locked scratch issue #4073
FFmpeg: Ignore inaudible samples before start of stream #4245
Controller Preferences: Don’t automatically enable checkbox if controller is disabled #4244 #10503
Tooltips: Use item label for tooltips in library side bar and show ID when debugging. #4247
Library sidebar: Also activate items on PageUp/Down events. #4237
Fix handling of preview button cell events in developer mode. #4264 #10418
Auto DJ: Fix bug which could make an empty track stop Auto DJ. #4267 #10504
Fix high CPU load due to extremely high internal sync clock values #4312 #10520
Fix preference option for re-analyzing beatgrids imported from other software #4288
Fix wrong base tag used for deployment and displayed in About dialog #4070
Packaging
It is no longer necessary to manually copy the udev rule file in packaging scripts. Now pkg-config is used to determine the udevdir used to install the rules file in the CMake install step when CMAKE_INSTALL_PREFIX is
/
or/usr
. #4126.desktop file has be renamed to org.mixxx.Mixxx.desktop according to Freedesktop standards #4206
Uses system provided hidapi library if version >= 0.10.1 #4215
Please update PortAudio to 19.7 if you have not done so already. This is required for Mixxx to work with PipeWire via the JACK API for many devices.
Install multiple sizes of rasterized icons #4204 #4315 #4254
CMake: Fixed detection of SoundTouch pkgconfig file and version #4209
2.3.0 (2021-06-28)
Hotcues
Hotcue & Track Colors
Importing From Other DJ Software
Import cue points, track colors, and playlists from Serato file tags & database #2480 #2526 #2499 #2495 #2673 #3885
Note: Mixxx does not yet support multiple loops per track. We are working on this for Mixxx 2.4. In Mixxx 2.3, if you import a track with multiple loops from Serato, Mixxx will use the first loop cue as the single loop Mixxx currently supports. The imported loops are still stored in Mixxx’s database and are treated as hotcues in Mixxx 2.3. If you do not delete these hotcues, they will be usable as loops in Mixxx 2.4. Serato keeps loops and hotcues in separate lists, but Mixxx does not, so loops from Serato are imported starting as hotcue 9.
Import cue points, track colors, and playlists from Rekordbox USB drives #2119 #2555 #2543 #2779
Note: The first Rekordbox memory cue is imported for the main cue button in Mixxx and the remaining Rekordbox memory cues are imported as Mixxx hotcues, starting with the next hotcue number after the last hotcue from Rekordbox.
Note: Mixxx does not yet support multiple loops per track. Imported loops from Rekordbox are treated like imported loops from Serato, so refer to the note above for details.
Intro & Outro Cues
Deck cloning
Skins & GUI
Right click overview waveform to show time remaining until that point #2238
Show track info dialog when double clicking track labels in decks #2990
Show track context menu when right clicking text in decks #2612 #2675 #2684 #2696
Add laptop battery widget to skins #2283 #2277 #2250 #2228 #2221 #2163 #2160 #2147 #2281 #2319 #2287
Show when passthrough mode is active on overview waveforms #2575 #2616
Changed format of currently playing track in window title from «artist, title» to «artist - title» #2807
Fix touch control #10108
Fix broken knob interaction on touchscreens #3512
AutoDJ: Make «enable» shortcut work after startup #3242
Add rate range indicator #3693
Add Scrollable Skin Widget #3890
Fix minor visual issues in Skins #3958 #3954 #3941 #3938 #3936 #3886 #3927 #3844 #3933 #3835 #3902 #3931
Music Feature Analysis
Multithreaded analysis for much faster batch analysis on multicore CPUs #1624 #2142 #8686
Fix bugs affecting key detection accuracy #2137 #2152 #2112 #2136
Note: Users who have not manually corrected keys are advised to clear all keys in their library by pressing Ctrl + A in the library, right clicking, going to Reset -> Key, then reanalyzing their library. This will freeze the GUI while Mixxx clears the keys; this is a known problem that we will not be able to fix for 2.3. Wait until it is finished and you will be able to reanalyze tracks for better key detection results.
Remove VAMP plugin support and use Queen Mary DSP library directly. vamp-plugin-sdk and vamp-hostsdk are no longer required dependencies. #926
Improvements BPM detection on non-const beatgrids #3626
Music Library
Add support for searching for empty fields (for example
crate:""
) #9411Improve synchronization of track metadata and file tags #2406
Library Scanner: Improve hashing of directory contents #2497
MusicBrainz: Handle 301 status response #2510
TagLib: Fix detection of empty or missing file tags #9891 #2535
Fix caching of duplicate tracks that reference the same file #3027
Use 6 instead of only 4 compatible musical keys (major/minor) #3205
Fix possible crash when trying to refocus the tracks table while another Mixxx window has focus #3201
Don’t create new tags in file when exporting metadata to it #3898
Fix playlist files beginning with non-english characters not being loaded #3916
Enable sorting in «Hidden Tracks» and «Missing Tracks» views #3828 #9658 #10397
Audio Codecs
Add FFmpeg audio decoder, bringing support for ALAC files #1356
Include LAME MP3 encoder with Mixxx now that the MP3 patent has expired #7341 buildserver:#37 buildserver:9e8bcee
Add Opus streaming and recording support. #7530
Remove support for SoundSource plugins because the code was not well-maintained and could lead to crashes #9435
Add HE-AAC encoding capabilities for recording and broadcasting #3615
Audio Engine
Fix loss of precision when dealing with floating-point sample positions while setting loop out position and seeking using vinyl control #3126 #3127
Fix possible memory corruption using JACK on Linux #3160
Fix tempo change of non-const beatgrid track on audible deck when cueing another track #3772
Make microphone ducking use strength knob the same way in automatic & manual mode #2750
Controllers
Improve workflow for configuring controller mappings and editing mappings #2569 #3278 #3667
Improve error reporting from controller scripts #2588
Make hotcue and track colors mappable on controllers #2030 #2541 #2665 #2520
Add way to change library table sorting from controllers #2118
Add support for velocity sensitive sampler buttons in Components JS library #2032
Add logging when script ControlObject callback is disconnected successfully #2054
Add controller mapping for Roland DJ-505 #2111
Add controller mapping for Numark iDJ Live II #2818
Add controller mapping for Hercules DJControl Inpulse 200 #2542
Add controller mapping for Hercules DJControl Jogvision #2370
Add controller mapping for Pioneer DDJ-200 #3185 #3193 #3742 #3793 #3949
Add controller mapping for Pioneer DDJ-400 #3479
Add controller mapping for ION Discover DJ Pro #2893
Add controller mapping for Native Instrument Traktor Kontrol S3 #3031
Add controller mapping for Behringer DDM4000 #3542
Add controller mapping for Native Instruments Traktor Kontrol S4MK3 #11284
Update controller mapping for Allen & Heath Xone K2 to add intro/outro cues #2236
Update controller mapping for Hercules P32 for more accurate headmix control #3537
Update controller mapping for Native Instruments Traktor Kontrol S4MK2 to add auto-slip mode and pitch fader range #3331
Fix Pioneer DDJ-SB2 controller mapping auto tempo going to infinity bug #2559 #9838
Fix Numark Mixtrack Pro 3 controller mapping inverted FX on/off control #3758
Gracefully handle MIDI overflow #825
Other
Add CMake build system with
ccache
andsccache
support for faster compilation times and remove SCons #2280 #3618Make Mixxx compile even though
QT_NO_OPENGL
orQT_OPENGL_ES_2
is defined (fixes build on Raspberry Pi) #9887 #2504Fix ARM build issues #3602
Add macOS codesigning and notarization to fix startup warnings #3281
Don’t trash user configuration if an error occurs when writing #3192
Enable CUE sheet recording by default #3374
Fix crash when double clicking GLSL waveforms with right mouse button #3904
And countless other small fixes and improvements (too many to list them all!)
2.2.4 (2020-06-27)
Store default recording format after «Restore Defaults» #9853 #2414
Prevent infinite loop when decoding corrupt MP3 files #2417
Don’t stop playback if vinyl passthrough input is configured and PASS button is pressed #2474
Fix crashes when executing actions on tracks that already disappeared from the DB #2527
AutoDJ: Skip next track when both deck are playing #7712 #2531
Tweak scratch parameters for Mixtrack Platinum #2028
Fix auto tempo going to infinity on Pioneer DDJ-SB2 #2559
Fix bpm.tapButton logic and reject missed & double taps #2594
Add controller mapping for Native Instruments Traktor Kontrol S2 MK3 #2348
Add controller mapping for Soundless joyMIDI #2425
Add controller mapping for Hercules DJControl Inpulse 300 #2465
Add controller mapping for Denon MC7000 #2546
Add controller mapping for Stanton DJC.4 #2607
Only apply ducking gain in manual ducking mode when talkover is enabled #7668 #8995 #8795 #2759
Ignore MIDI Clock Messages (0xF8) because they are not usable in Mixxx and inhibited the screensaver #2786
2.2.3 (2019-11-24)
Don’t make users reconfigure sound hardware when it has not changed #2253
Fix high DPI scaling of cover art #2247
Fix high DPI scaling of cue point labels on scrolling waveforms #2331
Fix high DPI scaling of sliders in Tango skin #2318
Fix sound dropping out during recording #9732 #2265 #2305 #2308 #2309
Fix rare crash on application shutdown #2293
Workaround various rare bugs caused by database inconsistencies #9773 #2321
Improve handling of corrupt FLAC files #2315
Don’t immediately jump to loop start when loop_out is pressed in quantized mode #9694 #2269
Preserve order of tracks when dragging and dropping from AutoDJ to playlist #9661 #2237
Explicitly use X11 Qt platform plugin instead of Wayland in .desktop launcher #9787 #2340
Pioneer DDJ-SX: fix delayed sending of MIDI messages with low audio buffer sizes #2326
Enable modplug support on Linux by default #9719 #2244 #2272
Fix keyboard shortcut for View > Skin Preferences #9796 #2358 #2372
Reloop Terminal Mix: Fix mapping of sampler buttons 5-8 #9772 #2330
2.2.2 (2019-08-10)
Fix battery widget with upower <= 0.99.7. #2221
Fix BPM adjust in BpmControl. #9690
Disable track metadata export for .ogg files and TagLib 1.11.1. #9680
Fix interaction of hot cue buttons and looping. #9350
Fix detection of moved tracks. #2197
Fix updating playlist labels. #9697
Fix potential segfault on exit. #9656
Fix parsing of invalid BPM values in MP3 files. #9671
Fix crash when removing rows from empty model. #2128
Fix high DPI scaling of RGB overview waveforms. #2090
Fix for OpenGL SL detection on macOS. #9653
Fix OpenGL ES detection. #9636
Fix FX1/2 buttons missing Mic unit in Deere (64 samplers). #9703
Tango64: Re-enable 64 samplers. #2223
Numark DJ2Go re-enable note-off for deck A cue button. #2087
Replace Flanger with QuickEffect in keyboard mapping. #2233
2.2.1 (2019-04-22)
Include all fixes from Mixxx 2.1.7 and 2.1.8
Fix high CPU usage on MAC due to preview column #9574
Fix HID controller output on Windows with common-hid-packet-parser.js
Fix rendering slow down by not using QStylePainter in WSpinny #8419
Fix broken Mic mute button #9387
added quick effect enable button to the control picker menu
Fix Cover Window close issue with empty cover arts
Fix Numark Mixtrack 3 mapping. #2057
2.2.0 (2018-12-17)
General
Update from Qt4 to Qt5.
Use Qt5’s automatic high DPI scaling (and remove the old scaling option from the preferences).
Vectorize remaining raster graphics for better HiDPI support.
Effects
Add mix mode switch (Dry/Wet vs Dry+Wet) for effect units.
Add support for LV2 effects plugins (currently no way to show plugin GUIs).
Add preference option for selecting which effects are shown in the list of available effects in the main window (all LV2 effects are hidden by default and must be explicitly enabled by users).
Skins
Add 8 sampler and small sampler options to LateNight.
Add key / BPM expansion indicators to Deere decks.
Add skin settings menu to LateNight.
Controllers
Add controller mapping for Numark Mixtrack Platinum.
Update controller mapping for Numark N4.
Add spinback and break for Vestax VCI-400 mapping.
Miscellaneous
Add preference option to adjust the play position marker of scrolling waveforms.
Add preference option to adjust opacity of beatgrid markers on scrolling waveforms.
Support IRC/AIM/ICQ broadcast metadata.
2.1.8 (2019-04-07)
Fix a rare chance for a corrupt track file while writing metadata in out of disk situations. lp:1815305
Fix export of BPM track file metadata. #9593
Fix sending of broadcast metadata with TLS enabled libshout 2.4.1. #9599
Fix resdicovering purged tracks in all cases. #9616
Fix dropping track from OSX Finder. #9620
2.1.7 (2019-01-15)
Fix syncing to doublespeed #9549
Fix issues when changing beats of a synced track #9550
Fix direction of pitch bend buttons when inverting rate slider #9284
Use first loaded deck if no playing deck is found #9397
Encode file names correctly on macOS lp:1776949
2.1.6 (2018-12-23)
Fix crash when loading a Qt5 Soundsource / Vamp Plug-In. #9324
Validate effect parameter range. lp:1795234
Fix crash using the bpm_tap button without a track loaded. #9512
Fix possible crash after ejecting a track. #9513
Fix wrong bitrate reported for faulty mp3 files. #9389
Fix Echo effect syncing #9442
Fix iTunes context menu #9484
Fix loading the wrong track after delete search and scroll. #9519
Improve search bar timing. #8665
Fix quoted search sentence. #9396
Fix loading a track formerly not existing. #9492
Fix importing m3u files with blank lines. #9535
Fix position in sampler overview waveforms. #9096
Don’t reset rate slider, syncing a track without a beatgrid. #9391
Clean up iTunes track context menu. #9488
Collapsed sampler are not analyzed on startup. #9502
search for decoration characters like «˚». #9517
Fix cue button blinking after pressing eject on an empty deck. #9543
2.1.5 (2018-10-28)
Code signing for Windows builds. #8309
Fix crash on exit when preferences is open. #9438
Fix crash when analyzing corrupt MP3s. #9443
Fix crash when importing metadata from MusicBrainz. #9456
Library search fixes when single quotes are used. #9395 #9419
Fix scrolling waveform on Windows with WDM-KS sound API. lp:1729345
Fix right clicking on beatgrid alignment button in Tango and LateNight skins. #9471
Improve speed of importing iTunes library. #9400
Add 2 deck mapping for DJTechTools MIDI Fighter Twister.
2.1.4 (2018-08-29)
Fix track selection not getting shown in the track table on Windows. There are no changes to the source code, but the Jenkins build configuration was changed to delete the Jenkins workspace before each build. lp:1751482
2.1.3 (2018-08-20)
Fix a severe performance regression on Windows: Mixxx 2.1.2 running much slower than 2.1.1
2.1.2 (2018-08-10)
Yet another bugfix release of Mixxx 2.1. Here is a quick summary of what is new in Mixxx 2.1.2:
Allow maximum deck speed of 4x normal.
Don’t always quantize hotcues, a 2.1.1 regression. #9345
Fix artifacts using more than 32 samplers. #9363
store No EQ and Filter persistently. #9376
Pad unreadable samples with silence on cache miss. #9346
Fixing painting of preview column for Qt5 builds. #9337
LateNight: Fix play button right click. #9384
LateNight: Added missing sort up/down buttons.
Fix sampler play button tooltips. #9358
Shade: remove superfluid margins and padding in sampler.xml. #9310
Deere: Fix background-color code.
ITunes: Don’t stop import in case of duplicated Playlists. #9394
2.1.1 (2018-06-13)
After two months it is time to do a bugfix release of Mixxx 2.1. Here is a quick summary of what is new in Mixxx 2.1.1:
Require Soundtouch 2.0 to avoid segfault. #8534
Improved skins including library view fix. #9317 #9297 #9239
Fix crash when importing ID3v2 APIC frames. #9325
Synchronize execution of Vamp analyzers. #9085
DlgTrackInfo: Mismatching signal/slot connection.
Detect M4A decoding errors on Windows. #9266
Fix spinback inertia effect.
Fix integration of external track libraries. #9264
Fix memory leak when loading cover art. #9267
Fix clearing of ReplayGain gain/ratio in file tags. #9256
Fix crash when removing a quick link. #8270
Fidlib: Thread-safe and reentrant generation of filters. #9247
Fix unresponsive scrolling through crates & playlists using encoder. #8941
Swap default values for temp/perm rate changes. #9243
2.1.0 (2018-04-15)
After two years of hard work, we are pleased to announce Mixxx 2.1. We have overhauled the effects system, redesigned the skins, added and improved lots of controller mappings, rewrote the audio file decoders twice, and of course fixed a bunch of bugs. Download it!
Here is a quick summary of what is new in Mixxx 2.1.0:
Graphical interface scales for high resolution screens
Overhauled Deere and LateNight skins
New Tango skin
Effects are synchronized to the tempo
Effects are processed post-fader and post-crossfader and can be previewed in headphones
One metaknob per effect with customizable parameter control for intuitive use of effect chains
Nine new effects: Autopan, Biquad Equalizer, Biquad Full Kill Equalizer, Loudness Contour, Metronome, Parametric Equalizer, Phaser, Stereo Balance, Tremolo
Loaded effects and their parameters are saved and restored when Mixxx restarts
More transparent sounding equalizers (Biquad Equalizer and Biquad Full Kill Equalizer)
Improved scratching sounds with jog wheels, vinyl control, and dragging waveforms with the mouse
Simplified looping and beatjump controls
Configurable rows of 8 samplers with up to 8 rows available for a total of 64 samplers
Files loaded to samplers are reloaded when Mixxx restarts
Improved volume normalization algorithm (EBU-R 128)
Filter library table by crates
Sort musical keys in library table by circle of fifths
Write metadata tags back to audio files
New JavaScript library for controller mapping
Configure multiple Internet broadcasting stations and use multiple stations at the same time
Broadcast and record microphones with direct monitoring and latency compensation
Broadcast and record from an external mixer
Booth output with independent gain knob for using sound cards with 6 output channels without an external mixer
Prevent screensaver from starting while Mixxx is running
CUP (Cue And Play) cue button mode
Time remaining and time elapsed now take into account the tempo fader
Clicking cover art now shows it full size in a separate window
and of course, lots and lots of bug fixes.
Here are controllers with mappings that have been added or updated since the 2.0 release. Mappings marked with an asterisk (*) have been updated for the new effects interface:
American Audio VMS2
American Audio VMS4
Allen & Heath Xone K2/K1*
Behringer CMD Micro
Behringer CMD MM1*
Behringer CMD Studio 4a
Denon MC4000*
Denon MC6000 Mk2*
FaderFox DJ2
Hercules DJ Console 4-Mx*
Hercules DJ Control MP3 LE / Glow
Hercules DJ Control Compact
Hercules P32*
Ion Discover DJ
Korg Nanokontrol 2
Korg KAOSS DJ
M-Audio Xponent
Native Instruments Traktor Kontrol S4 Mk2*
Novation Launchpad Mk1 & Mk2
Novation Twitch
Numark Mixtrack Pro 3 & Numark Mixtrack 3*
Pioneer DDJ-SB2*
Pioneer DDJ-SX*
Reloop Beatmix 2
Reloop Beatmix 4
Reloop Digital Jockey 3 ME
Reloop Terminal Mix 2
Reloop Terminal Mix 4
Vestax VCI-100 Mk2
Vestax Typhoon
For users upgrading from older versions of Mixxx, we have a few important announcements. First, if you are using Windows, you will have to uninstall any old versions of Mixxx before you can install 2.1. How to uninstall Mixxx varies on different versions of Windows:
Windows Vista, 7, and 8: Start > Control Panel > Programs > Uninstall a Program
Windows 10: Start > Control Panel > Programs > Programs And Features > look for Mixxx > Uninstall
If you are upgrading from an older version of Mixxx and have MP3 files in your library, we have another important announcement. The good news is that we fixed a bug where the waveforms and audio playback of MP3 files were misaligned. The bad news is that we have no way of knowing which MP3 files were affected or how much the offset was. That means that waveforms, beatgrids, cues, and loops from older versions of Mixxx may be offset by an unknown amount for any MP3 file. Only MP3 files were affected by this bug; other audio file types are unaffected. You can either correct your beatgrids and cue points manually for each track, or you can clear this information for all MP3s and start fresh. Regardless, we recommend clearing the waveforms for all MP3 files. To clear these, type «location:mp3» into the library search bar, press Control + A to select all tracks, right click, and select the information you want to clear from the menu.
In the works for Mixxx 2.2, we have a big redesign of the library GUI. Along with that will come saving & restoring search queries plus nested crates. We are also planning on adding support for saving and loading custom effect chain presets with the ability to import and export them to share online.
Want to help make Mixxx even more awesome? The biggest thing we need is more people. You do not need to be a programmer to help out. Giving feedback on the design of new features as they are being made is very valuable. Refer to the Testing page on the wiki for more information on how to get involved with that. Reporting bugs and telling us your ideas on the Launchpad bug tracker is a big help too! We cannot fix problems we do not know about, so please let us know if you find any issues with Mixxx. If you would like to help translate Mixxx into another language, refer to the Internationalization wiki page. Of course, more programmers could always help. Read the Developer Documentation on the wiki for tips on getting started contributing code to Mixxx.
We hope you have as much fun with Mixxx as we do!
For a full list of new features and bugfixes, check out the 2.1.0 milestone on Launchpad.
2.0.0 (2015-12-31)
4 Decks with Master Sync
New Effects Framework with 4 Effect Units and 5 Built-in Effects:
Flanger, Bit Crusher, Reverb, Echo, Filter
More to come!
Configurable, Resizable User Interface with 3 Brand New Skins
Cover Art Display
Music Key Detection and Shifting
Vinyl Audio Pass-Through
4 Microphone inputs and 4 Auxiliary inputs
MIDI Mapping GUI and Improved Learning Wizard
MusicBrainz metadata fetching
RGB Musical Waveforms
Hundreds of Bug Fixes and Improvements
New Pitch-Independent Algorithm for Better-Sounding Key-lock
For a full list of new features and bugfixes, check out the 2.0.0 milestone on Launchpad.
See also
For an overview of previous versions, take a look at the timeline.