MJS is a Mp3 Jukebox System

MJS is a console mp3-player with some special features not found in most console based mp3-players. It features a search function, playlist saving and loading and an easy to use interface.

Scale this gif to the right size and put above yout function keys F1 - F4 F5 - F8 F9 - F12:

Strip for functionkeys
Download as postscript


The border lines have gotten a bit screwd up by gnome-terminal, but in an console it looks a lot better...


About oktober 2000, at my students'union you could only play tapes or compact discs. The cds had often meny scratches on them and listening to them had become extermely hard. This is when I thought that maybe it was time to do something about it.

I had this old pentium-60 lying somewhere and I had some experience with diskless linux-clients. So I decided to give it a try. After equiping the Pentium with a cheapo soundcard, nic and mda and setting up linux, I came to the problem of choosing an mp3-player.

It had to be console based to keep it simple, but it being simple to use was a must. After searching a couple of days on the internet I came up with mms (Matt's MP3 Selector). This software fulfilled many of our wishes but missed some. So I decided as it was GPL licensed to have a go at it.

At that time I didn't have any knowledge of C at all, so my efforts were done by trial and error. After about half a year I had a C++ programming class at the university and a few months later I had enough knowledge to begin seriously hacking the old program into something better fulfilling our wishes.

I added a search function, that uses slocate databases, playlist loading / saving, somewhat more studentproof interface, easier directory navigation, more configuration options and so on.

Some hardware specs :

Server (also for our studentshouse) :

  • Cyrix 6x86 166MHz (linux 2.4.9)
  • 32 MB ram
  • 1,2 GB systemdisc
  • 2x 40GB for MP3's (reiserfs on top of LVM) (NOT PUBLICLY AVAILABLE !!!)
  • 3x realtek 8139 nics (diskless clients and UTP house network)
  • 2x ne2000 clone nics (coax house network)
  • no monitor
  • client 1 (in our students'union) :

  • pentium classic 60 MHz
  • 32 MB ram
  • realtek 8139 nic
  • monochrome hercules video adapter
  • floppydrive (etherboot code)
  • monochrome monitor
  • client 2 (in our studentshouse kitchen) :

  • pentium 75 MHz (slower than client 1 though...)
  • 32 MB ram
  • realtek 8029 nic
  • vga onboard
  • floppydrive (etherboot code)
  • monochrome vga monitor

  • Getting Started

    In order to use MJS, you have to download three packages from sourceforge:

  • MJS sourcefile
  • mpg123 0.59-pre-s sourcefile
  • patch for mpg123-0.59-pre-s
  • To get a working MJS, you need to patch the mpg123 sourcecode, otherwise mpg213 will react way to slow when buffering is enabled. Then follow the instructions in the INSTALL file in the MJS source package.

    Update/New :

    MJS can also work together with mpg321. Although I have not tested it very much and buffering is not supported by mpg321. You can use mpg321 out of the box, no need for patching !

    Nightly CVS Tarball - The most recent source of MJS.

    Releases - The Sourceforge download page.

    MPG321 - The MPG321 Sourceforge page.


    Controlling it:

    TAB cycles between active windows.
    ARROW KEYS are for basic navigation. pgup/pgdn, home/end also work.
    * in ALL windows:
       * 'F1' exit the mp3-jukebox
       * 'F2' will clear the playlist after confirmation
       * 'F3' lets you search files
       * 'F4' shows your last search results
       * 'F5' will randomize the playlist
       * 'F6' will save your playlist (if enabled in .mjsrc)
       * 'F7' will stop the player
       * 'F8' will pause the player
       * 'F9' will go back one song
       * 'F10' will fast rewind
       * 'F11' will fast forward
       * 'F12' will advance one song
     * in the files window:
       * return adds files to the playlist and changes directory.
       * left-arrow goes back one directory
       * right-arrow enters directory
       * alt-enter inserts selected file into playlist
       * Pressing an letter will take you to the first directory starting with
         that letter   
    * in the playlist window is where the good stuff goes on:
       * with + and - you can move mp3's forward or backward in the playlist 
       * DEL will remove a song from the playlist (unless it is playing!)


    Needed libraries:
    Quick installation:
    1) You probably don't need to edit the Makefile.
    2) Type "make".
    To use the search function of mjs, you need to do the following simple
    steps :
    3) edit the file mp3db.cron so that it suits your directory structure and
       put it in /etc/cron.daily or alike
    4) edit the file findmp3 so that it suits your directory structure
    5) Run "make install" as root.
    6) Create a configuration file (example provided as mmsrc.EXAMPLE) in
       $HOME/.mjsrc.  Set the path to the player and a couple of various
       options. This is also where you configure window sizes, positions and
    7) Install an intro mp3 as /usr/local/share/intro.mp3
       Make sure you can play it with mpg123 as first song
    8) enjoy!

    MJS Related Projects/Sites

    hosted by SourceForge Logo Last updated 14 october 2001 by Marijn