Friday, November 06, 2009
Tech support issue for Album Art FixerI had an email exchange today with a user of Album Art Fixer. Because others may run into the same Windows issues, I thought I'd share the story here in the hopes of saving some frustration for Album Art Fixer users.
1. In Windows 7, your help files don’t work.
2. Your default security settings have now made it impossible for me to modify any of my music files. How do I undo this?
3. The software page is on a blog - there’s no way to get an email to you; only public comments are allowed, and then only if I want to expose myself to Google, or some other public networking service.
I'm sorry you're having problem with the program. It doesn't set any security settings for any music files. The culprit here would likely be something else.
If you haven't followed the instructions to put a secondary account into the Backup Operators group before changing the security then you might have locked out access to your album art image files only. In this case, simply add your normal user account to the Backup Operators security group and log off and log back on (or reboot). Now your normal account will have access to the image files. This isn't really the best solution, though. The best solution is to make a new account on your PC without administrative permissions. Add that new account to the Backup Operators group. Log in as the new account and you'll have full access to your pictures. When you're done making changes that you want to the pictures, simply log off as the new account and log back into your normal account. The whole idea here is that to protect your album art images from WMP 12, you must make sure your normal account doesn't have access to change those images.
Alternatively, and much less desirable and much more risky, you can fix this by logging into your PC as the administrator or opening Explorer in an elevated administrator account and then take ownership of the files. From there you can restore the permissions. If you read this page carefully, ignoring all the ads on it, it might help: http://www.mydigitallife.info/2007/05/25/how-to-take-ownership-and-grant-permissions-in-windows-vista/.
The problem with the help file isn't with Windows 7. The issue here would apply to any version of Windows. By default, when you download CHM help files (that's the file extension for this particular Microsoft format for help files) from the Internet, Windows blocks access to the file. This is because there were serious security flaws in early versions of the help file format (after all, this is Microsoft Windows where security flaws abound). To get past this Windows restriction, right-click on the CHM file and choose Properties. On the properties window, click the Unblock button and then click OK. Now when you open the file it should display the help content.
I hope this helps you.
Note: My name is Dale. You can see my domain name at the top of this page. Figure it out. You can reach me if you really need to; she did.
Then a second email from the user:
BTW - the CHM Help file didn’t work on my Vista laptop, either. I spent a while researching the old help reader utility that Microsoft no longer bundles with Vista or Win7, but even downloading and installing that program wouldn’t let me read your Help file.
So I dug out my 10-year-old Vaio Picturebook and fired it up. WinXP really overpowers it, but I was able to put it on my LAN, read the Help file, and print it out. Eureka.
OK, NOW I know how Album Art Fixer is supposed to work. And yes, indeed, it performed as advertised. First pass went smoothly, then it was locked out from further changes, as designed. I’ll revise my user groups and try it again.
Now all we need to do is to convince Microsoft to put Advanced Tag Editor back into the Win7 version of WMP.
Because I had already given the user the instructions on how to make the CHM help file work on her Windows 7 PC, I didn't respond to the statement about the help file so I will respond to that here and share this link with her for more information.
It wasn't necessary for this user to dig out her 10 year-old laptop to open the CHM file - though I have to admire her resolve to overcome the Windows restriction on CHM files downloaded from the Internet, even if she took the hard way to resolve it. The reason it worked on her 10 year old laptop is that it did not have any of the security patches that restrict CHM file access. Even with those patches, the file will open just fine after following the instructions above. For more information on this issue from Microsoft go to http://support.microsoft.com/kb/896054. This article is about Windows Server 2003 but the same security update, KB896358, applies to all versions of Windows and the fix described in this article applies to all versions of Windows. The problem exists only on CHM files downloaded from the Internet. If I were to send you a CD with the same CHM file on it, it would open without any problem.
At first, I misunderstood her email, thinking she was saying that the help format I used was no longer supported by Microsoft. Rereading it, I realized that what she said was that she even tried downloading some unnamed old version help reader (perhaps WinHelp?) in order to try to view the CHM file. I'm sure that reading the file on her 10 year old PC might have made her think it was an old help format.
Just to make sure it's clear: support for CHM help files is included with Windows Vista and Windows 7. In fact, there are over 150 CHM help files installed on my Windows 7 X64 PC as part of the Windows installation including help on many previously existing Windows features. But there are also CHM help files installed that are the only available help files for features new in Windows 7, such as the AppLocker feature available only in Windows 7 and Windows Server 2008 R2. Clearly Microsoft is still supporting CHM help because they produced a lot of it for Windows 7.
Microsoft has introduced a new help system, Help 2.0, sometimes known as Document Explorer, that all users of Visual Studio 2005 and 2008 are familiar with. It is not designed or licensed for general help creation and cannot be redistributed to users that do not have Visual Studio installed. You can read in the following link that the CHM help format is the current help system for Windows and Help 2.0 is restricted to Visual Studio and Visual Studio related help systems.
The lesson here is to read the help files for Album Art Fixer before you run the program. It's not really that long; you can do it. And if the help files don't open, follow the steps outlined above.
Sunday, August 16, 2009
What Happened to Advanced Tag Editor?October 6, 2009 Note: You might have noticed that this blog article was changed from the original version. Upon the objection of someone I quoted in the original article, I removed the quote along with any text that would imply the quote. Otherwise, the content remains the same. Thank you for your understanding of this minor edit.
Now that I've had a few hours to play with Windows Media Player 12 in Windows 7, I am finding more silly changes.
I blogged previously on the laughable album art craziness in Windows Media Player 12. Album art has been a big part of my Media Player tool development effort so that was the first thing I looked at.
In working through that blog post, and testing Windows Media Player 12 afterward, I have found a lot of other changes that I think are nearly as bad as the album art changes.
As I have said before, I think that the "Now Playing" feature in Windows Media Player has been severely broken since Windows Media Player 10 began trying to limit displayed album art to 200x200 pixels. As loophole after loophole appears to be closed to using large or high quality custom album art, using WMP for playing music has become less and less attractive.
So, what was left? Well, one thing Windows Media Player did pretty well was manage your media library. Now it wasn't great - the library was bulky, slow, prone to corruption and failure but it worked. And it worked well enough that I abandoned previous efforts to write my own library and tag editor for MP3 files.
Since managing my media library was the one thing left for which I used the WMP user interface and now that has been eliminated, then what's left that is good about Media Player - other than it plays media?
Why in the world would the Windows Media Player product team eliminate Advanced Tag Editor? The code was already written and it worked. There was more cost to remove it than to keep it. All so they can make you edit how they want you to edit? By adding a multitude of columns to the grid display in Windows Media Player 12? Do they think that having to scroll way off to the right to be able to edit all the things that might need editing is better than a multi-tabbed window form?
I tried adding all the user editable columns to the display in the Songs list and in a Playlist list. In both cases, to edit past my 22 inch monitor's width you have to scroll way to the right. As you scroll to the right there are no fixed columns that identify which track you're editing. You have to continuously scroll to the left to find out what's next or where you are. The Advanced Tag Editor simply does not have this problem - especially in WMP 10 and previous where there was a list of which tracks you were editing.
Editing multiple data items across multiple tracks was intuitive and painless with Advanced Tag Editor. With Windows Media Player 12, it is neither intuitive or painless. And many of the fields that you could edit in Advanced Tag Editor cannot be edited at all in Windows Media Player 12.
To edit an attribute for a track in WMP 12, you have to click the track once to select it, then pause, and then click the item to edit. This puts the item in edit mode. If you don't pause long enough, though, then WMP 12 treats it as a double-click - usually resulting in playing the track. See the next bullet about editing in playlists for more on how bad this is.
Viewing and playing playlists is another new flaw. When you select a playlist, it displays the contents in the center of the library and you can edit the track information for tracks in that playlist. Try that select-pause-click to edit trick I described above and you will often end up having double-clicked the playlist item causing the playlist to play.
So what's wrong with that, you ask? Well, that's the sixty-four thousand dollar question. The answer is that when you play the playlist, suddenly the list goes to the Play tab on the right of the WMP window and you can't edit the tracks at all. Instead, in the center section, where the editing takes place, you get this message:
You are currently playing this list. You can edit the list in the Play tab.Problem is, you can't edit anything except the list itself; you can't edit the track. This is more reason that removing the Advanced Tag Editor, seems so wrong. This problem simply did not exist when editing in Advanced Tag Editor.
As Windows Media Player continues on the track of more flash, more marketing, more DRM, and less function and less quality, I feel comfortable predicting the day when third-party media players begin to seriously threaten Microsoft's hold on the media player market the way FireFox (upon which I am typing this post) threatens Internet Explorer's hold on the browser market.
Laughable Album Art Craziness in Windows Media Player 12October 6, 2009 Note: You might have noticed that this blog article was changed from the original version. Upon the objection of someone I quoted in the original article, I removed the quote along with any text that would imply the quote. Otherwise, the content remains the same. Thank you for your understanding of this minor edit.
Let me just prefix this post by saying that this is going to be a long article with a lot of pictures. The way Windows Media Player 12 in Windows 7 handles album art is just so (in my opinion) absolutely crazy that it is going to take a lot to describe it. There are several pictures here; I recommend looking at all of them - even clicking on the reduced image to look at the full size image. Only by viewing this full size can you really grasp exactly why I think this is so laughable - and let me tell you I have really been laughing out loud a lot; this is just that crazy.
To get this really in perspective, it might be helpful to read my previous post at Windows Media Player and Album Art.
Windows 7 and Windows Media Player 12
Well, Windows 7 has finally gone to manufacturing. Of course since most of my own development is around Windows Media Player, I was anxious to test my current apps on Windows 7 and Media Player 12. It took me a few days to get things ready and to have time to get test media copied to my Windows 7 box but today I finally got it done.
When copying media to my Windows 7 PC, I made sure that Windows Media Player was NOT running. I copied the media over and then the first thing I did was use my AlbumArtFixer program to lock down the album art so that Windows Media Player could not change my Folder.jpg files. So far, so good. Next I opened my Music Library and added the folder in which I had stored my test music. Windows Media Player did its thing and detected the files and added them to my Media Player library.
I went into my music folders to make sure that Windows Media Player 12 had not gotten past my security settings to wipe out my custom album art. So far, so good; I won. My custom album art was intact. The next thing was to play a few tracks and examine the art again after Windows Media Player had touched the files. Still good. At least I knew that using AlbumArtFixer to secure my custom album art had succeeded in preventing Windows Media Player from intentionally destroying my files.
Laughing Out Loud
Next I switched to the "Now Playing" view with the Album Art visualization so I could see my embedded album art in the Album Art visualization. This is where I just laughed out so loudly that my wife nearly jumped out of her chair.
Readers of my blog will know that up to Windows Media Player 11, the Album Art visualization uses any custom embedded art rather than the Folder.jpg image. This was an easy way to get a more reasonable sized album art.
Well, Windows Media Player 12 closed that loophole (more on this in a minute). I have album art embedded in my media files at 1000x1000 pixels so that it shows up as big as possible in my own media player shell that I wrote for Windows Media Player. Windows 8, 9, 10, and 11 all displayed my large art in the Album Art visualization - even when it was too large for the screen WMP just showed what ever portion would fit on the screen instead of resizing the picture to fit the available space.
I expected the same behavior in WMP 12 but, instead, this is what I saw - and yes, this one is full size just like you see it!
The maximized Windows Media Player window reduced itself to that. All that available screen real estate on my 1680x1050 pixel 22" monitor and what Windows Media Player 12 gives me is 240x240 pixels of album art! Hey, I shouldn't complain. Windows Media Player 11 tried its hardest to limit me to 200x200 pixels. Apparently the Media Player team realized that 200x200 pixels was just too small so they gave us an upgrade... of 40 pixels.
At this point, I wasn't sure how WMP 11 came up with the postage stamp sized album art. Had they finally closed the embedded art loophole? I used my AlbumArtExtractor to extract some album art for verification. My 1000x1000 pixel embedded art was intact.
So where did they get the postage stamp? To test, I used my AlbumArtFixer to replace the Folder.jpg and the embedded art on an album with an incorrect picture. I left intact the hidden 75x75 and 200x200 art that Microsoft creates in album folders but everything else now had the wrong image. Playing the album again in Windows Media Player showed that the Album Art visualization must use those hidden files. The art showing in the Now Playing List was the newly-added, intentionally-incorrect art but the Album Art visualization still showed the 240x240 pixel correct-even-if-low-quality art.
From this test, I also deduced that the Album Art visualization takes the 200x200 pixel art and stretches it to 240x240 pixels. Even that small stretch destroys the quality of even the poor quality hidden art images Microsoft created.
Maximizing Album Art
Ok, so let's try maximizing this shrunk down window and see if I get bigger art. No luck. This is what I saw:
More laughing out loud. A LOT more laughing out loud.
Get Your Magnifying Glass
Now look up into the upper left corner of the image above. You can faintly tell that something is written there - in nearly microscopic font. It says "Les Paul & Friends", the name of the album artist entry in the CDDB database. Rotating into that same screen space are the artist name, as you can see, then the track name, and then the album name. Now, I don't usually like marquees or scrolling/changing information in a user interface. I don't like having to wait several seconds trying to catch the piece of information I want to see. But really now. How could I expect the Windows Media Player product team, even using that microscopic font, to find a way to fit all three pieces of information on the screen at the same time, especially after having stretched the picture all the way up to 240x240 pixels. I mean really now. There just is not space in what's left of that screen to add any more information.
Is that crazy or not?
Upsizing Maximized - or Full Screen
Ok, so what's larger than Maximized? Full screen.
Pressing F11 generally will toggle between full screen and not full screen for Microsoft apps. I hadn't actually thought to do this test but as I was showing all this craziness to my wife I must have accidentally hit the F11 key - or clicked the Full Screen icon on the player. Suddenly I find myself looking at this full screen window:
What's wrong with this picture?
Think about what using Media Player in full screen means. It most likely means that you're not sitting at your computer. You can't write software in one window while having WMP in full screen. You can't edit a document in Word and you can't browse the Internet in Firefox. Full screen means you have only Windows Media Player on your screen. Since you can't do anything else while WMP is in full screen, going to full screen probably means you got up from the PC to do something else.
There is nothing else on my Windows desktop or screen I can use any space for. All the space is fully dedicated to Windows Media Player's Album Art visualization. And they took the 240x240 pixel album art and upgraded me to... (more laughing out loud - lots more) 130x130 pixel art. On this screen fully dedicated to one thing, displaying album art, and they REDUCED the sized of the art to sub-postage stamp size!
And what gives with the location of the microstamp album art? Suddenly it is way to the upper-left in full screen. I don't understand that. I guess it doesn't matter if the white dot on the screen is in the center or the upper left but this change in perspective definitely drew even more laughter. I just really don't get that one.
But they gave me something in return. With all that screen real estate they recovered by reducing the album art from 240x240 pixels to 130x130 pixels they managed to squeeze all three data points - album name, track name, artist name - onto the screen at the same time. And the track name font is now almost 1/4 inch high! I can read it a full 3 feet away from my screen!
Of Course I Predicted This
Earlier I mentioned that WMP 12 closed a loophole that allowed you to use larger album art. Here's the rest of the story.
In my post Windows Media Player and Album Art I predicted that the embedded art loophole would be closed in WMP 12. I did expect them to close it by reducing the size of the embedded artwork but they actually closed it by simply ignoring the artwork, as my tests documented above point out.
My solution to this problem, going way back to Media Center 2005 and Windows Media Player 8, was to write my own shell around Windows Media Player. This shell uses Media Player in the background to play the tracks but it provides a much more sensible view of what's playing, in my opinion, than any Microsoft product. It starts with album art as large as I cared to make it and fills all available space up to the size of the image, reducing if necessary to fit a smaller screen.
This is my shell in full screen mode:
When you're looking at full screen, which makes more sense? Microsoft's 130x130 pixel album art (more laughing out loud here) or mine? Here's theirs and mine, side by side. Pretty easy to tell which is people would rather have.
An interesting, at least to me, note about the changes to WMP 12 is that after a few seconds of idle, the player controls go away - and they should. If you're not using them, get them out of the way so they aren't obstructing that wonderful custom album art you created. Notice that the first two WMP pictures above have the controls showing. In each of those views, if you wait a few seconds, the controls hide:
That's a feature I've had in my player for several years.
What's it all mean?
Finally the Windows Media Player team has won. You cannot use custom album art with Windows Media Player without having that art ignored or destroyed. There is simply no way to display album art of a reasonable size. Going from 200x200 pixels to 240x240 pixels appears to be the one concession that the Windows Media Player product team is willing to make for their customers.
Apple's iTunes, by the way, will give you 600x600 pixel album art. Not big enough for today's highest resolution monitors but a heck of a lot better than Microsoft's postage stamp art. Your only choice is to use something other than Windows Media Player if you want to view album art on a PC.
Sunday, July 26, 2009
ID3 Album Art ExtractorDownload ID3AlbumArtExtractor
After releasing my ID3EmbedPictures application a couple years ago, I had several requests for an application that could be used to extract images from an ID3 tag in an MP3 file. While creating the successor to ID3EmbedPictures, ID3AlbumArtFixer, I realized that I had about 90% of the code necessary for extracting album art already written so I added the last 10% and here is ID3AlbumArtExtractor:
It's based on the same wizard as ID3AlbumArtFixer. There's a help file in the download.
Saturday, July 25, 2009
ID3 Album Art FixerDownload ID3AlbumArtFixer
My wife uses iTunes to listen to music and iTunes won't display MP3 album art unless the file is embedded into the MP3 file. To get around this, I wrote ID3EmbedPictures. The program served me well for a few years and I finally published it at http://www.dalepreston.com/Blog/2007/03/id3-embed-pictures.html
In response to a few bug reports in that application, I've written a new application to help with managing album art for MP3 files. The new application is based on the time-tested code in ID3EmbedPictures with a fix for the Invalid COMM Frame error - an error caused by Apple iTunes creating ID3 tags that do not follow the published standard at http://www.id3.org. This is a case where the Apple developers simply did not understand the spec but, because iTunes is so big and the rest of the world is not, other makers of tools to work with ID3 tags have to change their code to accommodate the iTunes bug.
A big change in ID3AlbumArtFixer is that I changed the user interface to a wizard interface - one in which you step through a few pages to collect all the information required and then execute the task on the last page. This was done to reduce the screen size in order to accommodate the small screens on today's popular netbooks.
I've written before that Windows Media Player will do everything it can to destroy your custom album art: http://dalepreston.com/Blog/2007/04/windows-media-player-and-album-art.html. ID3AlbumArtFixer now allows you to set file access permissions on your custom album art to prevent Windows Media Player from destroying it.
Lastly, the task that initially led to the development of ID3EmbedPictures and ultimately, ID3AlbumArtFixer. ID3AlbumArtFixer can embed your album art in your MP3 files for use with iTunes or other players and devices that only work with embedded art. The advantage to using ID3AlbumArtFixer over doing the job in iTunes or Windows Media Player is that, unlike those other programs that only do a track at a time or at most an album at a time, ID3AlbumArtFixer can do your whole library in one operation.
9-Aug-2009: Fixed an issue where the security settings could not be set unless you also execute the album art create/resize step. Now you can set album art security while skipping all other steps in the wizard.
27-Jul-2009: Two days after the initial release, here's the customary "oh shoot; how'd I miss that" release. It fixes a bug where folders without any existing folder.jpg file are skipped along with a few minor typographical type of errors.
Friday, July 10, 2009
Setting file ACLs in .Net
I've been working on updating my ID3EmbedPictures app to fix a couple bugs. As part of the effort, I want to include functionality to set the file permissions on the album art in my Windows Media Player library to prevent Media Player from destroying it as it is wont to do.
I had a hard time finding how to set file permissions in .Net and especially how to remove inherited permissions. Here's a sample console app demonstrating the solution I finally used (after a little help from a Microsoft forum at http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/f3dd9496-794d-4f22-aa80-110fd2986e36. The code and the forum thread should tell the story.
static void Main(string args)
SetWorkingACL(@"E:\TestMusic - Copy\The Monkees\I'm A Believer And Other Hits\Folder.jpg");
private static void SetWorkingACL(string folderImage)
// Get the security information for the file.
FileSecurity fs = File.GetAccessControl(folderImage);
// Remove the inherited permissions.
// Get a collection of existing permissions.
AuthorizationRuleCollection rules = fs.GetAccessRules(true, true, typeof(NTAccount));
// Loop through and delete all explicit permissions.
// The loop processes explicit and inherited permissions but
// the RemoveAccessRule method won't remove
// the inherited permissions - which were removed
// above by SetAccessRuleProtection anyway.
foreach (AuthorizationRule rule in rules)
if (rule is AccessRule)
// Now add the two permissions I want.
fs.AddAccessRule(new FileSystemAccessRule(@"ServerAdmin", FileSystemRights.FullControl, AccessControlType.Allow));
fs.AddAccessRule(new FileSystemAccessRule(@"Users", FileSystemRights.ReadAndExecute, AccessControlType.Allow));
// Commit the changes to the file.