Categories
Computers Linux Music I Like Ubuntu Windows

The Songbird has hatched

When Songbird first appeared on the scene (I think it was version 0.1 or something), I remember the Ubuntu Forums community getting really excited about it. It was supposed to be like the Firefox of music players, the iTunes-“killer.” It seems as if it’s been years, and people have been hyping it up all along the way.

At intervals, I’d try it out and see how I liked it. Meh. I was never that impressed.

Recently, though, I came back to it on my work computer. Ever since newer versions of iTunes have broken compatibility with third-party efforts to set up global hotkeys for iTunes in Windows, I’ve been on the search for something very simple: a music player that will keep track of how often I’ve played songs in my library and give me global hotkeys. It’s not as easy as you’d think. I’ve tried Foobar2000 and XMMS. No go. So for a while I was just sticking with iTunes without the global hotkeys, and I decided it was too annoying.

For any of you who wonder what global hotkeys are for, I have a job where I do a lot of office work (filing, processing mail, running reports) and also answer the phone and sometimes talk with people in person. While I’m doing office work, I like to listen to music. I have my own office (not a cubicle), so I’m not bothering anyone. But if the phone rings or if someone walks in, I want a quick way to pause my music so I can give that person my full attention. And if I’m doing office work, I’m too lazy to create playlists, so I want to often skip songs I don’t feel like listening to at the moment. Global hotkeys help me do this without constantly having to Alt-Tab back to my music application.

Well, my return to Songbird has been a good one. I’ve now completely remove iTunes from my work computer, and I’m sticking with the bird. I’m very impressed that Songbird not only gives me global hotkeys and keeps play counts per song but it also has so many nifty little plugins. There’s an on-screen display when I change songs. There’s a plugin for looking up concert info for artists. There’s a lyrics plugin. There’s a play queue plugin. All great stuff that iTunes doesn’t have.

I feel as if there’s now a little bit of Linux functionality on my Windows work computer, and it’s great. Go, Songbird!

Categories
Computers Music I Like Windows

The futile search for global hotkeys on iTunes for Windows

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:

Categories
Apple and Mac OS X Linux Ubuntu

Wake-up call: Apple won’t port iTunes to Linux

Introduction
I want to bring iTunes-loving Linux users back to reality. As you can see from the following Ubuntu Forums threads, some Ubuntu-ites are deluded about the idea of Apple porting iTunes to Linux:
Why Apple doesn’t want to release iTunes for Linux
Petition – iTunes for Ubuntu
Should Apple port iTunes to Linux?
The iTunes Linux Project

If you’re too lazy to read those links, I can sum up how the iTunes discussion usually goes among Linux users:

Hi. I’m new to Linux. How do I install iTunes on it?
iTunes is a bloated piece of crap. Use a real music application like AmaroK.
I really like iTunes, though.
I installed iTunes on Ubuntu with Wine.
iTunes installs with Wine, but it isn’t fully functional. Don’t bother.
Why do you have an iPod anyway? Use a Cowon player instead. It’s more Linux-friendly.
I kind of like the iTunes music store. Will the songs I bought from there be able to play on a Cowon player?
No. Pop music sucks these days. Don’t support the big labels. Support independent artists.
But I like pop music. Can’t we convince Apple to port iTunes to Linux?
I’ve put together a petition for it. Go to this link to sign it.
I hate iTunes, but I signed the petition because it’ll help bring more users over to Linux.
Apple can keep its proprietary applications. We have better iPod-management software on Linux anyway.

I think I got all the major arguments in there.

Philanthropic Apple porting iTunes?
Now imagine you’re an executive at Apple—Steve Jobs or somebody else. If you read that kind of back-and-forth, would you (even if you were more philanthropic- than profit-oriented) port iTunes to Linux? I know I wouldn’t. Even if I didn’t care about profit, I wouldn’t, because there are too many anti-proprietary software and/or anti-Apple elements in the Linux community. With the number of Linux users not buying iPods, buying iPods and installing Rockbox onto them, and using non-iTunes Music Store services like Jamendo, eMusic, or Amazon, I wouldn’t see a very compelling case for putting any resources into porting iTunes to Linux.

Profit-oriented Apple porting iTunes?
But that’s also assuming Apple isn’t, like almost all corporations, motivated by profit and pleasing the shareholders. Apple is a hardware company focused on hardware sales. They do earn some money from iTunes Music Store purchases, Apple Care subscriptions, and software sales, but their big cash cows are iPods, iPhones, and Macs. That’s what their efforts are focused on: How do we get people to buy more iPods, iPhones, and Macs?

Why did Apple port to Windows?
Apple ported iTunes to Windows, because they knew Windows users wouldn’t otherwise buy Macs in order to have their iPods sync properly, which meant Windows users wouldn’t otherwise buy iPods. And if Windows users hadn’t bought iPods, iPods wouldn’t have taken off. Creative or Sandisk might have instead dominated the portable music player market. The supposed “halo effect” that has Windows users gradually moving to more Apple products is the main reason for the iTunes port to Windows.

What would porting to Linux gain for Apple?
Could a similar effect be achieved by porting iTunes to Linux? I doubt it. My general sense from three years of active participation in the online Linux community is that those who want an iPod will get an iPod, regardless of whether iTunes is available for Linux or not, and those who won’t get an iPod won’t get one anyway. Not to mention that there aren’t (relatively speaking) that many Linux users to begin with.

As a matter of fact, porting iTunes to Linux is counterproductive to Apple’s goals. Porting iTunes to Linux might make Windows users take more seriously Linux as an alternative to Windows, which means they might keep their old Dell or HP computers and install Linux on them instead of saying, “Hey, I want a Windows alternative. Maybe I’ll get a Mac.” People generally do not think of Linux as a viable alternative to Windows, which is fine by Apple. Remember—it’s “I’m a Mac, I’m a PC,” not “I’m OS X, I’m Windows, I’m Linux.”

It wouldn’t even help community relations
And porting iTunes to Linux wouldn’t even build good will in the Linux community. As a PR move, it would fall flat on its face. I don’t know whether it’s large percentages of users or just the vocal minority, but you know the second Apple ported iTunes to Linux, there would be cries of “Do not infest my system with your proprietary, bloated crap” and “Why don’t you just GPL iTunes instead?”

Personal story time
My first portable audio player was an iPod, and I used iTunes for Windows with it. When I moved to Linux, I dual-booted with Windows just for iTunes. Eventually, I weaned myself off iTunes and the iPod and used Rhythmbox and a Sandisk player instead, mainly because iPods don’t have FM radios. My wife (also a former Windows user), on the other hand, bought an iPod, used iTunes on Windows until she had to buy a Mac for school (the school mandated students in her line of study buy a Mac), and then she used iTunes on the Mac. There was a time when she considered getting a non-iPod portable music player, but the information on what non-iPods worked well with Macs was too difficult to find at the time, so she stuck with iPods. I had one dalliance with Cowon’s crappy players (the iAudio 7, which busted after only three months of use), but I’m back to Sandisk.

Now, if Apple had ported iTunes to Linux when I was dual-booting just for iTunes, I would have found it convenient to have iTunes on Linux (and I’d have ditched Windows sooner), but I’d have probably still moved to Sandisk just because of the lack of radio in the iPod. So Apple wouldn’t have sold our families any more iPods or Macs. And I think that’s a pretty typical scenario.

Conclusion
With regard to Apple products and Linux users, I’d say Linux users generally fall into these categories:

  • I have no problem with Apple products. I own them and use them in addition to Linux.
  • I have no problem with Apple products. I own them and install Linux or Rockbox on them, or mod them in some other way.
  • I’ll use an iPod, and I wish Apple would port iTunes to Linux, and I’d be grateful to have better integration, but in the meantime I’m coping fine with AmaroK, GTKPod, and other native Linux applications.
  • I’ll use an iPod, but I hate iTunes and much prefer native Linux applications.
  • I realize some people like Apple products, but I don’t really need them. I prefer non-Apple products.
  • I hate Apple products. I think they’re overrated and overpriced. Apple locks users in more than Microsoft does. Down with DRM! Down with proprietary software!

Some of the expressions in there might be exaggerated, but those are the major demographics in the Linux community with regard to Apple, and I don’t really see how any of them would be buying more Apple products than they already are if Apple ported iTunes to Linux.

iTunes on Linux—not going to happen.

Further Reading
The Futility of Online Petitions