PyKaraoke - Python Powered Karaoke

Installation FAQ

If you are having any problems installing PyKaraoke please check the FAQ below in case the problem has already been covered.

MP3 Availability on Linux Distros (Fedora Core, SuSE)

Due to MP3 licensing issues, some distros such as Fedora Core and SuSE may not include MP3 support in the SDL_mixer library. If this is the case you will see the following message when attempting to play an MP3+G track:
    error: Module format not recognized

To rebuild SDL_mixer with MP3 support, you need to install the smpeg-devel package, and download and build SDL_mixer from source. The source tarball for SDL_mixer can be downloaded from here and should be built as follows:

    # ./configure --prefix=/usr --enable-music-mp3
    # make; make install

You may need to modify the --prefix option depending on where is installed on your distro. The above example assumes it will be installed to /usr/lib/

A full example build procedure for Fedora Core has been provided by a PyKaraoke user:

    # rpm -ivh smpeg-devel-0.4.4-0.rhfc1.dag.i386.rpm
    # rpm -ev --nodeps SDL_mixer
    # tar xzvf SDL_mixer-1.2.6.tar.gz
    # cd SDL_mixer-1.2.6
    # ./configure --prefix=/usr --enable-music-mp3
    # make; make install

SuSE users may also need to install the slang-devel package.

Broken MP3 files

If you find a CDG+MP3 song that fails to play in PyKaraoke, check whether the ID3 tags are correctly encoded. Tools like EasyTAG and MP3 Diags can be used to find and fix ID3 tag errors.

Ubuntu 9.04 Jaunty Install

PyKaraoke is available in the Ubuntu repositories these days, but you have always been able to install more recent versions using the standard script. However starting with Jaunty it is necessary to add an additional flag on the command-line in order to install the icons in the correct location. If you see an error message like "Can't load image from file '/usr/share/pykaraoke/icons/audio_16.png': file does not exist" then you need to install using the following command:

    # python install --install-layout=deb

FC5 Build Issues

Due to the new build procedure for optimised playback, Fedora Core 5 users now need to install the python-devel and pygame-devel packages.

Linux: No Available Audio Device

Linux users may get the following error message:

    pygame.error: No available audio device

You should try switching between libsdl-oss and libsdl-alsa.

AMD64/Linux Installation Issues

If you are running on the AMD64 platform (and possibly others) you may see this error on startup:

    Exception in thread Thread-1:
    #Traceback (most recent call last):
    ValueError: unsupported datatype for array

If this occurs, you need to download and install the latest development release of pygame. Follow the instructions at to obtain the latest development release, then:

1. Build the new release by running:
    # python
    # python install --prefix=/path/to/temporary/spot

2. Find the directory named "pygame" within /path/to/temporary/spot/lib (on a development machine, the path was lib/python2.4/site-packages/pygame) and copy or move it (all of it, including the directory itself) into the folder containing and the rest of the PyKaraoke files.

The CDG player should then work properly.

wxTreeCtrl instance has no attribute 'Bind'

PyKaraoke now requires WxPython/WxGTK v2.6 or later. Please try installing a newer version of these packages if you get this error:

    File "", line 491, in __init__
    self.FileTree.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag)
    AttributeError: wxTreeCtrl instance has no attribute 'Bind'

MIDI and Eawpats

PyKaraoke makes use of the SDL/Pygame mixer library for MIDI playback. This requires additional sound patches, and generally PyKaraoke users have used it together with the FreePats MIDI patterns. Some users have reported that Eawpats sounds better and contains instruments that were missing in FreePats. Note that SDL uses a fairly old version of Timidity under the hood and requires GUS compatible sound patches, as described here.

Slackware and Timidity++

Slackware users may find that the MIDI player cannot find the timidity configuration files. You can fix this by creating a link from the PyKaraoke installation directory:

    # cd pykaraoke_install_dir
    # ln -s /usr/share/timidity/timidity.cfg .
    # ln -s /usr/share/timidity/instruments .

Pitch Shifting on Linux

For a description of using JACK to implement pitch-shifting and other effects with PyKaraoke on Linux, see Will Ferrell's excellent HOWTO.


Support This Project

Home | Installation | Usage | Screenshots | FAQ | Development | Contact | Blog | Download | Links