2.4.0 (Unreleased)
- Prevent wrong cover art display due to hash conflicts #2524 #4904
- Add background color for quick cover art preview #2524
- Ensure that tracks with an invalid BPM are re-analyzed #2776
- Add support for exporting crates, playlists and the library to Engine Prime and Denon standalone controllers #2753 #2932 #3102 #3155 #3621 #3776 #3787 #3797 #3798 #4025 #4087 #4102 #4143 #4463
- Rekordbox: Save all loops and correct AAC timing offset for CoreAudio #2779
- Improve log messages during schema migration #2979
- Search related tracks in collection #3181 #3213 #2796 #4207
- Add recent searches to a drop down menu of the search box #3171 #3262
- Search: Save queries across restarts #4458 lp:1943084 lp:1947479 #4571
- Browse/Recording: Disable the non-working search box #4382
- Search: Update Clear button when search is disabled #4447
- Fix reset to default of search timeout in preferences #4504 lp:1948690
- Search: Ctrl+F in focused search box selects the entire search string #4515
- Search: Improve keypress handling, fix glitch in popup, strip whitespaces #4658
- Search: Enter jumps to track table if search query was transmitted #4844
- Add new "[AutoDJ],add_random_track" to make this feature accessible from controllers #3076
- Add new library column that shows the last time a track was played #3140 #3457 #3494 #3596 #3740
- Improve presentation of the history library tree #2996 #4298 lp:1944029
- Don't store or update metadata of missing tracks in the Mixxx database to prevent inconsistencies with file tags #3811
- Code improvements and minor bug fixes when importing track metadata #3851 #3858 #3860 #3866 #3871 #3870 #3924 #4368 #3906 #3998
- 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 lp:1981106
- 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
- Only show the date in Date Added / Last Played columns. Move the time of day to tooltips #3945
- Fix handling of undefined BPM values #4062 #4063 #4100 #4154 #4165 #4168
- Add support for m4v files #4088
- Adjust ReplayGain: Allow user to update the replaygain value based on a deck pregain value #4031
- Automatic analyze and optimize database #4199
- Re-import and update metadata after files have been modified when loading tracks #4218
- Fix playlists sidebar navigation/activation #4193 lp:1939082
- Sidebar: Map Left Arrow Key to jump to parent node and activates it #4253
- Fix assertion when navigating history playlists #4297 lp:1943643
- Track table: Add keyboard shortcut Ctrl+Enter to open track properties #4347
- Track table: Home/End keys jump to first/last row #4850
- Re-enable shortcuts after editing controls #4360 lp:1902125 lp:1943325
- History: Fix sidebar context menu actions #4384
- Allow to remove tracks from the library by pressing the Delete key #4330 lp:1227676 lp:1851457 lp:1856402 lp:1944565
- Remember track selection when switching library features, save model state #4177 #4536
- Allow to remove a track form the disk #3212 #4639
- Fix accasional resetting of played counter in database #4578 lp:1955159
- Recording: Fix table refresh issues #4648
- Add popup before deletion playlist and crates #4697 #4700 lp:1912475
- Experimental: Fix writing of undefined MusicBrainz Recording ID #4694
- Traktor library: fix importing track key #4701
- Add History cleanup options #4726 lp:1766163 lp:1969217
- Track Menu: Add action to select loaded track in library #4740
- Track Menu: Add menu for Analyze and Reanlyze #4806
- Track Menu: Add menu for looking up track metadata at Discogs, Soundcoud and LastFM #4772 #4836
- Track Menu: Add Remove from disk and fix undeleted message and progress dialog #4560 #4831 lp:1980091
- Track Menu: Allow to clear the comment field #4722 lp:1954589
- Track Menu: Allow to reset loops and also via "[ChannelN], loop_remove" control object #4802 lp:1978507
- Track Menu: Show 'Update ReplayGain' only in decks' menus #4719
- Fix exporting m3u files with tracks and special characters by using the URL format #4752
- Refactoring of library code #2756 #2717 #2715 #2810 #2900 #2906 #2925 #3017 #3475 #4164 #4152 #4162 #4101 #4214 #4280 #4429 #4477 #4475 #4480 #4633 #4837 #4864 #4893 #10861 #10871
- Add support for setting an explicit leader for sync lock #2768 #3099 #3695 #3734 #3698 #3864 #3867 #3921 #4119 #4135 #4149 #4276 #3944
- 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
- Fix recovering from FAAD2 decoding issues #2850
- SoundSourceMP3: Log recoverable errors as info instead of warning #4365
- Fix type detection of AIFF files #4364
- AAC encoder: Fixed a memory leak #4386 #4408
- Improve robustness of file type detection by considering the actual MIME type of the content. lp:1445885 #4356 #4357
- Fix file type detection when file has wrong file extension by determining the MIME type from content #4602 #4600
- Fix handling of files with wrong suffix #4615 lp:1445885 lp:1955840 #4683 lp:1961623
- Fix synchronization time stamps of ModPlug files #4826 lp:1979864
- ID3v2 parsing: Improve log warnings #4610
- Add support for Saved loops #2194 #3267 #3202 #4265 lp:1367159
- Fix an issue when pressing multiple cue buttons at the same time #3382
- Fix synchronization of main cue point/position #4137 lp1937074 #4153
- Add halve/double controls for beatjump size #4269
- Fix possible segfault when ejecting track #4362 lp:1940589
- Fixed an assertion when loop is before track start #4383 lp:1946759
- Fix/Improve snapping to beats in various situations #4366 lp:1945238
- Allow to cancel active loops via beatloop_activate #4328 lp:1876003
- 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 #4855
- Refactoring of beatgrid/beatmap code #4044 #4048 #4045 #4049 #4092 #4094 #4104 #4103 #4127 #4099 #4071 #4184 #4234 #4233 #4258 #4259 #4263 #4272 #4268 #4270 #4342 #4336 #4409 #4361 #4255 #4488 #4411 #4498 #4500 #4499 #4510 #4607
- Refactoring of audio engine code #2762 #2801 #2885 #2997 #3266 #4064 #4065 #4066 #4069 #4074 #4075 #4076 #4078 #4082 #4077 #4080 #4086 #4089 #4090 #4079 #4091 #4083 #4095 #4081 #4061 #4105 #4183 #4186 #4189 #4216 #4221 #4219 #4191 #4232 #4231 #4229 #4257 #4266 #4217 #1966 #4535 #4770 #4771 #4589 #1717 #4852 #10835 #10843
- Never raise a fatal error if a controller mapping tries access a non-existent control object #2947
- Update Novation Launchpad controller scripts #2600
- Add generic USB HID "Set Reports (Feature)" functionality #3051
- Add support for reading the status of an HID controller (like MIDI SYSEX) #3317
- Use hidapi's hidraw backend instead of libusb on Linux #4054
- Consistently use "mapping" instead of "preset" to refer to controller mappings #3472
- Library: Add control object
[Library],show_track_menu
to open/close the track menu #4465 - Library: Add control object
[Library],sort_focused_column
#4749 #4763 lp:1969634 - Introduce new control objects
[Master],indicator_250millis
and[Master],indicator_500millis
#4157 - Introduce new control object
[Library],clear_search
#4331 - Introduce new control object
[Library],focused_widget
to focus library directly #4369 #4490 - Serch bar: Remove ESC shortcut in favour of new
[Library],focused_widget
#4571 - Beat spinBox/AutoDJ spinbox: Enter & Esc also move focus to library #4617 #4845
- Don't automatically enable controller if it was disabled before #4244 lp:1941042
- Enable Qt logging categories for controller logging #4523
- Fix segfault during Mixxx shutdown due to a stale controller connection #4476 lp:1946581
- Components JS: Fix syncbutton #4329
- Roland DJ-505: Make blinking lights blink in sync and other improvements #4159 #4517
- Behringer DDM4000 mixer: Update controller mapping #4262 #4799
- Numark DJ2GO2 Touch: Fix sampler, hotcue, beatloop buttons #4287
- Denon MC6000MK2: Improve mapping code #4385
- Yaeltex MiniMixxx: Add controller mapping #4350
- Added Trace for the mapping connections, to allow JS profiling #4766
- Fix crash when using
midi.sendShortMsg
and platform vnc #4635 - Traktor S3: Fix timedelta calculation bugs #4646 lp:1958925
- Prepare code for upcoming ES6 based controller mapping system with module support #2682 #2868 #2875 #2936 #2946
- Other refactorings of controller code #2904 #3308 #3463 #3634 #3635 #3636 #3676 #3880 #4085 #4524 #4533 #4521 #4585 #4692 #4566 #4599 #4624 #4627 #4738
- Add experimental QML user interface #3345 #3446 #3854 #3891 #2874 #3915 #3894 #3920 #3907 #3925 #3928 #3932 #3911 #3937 #3940 #3913 #3950 #3919 #3955 #3957 #3961 #3952 #3963 #3971 #3959 #3972 #3992 #4003 #4004 #3999 #4000 #4067 #4068 #4060 #4037 #4414 #3934 #4117 #4327 #4339 #4568 #4576 #4591 #4616 #4567 #4629 #4643 #4650 #4654 #4673 #4680 #4681 #4736
- Add new "RGB Stacked" waveform #3153
- Add harmonic keywheel window #1695 #3622 #3624
- Make beat indicator control behaviour more natural #3608
- Allow skin scaling from preferences #3960
- Invert scroll wheel waveform zoom direction to mach other applications #4195
- Fix crash if no skin is available #3918 #3939
- Fix leaked controls #4213 lp:1912129
- Shade: Remove initial setting of now accessible effect controls #4398 lp:1946811
- Fix switching from Shade to other skins #4421 lp:1946812
- Use double click to reset knobs and sliders #4509 lp:1875999
- Use info not warning for skin COs #4525
- Spinny: Allow to toggle cover art at runtime #4565 lp:1883362
- Add new searchbox styles #4505
- Add new Quick Effect selector and effect chain buttons #4501 #4502 #4503 #4590 #4593
- Fix crash when starting without a valid skin directory #4575 lp:1934560
- 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: add buffer underflow indicator #4906
- Add a Noise effect #2921
- Add a pitch shift effect #4775 lp:1299035 #4810 #4901 #10858
- Use '---' instead of 'None' for empty slots to spot them easier #4469
- EngineFilterDelay: clamp wrong delay values #4869
- 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 lp:1980078 #4884 lp:1983789 lp1983764 #4899 #8817 #10868
- Improve/fix the CMake build system #2943 #3046 #3114 #3471 #3765 #3849 #3876 #4098 #4113 #4166 #4185 #4187 #4351 #4423 #4422 #4497 #4514 #3550 #4861 #10855
- Improve GitHub workflow continuous integration #2937 #3041 #3300 #4007 #4084 #4250 #4274 #4313 #4226 #4452 #4742 #4741 #4795 #4798 #4792 #4829 #4822 #4820 #4821 #4818 #4819 #4817 #4815
- Improve pre-commit hook #2796 #3923 #3948 #3929 #4192 #4282 #4278 #4314 #4321 #4374 #4494 #4512 #4558 #4580 #4743
- Improve Lauchpad PPA builds #4277 #4285 #4425
- Drop Ubuntu Bionic support, require Qt 5.12 #3687 #3735 #3736 #3985
- Drop Ubuntu Focal support, require C++20 #4889 #4895
- Drop Ubuntu Groovy and Impish support because of EOL #4283 #4849
- Support Ubuntu Kinetic Kudo #4780
- Provide Ubuntu Jammy CI builds #4857
- Add NixOS support #2820 #2828 #2836 #2827 #2827 #2828 #3113 #3089 #3545
- Update vcpkg build environment for Windows and macOS #4163 #4225 #4338 #4709 #4717 #10872
- Devendor libraries from the mixxx lib directory #4201 #4202
- Update Google Benchmark library to v1.6.0 #4540
- Update hidapi to 0.11.2 #4783
- Update xwax to Version 1.8 #4597 lp:1956018
- Update rigtorp/SPSCQueue #4678
- Migration to Qt6 (work in progress) #4052 #4295 #4293 #4294 #4291 #4290 #4300 #4302 #4289 #4292 #4299 #4051 #4303 #4305 #4304 #4306 #4308 #4309 #4322 #4373 #4371 #4375 #4378 #4381 #4380 #4376 #4379 #4372 #4377 #4387 #4391 #4392 #4395 #4397 #4396 #4402 #4405 #4394 #4404 #4401 #4400 #4403 #4407 #4399 #4406 #4420 #4415 #4417 #4419 #4416 #4418 #4547 #4433 #4434 #4441 #4445 #4446 #4444 #4436 #4437 #4440 #4430 #4435 #4443 #4439 #4442 #4438 #4449 #4451 #4453 #4478 #4479 #4506 #4556 #4554 #4555 #4552 #4549 #4788 #4620 #4641 #4649 #4679
- Disable QWidget based library with Qt6, support only QML skins #4393
- Made use of inclusive language #2894 #3868
- Improve the unit tests #2938 #2980 #3006 #4345
- Logging: Add support for
QT_MESSAGE_PATTERN
environment variable #3204 #3518 - Colored logging console output #3197
- Improve command line argument parser #3640 #3962 #4022 #4036 #4170 #4057
- Improve message when dealing with macOS sandbox #4018 lp:1921541
- Moved contribution guidelines into our git repository #2699
- Make windows_buildenv.bat work with spaces in path #4896
- Automate deployment of CHANGELOG to the manual #4180 #4256 #4208 #4228 #4222
- Always show tooltips in preferences #4198 lp:1840493
- Allow to build Mixxx on Linux without ALSA, working around a Pipewire bug #4242
- Fix possible crash with opus files with embedded cover arts and require TagLib 1.11 or newer #4251 #4252 lp:1940777
- DlgTrackInfo: Fixed a SIGSEGV after a debug assertion #4316
- Library Preferences: Added link to settings files info in the manual #4367
- Use rounded Mixxx Icon for MacOS to follow Apples style guide #4545
- Show native path separators in command line argument --help #4657
- Add 13 new translation languages #4785 lp:1837663
- Improve Vinyl control quality indicator #3279
- Track info dialog: Apply pending changes also when saving via hotkey #4562 lp:1954346
- Track info dialog: Fix crash when trying to scale 0.0 BPM #4587 1955853
- Tweak remove/hide track confirm message to match confirm exit message #4577 1947992
- Implement Un-eject by pressing eject again #4668
- Preferences > Effects: Fix Tab key navigation / UX #4702 lp:1948535
- Switch to C++20 #4832 #4803
- Windows builds: Sign binary and installer with timestamp and sha256 #4824 #4825
- Replace Launchpad bugs by GitHub issues #10850 #10865
- Misc. refactorings #3154 #2870 #2872 #2978 #2969 #3016 #3320 #3356 #3453 #3487 #3558 #3685 #3741 #3744 #3753 #3761 #3834 #3842 #3853 #3874 #3883 #3922 #3947 #3974 #4024 #4026 #4034 #4038 #4039 #4043 #4053 #4072 #4097 #4096 #4118 #4130 #4129 #4109 #4106 #4131 #4140 #3032 #4110 #4173 #4178 #4194 #4197 #4190 #4212 #4223 #4238 #4236 #4320 #4325 #4203 #3861 #3514 #3274 #3182 #4343 #4358 #4388 #4427 #4341 #4473 #4464 #4481 #4527 #4534 #4537 #4539 #4541 #4543 #4546 #4542 #4559 #4574 #4581 #4582 #4598 #4596 #4592 #4784 #4604 #4603 #4611 #4605 #4583 #4636 #4644 #4653 #4655 #4609 #4647 #4660 #4663 #4661 #4670 #4672 #4674 #4618 #4690 #4724 #4730 #4731 #4732 #4728 #4737 #4739 #4745 #4765 #4767 #4797 #4782 #4800 #4791 #4848 #4856 #4860 #4867 #4888 #4908 #4903 #8818 #4907
2.3.4 (unreleased)
- Controller Preferences: Fix some usability issues #10821
- Track Properties: show 'date added' as local time #4838 lp:1980658
- Numark DJ2GO2: Fix sliders and knobs #4835 lp:1948596
- Numark DJ2Go2: support HotCue clear with pad #10841
- Numark DJ2Go2: Fix inverted tempo fader #10852 #10586
- Potmeters: Add support for arbitrary maximums in 7-/14-bit handlers from controller scripts #4495
- Shade: Fix library sidebar splitter glitch #4828 lp:1979823
- 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
- Traktor S3: Fix issues with sampler and hotcue buttons #4676
- Build Mixxx on MacOS 11, replacing deprecated MacOS 10.15 #4863
- EQ preferences: properly restore 'One EQ for all decks' setting #4886
- MC7000: Fix off-by-one indexing in the controller script #4902
- Cover Art: Fix picking wrong cover file, when track file name contains extra dots #4909
- Respect MusicBrainz rate limits #10874 #10795
- Fix compatibility with FFmpeg 5.1 and require FFmpeg v4.1.9 #10862 #10866
- Fix GCC 12.2.0 compatibility #10863
- Improve CMake 3.24 compatibility #10864
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 lp:1960680
- 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
- Fix scratch on first wheel touch #4761 lp:1800343
- Preferences: Prevent controller settings being treated as changed even though they were not #4721 lp:1920844
- Fix rare crash when closing the progress dialog #4695
- Prevent preferences dialog from going out of screen #4613
- Fix undesired jump-cuts in Auto DJ #4693 lp:1948975 lp:1893197
- Fix bug that caused Auto DJ to stop playback after some time #4698 lp:1893197 lp:1961970
- Do not reset crossfader when Auto DJ is deactivated #4714 lp:1965298
- Change the minimum Auto DJ transition time to -99 #4768 lp:1975552
- Samplers, crates, playlists: fix storing import/export paths #4699 lp:1964508
- Library: keep hidden tracks in history #4725
- Broadcasting: allow multiple connections to same mount if only one is enabled #4750 lp:1972813
- Fix a rare mouse vanish bug when controlling knobs #4744 lp:1130794 lp:1969278
- Restore keylock from configuration and fix pitch ratio rounding issue #4756 lp:1943180
- Improve CSV export of playlists and crates and fix empty rating column #4762
- Fix passthrough-related crash in waveform code #4789 #4791 lp:1959489 lp:1977662
- Passthrough: stop rendering waveforms and disable Cue/Play indicators 4793
2.3.2 (2022-01-31)
- Playlist: Enable sorting by color #4352 lp:1945976
- Fix crash when using Doubling/Halving/etc. BPM from track's Properties window on tracks without BPM #4587 lp:1955853
- Fix writing metadata on Windows for files that have never been played #4586 lp:1955331
- Preserve file creation time when writing metadata on Windows #4586 lp1955314
- 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 lp:1934560 - Pioneer 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 lp:1889352
- Fix crash when using midi.sendShortMsg and platform vnc #4635 lp:1956144
- Traktor S3: Fix timedelta calculation bugs #4646 lp:1958925
- 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
- Fix/Improve Appstream metainfo #4344 #4346 #4349
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+) lp1938102 #4161
- Fix unhandled exception when parsing corrupt Rekordbox PDB files lp1933853 #4040
- Fix Echo effect adding left channel samples to right channel #4141
- Fix bad phase seek when starting from preroll lp1930143 #4093
- 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 lp1933991 #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 lp:1941042
- Tooltips: Always show tooltips in preferences #4198 lp:1840493
- 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 lp:1929141
- Auto DJ: Fix bug which could make an empty track stop Auto DJ. #4267 lp:1941743
- Fix Auto DJ skipping tracks randomly #4319 lp1941989
- Fix high CPU load due to extremely high internal sync clock values #4312 lp1943320
- 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
- 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 - Various build issues on FreeBSD are fixed #4122 #4123 #4124
- .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
- Fix AppStream metainfo #4205 #4317
2.3.0 (2021-06-28)
- Add hotcue colors and custom labels by right clicking hotcue buttons or right clicking hotcues on overview waveforms #2016 #2520 #2238 #2560 #2557 #2362
- Mouse hover cues on overview waveform to show time remaining until the cue #2238
- Add configurable color per track #2470 #2539 #2545 #2630 lp:1100882
- Add customizable color palettes for hotcue and track colors #2530 #2589 #3749 #2902
- Add hotcue color find-and-replace tool #2547
- 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.
- Add intro & outro range cues with automatic silence detection #1242
- Show duration of intro & outro ranges on overview waveform #2089
- Use intro & outro cues in AutoDJ transitions #2103
- Add deck cloning (also known as "instant doubles" in other DJ software) by dragging and dropping between decks #1892 and samplers #3200
- Clone decks by double pressing the load button on a controller (with option to disable this) #2024 #2042
- Aesthetically revamped LateNight skin #2298 #2342
- 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
- Workaround Linux skin change crash #3144 lp:1885009
- Fix touch control lp:1895431
- Fix broken knob interaction on touchscreens #3512
- AutoDJ: Make "enable" shortcut work after startup #3242
- Add rate range indicator #3693
- Allow menubar to be styled #3372 #3788
- Add Donate button to About dialog #3838 #3846
- Add Scrollable Skin Widget #3890
- Fix minor visual issues in Skins #3958 #3954 #3941 #3938 #3936 #3886 #3927 #3844 #3933 #3835 #3902 #3931
- Multithreaded analysis for much faster batch analysis on multicore CPUs #1624 #2142 lp:1641153
- 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
- Fix const beatgrid placement #3965 #3973
- Add support for searching for empty fields (for example
crate:""
) lp:1788086 - Improve synchronization of track metadata and file tags #2406
- Library Scanner: Improve hashing of directory contents #2497
- Rework of Cover Image Hashing lp:1607097 #2507 #2508
- MusicBrainz: Handle 301 status response #2510
- MusicBrainz: Add extended metadata support lp:1581256 #2522
- TagLib: Fix detection of empty or missing file tags lp:1865957 #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 lp:1828555 lp:1924616
- Fix track table being empty after start #3935 lp:1930546 lp:1924843
- Add FFmpeg audio decoder, bringing support for ALAC files #1356
- Include LAME MP3 encoder with Mixxx now that the MP3 patent has expired lp:1294128 buildserver:#37 buildserver:9e8bcee
- Add Opus streaming and recording support. lp:1338413
- Remove support for SoundSource plugins because the code was not well-maintained and could lead to crashes lp:1792747
- Add HE-AAC encoding capabilities for recording and broadcasting #3615
- Fix loss of precision when dealing with floating-point sample positions while setting loop out position and seeking using vinyl control #3126 #3127
- Prevent moving a loop beyond track end #3117 lp:1799574
- Fix possible memory corruption using JACK on Linux #3160
- Fix changing of vinyl lead-in time lp:1915483 #3781
- Fix tempo change of non-const beatgrid track on audible deck when cueing another track #3772
- Fix crash when changing effect unit routing #3882 lp:1775497
- Make microphone ducking use strength knob the same way in automatic & manual mode #2750
- 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 BCR2000 #3342 #3943
- Add controller mapping for Behringer DDM4000 #3542
- 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 lp:1846403
- Fix Numark Mixtrack Pro 3 controller mapping inverted FX on/off control #3758
- Gracefully handle MIDI overflow #825
- Add CMake build system with
ccache
andsccache
support for faster compilation times and remove SCons #2280 #3618 - Make Mixxx compile even though
QT_NO_OPENGL
orQT_OPENGL_ES_2
is defined (fixes build on Raspberry Pi) lp:1863440 #2504 - Fix ARM build issues #3602
- Fix missing manual in DEB package lp:1889776 #2985
- 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
- Derive Mixxx version from
git describe
#3824 #3841 #3848 - Improve tapping the BPM of a deck #3790 lp:1882776
- 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" lp:1857806 #2414
- Prevent infinite loop when decoding corrupt MP3 files #2417
- Add workaround for broken libshout versions #2040 #2438
- Speed up purging of tracks lp:1845837 #2393
- Don't stop playback if vinyl passthrough input is configured and PASS button is pressed #2474
- Fix debug assertion for invalid crate names lp:1861431 #2477
- Fix crashes when executing actions on tracks that already disappeared from the DB #2527
- AutoDJ: Skip next track when both deck are playing lp:1399974 #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
- Fix broadcasting via broadcast/recording input lp:1876222 #2743
- Only apply ducking gain in manual ducking mode when talkover is enabed lp:1394968 lp:1737113 lp:1662536 #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 MusicBrainz metadata lookup lp:1848887 #2328
- 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 lp:1842679 #2265 #2305 #2308 #2309
- Fix rare crash on application shutdown #2293
- Workaround various rare bugs caused by database inconsistencies lp:1846971 #2321
- Improve handling of corrupt FLAC files #2315
- Don't immediately jump to loop start when loop_out is pressed in quantized mode lp:1837077 #2269
- Preserve order of tracks when dragging and dropping from AutoDJ to playlist lp:1829601 #2237
- Explicitly use X11 Qt platform plugin instead of Wayland in .desktop launcher lp:1850729 #2340
- Pioneer DDJ-SX: fix delayed sending of MIDI messages with low audio buffer sizes #2326
- Enable modplug support on Linux by default lp:1840537 #2244 #2272
- Fix keyboard shortcut for View > Skin Preferences lp:1851993 #2358 #2372
- Reloop Terminal Mix: Fix mapping of sampler buttons 5-8 lp:1846966 #2330
2.2.2 (2019-08-10)
- Fix battery widget with upower <= 0.99.7. #2221
- Fix BPM adjust in BpmControl. lp:1836480
- Disable track metadata export for .ogg files and TagLib 1.11.1. lp:1833190
- Fix interaction of hot cue buttons and looping. lp:1778246
- Fix detection of moved tracks. #2197
- Fix playlist import. #2200 lp:1687828
- Fix updating playlist labels. lp:1837315
- Fix potential segfault on exit. lp:1828360
- Fix parsing of invalid BPM values in MP3 files. lp:1832325
- 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. lp:1828019
- Fix OpenGL ES detection. lp:1825461
- Fix FX1/2 buttons missing Mic unit in Deere (64 samplers). lp:1837716
- 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 lp:1812763
- Fix HID controller output on Windows with common-hid-packet-parser.js
- Fix rendering slow down by not using QStylePainter in WSpinny lp:1530720
- Fix broken Mic mute button lp:1782568
- 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)
- 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.
- 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).
- Add 8 sampler and small sampler options to LateNight.
- Add key / BPM expansion indicators to Deere decks.
- Add skin settings menu to LateNight.
- Add controller mapping for Numark Mixtrack Platinum.
- Update controller mapping for Numark N4.
- Add spinback and break for Vestax VCI-400 mapping.
- 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. lp:1816490
- Fix sending of broadcast metadata with TLS enabled libshout 2.4.1. lp:1817395
- Fix resdicovering purged tracks in all cases. lp:1821514
- Fix dropping track from OSX Finder. lp:1822424
2.1.7 (2019-01-15)
- Fix syncing to doublespeed lp:1808697
- Fix issues when changing beats of a synced track lp:1808698
- Fix direction of pitch bend buttons when inverting rate slider lp:1770745
- Use first loaded deck if no playing deck is found lp:1784185
- Encode file names correctly on macOS lp:1776949
2.1.6 (2018-12-23)
- Fix crash when loading a Qt5 Soundsource / Vamp Plug-In. lp:1774639
- Validate effect parameter range. lp:1795234
- Fix crash using the bpm_tap button without a track loaded. lp:1801844
- Fix possible crash after ejecting a track. lp:1801874
- Fix wrong bitrate reported for faulty mp3 files. lp:1782912
- Fix Echo effect syncing lp:1793232
- Fix iTunes context menu lp:1799932
- Fix loading the wrong track after delete search and scroll. lp:1803148
- Improve search bar timing. lp:1635087
- Fix quoted search sentence. lp:1784141
- Fix loading a track formerly not existing. lp:1800395
- Fix importing m3u files with blank lines. lp:1806271
- Fix position in sampler overview waveforms. lp:1744170
- Don't reset rate slider, syncing a track without a beatgrid. lp:1783020
- Clean up iTunes track context menu. lp:1800335
- Collapsed sampler are not analyzed on startup. lp:1801126
- search for decoration characters like "˚". lp:1802730
- Fix cue button blinking after pressing eject on an empty deck. lp:1808222
2.1.5 (2018-10-28)
- Code signing for Windows builds. lp:1517823
- Fix crash on exit when preferences is open. lp:1793185
- Fix crash when analyzing corrupt MP3s. lp:1793387
- Fix crash when importing metadata from MusicBrainz. lp:1794993
- Library search fixes when single quotes are used. lp:1784090 lp:1789728
- Fix scrolling waveform on Windows with WDM-KS sound API. lp:1729345
- Fix right clicking on beatgrid alignment button in Tango and LateNight skins. lp:1798237
- Improve speed of importing iTunes library. lp:1785545
- 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. lp:1777429
- Fix artifacts using more than 32 samplers. lp:1779559
- store No EQ and Filter persistently. lp:1780479
- Pad unreadable samples with silence on cache miss. lp:1777480
- Fixing painting of preview column for Qt5 builds. lp:1776555
- LateNight: Fix play button right click. lp:1781829
- LateNight: Added missing sort up/down buttons.
- Fix sampler play button tooltips. lp:1779468
- Shade: remove superfluid margins and padding in sampler.xml. lp:1773588
- Deere: Fix background-color code.
- ITunes: Don't stop import in case of duplicated Playlists. lp:1783493
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. lp:1577042
- Improved skins including library view fix. lp:1773709 lp:1772202 lp:1763953
- Fix crash when importing ID3v2 APIC frames. lp:1774790
- Synchronize execution of Vamp analyzers. lp:1743256
- DlgTrackInfo: Mismatching signal/slot connection.
- Detect M4A decoding errors on Windows. lp:1766834
- Fix spinback inertia effect.
- Fix decoding fixes and upgrade DB schema. lp:1766042 lp:1769717
- Fix integration of external track libraries. lp:1766360
- Fix memory leak when loading cover art. lp:1767068
- Fix clearing of ReplayGain gain/ratio in file tags. lp:1766094
- Fix crash when removing a quick link. lp:1510068
- Fidlib: Thread-safe and reentrant generation of filters. lp:1765210
- Fix unresponsive scrolling through crates & playlists using encoder. lp:1719474
- Swap default values for temp/perm rate changes. lp:1764254
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, Resizeable 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.