NiallTunes
----------
by Niall Moody
(http://www.niallmoody.com)

Description
-----------
I couldn't find a music player app with the exact combination of features I
wanted, so I wrote my own.  It's got a sandbox where you can listen to songs
without having to 'add them to your library' (a personal bugbear with Linux
apps like rhythmbox and quod libet), and create playlists.  It can also store
a list of folders if, like me, you store music by album, and it'll display
album artwork if you've got it.  Other than that it's pretty much like any other
similar app.  It plays .mp3, .ogg, .flac, .wav and .aiff files (though I have
found some mp3s it won't play for some reason).

Install
-------
On Windows, just extract the app, along with the audiere, id3lib and
portaudio_x86 dlls to wherever you want it installed.

On Linux it's the usual './configure; make; make install' incantation.
You'll need Audiere v1.9.4, id3lib v3.8.3(?) (known as libid3 on Ubuntu), and
portaudio v19 installed.  On Ubuntu Feisty Fawn they're in the repositories
(either the main ones, or universe).  I don't know about other distros.  The
configure script assumes you've got JUCE
(http://www.rawmaterialsoftware.com/juce/) installed in NiallTunes' parent
folder, but you can also tell it where it is with --with-JUCE=...  If you're
running JUCE v1.44 or earlier, you'll need to apply the JUCE-v1.44-Fix.patch to
juce_linux_Windowing.cpp (juce/build/linux/platform_specific_code) in order to
be able to drag files from Nautilus (Gnome's file manager).

Usage
-----
It should all be fairly self-explanatory.  To add songs to the sandbox, drag
the files from whichever folder you've got them in onto the main song list
component (i.e. the one with the #/Title/Artist/Album/Length headings).  To
add folders, drag them onto the left folder list component (the one with
Sandbox at the top).  If Sandbox is not selected on the left, you can also drag
songs from the song list component onto it, to add them to the sandbox playlist.
To remove songs from the sandbox, select them in the song list component and
press the delete key.  Similarly, to remove folders, select them in the folder
list component and press the delete key (note that the Sandbox cannot be
removed).

Your settings (list of songs in the sandbox, list of folders) will be saved to
a file called .NiallTunes in your home directory (<user>'s Documents on
Windows).

You can enlarge the album artwork by clicking on it.  When a new song starts
playing, the app will look for an image to display based on the following
pattern:
	1.) <filename - extension>.jpg
	2.) <filename - extension>.png
	3.) Folder.jpg
	4.) Folder.png
...and will display the first one it finds.  The album art display uses OpenGL,
since JUCE couldn't really handle that nice animated resizing on it's own.

On Windows, the app is hardcoded to use the default DirectSound audio device.
On Linux, it is hardcoded to use Jack.

Credits
-------
- JUCE, for the GUI, and some of the audio playback helper classes
  (http://www.rawmaterialsoftare.com/juce).
- PortAudio, for audio playback (http://www.portaudio.com).
- Audiere, for the MP3 playback (http://audiere.sourceforge.net).
- ID3lib, for MP3 tag reading (http://id3lib.sourceforge.net).
- The Tango Desktop Project, for the icon
  (http://tango.freedesktop.org/Tango_Desktop_Project).

License
-------
GPL v3, see the attached COPYING file.

ToDo
----
- Implement CD playing.
- Implement CDDB lookup for CDs.
- Can I do something about the CPU spikes (~40%) during MP3 playback? (thread?)
- Is there an alternative to GetRawText() in id3lib? (GetRawUnicodeText())
- Do something to speed up the loading of songs (maybe don't store
  AudioFormatReaders?).
- Implement m3u support (for internet streaming mainly).

ChangeLog
---------
v0.10 - First release.
