This is an old revision of the document!
If you were directed here from the Sound Hardware preferences in Mixxx, see Adjusting Audio Latency.
If you've got a question that's not answered here, please post in the forums. Please be sure you are using the latest version of Mixxx before you ask for help. The latest version is available on the download page.
Check if you have anything configured for the Record/Broadcast input in the Sound Hardware section of the Preferences. When this input is configured, Mixxx will broadcast and record the signal from it instead of the output of Mixxx. This is for recording and broadcasting from an external hardware mixer or an audio interface with a loopback input. If you are not using either of those, do not configure the Record/Broadcast input. You probably want to use a Microphone input instead. Refer to the Using Microphones section of the manual for more information.
As of Mixxx 2.2, Mixxx uses Qt's automatic scaling for high pixel density screens. Unfortunately, this does not always work well. Sometimes it uses scaling to make the GUI too big on screens that do not need scaling, or if your screen does require scaling you may prefer a different size than the automatically determined default. You can disable automatic scaling with…
Open a shell console and type:
before running Mixxx from that shell. Alternatively, you can manually set a scale factor by running
To avoid needing to run these commands every time you run Mixxx, you can add them to /etc/profile or ~/.bashrc (assuming you are using Bash as your shell), log out, and log back in.
Open a command prompt ( cmd ) and type:
You can also manually set a scale factor by running
Then type the full path to your Mixxx.exe file, or cd to the directory where it is and run it. Usually “C:\Program Files\Mixxx\Mixxx.exe”
To avoid needing to run these commands every time you run Mixxx, you can create batch file (which is a text file with the extensions .bat or .cmd) with the set QT_AUTO_SCREEN_SCALE_FACTOR=0 line, and the full path to Mixxx.exe. Then doubleclick this file instead of Mixxx shortcut to launch it.
Refer to Qt's documentation for details.
On GNU/Linux, running Mixxx from a GUI menu or from the launcher icon automatically suspends PulseAudio while Mixxx is running so Mixxx can use your sound card with ALSA directly. To keep other programs playing sound, either they all need to use JACK, or you can try using the “pulse” virtual ALSA device with Mixxx when running Mixxx on the command line without pasuspender. Refer to the Mixxx manual for more information about sound APIs. If you use JACK and do not want Mixxx to pause PulseAudio, you can edit /usr/share/applications/mixxx.desktop to change the line:
Exec=sh -c “pasuspender – mixxx || mixxx”
On Windows, the recommended ASIO sound API typically requires that only one program uses a sound card at a time. Refer to the Mixxx manual for more information about sound APIs.
Check that your sound card is plugged in. If it has its own power supply, make sure that is plugged in too. If it has a power switch, check that it is switched on.
Mixxx only detects sound cards on startup. If you plugged your sound card in after starting Mixxx, restart Mixxx and look again under Sound Hardware in Options > Preferences.
On Windows, you need to have a driver for each sound sound card you are trying to use with the sound API you have configured. Generally, consumer grade sound cards like those built into computer motherboards and external monitors do not have ASIO drivers. Check the sound card manufacturer's website for an ASIO driver to download and install. If there is no ASIO driver for your sound card, it might be possible to use ASIO4ALL, but ASIO4ALL is a wrapper around WDM-KS, so it may be better to use WDM-KS directly. ASIO4ALL can be helpful for using a sound card that has an ASIO driver together with another sound card that does not have an ASIO driver. Refer to the manual for more information about different sound APIs.
If you are running Mixxx on Windows 10, try following these suggestions from Audacity. Mixxx and Audacity both use the PortAudio library to access sound cards on multiple OSs, so those suggestions apply to both programs.
If you are considering what sound card to get for use with Mixxx, read the DJ Hardware Guide.
If you are starting Mixxx from a command line on GNU/Linux, you probably need to suspend or disable PulseAudio. On most GNU/Linux distributions today, the PulseAudio sound server is automatically started upon logging in. PulseAudio is convenient for most desktop audio use, but it is not good for audio use that requires low latency like Mixxx. The PulseAudio daemon occupies the ALSA device while it is running. To temporarily disable PulseAudio while Mixxx is running, start it with
pasuspender mixxx. The .desktop launcher icon for Mixxx does this automatically. To run Mixxx with command line options, such as
pasuspender and the rest of the command. For example, run
pasuspender -- mixxx --mididebug
Bluetooth audio always has a high latency and is not recommended for DJing. Use wired connections instead.
First, try each option for waveform renderer in Preferences > Waveforms > Summary type and Overview type. Different options will work better on different combinations of video card, video driver, and operating system. Lower the framerate to the lowest it needs to be before you notice the waveforms flicker. Also see Adjusting Audio Latency.
In Preferences > Sound Hardware, select “Soundtouch (faster)” for Keylock/Pitch-Bending Engine. Be careful not to make big changes in tempo to a track with keylock on because it will not sound good with Soundtouch. See also What should I do to get Mixxx to run the best it can on my computer?
In Preferences > Equalizers, check if the master EQ is enabled. Disable or reset to defaults to test whether this is the cause.
In Preferences > Normalization, check if both target Loudness and Initial Boost are at reasonable values. If in doubt, reset the page to default values.
In the skin, check if microphone talkover ducking is enabled (set to Auto or Manual). Even with no microphone configured this setting could affect Master volume to the extent that Master is silent if the Ducking knob is turned all the way to the left. In case you have such a knob on your controller, check that as well, as its position might be read the next time you start Mixxx.
To use a MIDI or HID controller with Mixxx, enable the device and load a mapping. Go to Options > Preferences in Mixxx and look for your controller under the “Controllers” label on the left. Check the “Enabled” box, select a mapping from the drop down menu and press “Ok”. If Mixxx did not come with a mapping for your controller, search the forum to see if anyone has made one. If not, you can map it yourself.
If your controller does not show up under “Controllers” on the left side of Mixxx's preferences window, Mixxx did not detect your controller. Check that your controller is plugged into your computer. If your controller has its own power supply, check that the power supply is plugged in. If your controller has a power switch, make sure it is on. Note that Mixxx will only detect controllers on start up, so if you plugged in your controller after starting Mixxx, restart Mixxx and go back to the Preferences window.
If you are sure your controller is connected but it still does not show up in Mixxx, read the appropriate section below. If you do not know whether your controller is a MIDI controller or HID controller, search for it on the DJ Hardware Guide. If it is not listed there, it is most likely a MIDI device.
Some controllers have their own pecularities that are noted on their own wiki pages. If the information below does not solve your problem, check the wiki page for your controller, which you can find a link to on the DJ Hardware Guide.
Make sure that the snd-seq-midi kernel module has been loaded. Open a console and run
lsmod | grep snd_seq_midi to check if the module has been loaded. If it has not, run
modprobe snd-seq-midi as root and restart Mixxx.
If your controller does not appear in the list of controllers on the left pane of Mixxx's Preferences (under the “Controllers” section), Mixxx may not have permission to use your HID or USB Bulk device. (Mixxx will say something to this effect in the log when it scans for controllers.) Mixxx should automatically install a udev rule to give users in the group called “users” permission to use HID and USB Bulk devices. It is installed with the Ubuntu PPA and RPMFusion package as well as when installing Mixxx from source (if you have write access to /etc/udev/rules.d when running
scons install), however packages for other distributions might not install it correctly.
If you still do not see your controller on the left side of Mixxx's Preferences, check that your user account is in the group “users”. Open a console and run the command
groups to find out what groups your user is in. If
users is not listed, run
usermod -aG users YOUR-USER-NAME as root to add YOUR-USER-NAME to the “users” group, log out, and log back in.
If you did not install Mixxx from the Ubuntu PPA or RPMFusion, you may need to save save this file to
/etc/udev/rules.d/mixxx.usb.rules. You will need root privileges (use
su) to copy the file to that location. Then, restart your computer.
First try using each of the Sample Rate options on the Audio Hardware page in Mixxx's preferences. (You have to press OK or Apply after changing the setting for it to take effect.) Nearly all sound interfaces support at least one of 48000 Hz or 44100 Hz so try both of those first.
If that doesn't help and you're on Linux, try opening a console and running
export PA_ALSA_PLUGHW=1 before running
pasuspender mixxx, see above). To avoid having to do this every time you run Mixxx, add
export PA_ALSA_PLUGHW=1 to the end of /etc/profile or ~/.bashrc, log out, and log back in. This will tell PortAudio, the library Mixxx uses to interact with sound hardware on multiple operating systems, to use ALSA's plughw devices rather than hw. plughw automatically converts audio streams to a sample format supported by the sound card.
This requires either a sound card with 4 (mono) output channels, multiple sound cards, or a DJ splitter cable. See the DJ Hardware Guide for more information. Both the Master and Headphones outputs must be configured in the Sound Hardware section of Options > Preferences.
To make the track playing in your headphones not play on the main output, turn the volume down on the deck you do not want your audience to hear yet (or push the crossfader all the way to the opposite side) then press the headphone ('PFL') button for that deck. This will not turn down the volume in your headphones; it will only turn down the volume on the main output.
Your audio latency may be set lower than your system can handle. See the Adjusting Audio Latency page for tips on adjusting your latency.
Your audio latency may be set too high. See the Adjusting Audio Latency page for tips on adjusting your latency.
This can happen when poor quality USB cables pick up electromagnetic interference. Some sound cards are bundled with poor quality USB cables. Sending digital audio over USB requires a clear, uninterrupted signal transmitted at regular time intervals (isochronus transfer). This is more sensitive to interference than most USB signals. Try using a different USB cable if you have one. If that does not work, consider getting a Chroma Cable from DJ Tech Tools. These are high quality USB cables made specifically for DJs with a ferrite bead on each end to dissipate high frequency interference as heat. Additionally, try to avoid having your USB cables near sources of interference like other devices' power cables.
Also see this guide from Native Instruments for identifying USB cables that are better for DJ gear.
Try different options for the sound API. If the manufacturer of your sound card provides an ASIO driver, it is recommended to install that and use ASIO. Select which sound API to use in Options > Preferences > Sound Hardware. See the manual for an explanation of the different sound APIs.
Refer to the Using Microphones chapter of the manual.
Scanning and analyzing the library are separate steps because analyzing tracks takes a lot of CPU resources and time. When a track that has not been analyzed is loaded, Mixxx will analyze its BPM and Replay Gain as well as generate the waveform. You can analyze your whole library in advance so you can see the BPM of every track in your library before loading it. When you have time to let your computer run for a long time (for example, before you go to sleep), go to “Analyze” on the left panel of the library display in Mixxx's main window. Select the “All” button on the top left, click the “Select All” button on the top right, then click the “Analyze” button in the top right.
Click Library→Rescan library, wait for the scan to finish, and search for your new music.
Mixxx supports the following audio file formats:
If your music isn't currently in one of these formats (or you don't have a suitable plugin installed) it won't show up in the Mixxx library. You'll need to use a program like Sox, Audacity, or ffmpeg to convert it.
If the detected BPM of a track is correct but the beat markers are not in the correct place, seek the track to where a beat starts. Click the “Adjust beatgrid” icon in the grid of icons to the right of the overview waveform. This is the bottom left icon in the grid.
Try adjusting the BPM analyzer's range. Go to Options > Preferences > Beat Detection, adjust the numbers, and press okay. Reanalyze your tracks.
We've seen this a few times and it has always been a video driver problem. Make sure you have the latest drivers for your card. (You may need to get them from the chipset maker (nVidia, AMD/ATI) rather than the system board or computer manufacturer, since the manufacturer drivers aren't always the latest.) Also, if you're on Windows, make sure you have the latest DirectX installed. See also What should I do to get Mixxx to run the best it can on my computer?
Before you try anything else, please update or reinstall your nVidia graphics driver. (This applies to all OSes.) Even if it is the same exact version, apparently it is fickle and needs to be rebuilt/reinstalled any time things change in the OS. Try this first before going any further. You might also try getting the latest driver from nVidia's web site instead of your PC/card manufacturer since they may be newer.
If you are using GNU/Linux, try uninstalling the proprietary nVidia driver and using the free nouveau driver.
Could not open xml file: “/usr/local/share/mixxx/schema.xml” happens to people that have built Mixxx from source but didn't do the install step. You can either do that (with
sudo scons install) or explicitly tell Mixxx where to look for resources with the
-resourcePath command line parameter, like so:
Unfortunately, this does not yet work automagically but needs some manual fiddling with the music configuration files. Here is one way of doing it:
.mixxx/in the home folder)
mixxxdb.sqlitethat can be found in your mixxx configuration folder
Execute SQLand enter:
update track_locations set directory = replace (directory, '/old/path/DJ/Music/', '/new/path/DJ/Music/'); update track_locations set location = replace (location, '/old/path/DJ/Music/', '/new/path/DJ/Music/');
where the old and new paths point to your corresponding music folders.
Run SQL. The above statements will replace all instances of
/new/path/DJ/Music/in the field of location and directory of track_locations table.
mixxxand under settings change your music folder to the new one. If you want you can do a rescan to check that the music files do not turn up twice suddenly (if you are on linux, do especially check music files which where in symbolically linked directory). Check if bpm and other meta infomation like cue points are still stored with the files.
Sometimes an old or invalid configuration setting can cause Mixxx to do strange or unexpected things. It's always a good idea to try with a fresh, clean default configuration to see if your problem disappears.
First, close Mixxx completely. Then rename your Mixxx configuration directory:
.mixxxoff of your home directory. Rename it using the console command
mv ~/.mixxx ~/.mixxx-backup
Mixxxfolder there to something else like
mv ~/Library/Application Support/Mixxx ~/Library/Application Support/Mixxx-backup
Then start Mixxx again and test to see if your problem still exists. (You can rename or copy the directory back to restore your settings when you're done testing.)
Some Linux distributions like Fedora 31 switched to using QtWayland as the default platform plugin for Qt applications in a Wayland desktop environment. This does not work as expected for Mixxx. There are two options to enforce using the X11 platform plugin
xcb instead of
The desktop launchers in the source repository already include this fix.
Refer to Finding the mixxx.log file