Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Archives:

Winamp and the March of GUI

June 30th, 2012 by Multimedia Mike

Ars Technica recently published a 15-year retrospective on the venerable Winamp multimedia player, prompting bouts of nostalgia and revelations of “Huh? That program is still around?” from many readers. I was among them.



I remember first using Winamp in 1997. I remember finding a few of these new files called MP3s online and being able to play the first 20 seconds using the official Fraunhofer Windows player– full playback required the fully licensed version. Then I searched for another player and came up with Winamp. The first version I ever used was v1.05 in the summer of 1997. I remember checking the website often for updates and trying out every single one. I can’t imagine doing that nowadays– programs need to auto-update themselves (which Winamp probably does now; I can’t recall the last time I used the program).

Video Underdog
The last time Winamp came up on my radar was early in 2003 when a new version came with support for a custom, proprietary multimedia audio/video format called Nullsoft Video (NSV). I remember the timeframe because the date is indicated in the earliest revision of my NSV spec document (back when I was maintaining such docs in a series of plaintext files). This was cobbled together from details I and others in the open source multimedia community sorted out from sample files. It was missing quite a few details, though.

Then, Winamp founder Justin Frankel — introduced through a colleague on the xine team — emailed me his official NSV format and told me I was free to incorporate details into my document just as long as it wasn’t obvious that I had the official spec. This put me in an obnoxious position of trying to incorporate details which would have been very difficult to reverse engineer without the official doc. I think I coped with the situation by never really getting around to updating my doc in any meaningful way. Then, one day, the official spec was released to the world anyway, and it is now mirrored here at multimedia.cx.

I don’t think the format ever really caught on in any meaningful way, so not a big deal. (Anytime I say that about a format, I always learn it saw huge adoption is some small but vocal community.)

What’s Wrong With This Picture?
What I really wanted to discuss in this post was the matter of graphical user interfaces and how they have changed in the last 15 years.

I still remember when I first downloaded Winamp v1.05 and tried it on my Windows machine at the time. Indignantly, the first thought I had was, “What makes this program think it’s so special that it’s allowed to violate the user interface conventions put forth by the rest of the desktop?” All of the Windows programs followed a standard set of user interface patterns and had a consistent look and feel… and then Winamp came along and felt it could violate all those conventions.

I guess I let the program get away with it because it was either that or only play 20-second clips from the unregistered Fraunhofer player. Though incredibly sterile by comparison, the Fraunhofer player, it should be noted, followed Windows UI guidelines to the letter.

As the summer of 1997 progressed and more Winamp versions were released, eventually one came out (I think it was v1.6 or so) that supported skins. I was excited because there was a skin that made the program look like a proper Windows program– at least if you used the default Windows color scheme, and had all of your fonts a certain type and size.

Skins were implemented by packaging together a set of BMP images to overlay on various UI elements. I immediately saw a number of shortcomings with this skinning approach. A big one was UI lock-in. Ironically, if you skin an app and wish to maintain backwards compatibility with the thousands of skins selflessly authored by your vibrant community (seriously, I couldn’t believe how prolific these things were), then you were effectively locked into the primary UI. Forget about adding a new button anywhere.

Another big problem was resolution-independence. Basing your UI on static bitmaps doesn’t scale well with various resolutions. Winamp had its normal mode and it also had double-sized mode.

Skins proliferated among many types of programs in the late 1990s. I always treasured this Suck.com (remember them? that’s a whole other nostalgia trip) essay from April, 2000 entitled Skin Cancer. Still, Winamp was basically the standard, and the best, and I put away my righteous nerd rage and even dug through the vast troves of skins. I remember settling on Swankamp for a good part of 1998, probably due to the neo-swing revival at the time.



Then again, if Winamp irked me, imagine my reaction when I was first exposed to the Sonique Music Player in 1998:



The New UI Order
Upon reflection, I realize now that I had a really myopic view of what a computer GUI should be. I thought the GUIs were necessarily supposed to follow the WIMP (windows, icons, mouse, pointer) paradigm and couldn’t conceive of anything different. For a long time, I couldn’t envision a useful GUI on a small device (like a phone) because WIMP didn’t fit well on such a small interface (even though I saw various ill-fated attempts to make it work). This thinking seriously crippled me when I was trying to craft a GUI for a custom console media player I was developing as a hobby many years ago.

I’m looking around at what I have open on my Windows 7 desktop right now. Google Chrome browser, Apple iTunes, Adobe Photoshop Elements, and VMware Player are 4 programs which all seem to have their own skins. Maybe Winamp doesn’t look so out of place these days.

Posted in General | 7 Comments »

7 Responses

  1. Diego Elio Pettenò Says:

    To me it wasn’t the first (or only) program to violate the convention. My first computer (well, the first computer that was _mine_ – before I used my sister’s) in 1997 came with ESS’s AudioRack which was supposed to look like your average stack of CD player, radio, cassette player and amplifier.

    Unfortunately it didn’t play radio, but there as a different software by Gemtek for the radio card I added the year afterwards also tried to look like a common radio. I honestly don’t remember much of the TV player two years after but I don’t think it was WIMP either.

    So I wasn’t taken aback by xine-ui when I first stumbled into it at all :P

  2. Multimedia Mike Says:

    @Diego: I guess I sort of blocked out xine-ui from my mind. Yeah, many of my criticisms of Winamp’s UI and skins also apply to xine-ui (also it’s skinning system wasn’t exactly based on bitmaps, per my recollection). It was frustrating that so many media players from the time tried to mimic something out of the real world rather than try to adapt to desktop UI conventions.

    I remember being fond of Kaffeine, the KDE frontend for xine.

  3. Diego Elio Pettenò Says:

    I used xine-ui for a while simply because Kaffeine was too unstable (and at the time I didn’t consider gxine as I used KDE).

    As far as I can tell, xine-ui _still_ uses PNGs for skins, just a tad more complex than what WinAMP used.

  4. Jonathan Wilson Says:

    Even Microsoft have abandoned much of the old UI convention, just look at a screenshot from a recent version of Office…

  5. compn Says:

    justin frankel has had a long and interesting forray into software over the years. including starting the p2p giant gnutella (and waste) and winamp being one of the most installed 3rd party programs.

    i’ve also used the swankamp skin since i started using winamp and still have it installed to this day. mplayer has taken over playing my mp3s since 2003 or so. winamp5 was neat, and nsv and winamptv were very advanced for their time. i think aol really failed to utilize winamp video streaming and could have had a justin.tv or livestream or even a youtube years before everyone else.

    mplayer skins are similarly designed i think.

    i wonder if winamp started the whole idea of having a free decoder? i remember a lot of player software having price tags on it. vivoactive player, realplayer plus, quicktime pro, i guess winamp was shareware too.

  6. Fruit Says:

    Winamp never was a shareware AFAIK. They had premium versions with few extra features (that one never needed) but that was it, essentialy it has been freeware since forever.

  7. RC Says:

    @Fruit

    Yes, Winamp was officially shareware for the longest time, but unlike most shareware, it didn’t have time-limits or nag-screens to enforce it. They just suggested people buy a license, and insisted that commercial users did so.

    And Winamp lives on. On mobile devices, it’s competing with others like DoubleTwist to be the best and most popular music player. It’s good, and a huge improvement over what came before, but there’s still plenty of room for something else to leap-frog it/them, IMHO.