In the over three decades I’ve spent on this planet, relatively few of those years have I spent listening to music on a computer (desktop/laptop). Yes, in the old days, I listened to records. I think the first one was Def Leppard’s Pyromania. I spent a long time loving tapes, though, and making mix tapes for friends. Probably from 1991 to 1999 I made upwards of 600 mix tapes. I don’t know the actual number. A lot of care went into picking out the exact 20 to 24 songs to fit on those 90-minute cassette tapes. When CDs came along, I used those to copy to mix tapes. Eventually, I got into the whole CD-ripping business and keeping MP3 versions of songs on a computer. But when you don’t put in one CD at a time or one tape at a time, how do you make sense of all the thousands of songs you have?

Well, that’s when I started listening to music on the computer. My first program was WinAmp, and I loved it. I loved the little skins. I loved watching the playlists randomize. I loved the little windows you could move around. When the iPod came on the scene a few years ago, my wife and I each got one, and we realized that the way to get songs on the iPod was through iTunes. My first encounters with iTunes left me unimpressed. It didn’t seem an intuitive program to me. The funny thing is that now, years later, I can’t even remember what I found unintuitive about it. I just remember nothing made sense to me. Eventually, though, I grew to love iTunes. Even now I think it’s the best music management program out there (I say that knowing that Ubuntu users everywhere are groaning while looking for virtual rocks to virtually stone me with).

But when I moved over to Ubuntu three years ago, I had to give up iTunes. In the meantime, I’ve grown to love Rhythmbox. I had little trysts with AmaroK, JuK, XMMS, Exaile, Banshee, Quod Libet—you name the GUI Linux music program, and I’ve probably tried it. Still I kept going back to the simplicity of Rhythmbox.

Even though I still think iTunes is the best overall music management program (I know some people swear by Foobar2000, but that’s just a little too power user for me), there is one thing I miss from Linux music programs when I use iTunes on my Windows computer at work: global hotkeys.

Global hotkeys allows me to listen to music while using a variety of other programs (mainly Thunderbird and FileMaker Pro). No matter what program I’m using, if the phone rings or if someone walks in to talk to me, I can hit a key combination and pause whatever song I’m listening to. Or, even if no one is interrupting me, if I just want to switch to the next song, I don’t have to bring the focus back to iTunes to change songs.

Global hotkeys aren’t something iTunes natively supports, so I have to rely on helper programs to set them up for me. For a while I was using iTunesKeys. Not a bad program, except that it was buggy. It would take forever to quit if I wanted to quit iTunes. Sometimes it would just hang on a random song. Eventually I gave up on iTunesKeys and gave iTunes Global Hotkeys a whirl. Unfortunately, it appears to be a candidate for the admin rights hall of shame, since I get an error message about permissions when I try to run it as a limited user:

Well, since the error message appears every time I try to use any hotkey, since I don’t want to run as administrator all the time, since the author of iTunes Global Hotkeys is no longer maintaining the software, since iTunesKeys is buggy, since I still love iTunes for Windows, since there is no Windows port of Rhythmbox, and since I want to listen to music at work, I’m just going to keep that error message window open and move it down to the bottom of my screen.

In case anyone’s curious, here are the full error message details:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.UnauthorizedAccessException: Access to the path ‘c:\ITHKerrors.log’ is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter.CreateFile(String path, Boolean append)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append)
at iTunesHotKey.Form1.LogIt(String strInput, String strName)
at iTunesHotKey.Form1.nexttrack_HotKeyPressed(Object sender, EventArgs e)
at iTunesHotKey.GlobalHotKey.NotifyHotKey(IntPtr virtKey, IntPtr modifiers)
at iTunesHotKey.GlobalHotKey.HiddenForm.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
—————————————-
iTunesHotKey
Assembly Version: 1.2.0.0
Win32 Version: 1.2.0.0
CodeBase: file:///C:/Program%20Files/Jacob%20Hickman/iTunes%20Global%20Hotkeys/iTunesHotKey.exe
—————————————-
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
—————————————-
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
—————————————-
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
—————————————-
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
Interop.iTunesLib
Assembly Version: 1.8.0.0
Win32 Version: 1.8.0.0
CodeBase: file:///C:/Program%20Files/Jacob%20Hickman/iTunes%20Global%20Hotkeys/Interop.iTunesLib.DLL
—————————————-
CustomMarshalers
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/CustomMarshalers/2.0.0.0__b03f5f7f11d50a3a/CustomMarshalers.dll
—————————————-
zjmyotbn
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
—————————————-

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

Drunk singers unite!

May 28th, 2008

Until this past weekend, my experience with karaoke had been exclusively in the privacy of someone’s home or (Korean-style) a room full of friends. Well, a friend of mine took me and my wife to a karaoke place, and even though there were moments of fun, I think I’m going to stick with singing with friends I know can sing. Let me just say that one of the Yelp! reviews for this place includes this snippet:

Now I am not the type of person that usually sings karaoke. i guess i am what you would call tone-deaf, but at Rick’s the people are so supportive and nice, that i feel comfortable going up and singing my little heart out to my favorite go-gos songs!

I didn’t use to think supportive and nice could ever be bad, but now I’m thinking it definitely can be. There were a couple of standouts that night, but most of the performers were of the tone-deaf variety. Maybe I’m going out on a limb here—if you know you’re tone-deaf, please stay at home and sing in the shower… or cough up some dough for voice lessons. Please don’t sing in public. Thank you.

My Cowon iAudio 7 crapped out on me after three months. I’m extremely disappointed, since both “official” (CNET and the like) and user reviews for it appear to all be positive. Well, I’m sorry to say that my experience is not. So either I happened to have the fluke lemon unit, or other people are lying.

Yes, there are things I still like about it, even now. The battery life is unmatched by anything else on the market. Officially, it’s supposed to be 60 hours. I’ve never timed it, but I use my player extensively during my commute, and one charge on the iAudio 7 easily lasts a month. It’s a cute size and shape. It can play many formats, although that’s become less of a concern for me since I’ve given up on Ogg and gone back to MP3.

Nevertheless, I can’t say I’ve had an overall positive experience with it over the last three months. The controls were very difficult to figure out and get used to—they are also too sensitive to the touch, especially when I’m trying to skip songs instead of fast-forward. Initially, skipping songs even took two or three seconds to complete, until I did a firmware upgrade.

Sad, garbled Cowon screen This last straw is the screen suddenly crapping out on me. I didn’t drop, crush, or abuse the player in any way, but there appears to be a diagonal crack on the inside (not the outside) of the screen that corrupts the display to the point of being unusable.

I contacted Cowon’s support, and they said they can’t determine if it’s covered by warranty or not until they examine the device. Now they want me to mail it in (at my own expense!). I’m not sure yet whether I think it’s worth the trouble to do so or not. I’ve already bought a new MP3 player (a Sandisk Sansa Clip), and it appears to be much better (simple controls that aren’t too sensitive) for a much cheaper price. And I’ve used Sandisk before; my old Sandisk player lasted me years before breaking. If I did get it fixed, it would be just to see if they’d admit they had shoddy workmanship and cover it under the warranty or blame me even though I didn’t do anything to break it; and then I could just give it away to someone who didn’t mind sensitive controls. We’ll see. In the meantime, I’m back to Sandisk and still confused as to why Cowon gets such rave reviews.

Update: I did mail it in, and they said it wasn’t covered under warranty, and I would have to pay US$57 to replace the LCD screen. No thanks. That money was better spent on my Sansa Clip.

Further Reading
Cowon iAudio 7 Review (Ubuntu perspective)
Cowon iAudio 7 Review Addendum

From MP3 to Ogg and back again

January 18th, 2008

When I first bought my Cowon iAudio 7, I was excited at the prospect of finally moving to Ogg from MP3. It was a nice sentiment to be moving in the more open direction for music file formats. Sadly, I have switched back to MP3 for several reasons:

  • While it’s easy to switch from .doc to .odt or IE settings to Firefox settings without losing data, you cannot do the same for MP3 to Ogg, as they are both lossy compression formats. So I would have to re-rip (and some of the CDs are not available to me now) my entire huge collection into Ogg or suffer even more loss of listening quality by converting from MP3 to Ogg. If I can’t have my whole collection in Ogg, there’s not really a point in having a portion of it be that way.
  • It’s nice to have an MP3 player myself that can play Ogg music files, but if I ever want to share my music with my wife, I’d have to get her to use something other than iTunes on her Mac and then install Rockbox on her iPod Nano. I don’t think she’d go for that.
  • The five free music downloads I got from Amazon for buying an iAudio were ironically MP3s, which—like the MP3s I already have—would suffer in quality if I converted them to Ogg.
  • And, more importantly and again ironically, I found that Ubuntu’s Free software tools work better with MP3s (provided you install the necessary multimedia packages). With Ogg or Flac (which I also avoided, because it makes huge files), I can’t use TagTool or Rhythmbox to edit the ID3 tags post-rip!

Richard Stallman would not approve, of course, but I am supporting a manufacturer (Cowon) who supports Linux, I am using an open source operating system, and I’m trying to support freedom. Sometimes you have to live in “the real world” and pay your dues to “the man.”

Cowon iAudio 7 Review Addendum

December 8th, 2007

Last week, I wrote a review of the Cowon iAudio 7 player, which I had just received. Now that I’ve used it for a week, I have a few things to add.

In the past week of using the Cowon iAudio 7, I’ve discovered:

  • There are absolutely no PDF manuals online explaining how to use the iAudio 7. If you buy this player, be prepared to do some serious trial and error to figure out its day to day functions. Only really basic functions (play/pause, skip to the next track) are intuitive. Everything else makes no sense.
  • As an example, I found out that, contrary to what I’d said in my last review, that you can manually assign radio station presets (you are not stuck with autoscan), but I found it completely by accident. First, you make sure not to do the autoscan. Then, go to the radio and browse to a station you want. Then, press the menu button once. Then, tap and hold for less than a second the play/pause button. A little context menu will appear, and then select to assign it to that preset channel spot. Sound confusing? It is!
  • I’d read a couple of places online that browsing by ID3 tags (instead of by folder) worked only for MP3s, not Oggs. No one mentioned that if you enable it when you have Oggs and you’ve also enabled autoplay (meaning that the player will immediately start playing music when you turn it on) that the player will just freeze up completely. So that was definitely an experiment gone sour. I could not reset it with the reset button. I had to plug it in to my computer and erase every file and then reload the firmware to get it working again. Needless to say, I’m sticking with browsing by folder.
  • Even though the controls are sensitive, you can adjust the sensitivity, and it took me about two days to get used to how much pressure I should apply in order to skip a song and not fast-forward two seconds. Frankly, I think there should be a way to disable fast-forward altogether. I never want to fast-forward. I only want to skip or stay.
  • The battery life is good. I still haven’t had 60 hours of listening to time to test the manufacturer’s claims, but I’ve listened to it for probably about 7 or 8 hours with nary a bar in the battery meter disappearing.
  • Radio reception is great. I listen to the radio every morning on the way to work, and it’s crystal clear all the way (on my old Sandisk, there were patches of fuzzy sound).

In summary, I’d say my main draws to this player (and why I’ll probably be sticking with it, despite its bugs) are its size, its price, its ability to play Ogg, its battery life, and its inclusion of a radio. There are some serious bugs, though, that I think Cowon should work on (Does Cowon take bug reports or customer feedback? Anyone know?). With controls as sophisticated as the player has, a detailed manual is a must-have. And touch-sensitive controls may sound cool, but they’re really annoying when you are worried you’ll accidentally skip to the next song or pause—stick to regular buttons, folks.

That about sums it up for me. More on battery life later.

Edit (3 January 2008): The last bar finally went out on my iAudio 7′s battery. It lasted a little over a month. I didn’t time the exact hours, but I don’t think it was 60 hours. 60 hours is probably what they test on using the radio exclusively with the display off and continuously until the battery runs out. My guess is that it was probably closer to 50 hours. Nevertheless, that’s a pretty impressive battery life!