Compiling/Setting Up BpmDj


Installing

Download The Software

First download one of the packages from the download section. If you happen to be a debian user you can immediatelly download the .deb file and type apt-get install bpmdj-version.deb. If you're not a debian user you might need to compile the software yourself.

Requirements

To compile the software from scratch you need certain development tools. These are
  • the linux soundcard headers, either the OSS headers or the ALSA headers or both.
  • If you plan to use the ALSA driver, you will need alsalib
  • gcc
  • qt-designer (called designer),
  • qt header files
  • qt3.1
  • 2 sound cards and an external mixing desk
  • To use the software you need mpg123 and/or ogg123.

    Compiling

    To compile the source, you need to know certain things of your operating system. You need to know where the meta-object compiler is located (moc) and which version should be used. Yoiu need to know where the qt libraries are located and where the headers are located and these three pieces of information need to be comptaible. For instance the meta-object compiler (moc) needs to match the QT library you will use. Likewise, the qt header files need also to match the library you will use. In general it is very difficult to create a script that detects these things fully automatically. Therefore I've left these configuration things to the person who compiles the software.
    The locations of different programs, libraries and headers must be place in a file called 'defines'. Two examples of defines file are provided. (defines.debian and defines.gentoo)
    Once this information is correct, the programs can be compiled using the make command.
    From version 2.1 on, there are different sound drivers. You can select which one to compile by using -D COMPILE_OSS or using -D COMPILE_ALSA. If you want to use the alsa driver, please include the correct headers and libraries (-lasound).

    Installing

    After compiling the software, you can install it system wide by using make install. However if you choose not to do so and work only locally you need to extend your PATH environment variable with the directory that contains kbpm-play and glue-mp3raw.

    The bpmdj file selector requires on a number of externally available programs. The first one is the song player (called kbpm-play and the second dependency is mpg123). As such, these two programs should be in your PATH environment variable.  Normally, if you installed the software, using make install, this should form no problem. If you only did a make, then you might need to add

    export PATH=.:$PATH
    before you start the program.

    Setting Up

    The Directory Structure

    The program itself requires extra information (meta-information) to be present for every song. This information includes, title, author, tempo, sound color and other information that might be useful. Normally, ID3 tags can be used for this. However, because not all mp3's can be modified (because they are already on cdrom for example), the program will store this extra information in separate files.  These files will be stored in a directory  ./index. The music files must be stored in a directory ./music.  Once a song has been indexed and a meta-file exists in the index directory, then the song must not move any more within the music directory. Of course the music directory can contain soft links to other locations within the filesystem. Also, when a meta-description of a song is available that is not within the music directory, the program will silently ignore the index file. At the moment the song is again available, it can be used again.

    Therefore create at some place in your filesystem two directories.

    ./music
    ./index

    A First Start

    Find some Mp3's

    The program is centered around the use of Mp3's, hence without Mp3's there is nothing too demonstrate. Therefore, find some songs and move them to the music directory.  Beware, once a song is known to bpmdj, it should not move anymore within the music directory. Thus, if you have multiple cdrom filled with songs, you might use a convention to create cd<xyz> directories within the music directory:
    music/cd001
    music/cd002
    music/cd003

    Start The Program

    Now, go to the directory where the music and index directories are located. Start bpmdj by typing
    kbpm-dj
    The program will open and verify that all necessary components are available. (this should not form any problem). Now, the file selector will pop up and we can start with importing the unknown songs.

    Import Mp3's

    To import new mp3's go to the SongManagement|Import MP3's. Now a box will pop up which will scan all the directories within the music directory. For every unknown mp3 file a  new index file will be created and the song will pop up in the main listbox.
     

    Setup the DSP Devices

    Depending on how you compiled the program, the player will be able to work with either ALSA devices or OSS devices.   To inform the player which driver and device to use go to Program|Preferences and modify the parameters of the first two players. To do so click on the create button. Once, the parameters are correct, the player should start playing the selected song.

    Of course, if you want to mix to songs, you will need to DSP devices. Ir you're so lucky to have two sound cards inserted in one computer and you are able to use both DSP's at the same time it is easy to modify the arguments given to the different players. On the other hand, if your not so lucky and you need to play remotely, then you might be interested in looking at the rbpm-play script and use that as a player on a remote machine. Before this will work the songs as well as the index files need to be present on the remote machine.

    Troubleshooting:

  • Check the permissions of the dsp device
  • Check the permissions of the mixing device
  • If it really doesn't work, check whether the song can be played by mpg123, alsaplayer and/or xmms
  • Check whether there is enough free disk space
  • Go to the bpmdj root  and remove any left over raw files by doing 'rm *.raw'
  • If your playing remotely try to start rbpm-play manually and see what goes wrong.
  • If your working on one machine and are using ALSA drivers, make sure you can play two songs over the two DSP devices simultaneously. Remember alsa-config.

  • Copyright (c) Werner Van Belle 2001-2004
    e-mail: werner.van.belle@vub.ac.be
    Tel: +32 486 68 84 48; Fax: +32 2 629 35 25
    http://bpmdj.sourceforge.net/