MythMusic

From MythTV Official Wiki
Revision as of 16:56, 16 September 2006 by Rchandra (Talk | contribs)

Jump to: navigation, search

MythMusic is a simple mythtv plugin that allows the system to play audio files .i.e MP3, Ogg, FLAC, wav etc using the MythTV GUI and remote.


MythMusic Install

Here we will go through the install proccess for MythMusic.

Prerequisites

The prerequisites for MythMusic are:

  • MAD
  • id3tag
  • libvorbis-devel
  • FLAC
  • libcdaudio
  • CDParanoia

Manual Install of Prerequisites

These instructions are for distributions which don't have pre-compiled versions of the software necessary to run MythTV.

Download MAD and libid3tag from http://www.underbit.com/products/mad/ Follow the link to download via FTP and save the files to a directory you can find later.

   $ tar -xzf mad-0.15.1b.tar.gz
   $ cd mad-0.15.1b
   $ ./configure
   $ make
   $ su
   # make install
   # exit
   $ cd ..
   $ tar -xzf libid3tag-0.15.1b.tar.gz
   $ cd libid3tag-0.15.1b
   $ ./configure
   $ make
   $ su
   # make install
   # exit
   $ cd ..

Download FLAC from http://flac.sourceforge.net and install:

   $ tar -xzf flac-1.1.2.tar.gz
   $ cd flac-1.1.2
   $ ./configure
   $ make
   $ su
   # make install
   # exit
   $ 

Download libcdaudio from http://libcdaudio.sourceforge.net and install:

   $ tar -xzf libcdaudio-0.99.12p2.tar.gz
   $ cd libcdaudio-0.99.12p2
   $ ./configure
   $ make
   $ su
   # make install
   # exit
   $ 

Download cdparanoia from http://www.xiph.org/paranoia/down.html.

   $ tar -xzf cdparanoia-III-alpha9.8.src.tgz
   $ cd cdparanoia-III-alpha9.8
   $ ./configure
   $ make
   $ su
   # make install
   # cd /usr/lib
   # ln -sf libcdda_interface.so.0.9.8 libcdda_interface.so
   # ln -sf libcdda_paranoia.so.0.9.8 libcdda_paranoia.so
   # exit
   $ 

Distro Specific

Debian (or derivative)

As root run:

   # apt-get update
   # apt-get install libmad0 libmad0-devel libflac4 libflac4-devel libcdaudio1 cdparanoia
   # apt-get install libcdda0 libcdda0-devel libvorbis0 libvorbis0-devel libcdaudio1-devel libid3tag0 libid3tag0-devel

Gentoo

As root:

  # emerge sync
  # emerge libmad0 libmad0 libflac4 libflac4-devel libcdaudio1 cdparanoia  libcdda0 libcdda0 libvorbis0 libvorbis0  
  # libcdaudio1 libid3tag0 libid3tag0


Mandriva

Mandriva has a number of the prerequisites available on the installation CD. Some of the software you're going to need will have to be obtained from the "contrib" or "cooker" development repositories. Applications downloaded from "cooker" come from the development branch, so there may be issues with some software. It isn't recommended that you mix cooker and release-level software.

urpmi is the simplest tool for installation of packages from the command line. The difficult part is the configuration, but this has been made easier at the following website: http://addmedia.linuxfornewbies.org/ The website will allow you to choose a mirror site and then present the command-line configuration text for that mirror. You will most likely need to add a "Contrib" mirror to your setup. Once you have done that, you can proceed. If urpmi prompts you about other modules that need to be installed to satisfy dependencies, say "Yes".

   # urpmi libmad0 libmad0-devel libflac4 libflac4-devel libcdaudio1 cdparanoia
   # urpmi libcdda0 libcdda0-devel libvorbis0 libvorbis0-devel
   # urpmi libcdaudio1-devel libid3tag0 libid3tag0-devel

Additional options with MythMusic

Additional visualizations have been added to MythMusic. If you wish to use these, there are some prerequisites you must install prior to compiling.

  • fftw
  • OpenGL
  • SDL

fftw may be obtained from http://www.fftw.org/. In Mandriva it may be installed by typing:

   # urpmi libfftw2 libfftw2-devel

OpenGL should be installed on practically all distributions. However, you will need the devel module. In Mandriva it may be installed by typing:

   # urpmi libMesaGLU1-devel

SDL may be obtained from http://www.libsdl.org. In Mandriva it may be installed by typing:

   # urpmi libSDL1.2 libSDL1.2-devel

Redhat 9

Red Hat provides packages for several of the prerequisites, making installation very simple. Of the prerequisites, Red Hat provides packages for Vorbis, cdparanoia, SDL, and OpenGL (which you probably already have installed). To install these all at once, simply type (all on the same line):

   $ up2date --solvedeps libvorbis libvorbis-devel vorbis-tools cdparanoia-devel cdparanoia-libs cdparanoia SDL-devel SDL

If you get the following message: "None of the packages you requested were found, or they are already updated" it probably means you already have all of those packages installed.

You must install the remaining packages, (MAD, FLAC, libcdaudio and optionally fftw) manually following the installation directions above. When installing fftw do not use the rpm package offered on the website because it will cause an error, so use the source package instead.

Compiling MythMusic

Once all the prerequisites have been installed, you can proceed with compiling MythMusic.

   $ cd ~/mythplugins-0.19
   $ ./configure --disable-all --enable-mythmusic --enable-fftw --enable-sdl --enable-aac
   $ qmake mythplugins.pro
   $ make
   $ su
   # make install
   # exit


  • taken from mythtv.org documentation.

Configuring MythMusic

Configuration of MythMusic occurs in two places. The main mythfrontend Setup is for global MythMusic configuration. Go to the Setup/MythMusic/General Setup screen and adjust it for your particular configuration.

The second configuration screen is within the MythMusic program and will allow you rescan your music library, etc.

Here's some explanation about the Ignore_ID3 and The NonID3FileNameFormat:

If Ignore_ID3 is set to TRUE, MythMusic will try to determine the Genre, Artist, Album, Track Number, and Title from the filename of the mp3 file. The NonID3FileNameFormat variable should be set to the directory/file format where the mp3 files are stored. For instance, I store mine in the above shown Genre/Artist/Album/Track format. MythMusic will then use this information to fill in the proper fields when it populates the musicmetadata table rather than searching for an ID3 tag in the mp3 file.

The files can be laid out in any format, such as:

Genre/Artist/Album/Title Artist/Genre/Album/Title Artist/Album/Title (with Genre left as Unknown)

The track number is optional but can be specified with the title by using the TRACK_TITLE keyword instead of TITLE. If TRACK_TITLE is used, then the filename can have a space, hyphen, or underscore separating the track number from the track title. Keywords are case insensitive, so if you specify GENRE it's the same as Genre in the format field.

The Ignore_ID3 option does not disable the code that determines the track length, just the portion that tries to read ID3 info.

Using MythMusic

MythMusic is fairly simple to use. It is recommended that you insert the CD before selecting "Import CD". You should also ensure that your system doesn't try to automount the CD and begin playing it automatically.

Playlist Management

  • Create a playlist. Using the MythMusic "Select Music" menu option, setup the playlist as you normally would by adding songs or other playlists as needed. When you are ready to save the new playlist, highlight "Active Play Queue" at the bottom of the selection tree and hit the "i" key. This will pop up a menu allowing you to name and save the new playlist. You can also hit Enter to bring up the popup on the Active Play Queue. This does not work on the playlists above, as Enter is obviously bound to checking/unchecking the boxes. Any number (i.e. keypad on remote) will also bring up the menu in both cases.
  • Edit a playlist. Highlight the playlist in the selection tree and hit the "i" key then select "Move to Active Play Queue" in the popup. You can now modify the "Active Play Queue" like normal, adding songs and playlists by selecting them from the song tree. When you are done, highlight the "Active Play Queue" in the selection tree and hit the "i" key then select "Save Back to Playlist Tree". And whatever you were editing as your Active Queue before you moved an existing playlist "on top" of Active reappears. Think of Active has having a push on, pop off capability, but with a depth of only 1.
    • Rearrange the songs in a playlist. Highlight a song and hit the "space" bar, the song will now have pair of red arrows in front of it. Use the up and down arrow keys to move it around in the playlist. When you have it where you want it, hit the "space" bar again.
    • Delete an item from a playlist. Highlight the item in the selection tree and hit the "d" key.
    • Edit a text field without a keyboard. (This applies to all of MythTV's UI and is not specific to MythMusic.)
      • Use the keypad number keys (bound to your remote) to select letters quasi-cell phone style. Keys 2-9 work pretty much like any cell phone text entry. 1 cycles through a few special characters, delete, and space. 0 is like a CAPS LOCK. Hard to describe, fairly easy to use. You will soon be able to specify the cycle timing in a Setup screen. You can type fairly quickly through a combination of jumping around the number keys AND hitting a non-number key (right arrow is particularly good for this) to force the current character.
      • Press ENTER in the empty line edit control. A keyboard will pop up; you can use this keyboard to enter characters.
  • Delete a playlist. Highlight the playlist in the selection tree and hit the "i" key then select "Delete this Playlist" from the popup.

Visualizations

There are currently a number of visualizations for MythMusic that will be displayed in a small window when while the playlist is visible, but will be displayed full-screen when you change the visualization mode with by pressing '6'. Which of these visualizations are to be used can be specified as a space-separated list in the Setup menu for MythMusic.

  • Random - Switches to a different visualization for each song.
  • Monoscope - Standard spectrum analyzer, as found on many MP3 players such as XMMS and WinAmp.
  • Stereoscope - Another spectrum analyzer. Left and right channels are drawn separately.
  • BumpScope - (needs description)
  • Goom - The classic visualization of crazy lines and patterns.
  • Synaesthesia - A more amorphous visualization similar to plasma clouds displays
  • AlbumArt - This displays the album art for the currently playing music. Basically, any image in the same directory as the music file currently playing is treated as if it might be album art, and one is selected randomly for display.
  • Gears - It's the GLXgears demo.
  • Blank - Just a blank screen (not very exciting, but very CPU-efficient).

Useful keys to know

  • some keyboard commands that might come in handy..
    • Change visualisation mode - 6
    • Blank Screen - 5
    • Increase track rating - 9
    • Decrease track rating - 7
    • Refresh music tree - 8
    • Filter all my music - F
    • Show incremental search dialog - CTRL + S
    • Incremental search find next match - CTRL + N
    • (note these are based on the default key mappings)

TroubleShooting

You may run into errors when running MythMusic.

When I run MythMusic and try and look up a CD, I get an error message

The full text of the message will say:

databasebox.o: Couldn't find your CD. It may not be in the freedb database. More likely, however, is that you need to delete /.cddb and /.cdserverrc and restart mythmusic. Have a nice day.

If you get this message, you should go to the home directory of whatever user MythMusic is running as and type:

   rm .cdserverrc
   rm -rf .cddb/

These files aren't automatically deleted because of a conscious design decision by the author that programs that automatically delete things are bad.

The files are used to locally cache CD lookups. If you are re-inserting CDs, your machine will not actually have to go out to the Internet to determine what is on them. However, the URL used to access the freedb database has recently changed, so the stale information in the files from previous runs of MythMusic would cause the error above. Once the files have been deleted the stale information will be gone and your local database will be rebuilt as you use CDs.

The default cddb server in .cdserverrc doesn't seem to be working very well all the time, here's a list of servers you can add:

 SERVER=cddbp://freedb.freedb.org:8880/ CDDB
 SERVER=http://freedb.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://at.freedb.org:8880/ CDDB
 SERVER=http://at.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://ca.freedb.org:8880/ CDDB
 SERVER=http://ca.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://cz.freedb.org:8880/ CDDB
 SERVER=http://cz.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://no.freedb.org:8880/ CDDB
 SERVER=http://no.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://uk.freedb.org:8880/ CDDB
 SERVER=http://uk.freedb.org:80/~cddb/cddb.cgi CDDB
 SERVER=cddbp://us.freedb.org:8880/ CDDB
 SERVER=http://us.freedb.org:80/~cddb/cddb.cgi CDDB