Mjuk Userguide Introduction Installation Requirements Server machine The requirements on the server machine and the machine on which the import is done are the same. The requirements for these are: a working installation of mysql (postgresql support is in progress) vorbis-tools, including ogg and vorbis libs. Python Python bindings for ogg/vorbis (http://www.vorbis.com/download_unix.psp) Python bindings for mysql (or bindings for postgresql, psycopg.) If you want support for mp3 you also need: id3-py (http://id3-py.sourceforge.net/) (Called python-id3 in debian) libmad (http://www.underbit.com/products/mad/) Python bindings for libmad, pymad. (http://spacepants.org/src/pymad/) Client machines The requirements for client machines differs between different client software, see each clients documentation respectly. The common requirement for all clients is that they have to have access to the files through the path in the URI. Config file Add users Import Run the importer To do an import, go to the src directory. Then run the file importer.py by doing: $ python importer.py Supported fields shows what tags in files are used. Supported fields Field Ogg Mp3 Mp2 Description Req ARTIST x x Name of the artist. At the moment only one artist per track is supported. x TITLE x x Name of the track. x ALBUM x x Name of the album. x VOLUME x - If the album consists of several volumes/records, this is the number of the volume. ALBUM need to be the same for all volumes. - TRACKNUMBER x - The number of the track. Corresponding tag for MP3 and MP2 is TRACK. Default is 0. - TRACK - x The number of the track. Corresponding tag for OGG is TRACKNUMBER. Default is 0. - GENRE x x The genre of the track. Ogg:s can have several occations of this tag. - DATE x - Year the record was published. Today only year is accepted. - YEAR x x Year the record was published. Only used if DATE does not exist.. - DISCID x - FreeDB and CDDB disc ID. - QUALITY x - The quality of the encoding of the track. - REPLAYGAIN_ALBUM_GAIN x - Album regain information. Only used from first track on an album. - REPLAYGAIN_ALBUM_PEAK x - Album regain information. Only used from first track on an album. - REPLAYGAIN_TRACK_GAIN x - Track regain information. - REPLAYGAIN_TRACK_PEAK x - Track regain information. -
Except for the tags above, the tracklegth for all tracks and the file name are imported. For ogg is also ogg-encoder version and vendor stored.
How the importer works The importer goes through recursively all directries given on either command line as parameters or read from the valid config file. It reads all files ending on .ogg, .mp3, or .mp2. It handles one file at the time. The importer is case sensitive. First of all, the importer checks if a file exist in the database. If it does, the imporeter ignore it and continue with the next file. If the file is new, it starts with the artist. If an artist with the same name not exist an new artist is created in the database. The second stage is to check if an album with the current name and the current artist exist, if not it is created. An album can contains several volumes, which we call records. for instance a collection box have several records but is one album. Of course, this requires that the ALBUM-tag is the same for all records. It also requires that there is a VOLUME-tag, in other case all records will be handled as one record. The third stage is to check if we have a record with the that is a part of the current album. If DISCID or VOLUME is set, these must be the same too. In other case a new record is created. Now we will insert the track, if there are no track with the same record, title and track number a new track is created. In other case nothing happends. At last, all genres will be inserted (if they not exists) into the database and linked to the track. If the importer is executed several times and no metadata has changed, nothing will happend in the database. Known issues If two artists have done an album with the same title, they are imported as two records which are a part of one album if the DISCID-tag exists. In other case, they will be handled as the same record.
Clients Command line client Remote control client It is possible to control Mjuk by using a remote control. To be able to do this you must have lirc installed on your computer and, of course, a remote control. Web client GRemote a GNOME/MONO client GRemote is a minimal Mjuk client. It can only do; play, stop, pause, next, and show the current track as a tooltip. You can see a screenchot in .
GRemote window.
Pygtk2 client