JHymn Info and Help
Set your iTunes music free • Remove DRM restrictions without loss of sound quality • Convert AAC to high-quality MP3
JHymn icon
Written by FutureProof Current JHymn version: 0.9.2 hymn-project.org home
iTunes 6.0 Warning

It appears that if you make any purchases using iTunes 6.0 (or, even without making any purchases use iTunes 6.0 for other Music Store activity which authorizes against your account, such as authorizing a new computer to play your music), from that point on you must use 6.0 — and then JHymn won't work for you either. JHymn will have to learn how to perform the iTunes 6.0 protocol before this problem is likely to be fixed -- so hang on, it could be a bit of a wait.

In the meantime, you may wish to delay upgrading to iTunes 6.0 so that you can continue to free your music until a new solution is found.

Help is coming.
Help is coming... one day late.
One day late.
After you've given up and all is gone.
Help is coming... one day late.

From the song "One Day Late", on Sam Phillips' album A Boot and a Shoe.

What JHymn is meant to do

Let me start with what JHymn is not meant to do. JHymn is not meant to aid music piracy. I personally love shopping for music at the iTunes Music Store (I have nearly 900 legally-purchased songs so far, at the time of this writing), I'm happy to pay for the music I get, and I wish Apple all the success in the world at making legal music downloads a viable, profitable business.

I don't much care, however, for Digital Rights Management (DRM). I understand why it's there, and I know Apple never would have gotten the music industry to cooperate without it, but that doesn't mean I have to like DRM or having my fair-use rights restricted.

I have a non-Apple network music player attached to my stereo. With DRM, I can't play my music on my stereo with my existing equipment. I like to play my music on my computer at work, but I don't like the idea of having to "authorize" a computer that's not completely under my control. I like to edit my music sometimes — trimming intros, adding fade-ins and fade-outs, splicing consecutive tracks together to eliminate between-track dropouts, etc. As of iTunes 4.5 and QuickTime 6.5.1, however, my favorite audio editing software would no longer open my iTunes purchases for editing. That really annoyed me. I couldn't burn iTMS purchases music using Toast anymore, either. That annoyed me even more.

Thus my interest in the Hymn project began. I was happy to find the Hymn solution when it came out — and damned impressed with the code-cracking skills that went into the solution, skills I certainly don't possess — but being a more Graphics User Interface-oriented person, I wanted something slicker looking, easier to use, and more automated. When iTunes 4.6 came out — and not only refused to play my previously "hymnified" songs, but started deleting them from my iPod, as well — I also gained an interest in better understanding the process of removing DRM, and in understanding what made a file identifiable as having once been protected by DRM, even after the DRM had been removed.

Here's the ideal experience that I'd like JHymn to provide: You buy some new music through iTunes, you run JHymn — hopefully do no more than click one or two buttons — and when you quit JHymn and go back to iTunes, all of your DRM-protected music has been seamlessly replaced by unlocked, DRM-free music with the same sound quality as your original purchases, music which is virtually indistinguishable from music that you rip from your own CDs. If you had set up playlists which had included protected songs, the unprotected versions of those songs would now be in those same playlists, in the same play order.

JHymn can get pretty close to that ideal experience now, even for Windows users as of JHymn version 0.5. (Some issues were much easier to solve on Mac OS X, for technical reasons.) Hopefully time, contributions from other users, and even unintended help from Apple (like some much-needed improvements in the iTunes COM SDK) will lead to even better JHymn functionality and performance.

Downloads

JHymn 0.9.2, Mac OS X version Click here to download the 656K .zip file
JHymn 0.9.2, Windows version Click here to download the 628K .zip file
Source code, with Mac OS X Xcode project,
   Mac and Windows build scripts
Click here to download the 1064K .zip file
Java downloads* Click here to go to Sun's web site.
*Windows users especially might need to
download Java to run JHymn.

The "Big Secret" you need to know

For various philosophical and quasi-legal reasons, JHymn, right "out of the box" so to speak, does not strip your Apple ID or the copyright information contained within the files from which DRM is removed. Leaving this information in your files, however, is a dead giveaway that those files once lived a life as DRM-protected files. We know after what happened when iTunes 4.6 came out that such vulnerabilities can, and probably will, be exploited.

You have to make the decision yourself, as the user of JHymn, to remove either or both of these items by going into JHymn's Preference settings (In the JHymn menu on OS X, in the Edit menu on Windows) and telling JHymn to delete the Unwanted atoms associated with these items. Doing so looks something like this:

(apID)\n(cprt)

Basic instructions

JHymn main window

Note: For convenience, I'm using the terms locked and unlocked to mean protected by DRM and free from DRM, respectively. This usage should not be confused with your computer's file system concept of locked (read-only) and unlocked (read/write) files.

1. These are the files and folders containing files that you want JHymn to unlock and/or scrub. You can use the Add files/folders button, or simply drag-and-drop files and folders.

2. "Recursively" is a word that's probably more technical than should be used casually with a non-technical user, but it takes up a whole lot less room on the display than saying "If there are folders inside of another folder, look inside those folders for files too. And if there are folders inside those folders, look there too, etc. etc." If you turn this check box off, only files immediately inside the folders listed will be examined by JHymn. Folders within folders will be ignored.

3. These are the file types that JHymn will examine — .m4p (AAC files with DRM), .m4b (audiobooks, with or without DRM), and .m4a (standard AAC files).

Normally you only need to examine protected files — .m4p and .m4b. The only reason to have JHymn look at .m4a files is for what I like to call "scrubbing", by which I mean cleaning up any residual traces that a file was once a DRM-protected file (see The "Big Secret" for more).

JHymn will run faster with .m4a unchecked, since it won't have to spend time looking at files you've already unlocked, but it might be a good idea to check the .m4a option on the first time you run JHymn, and also when new versions of JHymn come out since scrubbing techniques may need to be improved over time.

4. Purchases from the iTunes Music Store come as .m4p files (aside from audiobooks — we'll get to that subject later). Typically you'll want to remove the DRM and turn these files into unlocked .m4a files.

5. When Save to a different folder is unchecked, new unlocked files are saved right where the original locked files were found. Already-unlocked files that need to be scrubbed are simply modified in place.

When Save to a different folder is checked, new unlocked files and freshly-scrubbed files are saved to whichever drive or folder you specify in section 11.

If you uncheck Replace old files, JHymn will preserve any already-existing files in the target folder by changing the names of new files as needed. For example, if Song.m4a already exists in your target folder, and song Song.m4a is about the be rewritten, a new file named Song_copy_01.m4a will be created.

6. Audiobooks, with their .m4b file extension, need to be handled as a special case. If you unlock an .m4b file and change the extension to .m4a, it will be quite playable as an unprotected audio file, but special features like bookmarks and variable-speed playback won't work. If you leave the extension as .m4b, you get full audiobook features, but iTunes still describes each such file as a "Protected AAC audio file", and JHymn has to do a little more work when it looks at .m4b files — slowing things down a little for you bit, the patiently waiting user — because it needs to read a bit of the beginning of each file before it can tell if it's unlocked yet or not.

I personally recommend leaving .m4b files with their .m4b extension, but the choice to change the extension is there if you want it.

7. The purpose of the Skip already-unlocked and scrubbed files is to make JHymn run faster by not re-converting and re-scrubbing files that have already been processed once before. Probably the only good reason to ever switch this option off is if you're running a newer version of JHymn and there's a good reason to force JHymn to re-do what an earlier version of JHymn had done.

If you've got this option turned on you might, however, find yourself asking one day, "Hey? Why is JHymn redoing all of those file that have already been unlocked and scrubbed? I thought it was supposed to skip them!" Well, this can happen for a couple of reasons:

One is that what's considered "scrubbed" can change. Both your own Preference settings and new versions of JHymn can re-define what is considered scrubbed and what isn't. Something that had been scrubbed once before might need to be scrubbed again.

Another thing that can make the difference is the Save to a different folder option. When saving to a different folder, two things need to be true for JHymn to skip reprocessing a file: The target file must be judged as being fully scrubbed, and the original file and the target file must have the same file modification dates. When JHymn does decide to process or reprocess particular files then, starting with JHymn 0.4.x, JHymn will set the modification date of any newly-unlocked and/or newly scrubbed file to match its original. Subsequently, as long as you don't change the original file (by editing song info or updating artwork, for instance) JHymn will know to skip over reprocessing these files the next time you run JHymn.

8. Use this feature to convert AAC files, even locked .m4p and .m4b as well as unlocked .m4a files, directly into MP3 (.mp3) or WAV (.wav) files.

If you wish to adjust MP3 sound quality and bit rate settings, go into JHymn's Preferences settings. There are separate settings for .m4b audiobooks and all other AAC files. While the range of sound quality settings available from the Preferences pop-up menus should serve most users needs, you can also enter your own custom settings, using LAME's command line switches. Use custom settings with caution: JHymn does no validity checking for these settings, and bad settings could cause LAME to fail in unpredictable ways.

Note on MP3 encoding speed: JHymn defaults to using the LAME "standard" preset. The alternative preset "fast standard" runs nearly twice as fast as "standard", at the expense of possibly generating slightly larger files and/or providing slightly diminished sound quality. You'll have to let your own ears and your own patience battle it out over which of these two settings — or which among the many other possible LAME settings — best suits your needs.

JHymn extracts song information such as song title, album name, artist, etc., from AAC files, and creates MP3 files with appropriate ID3 tags to convey this information. ID3v1.1 tags are created with their limited information in plain text (unaccented Roman letters, digits, and simple English punctuation — basic ASCII), as well as much more complete ID3v2.2 tags, providing the following information, using full Unicode character encoding as needed: title, artist, composer, album title, release year, comment, track number, track count, disc number, disc count, group, full arbitrary genre, compilation flag (whether the song belongs to a compilation or not), unsynchronized lyrics, tempo (BPM), and artwork (as JPG or PNG).

When converting to WAV format, it is important to note that WAV files carry no tag information. If you have Save to a different folder unchecked, and Update iTunes Music Library checked, your WAV files will have most tag information (artwork and lyrics being the main exceptions) created via iTunes' own tagging facilities, but this information then lives within iTunes database only and does not automatically travel with your WAV files if you move them elsewhere or use software other than iTunes to convert your WAV files to different formats.

9. This option gives you the ability to shorten file names (as well as the names of artist and album folders that may be created to store your files) and to simplify the character set used for folder and file names so that the resulting files will have the greatest cross-platform compatibility. Simplify file names is only applicable when the Save to a different folder option is checked on.

10. It's always a good idea to make sure you have back-up copies of the original files you purchase from the iTunes Music Store. The goal of JHymn is to create unlocked files which are indistinguishable from files that you might rip from your own CDs, but this goal cannot be guaranteed. Apple may have ways of marking files as store purchases that no one contributing to hymn-project.org has yet discovered, and any such undiscovered markers could mean, although I hope it is unlikely, that files which you once thought were completely freed from DRM suddenly become unplayable. Such problems have already occurred once, when iTunes 4.6 was released.

The first back-up option, Original locked & .xml, backs up any locked .m4p and .m4b files that get unlocked, plus a pre-update copy of the XML-formatted version of your iTunes Music Library in the event that an update is needed.

The second back-up option, All modified files, adds to the first option any unlocked but scrubbed files, backing up pre-scrubbed copies. This option might be especially useful if you're using JHymn to strip away cover art (something I'll get around to documenting later) yet want to make sure that you can recover the artwork later.

As long as you've chosen to make back-ups, the Delete original locked files option is useful not only to save disk space, but to avoid problems where iTunes ignores your newly-unlocked files in favor of your old DRM-protected files. Delete original locked files must be checked on in order to use the Update iTunes Music Library option.

11. This field changes depending on whether Save to a different folder is checked or unchecked. When unchecked, this field is where you set up a back-up folder. When checked, this is the "different folder" you'll be saving to. You can type in a folder path, drag-and-drop a folder into this field, or use the Choose button to select a folder.

12. Selecting this option lets iTunes know that locked files have been replaced by unlocked files with changed file extensions. This way, your iTunes Library and your playlists will be the same as they were before running JHymn, except that unlocked files will have replaced DRM-protected files. Without using this option (especially on Windows), iTunes will often not know where the newly-created unlocked files are, or where your old locked files are either, but will instead present you with broken tracks that can't be played.

You can only use the Update iTunes Music Library option if Save to a different folder is unchecked, and Delete original locked files is checked on. You may also need to check your Preferences in case JHymn needs help locating your iTunes Music Library files.

The following limitations to the Library update process should be noted:

13. Files you rip from your own CDs include information about the encoder used to create the files. Files from the iTunes Music Store lack this information. In order to make de-DRMed and scrubbed files look more like home-ripped files, the If encoder isn't specified option allows you to add an extra touch of fake authenticity.

14. The Add custom signature atom option gives you a way to mark your files as your own, both to discourage piracy and to give you a way, should the need arise, to figure out which of your files in your music collection had once been DRM-protected.

To create a custom signature atom, you need to set up your signature in JHymn's Preferences. While the signature text can be pretty much anything you want it to be, care must be taken in choosing your signature atom or you could corrupt your files and render them unplayable.

If that last bit scares you, then you probably shouldn't try to use a custom signature. If, however, you feel like boldly pressing onward, here are some things to keep in mind:

Atoms are four character codes. You can use any four characters, but it's best to stick with unaccented Roman letters, digits, and simple English punctuation (basic ASCII characters). For your own atom, remember that the goal is to come up with a four-character code that's very unlikely to be something Apple would want to use for its own purposes. Apple, for instance, reserves all all-lowercase atoms, so don't use all lowercase yourself. I'd recommend a mix of upper- and lowercase characters, and a bit of odd random punctuation is also a good idea. If I weren't using up these atom names by using them as examples here, things like 'BoB#' and 'wHy?' and 'bL1p' would probably be very good ideas.

If you're a technically-minded user using a Mac, or on Windows and have something like Cygwin installed, you could locate your custom-signed files from a command prompt with something like this:

grep -r "MyID.\{4\}data.\{8\}My signature" .

15. For brevity, this button simply says Convert, but if having a button the width of the entire JHymn main window weren't a problem, it might very well say "Convert, Scrub, and Update the iTunes Library as Needed". Click here when you're ready to have JHymn get to work converting, unlocking and scrubbing your files. If you're going to be updating your iTunes Library, you'll need to quit iTunes before you can get started.

16. Click Stop to interrupt the conversion and scrubbing process. You may be asked to allow a Library Update to proceed for files that had already been converted before you interrupted the process.

17. Progress information and status messages are displayed here, including the countdown to any pending automatic FairKeys deauthorizations.


What's new in JHymn 0.9.2

What's new in JHymn 0.9.1

What's new in JHymn 0.9

What's new in JHymn 0.8.5

What's new in JHymn 0.8.4

What's new in JHymn 0.8.3

What's new in JHymn 0.8.2

What's new in JHymn 0.8.1

What's new in JHymn 0.8

What's new in JHymn 0.7.5

What's new in JHymn 0.7.4

What's new in JHymn 0.7.3

What's new in JHymn 0.7.2

What's new in JHymn 0.7.1

What's new in JHymn 0.7

What's new in JHymn 0.6.3:

What's new in JHymn 0.6.2:

What's new in JHymn 0.6.1:

What's new in JHymn 0.6:

What's new in JHymn 0.5:

What's new in JHymn 0.4.4:

What's new in JHymn 0.4.3:

What's new in JHymn 0.4.2:

What's new in JHymn 0.4.1:

What's new in JHymn 0.4:

JHymn 0.3-0.3.1:

JHymn 0.1-0.2: