BallroomDJ Development


  • Always preserve backwards compatibility.
    The pkg/upgradedb.tcl script is used to upgrade any files.
    Forward compatibility is not preserved.
  • Always preserve the user's configuration.
  • Never overwrite the user's data files.
    There are a few exceptions (with backups).
  • Make backups of the user's data files.
  • Never modify an audio files unless requested.
  • Never delete an audio file.

Development Tools

Needed on Linux for BallroomDJ:

  • inkscape - used to build SVG files and to convert SVG files to PNG
  • dos2unix - text conversion utilities for Windows files.
  • icoutils - for Mac OS X icons
  • icnsutils - for Mac OS X icons
  • nsis - the Windows installer system
  • libvlc-dev - so that the vlc interface can be built.
  • libvlccore-dev - ditto
  • libpulse-dev - so that the pulse volume controls can be built.
  • libxml2-dev - needed to build xar for Mac OS X
  • libssl-dev - needed to build xar for Mac OS X
  • fossil - needed to fetch Tcl/Tk
  • libx11-dev, libxft-dev, libxss-dev, libxext-dev - needed to build Tk


In order to create the Mac OS X package, bomutils and xar need to be installed. These are not always available from the Linux repositories. Someday I will write a new Tcl/Tk based installer.


All TButton class buttons (the default) will auto-disable and re-enable to prevent double clicks. If the button needs to be disabled by the program, the button needs to be class Normal.TButton.

Last modified 2 months ago Last modified on 2018-02-11T09:20:33-08:00