One recurrent technological question I have is why MP3 players never display album artwork consistently. The issue often seems random; when I get some albums working, others are blank in their place. So I wanted to figure out what the problem was and write them down for future reference.
As I’ve used some kind of Sony Walkman MP3 player since about 2008, I initially checked posts and articles about Sony players. However, the same issue applies with multiple brands of MP3 players and various other devices like digital photo frames.
Many people with Sony Walkman players have posted about cover art issues on Sony’s support website. But the official answers just tell people to transfer songs to their Walkman using Sony’s Content Transfer software, without explaining why the issue exists. I wanted to fix the issue within the music programs I already use (MediaMonkey and Mp3tag) instead of adding another program into the mix.
After looking on multiple subreddits and software forums, I found three essential criteria for making album art and other tags show up properly on the Sony MP3 players. (All criteria may apply to other MP3 players as as well, and the “baseline” JPG criteria may resolve issues with car infotainment systems and digital photo frames).
1) Every song must be tagged using ID3 tag version 2.3.
2) Every song’s artwork must be embedded into its ID3 tag.
3) Every artwork image must be a JPG. More specifically, it must be a “baseline” JPG rather than a “progressive” JPG.
Now I’ll explain what all of those words mean, and the steps that I followed to make my song files and cover artworks fit these criteria. It’s important for me to clarify that each individual part was figured out by someone else; I’m just putting them together so that I can show the steps all in one place.
What is an ID3 tag?
An ID3 tag is a chunk of information attached to the beginning of an MP3 file. Think of this information chunk as being a box with stacks of separate shelves inside. Each shelf holds one piece of information about the file, such as its title, artist, release year, or even its lyrics and volume settings.
Music players display song information by reading ID3 tags. Simple players, such as iTunes and Windows Media Player, let users edit basic information like album names and track numbers. Other music programs like MediaMonkey and MusicBee give users more control over tags, while media tagging programs let people control every aspect of how their music is labelled and organised.
ID3 tags are designed specifically for MP3 files, and other type of audio file have their own tag systems. The newest version of ID3 is v2.4, but only some brand-new devices can read v2.4 tags. So v2.3, which is compatible with almost every audio device, is a better choice at the moment.
How to change ID3 Tags to v2.3
Sony MP3 players only fully read ID3 v2.3 tags, so MP3 files using different tag formats need to be converted. You’ll need a tagging program to do this; I use the free Mp3Tag.
Open Mp3Tag and set its main directory to be your music folder (or a spare copy of your music folder, just in case). You should now see a list of every song in your music folder with its tag information. If the tag column isn’t visible, right-click on the header above the song list and select Tag as a visible column. Any MP3 file which doesn’t have ID3 v2.3 in the Tag column needs to be converted.
Now navigate to Tools > Options > Tagging > mpeg
In the Write option box, select only ID3v2.3 (UTF-16) and deselect the rest. This means that any new tags will only save (“write”) as v2.3.
In the Remove option box, do the opposite: deselect ID3v2, because you don’t want these to be removed.
(Removing all tags from a song will remove all of its information – it will show up in a music player as “unknown” by “unknown artist” etc – which is a good reason to test tagging changes on spare files first).
Highlight songs which need converting, and select the Remove Tags icon from the icon toolbar (the red X next to the Save Tags floppy disk). A warning dialog will appear – select Yes to continue. This will delete tags of every type you selected in the Remove option box earlier.
Then select Save Tags to write v2.3 tags back in to each file. Every MP3 file should now have only have ID3 v2.3 tags embedded.
Storing Album Art
How is song artwork stored?
Music software can link album art to a song in two ways. Some software stores an image file inside a folder on your computer, usually as a .ALB file or a .JPG or .PNG image. Other software locks an image to each individual song file, by storing the image on one of the “shelves” in the ID3 tag “box”. Album art stored inside a file is known as embedded art.
Sony MP3 players can only understand embedded art, but I keep a separate cover art file for each album as well so that I can re-embed artwork if I need to.
This guide from StackExchange user nixda shows how to extract the existing album art from every album at once, and how to embed album art files into every track at once, with just two commands in Mp3Tag. This batching turns the often-tedious task of manually embedding artwork into a musch simpler process.
* After exporting cover art, follow the next step – of converting files into progressive JPGs – before re-importing or re-embedding artwork, so that you don’t need to do this process twice!
How I export, store, and import album art in Mp3Tag
nixda’s guide was very useful for showing me the structure of solving this issue, but I adapted it for my uses. nixda’s process extracts a cover art file for each track, and uses the %_filename% placeholder to name each artwork after the file it came from, because they are only using the files temporarily. I instead extract one cover art per album, and directly call each file cover.jpg, because I want to keep these extracted files inside each album’s folder.
Navigate to Actions > Actions (Quick) then select Export cover to file from the popup dialog.
As I want all of my files to be called cover.jpg, I just need to put cover in the text box; the .jpg extension is added automatically.
The reverse process, of importing an art file into each track and embedding it inside each track’s ID3 tags, works similarly. Because nixda’s process exports every file with a placeholder name, it can rely on that same placeholder name to import files back in. But because I gave each of my files a fixed name, I had to figure out a different approach. Then I found a solution online, posted by Mp3Tag user ryerman. ryerman’s example, which combined a placeholder name with a fixed name in the search string, worked perfectly.
Navigate to Actions > Actions (Quick) then select Import cover from file from the popup dialog.
Because of how my library is structured, I needed to use the string %_folderpath%cover.jpg. This string looks for the folder that each song lives in, then looks for a file named exactly cover.jpg inside each folder. For example, one song in the above image is stored at <root>\Music\3 Doors Down\Time Of My Life\Believer.mp3. This instruction tells Mp3Tag to go as far as <root>\Music\3 Doors Down\Time Of My Life and then look inside that folder for cover.jpg. As there is only one cover.jpg inside each album folder, all songs from the same album will have the same embedded art.
Converting Album Art
What are Baseline and Progressive JPGs?
I didn’t know these subtypes of JPG existed until looking up this issue, and this discovery explained why Sony players seemed so inconsistent about displaying art files that met the first two criteria.
The main difference between baseline and progressive JPGs is how they load on web pages. A baseline JPG appears line-by-line, as each line is shown only after it has fully loaded. A progressive JPG appears as one blurry impression which gradually gains detail as it loads. (I’m not sure know why this distinction is part of MP3 players either.)
Meeting this criteria can be tricky, as even tagging programs don’t always specify whether a JPG file is baseline or progressive. You’ll probably need to use image viewing/editing software; I use IrfanView, which is free and doesn’t require a graphics card to run.
To check if a JPG image is baseline or a progressive in Irfanview, open the image and then navigate to Image > Image properties. Look at the row titled Compression. If this row contains the word “progressive”, then the image is a progressive JPG; if it doesn’t, the image is a baseline JPG.
Converting progressive JPGs into baseline JPGs
Open IrfanView and navigate to File > Batch Conversion/Rename.
The bottom-right section shows the files you have added into Irfanview for conversion. If you have all of your cover art stored in a dedicated folder, simply navigate to that folder in the browser window and select Add All. If your cover art is stored inside different album folders within your music folder, as mine is, then tick the Include subfolders tickbox on the lower-left, go into your music folder, and select Add All.
If you want all converted images to go to a specific place, then enter that place in the Output folder for result files box on the left. If, like me, you want each file to be left exactly where IrfanView found it, then enter the placeholder $D instead.
Check that the Output format box on the top-left is set to JPG, then select the Options button. Make sure that the Save as progressive JPG box is not selected, then press OK.
If you want to overwrite the existing version of each image with its converted version automatically, then select the Advanced button below the Options button. In the MISCELLANOUS section, tick Overwrite existing files, then select OK. If you choose to overwrite the original files, make sure you don’t also select Delete original files after conversion, as this combination will remove your converted images entirely.
Once all of these settings are selected, click Start Batch to start converting images. (Or test it on a smaller set of images first, if you prefer). If you chose to overwrite the original images with the converted ones, you’ll see warning messages like the one below. However, Irfanview will go ahead and overwrite the old images as requested. Once the process is complete, you should see the list of files, warnings, and errors at the bottom. If any files have true errors, check the warning messages to see what the error is. If there are no error messages, then you can now re-embed these converted art files into your music.
Following this combination of steps made all of the tags and album art display correctly on my MP3 player. For me at least, the baseline JPG element was so unintuitve that it made the whole issue seem random. Beacuse of that, I’m glad that I could find logical answers from people who had already solved the individual steps, and that I could then combine these steps into a working system.
Although this process seems like a lot of steps, I should only need to do this batch conversion once. but I’ll have individual images to convert in future, that process is much simpler than a batch conversion.
So in theory, I’ve solved this question and now don’t need to ask it again … I guess that means a new question will soon appear.