BallroomDJ - The Ballroom Music Player


BallroomDJ is a ballroom music player. It is designed to let the computer choose the music and to be able to play music the entire evening without intervention. Use for your personal training, dance studio, or ballroom events. It features flexible playlists, music queue management, requests, seeking in songs, speed with pitch control, and an optional audio file organizer.

Required Software:

Linux / MacOS:

  • vlc or mplayer
  • tcl (8.5+)
  • tk
  • libtk-img
  • python 2.x
  • alsa-utils or pulseaudio-utils
  • flac
  • python-mutagen
  • faad
  • vorbis-tools
  • lirc (optional for remote control)


  • Free and open source software.
  • Extensive context sensitive help.
  • Uses your music collection from your hard drive. No drag and drop.
  • Uses either VLC or MPlayer as the audio player.
  • No limitations on the number of audio files.
  • Songs can be removed/moved/added to the queue while playing.
  • Flexible playlist generation and controls.
    • Choose which dances and how often they play compared to other dances.
    • Allow songs tagged with a particular keyword to play.
    • Define a sequence to play dances in a particular order.
    • Create a manual playlist to play songs in an exact order.
    • Stop playing at a particular time.
    • Stop playing after some number of songs.
    • Mix all of the above in the playlist queue.
    • Rearrange or modify the playlist queue at any time.
  • Requests.
  • Configurable gap between songs.
  • Seek in song.
  • Speed w/pitch control.
  • Support for remote control.
  • Optional music management to organize your audio files.
    • Paths to the audio files are fully configurable.
    • Files are renamed automatically.
    • BPM Counter.
  • Optional status tracking for the audio files.


Copyright 2012-2014 Brad Lanam, Walnut Creek, CA, USA

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.