iRingz - Tonez for your iPhonez @ tk here on Sunday, September 16, 2007 9:00 PM
Google
You could also try tk Social Bookmarking Search or tk Video Search!

Sunday, September 16, 2007

iRingz - Tonez for your iPhonez

Table of Contents





Introduction

Based on what this guy (Cleverboy aka gryphondwb) found, I've created a simple program called iRingz to allow batch converts for AAC ringtones. Meaning? This means you can have free Tonez for your iPhonez for as long as this works. *Note:* This doesn't work on iTunes 7.4.2.

***Update:*** Use instead. It works for 1.1.1.

***Update:*** If you upgraded to 1.1.2 and use iTunes 7.5, you can use custom .m4r ringtones without hacking. See for more info. I could update iRingz to support this, if anyone requests for it.

Version 1.2.1

Latest version: Robert has given it a test and all seems fine so here is iRingz Ver 1.2.1!

By the way, please provide feedback on whether it works for you since an iPhone is not living in my house. :)




What you need for 1.2.1:

  • iTunes 7.4.1
  • iRingz + AtomicParsley ver 1.2.1 (This zip file includes iRingz and AtomicParsley)
  • Ringtones/Sounds/Songs in some audio format like mp3
  • iPhone (duh!)





Steps for 1.2.1:
  1. Get all the files listed in What you need.

  2. Use iTunes to convert your Tonez into AAC format. See this iTunes page for more help on this.

  3. Extract the zip file that you just downloaded into a folder.

  4. Goto the folder (that you just extracted to) and inside it, look for a file called iRingz.exe and run it.

  5. Hold down shift or ctrl and click on the files you want to select multiple files for conversion. You could also click and drag to select multiple files. If you change your mind, just click cancel.

  6. Click Open to begin the conversion.

  7. After conversion, iRingz should popup an explorer window displaying your newly converted tonez. Double click on them to import to your iTunes library and sync to iPhone.

  8. Profit!





Known Issues (aka read this if you have problems, most likely you won't):

  • Attempting to convert files that are in the root directory will probably fail. I haven't tested this and probably won't since there is a simple workaround - put all your tonez in a folder.

  • Max filename path length is 255 bytes or 255 characters, an AtomicParsley limitation. If using purely unicode filenames, it becomes even shorter, about 127 characters. This means anything longer than "C:\I don't know why you can't rename your tonez folder\A really very extremely exceedingly exceptionally dreadfully awfully horribly terribly disgustingly incredibly super duper crazy mad insane absurd nonsensical do not try this at home long filename.m4a" won't work.

    Workaround: Shorten your filename or folder names, or move the folder holding your tonez to the root directory, ie C:\.

  • Tonez larger than 4Gb won't get converted since AtomicParsley doesn't support files of that size. I'm not even sure what would actually compel you to attempt converting something even remotely close to that size. "A 4Gb tonez ought to be enough for everyone", unless you don't intend to pick up your iPhone for a very long time. There's no way you can run into this limit since ringtones are limited to 3.1MB in size.

  • If the old unconverted files already exist in your iTunes library, you can't import the new converted tonez into your library. I'm working on this, see below for details.

    Workaround: Remove the old files from your iTunes library first and then run iRingz to convert your files. Import new tonez into library.
    Fixed in 1.2.1

  • It seems that ringtones length may be limited to no longer than 30 seconds. How do I know this? I don't. But someone made a comment about this in a post at the iPhone FAQ. Sobe at the MacRumors forums also discovered that 3.1MB may be the upper limit for tonez.

    If you intend to make custom ringtones from songs, you could help test this out. Try converting your songs with iRingz without slicing them down to 30 seconds and import them into your iTunes and sync to iPhone. If this fails, remove the files from your iTunes library. Then use iTunes to trim them to 30 seconds (Robert has provided a guide in comments below) and convert with iRingz. Import to iTunes and sync to iPhone. Lastly, post a comment about your experience.

    Workaround: Limit the length of your ringtones to at most 30 seconds. Use iTunes to edit if necessary. Some other tricks that I can think of include lowering the bitrate to 128kbps or 96kbps and speeding up the music file by a small percentage (about 1 - 3%, which is not likely to be noticeable).

    Thanks to Francis for reminding me of Audacity to edit sound files. Here's Audacity's guide on cutting files. The section on duplicate and split and splitting and submixes may also be of use. I believe Audacity currently doesn't export to AAC so iTunes is required for that.

This has only been tested on Windows XP, but should work on 2000 and Vista (I think. Edit: Robert has confirmed it does work on Vista. Thanks Robert!). For the curious, iRingz is entirely free + open source. Source is available on request. Questions?

Mac users, don't fret. You guys aren't left out. A droplet is available for you guys at iPhone-Ticker (it's in German, but there's a Youtube video that explains the process).




Changelog

What's new in iRingz 1.2.1?

Other than editing the file to indicate that it's a ringtone, running iRingz 1.2.1 will cause the title to be modified. In order to import files that exist in your iTunes library and for easy identification of modified files, the title will have "_rt" appended to it, as suggested by Robert.

If no title exists, the title will consist of the filename without its extension + "_rt". Example:
Your file - ILoveCustomRingtones.m4a, with no title
After iRingz conversion - ILoveCustomRingtones.m4a, its title will be ILoveCustomRingtones_rt

What's new in iRingz 1.2?

This version was only available for a short while because it was discovered it could make your iPhone cry (as you can see below). Get Ver 1.2.1 as it plays well with your iPhone.

If you're curious, this was what changed in 1.2. However, ver 1.2.1 uses a slightly different method now.

Other than editing the file to indicate that it's a ringtone, running iRingz 1.2 will cause the title to be modified. In order to import files that exist in your iTunes library and for easy identification of modified files, the title will have "made on Someday at Sometime" appended to it.

In theory, this should allow you to import the same ringtone over and over again (as long as they are converted through iRingz before you import them), even if they are present in your iTunes library. In practice, well, you have to try it out and see if it works.


Update: Ver 1.2 is out! Hopefully this will fix the problem of not being able to add ringtones that are already in your iTunes library. Get iRingz 1.2 here. Robert has identified that long titles may cause your iPhone to freak out during removal of ringtones. So stick to ver 1.1 for now. Updates to 1.2 will be ready when it's ready.

What's new in iRingz 1.1?

Implemented francis' suggestion. Now when you run iRingz 1.1, it'll create 2 folders in the current directory - temp and final.

The temp folder is for processing and will be deleted when iRingz exits. The final folder holds your new tonez. These tonez will have the same filename as your original files instead of the messy "-temp-some random number" filenames.

Also, iRingz 1.1 will now pop up an explorer window showing the final folder when it is done. You can double click on all the files (faster method: hold down ctrl while pressing a, then press enter) to import to iTunes and sync to your iPhone.

What's new in iRingz 1.0?

Everything!




Older Versions (This is for archival purposes only!)

Version 1.2
Ver 1.2 is not available as it made your iPhone cry (not really). Ver 1.2.1 fixed this.

Version 1.1
Ver 1.1 is available. Get iRingz 1.1 here.

Version 1.0
What you need for 1.0:

  • iTunes 7.4.1
  • iRingz + AtomicParsley ver 1.0 (This zip file includes iRingz and AtomicParsley)
  • Ringtones/Sounds/Songs in some audio format like mp3
  • iPhone (duh!)


Steps for 1.0:
  1. Get all the files above.
  2. Use iTunes to convert your Tonez into AAC format. See this iTunes page for more help on this.
  3. Extract iRingzAtomicParsley-win32-0.9.0.zip that you downloaded above into a folder.
  4. Goto the folder (that you just extracted to) and inside it, you should see a folder called "AtomicParsley-win32-0.9.0". Double click on the "AtomicParsley-win32-0.9.0" folder.
  5. In the "AtomicParsley-win32-0.9.0" folder, look for a file called iRingz.exe and run it.
  6. Hold down shift or ctrl to select multiple files for conversion. If you change your mind, just click cancel.
  7. Click Open to begin the conversion. After conversion, your newly converted tonez should appear in the same folder as your old unconverted files. Double click on them (the new files, they should have "temp" and some random numbers appended to their filenames. Or sort your files by modified date if you want to make your life easier.) and sync to iPhone.
  8. Profit!





Future versions

Update: I'm working on a new version that should fix some problems (if the songs already exist in the iTunes library, they can't be imported). As for when it'll be done, I'm not sure. It'll be done when it's done. :) This is done, I hope, see version 1.2 above.

Update2: I may work on a newer version of iRingz that allows you to go from mp3/wav -> converted tonez. What does this mean? Basically, if you have mp3/wav files, there's no need for you to convert to AAC before importing to iTunes. iRingz will convert the mp3/wav to a usable ringtone for you. Note that this is slated to be released in a future version of iRingz and is not present in the current version.

Update3: I have looked into mp3/wav -> tonez and preliminary results seem promising, although it hasn't been tested out on an iPhone. Work on this hasn't started yet as 1)Robert tells me there may be a firmware update out soon and 2)I feel quite light-headed and sleepy all day since I was up quite late yesterday. If Apple doesn't unleash one firmware to rule them all (break custom ringtones and unlocking), then I will proceed to testing on Robert's iPhone and start implementing mp3/wav -> tonez. (Breaking unlock isn't related to this and I will probably proceed anyway. It's just that I won't be able to use it :( )

Update4: You may have noticed I haven't updated this page for a while. That's because no one has found a (free) workaround for iTunes 7.4.2 or 1.1.1 firmware yet. I know iToner 1.03 beta currently works with 1.1.1, but of course it isn't free, hasn't been fully tested and it's for Macs. So I guess the wait goes on.

Update5: As mentioned above, works with 1.1.1, so I see no reason to continue developing iRingz.




Credits:

  • Cleverboy aka gryphondwb for discovering the workaround that makes iRingz possible.
  • Robert for his much needed help in testing, feedback and useful suggestions.
  • Francis for his suggestions.
  • Other commenters for their encouraging comments and feedback.
  • AtomicParsley and AutoHotkey which are both free and open source and are key elements of iRingz.

 

31 people had something to say! Why don't you join in? The more the merrier!

On 13 September, 2007 18:32, Anonymous said...

very nice beats doing it myself

On 13 September, 2007 20:04, Unknown said...

This is excellent, thanks!

But could you maybe post a few more steps? Like what new files are created? Where do they go? And what we do with them?

I'm sure there are a lot of newbies out here who would appreciate a little more info.

Thanks again!

On 13 September, 2007 20:30, Robert said...

Ok..clearly I'm a dork...where's the link to download?

On 13 September, 2007 20:39, Robert said...

Bah...I thought the link above was to the atomic parsley app itself...dork confirmed :-/

Anyway...nice work..consider it tested on Vista, at least to the point of file creation...been holding off going to 7.4.1 but will try and upgrade this evening...

On 13 September, 2007 20:41, tk said...

manny: I've updated my guide. Hope that helps!

robert: The link for iRingz + AtomicParsley is listed under what you need. Or you can get it here (same link).

On 14 September, 2007 03:00, Francis said...

Nice app, thanks for your work!

Might I suggest one thing: It seems that the newly created working ringtone is appended with "temp-19008". Could you add an option to (1) either replace (overwrite) the old .m4a ringtone and keep the same file name or (2) choose a new file name for the created ringtone(s)?

On 14 September, 2007 03:32, tk said...

francis: Just some trivia - the numbers are actually randomly generated by AtomicParsley.

As for your suggestion, it is possible to implement option 1. Option 2 can be done but would be tedious for the user, since this allows batch conversion of ringtones. This means a user would have to choose new filenames for all the files he/she wants to convert.

For option 1, I can code it such that a user can choose another folder for the new ringtones. The old ringtones will not be deleted. This is to allow the user to identify which files were not converted in case AtomicParsley fails to process a certain file.

I'll try to see if I can find time to implement option 1. But for now, I'm off. :)

On 15 September, 2007 05:27, Robert said...

Ver 1.0 was working for me. I haven't had the chance to try Ver 1.1 yet, but will let you know as soon as I do.

One potential issue. I say potential because it was easy to work-around and I did not try to reproduce it.

If you the m4a file is in your music library and then you use your program to make a ringtone version, it would not add to iTunes as a ringtone.

I do not think this has anything to do with your program. Rather, I think that when you double click the new ringtone version, iTunes "sees" that the file is already in its library and ignores the addition as a ringtone.

When I've either deleted the original .m4a song from the library or had the ringtone with a different name, no problems.

Anyway...since, organizationally, I didn't want multiple versions running around anyway, I didn't do exhaustive testing.

All that said..simple..elegant and easy...thanks much!!!

If you are just hankering for more work to do, how about this suggestion: "unringz" It does the same thing ans iringz but in reverse. That is, it removes the stik atom from the files. Only reason I thought of it is because the Apple version of your program does it. I suppose it could come in handy if you needed to re-edit a ringtone or lost the original source.

On 15 September, 2007 13:05, tk said...

robert: Thanks for the comments.

As for the potential issue, you mentioned that it could be fixed with a different name. Does that mean a different filename (simple to fix) or a different song title (ie metadata and is harder to fix)?

If it's a different filename, I could simply append "-ringtone" to the new files. Currently the files are renamed back to their original filenames as per francis suggestion.

If it requires a change in the metadata, I could attempt to extract the metadata tag and append ringtone to it.

For unRingz, I'm not too sure why the stik atom needs to be removed to edit the files. That said however, I will come up with unRingz soon enough. :)

On 15 September, 2007 13:19, Robert said...

tk...

Good questions? Since I was using sounds that I really didn't want in my iTunes library anyway, I simply deleted them before executing the stik-14 file created by your program.

That means I'm not sure whether it is the filename or the metadata name that prevents it from being added.

My guess is that it's the metadata information since, if I recall correctly, I executed the *temp*.m4a files.

That said, we should probably do some good testing before we end up breaking your very simple and elegant solution :-)

I'd first suggest seeing if you can even reproduce the situation I described so that there are at least the two of us confirming the test case.

I'm happy to work with you to test some scenarios...just let me know.

On 15 September, 2007 14:05, tk said...

robert: I'd love to try out different scenarios, unfortunately, at the current moment, I do not own an iPhone. My friend does have an iPhone but he's not online at the moment.

If you're willing, you could try these 2 scenarios.

Steps to be done: Files already in your iTunes library. Convert files with iRingz 1.1 and import to iTunes. Files are not imported.

Scenario A: Rename to new filenames and try importing. Result?

Scenario B: Use AtomicParsley command line to change song title metadata and try importing. Result?


daisy: For protected AAC files, I'm not sure if they can be converted since I do not have such files. However, were the 2 imported files protected AAC files?

As you may have guessed, I don't have a fix. But I have an idea that may work.

I'm assuming your protected AAC files are iTunes songs. Therefore, you can convert these to mp3 and then to AAC with iTunes. You could then use iRingz for conversion.

Or you could try converting them to AAC without converting to mp3 first. And then use iRingz. This method is probably less tedious.

On 15 September, 2007 21:42, Anonymous said...

You are a golden god

On 16 September, 2007 01:56, tk said...

daisy: I'm working on an updated version of iRingz which should solve your problems. Thanks to Robert for helping with testing.

So, just sit tight and your ringtones should be in your iPhone pretty soon.

On 16 September, 2007 06:02, Anonymous said...

and I have a questions. Can someone post a link to (if there is one) a free program so I can cut the original song to shorten it for a ringtone. I have to do that first before all of this right. Because I got it show up now finally in my ringtones but it doesnt transfer to the phone. I just dont see it.

On 16 September, 2007 09:40, Robert said...

Not appearing on the phone even though it appears in the Ringtones library of iTunes has been documented but no one seems to know why. Bit rate, length, size, a combination...you'll have to try changing all threee to see if you can finally get it to show up.

That said, a quick way to edit your song can be done with itunes itself.

1) Play the song and note the start and stop times you want to be your ringtone

2) Right click the song and use get information. Under one of the tabs, options I think, there is the ability to set the start and stop times. Use the times you noted in step 1

3) Convert the file to AAC 128. You set this in preferences->advanced-import

4) The resulting file should be just the part in between the start and end times you noted in step 1 and should be a .m4a file of the proper encoding to work on the phone.

At this point run the file throug iringz and see if you can add it.

Until TK gets the next version out, be sure to delete the original file from your music library or it won't add to your ringtone library.

Please post back here if there is still a problem or if this fixes it.

On 17 September, 2007 00:54, Robert said...

Daisy...

Good news is that, as TK said, we think we know what is causing the problem and how to fix it.

Once TK gets a beta that he's ok with, I'll run it through a few tests and if it passes, I'm sure he'll release it soon after.

To set your expectations, I don't have the beta yet, so it will likely be at least 24 hours from now.

Not that anyone is bugging him, but I thought that I'd add that TK doesn't even have an iPhone yet so he really is doing this out of the kindness of his heart.

On 17 September, 2007 01:25, Francis said...

I just came back to check the progress and I see two new versions and my suggestions being integrated....NICE!!! Thanks for your work!!!!! You're the man.

On 17 September, 2007 01:45, Francis said...

Another comment: There's a great free program called Audacity that you can use to chop up and edit your music files: http://audacity.sourceforge.net/. It's worked great for me - the only complaint is that I can't (or haven't yet figured out) how to vary the length of the fade in/fade out effect. One of the best features (IMO) is that you can speed up the song to squeeze more into the 30 second allowed timeframe. Up to a 5% increase in speed isn't very noticeable but allows you to squeeze a few key seconds of the song.

TK - regarding your next potential version that goes straight from mp3/wave->ringtone: GENIUS! This version would solve the single biggest complaint I have right now, which is that I have to do 3 conversions:
1. Audacity outputs my mp3 edited song in .wav
2. I have to import the .wav into iTunes and convert to .m4a
3. Convert .m4a to ringtone .m4a

I then I have to import the ringone and also have to delete a ton of residual files along the way, i.e. the original wav, the imported/converted AAC into my itunes library, and (up until today) the pre-ringtone .m4a file.

Great work!

On 17 September, 2007 02:33, tk said...

Ver 1.2 is out! See the updated post for more. Actually I released it a few hours ago. Robert, you got mail! I've got some ideas that require an iPhone for testing.

As for daisy, you could try out 1.2 now. At worst, you'll end up with more non-working tonez.

Francis, I have used Audacity before and it was definitely simple to use. I wanted to edit my post to include Audacity and its official guide I saw earlier but forgot about it. :) Thanks for reminding me about Audacity.

I actually realised about the many steps required to get a working tonez when Anon posted about cutting the original song. (btw he/she sounds like a friend of mine lol)

It's not likely that I'll be able to incorporate audio editing features, so I thought about the other step which was audio conversion. As always, I'm not sure when it'll be done. :P

Btw you still need to delete the pre-ringtone m4a file manually. This is a safeguard in the rare event that your file was not processed or if you actually wanted to keep the original file itself. (I guess this would be another option to add to iRingz - "Do you want to keep original files?")

Lastly, thanks for all the comments guys and gals! Keep them coming!

On 17 September, 2007 03:45, tk said...

There's a minor problem with ver 1.2 causing the iPhone to freak out. So use ver 1.1 for now till 1.2 gets updated.

On 17 September, 2007 07:12, Robert said...

I've tested 1.2.1 and sent an e-mail to TK that I think it is OK to publish.

I imagine once he wakes up (He finished it at 4:30 am his time), that he'll do just that.

FYI...to avoid transfer issues as well as the unique metatag requirement, you will see your ringtones appear as "filename_rt" in your Ringtone Library.

Example:
You are making a ringtone of Ferris.m4a

iRingz will deposit a file called Ferris.m4a in the FINAL directory and when you double click it, a file called "Ferris_rt" will appear in your iTunes Ringtone Library.

You are free to rename it, however, I'd caution against removing the "_rt" if you have a piece of music of the same name.

It may work fine, but it has NOT been tested and could confuse iTunes.

On 17 September, 2007 09:58, Francis said...

Robert, I keep the name of the ringtone same as the song, but I change the album to iPhone Ringtone. (Before running it through iRingz, but after converting to AAC.) I also keep the actual files in their seperate folder and don't have the option set to copy the file into my iTunes folder. I've never run into problems in iTunes and everything has worked flawlessly on the original iRingz 1.0 version. I haven't found any new ringtones I want to add, but I'll let you know my experience with 1.2 when I finally run one through the process...

On 18 September, 2007 07:14, Robert said...

Potentially Bad news.

Has anyone updated to iTunes 7.4.2?

If so, does iRingz still work?

Please post here with what you uncover.

On 18 September, 2007 08:06, Unknown said...

damn this is great. TK i'd like to print this i'd like to get your permission is possible.

On 18 September, 2007 10:48, Robert said...

I'm sad to say that it is confirmed.

iTunes 7.4.2 breaks iRingz.

Folks are doing research now to see what exactly was done to stop the Stik Atom from working with iTunes, but it may be that iTunes is looking for some kind of DRM.

Bottom line...it sucks...but when we know more, I'll pass it along.

My guess is that we will also be seeing a new iPhone firmware release very soon. I know folks will likely want to stay with iTunes 7.4.1 so that they can continue to use iRingz, but if a new firmware is released, please know that Apple will likely refuse to offer support unless you are on the latest version of iTunes. :-/

Finally, be sure to make a copy of all your ringtones before updating either your iTunes or iPhone Firmware. 7.4.2 deletes your ringtones from both the iTunes directory and your Phone.

Yea...Apple... *grumbles*

On 18 September, 2007 11:33, Robert said...

Yes, Daisy, there is a link for it above..or you can try this:

http://tkhere.googlepages.com/iRingzVer1.2.1.zip

That said, even iRingz 1.2.1 will stop working with iTunes 7.4.2

No one is quite sure why yet...but lots of angry folks are poking around the bowels of iTunes.

Standby...

On 18 September, 2007 11:40, Francis said...

TK - I think the solution is simple. I'm reading through the post now, but it looks like you only need to change the extension of the ringtone to *.m4r (like in the original workaround).

On 18 September, 2007 11:40, Francis said...

Whoops - forgot to link: http://forums.macrumors.com/showthread.php?t=356600

On 18 September, 2007 14:03, tk said...

Thanks for helping with the queries Robert.

ryan: You could print it, but you should note that iRingz doesn't work with the latest iTunes 7.4.2.

francis: The solution doesn't seem to be working though. Others have noted that while it does import to iTunes, it doesn't sync to the iPhone.

To anyone else reading this, stick to iTunes 7.4.1 if you want to use iRingz for ringtones. If someone finds a workaround, remember to post it here so I can look into it. :)

On 02 October, 2007 12:07, Anonymous said...

really love your program.. very useful.. any idea if it still works with firmware update 1.1.1?

On 02 October, 2007 16:28, tk said...

Anon: Not sure if iRingz works with the latest firmware, since 1.1.1 does break quite a number of things. Maybe you could try it out and report back? :)

You could looking at this macrumors thread for adding custom ringtones if you have already upgraded to 1.1.1. The steps are for Mac OSX, but someone there (possibly using Windows) reported being able to get ringtones on his iPhone without any 3rd party programs.

Google
You could also try tk Social Bookmarking Search or tk Video Search!