The process of adding CDs to the Jukebox is probably going to seem quite complex. It is quite complex. It's complex because it's dedicated to high standards in these areas:
Each program has been selected for best performance. EAC is the best CD-ripping program I've found. Media Center is the best music database I've found. I wrote the Database Converter with the express aim of creating a Jukebox Database that allows the Apache HTTP server to present information to the remote control as quickly and clearly as possible, without lengthy searches or reformatting of information.
The Internet is used to obtain artist and title information about CDs, and cover art. Without the Internet you'd have to type in all the artist and title information, and scan all the album covers. I don't regard that as a practical proposition — it's laborious enough doing it for the very few albums where the Internet lookup fails.
Attention to detail when adding CDs to the jukebox pays huge dividends in the quality of the user experience. Each CD is viewed and played many times but added to the jukebox only once, so time invested in adding it properly is time well spent.
The program I have chosen use for reading ("ripping") CDs is EAC ("Exact Audio Copy"). I selected that program because it takes accuracy seriously. The process of reading a CD is prone to error because of dirt, scratches, and other problems. When playing a CD for listening, the best thing for the player to do about any data error is to try and cover it up. But when reading a CD in order to store it for multiple future use, the best thing for the reader to do about any data error is to make strenuous efforts to correct it, and if that fails report a problem to the user. Even though the Media Center program described further on in this page incorporates a CD-ripper that might be more convenient to use, I decided not to use it.
When I put a CD in the PC's drive, EAC looks it up in an Internet database to find out the artist, album title, and track titles. I inspect the results (which are often somewhat inaccurate, but always useful), and make any necessary changes.
An EAC dialog box showing the results of an
Internet database lookupBecause the CD details will later be processed by my Database Converter, I make sure that the information is in a standardised format that allows that program to properly categorise and display it on the jukebox remote control. The sorts of things I'm talking about here are:
An EAC dialog box after editing the track titles
to separately identify pieces and movementsAll the above might sound rather complicated but it's actually quick and easy, and it's a necessary investment of effort to get a reliable and consistent music database. Any mistakes made at this stage can be corrected later in Media Center, without having to rip the CD again.
As installed, EAC creates files in WAV format. I've configured it to use Windows Media Encoder to create files in WMA Lossless format instead. (Actually EAC writes a WAV file and then automatically runs WME to convert it to WMA format). The WMA Lossless format, compared with WAV, reduces the file size by about 50% with no loss of sound quality. It also inaudibly embeds the artist and title information in the sound file, in "tags".
EAC creates one WMA file for each track on the CD. The name of the file incorporates the Genre (I specify "Popular", "Classical", or "Miscellaneous"), the CD artist, the CD title, the track number, and the track title. For example:
M:\Jukebox Music\Popular\Beatles, The\Revolver\01 - Taxman.wma
As you can see, that file naming convention conveniently allows me to locate the music files in hierarchical directories of genre, artist, and album.
Any number of CDs can be ripped to the hard disk by EAC before carrying out the next stage of the process using Media Center.
J River's Media Center is a complete PC jukebox, for ripping CDs and organising and playing music. However I use it only as a database tool. It's a very good database.
What I do with Media Center is:
The Media Center database is essentially a simple table. Each row is a track. Each column (or "field") is a type of information. Information that is common to a complete album appears several times identically, once for each track.
Media Center database displayThe table below shows typical values for a track from a single-artist popular album.
| Genre | Popular |
|---|---|
| Artist | Beatles, The |
| Track Title | Taxman |
| Duration | 2:35 |
| Track number | 1 |
| Album | Revolver |
| Album Artist | |
| Filename | M:\Jukebox Music\Popular\Beatles, The\Revolver\01 - Taxman.wma |
| Date | 19660101-000000 |
| Image File | Inside File |
| Flags | |
| File Size | 15.5 MB |
Most of the fields in the above table are filled in automatically by the Import process. Anything that's missing or wrong, I enter manually.
I use only three Genres: "Popular", "Classical", and "Miscellaneous". So anything other than that, I change.
The Album Artist is the name under which the album appears in artist listings. Normally all tracks on an album are by the same artist, so the Album Artist field is blank, meaning "use any track's artist name for the album artist". But for compilation and similar albums, the Album Artist field contains the overall artist name, usually "Various Artists".
The Date (format yyyymmdd-hhmmss) is the year the album was released. The month, day, and time elements of the date are usually ignored, but if the artist released more than one album in the same year, I set them to arbitrary values that ensure the correct chronological order.
The cover art Image File is downloaded by Media Center from the Internet; if that fails, I look the album up on Amazon or Google and copy the image into Media Center via the clipboard; and failing that I scan it in. Media Center stores the cover art in a file "M:\Jukebox Music\Popular\Beatles, The\Revolver\folder.jpg", and this file is conceptually regarded as part of the Media Center database even though for convenience it's physically located with the music files. Media Center stores a further copy of the cover art as a tag inside the music file (hence "Inside File" in the listing above).
In the Flags field I put a B for "bonus tracks" so that these are indicated on the album track listings. And/or I put U for tracks that I would like excluded from Lucky Dip selections (short linking tracks, speech tracks, etc, that don't work on their own).
A typical classical track has fields like this:
| Genre | Classical |
|---|---|
| Artist | Bach, Johann Sebastian |
| Track Title | Cello Suite no.1 in G major; I. Prelude |
| Duration | 2:21 |
| Track number | 1 |
| Album | Cello Suites (Yo-Yo Ma) |
| Album Artist | |
| Filename | M:\Jukebox Music\Classical\Bach, Johann Sebastian\Cello Suites (Yo-Yo Ma)\01 - Cello Suite No. 1 in G Major - Prelude.wma |
| Date | |
| Image File | Inside File |
| Flags | M |
| Instruments | Cello |
| File Size | 10.1 MB |
In classical pieces, the Artist field always contains the composer's name.
The Album Artist is the name under which the album appears in artist listings. Most albums are attributed to one composer, so the Album Artist field is blank, meaning "use any track's artist name for the album artist". But for albums featuring more than one composer, or issued under the name of the performer(s) rather than the composer(s), the Album Artist field contains the album artist name, for example "Bizet, Georges & Grieg, Edvard" or "Luciano Pavarotti".
The Flags field gives guidance to the Database Converter as to whether this track is a complete piece (P) or one track of a multi-track piece (M, for "movement") or an excerpt (E). I enter it manually.
Instruments is optional and causes the piece to appear in the Instruments Index on the remote control. I enter it manually.
Once I've made all the changes I want to make to the information that's been Imported, I Export the database from Media Center for input to the Database Converter. The result is a simple ASCII text file.
Sample Export file from Media CenterThe Database Converter is a program written by me using the Perl language. The program reads the "Export from Media Center for Jukebox.txt" file (above) and creates from it the Jukebox Database, which is described on the next page. The process is completely automatic. The previous jukebox database is overwritten.
The Database Converter also copies any new or updated cover art image files from the Media Center database ("folder.jpg", described above) to the Jukebox database. During the copy process the image files are resized from whatever size they are in the Media Center database (which varies greatly) to the size used on the jukebox remote control screen, which is 114x114 pixels. This resizing saves disk space and also avoids the remote control browser having to carry out a time-consuming resize every time an image is displayed. The resizing is carried out with the assistance of the JPEG Resizer program.