Mixxx is an open source program designed for electronic DJ's, and has a lot of features for specialist DJ hardware, and live mixing. Which is great and all, but for jazz music at a dance event all that stuff isn't really necessary. However it is great to be able to take advantage of some of the more basic functions that Mixxx provides that you won't find in other music players.
Mixxx is open source and available for all platforms, you can download it here or install it via your package manager if you are on Linux.
Once you have it installed it is easy to get put off by the large amount of buttons and options, however bear with it, we can make the UI a lot nicer to work with.
I recommend installing the FlatNite theme by ronso, and then clicking the hamburger menu by the clock to toggle off the panels that you don't need, then you can make it look like this.
The way I organise my music on Mixxx is to create .m3u8 playlists, for each genre of music. This lets me manage my library really easily, and make it quick to find tracks for the right moments.
For the actual playing of the music I use the "Auto DJ" to queue up music. This means you don't have to worry about manually hitting play on tracks and managing the decks. Just find the track you want and right click > "Add to Auto-DJ Queue (bottom)". Then you can open the Auto-DJ tab and order the tracks in response to the dance floor.
You can also set a negative fade value to give a pause in between tracks so that dancers can find a new partner.
One of the most useful features of Mixxx is the ability to preview a track on a separate device. To do this you need to get a USB audio device for your laptop. I bought this, which allows me to use my wired headphones to preview music and the laptops line out to play music on the venues system.
To set this up you need to configure your two audio devices to output the channels. Go to Options > Preferences > Sound Hardware, and select the headphone device.
If you enable the preview track panel in the FlatNite theme you will get an area above the search where you can scrub through the previewed track and adjust the volume.
BPM Detection, or lack of
One thing you might be tempted to do (as I was) is to use Mixxx's auto BPM detection to fill in the meta data of your jazz library for you. The issue with this is that Mixxx is designed for electronic music with fixed a BPM throughout the track, which means BPM detection doesn't really work for Jazz unfortunately.
EQ and Gain
Mixxx also lets you easily tweak the EQ and gain for the currently playing track. This is handy if you need to boost the treble or volume on an old recording.
Hopefully this has given you some reasons to try out Mixxx, I think for me the most daunting thing was the sheer number of options to worry about and having to manually manage the decks. Thankfully with the FlatNite theme, and the Auto-DJ feature it works really nicely for the basic needs of a Jazz DJ.
If you have any questions please let me know on the reddit thread in /r/SwingDancing.