Winamp Sings a Brand New Song
by Kevin Farnham
October 17, 2007
The Winamp media player's development team wasn't content to sit back and contemplate past successes as the music and video player's tenth anniversary approached; instead, they came out with a brand new edition, Winamp version 5.5, that drew immediate praise in the media and engendered a lot of excitement among users.
A search for "Winamp" on Technorati.com produces 21666 blog posts as I write this article. Just in the past 24 hours, Technorati has indexed about 70 posts related to Winamp. That's a lot of chatter about what's happening with Winamp!
Here are some comments from the media about the tenth anniversary edition:
"Winamp can play, organize, and sync your (unDRM-ed) music to an iPod just like iTunes can. But [the new] 10th anniversary version has a bunch of other new tricks up its sleeve that could attract new users."--Eliot Van Buskirk, Wired.com
"If the final version is as good as this (hopefully better), then I'd gladly switch over [from iTunes]."--Doobybrain.com
"The upcoming 10th-year anniversary of the product adds new options that continue to embrace its PC-centric nature but [expand] its reach onto to gaming consoles."--Michael Mullin, GameDaily.com
"There's some good stuff in there--personally I'm eager to try the "Media Monitor," which playlists music files it sees on web pages you visit (hello, music blogs!), and the remote-access features look good too."--Angela Gunn, USAToday's "Tech_space"
"Winamp continues to evolve, and the new and bold features are a worthy update in which to mark the application's tenth anniversary."--Ryan Jarret, Last100.com
A Bit of History
Think back to January, 1998: that's when Winamp's first version was publicly released. How different the world was then! Dial-up access to the internet was all that was available to most home users, with AOL (America Online, back then) being the prime provider of dial-up services, making it easy for non-tech-savvy consumers to get online by sending out CDs with easy-to-install software and thousands of free hours. There was no online social networking, no MySpace or Facebook. Instant messaging was just getting started. But home computing was still a somewhat geeky thing. In fact, many homes didn't even have a computer yet.
It was into this environment that the very first version of Winamp was launched. It didn't take long for America Online to notice that something important was happening here. Just over a year later (in May 1999), they bought Winamp.
Being part of AOL brought visibility and users (some 60 million as of 2007) to Winamp, and provided a supporting infrastructure that enabled the software to mature into a highly customizable favorite among users and developers alike.
Winamp Tenth Anniversary Edition (Version 5.5) Features
The key new features in the tenth anniversary edition include:
- A completely redesigned user interface
- New device support (including the iPod)
- Full localization (for international use)
- A remoting feature that lets you share your music and videos
- Support for music/MP3 blogging through the new Media Monitor
- Dynamic song recommendations
- MP3 surround-sound support
- Automatic updates to file information
- The capability to control Winamp from your browser using the new Winamp Toolbar
- Access to thousands of online radio stations, videos, etc.

Figure 1. Winamp version 5.5 wearing its cool new Bento skin
A lot of people are talking about the Media Monitor feature, which enables users to participate in a hot new trend: music blogging. Here's how Ryan Barrett of Last100.com describes it:
Cashing in on the growing popularity of MP3 blogs, and the lack of tools to take advantage of them, Winamp's Media Monitor can be used in conjunction with the software's built-in browser to access any MP3s linked to on a blog page, presented as a playlist or even downloaded to your library. Winamp also includes handy links to a dozen or so music blogs to get you started.
Music blogging is a trend I'd expect to grow rapidly. It's so fundamentally Web 2.0, the idea of sharing music by posting it on blogs, where it can be consumed by anyone who has a capable media player. As with so many other successful Web 2.0 inventions, music blogging benefits highly from the network effect: as more people participate, the platform/application gets better and becomes infinitely richer for all participants.
Winamp Developers
Developing the latest Winamp capabilities took a lot of hard work, of course. Will Fisher and Martin Poehlmann are two of the key contributors to the development of Winamp version 5.5.
Will Fisher worked on Winamp portable device support (the iPod, the Creative Zen, etc.), the album artwork feature, the file info box, the Auto-Tagger, and other new features. He's been working on Winamp code since way back in the Winamp's early years (2000), and clearly loves his job:
This is my real job! While in college I wrote Winamp plugins as a hobby (most notably for my work on ml_ipod), and by the time I graduated AOL was paying me to write Winamp plugins for them. I now have my own business as a freelance consultant software engineer and AOL continues to be my best customer.
Martin Poehlmann is the creator of the Bento skin, Winamp's new default skin, which is shown above in Figure 1. Martin has developed or led the development of a lot of other popular skins as well, including the Mac OS X Panther skin, the Tristania skin (depicted in Figure 2), Vortex, Skyce, and others. Martin is a student seeking his B.Sc. degree in Informatik at Technical University Munich. He's been working on Winamp since 2002.

Figure 2. Martin Poehlmann's "Official Tristania Skin"
Winamp Opportunities for Developers
Winamp offers developers a lot of ways to participate. You can develop skins, as Martin has been doing for the past five years, or you can develop Winamp plugins.
Winamp Skins
If you go to the Winamp skins page, you'll see that thousands of Winamp skins have already been created. What does it take to create your own Winamp skin?
I downloaded the Vortex skin and found that the built skin consisted of a 1.7MB file named --Vortex--.wal. My Gentoo Linux File Manager application identifies the file as being of the type "ZIP Archive." When I downloaded the same file on the Windows machine where I have Winamp installed, the file was immediately recognized by Winamp, and I was asked if I wanted to install the Vortex skin.
What I really wanted to do was look at the Vortex code. So I unzipped the downloaded file into a directory, and found myself looking at a file structure consisting of the files skin.xml, skinfo.png (shown in Figure 3), and whatsnew.txt, and the following directories:
- about
- config
- gfx
- player
- player-fs
- scripts
- wasabi
- window
- xml

Figure 3. The file skinfo.png for Martin Poehlmann's Vortex Winamp skin
The skin.xml file contains basic information identifying scripts and other XML files that make up the Vortex skin. Dipping into the xml directory, you see about 20 XML files. The scripts directory contains almost 30 .maki files.
A look at the Winamp Create a Skin page makes this all a whole lot clearer. There are two kinds of Winamp skins: classic skins (compatible with Winamp version 2.x) and freeform skins (compatible with Winamp version 3.x and later). The classic skins run on the Win32 platform, while the newer freeform skins are build on the Wasabi platform. Vortex, as we see from its directory list, is a modern freeform Winamp skin.
The Winamp modern skins tutorial page shows why, if you build a Winamp skin today, you should create a freeform skin. Of course, the classic skins work only with old versions (2.x) of Winamp. But, beyond that:
Modern (aka freeform) skins offer authors a tremendous amount of flexibility by allowing authors to change the player's shape, size, layout, and function.
The "Winamp 3: Skinning Tutorial Webpage" document (PDF), written by Ken Chen, is a solid 81-page reference on how to create a Winamp freeform skin. It turns out that creating a basic Winamp skin isn't really all that difficult. The tutorial walks you through the steps for creating a simple skin, and then it goes into the details of more complex aspects of freeform skin development such as containers, groups, positioning, layer composition, alpha channels, animated layers, snap points, drawers, and skin scripting.
Yes, there's a lot there, and it represents an enormous amount of flexibility into which developers can invest their creative energies. If you enjoy listening to music and watching video on your computer, and you like sharing your creations with others, and you enjoy programming, you'll probably find creating an occasional Winamp skin to be a fun and interesting pastime.
Winamp Plugins
In addition to skins, the Winamp code base offers opportunities for creating Winamp plugins. Like AIM plugins, Winamp plugins interact with the operational mainline Winamp program through hooks that have been programmed into the base Winamp code. Winamp plugins are coded as 32-bit Windows DLLs.
The following types of plugin are supported by Winamp:
- Input plugins: Provide support for media file types that are not natively supported by Winamp.
- Output plugins: Enable modification or redirection of the audio output.
- General purpose plugins: Application features that run in the background and are not related to Winamp's audio processing.
- DSP/effect plugins: Enable manipulation of the actual audio content before it is sent to the output device (speakers, etc.).
- Visualization plugins: Use the audio as an input and display a visual effect that is controlled by the characteristics of the audio signal.
- Language packs: Used to internationalize Winamp for localities that are not supported in the native Winamp application.
- Media Library plugins: Extend the types of devices and databases Winamp can access for creating playlists, etc.
Winamp plugins are designed to be written in C or C++, using a recent version of Microsoft Visual C++.
Winamp SDK
To write a Winamp plugin, you need to download and study the Winamp SDK. The current version of the SDK is 502 (the download file is named wa502_sdk.zip). Unzipping the SDK file creates a wa502_sdk directory that contains a readme.txt file and the following subdirectories:
- dsp_test
- gen_ml
- gen_tray
- in_raw
- lang_b
- maki
- out_raw
- vis
- winamp
Most of these directories contain sample code for developing the various types of plugins. Stepping into one of the directories (for example in_raw) and double-clicking the MDP file will launch Visual Studio if you have it installed on your computer. I have Visual Studio 2005, which is a later version of Visual Studio than was used to create the SDK example projects. So, to actually bring up a Winamp SDK example project in my Visual Studio, I have to let Visual Studio first convert the project into VS2005 format.
As you might guess, attempting to describe the details of how to write a Winamp plugin is impossible in a single introductory article. But if you look at the code, and if you've had experience developing Windows C++ applications using Visual Studio, you'll see familiar code structures in the Winamp SDK examples right from the start. Happy coding!
Conclusion
Winamp's 60+ million users will find a lot to like in the Winamp Tenth Anniversary Edition (Version 5.5). As I was writing this article, I told someone online about the new version, and his immediate response was "I like Winamp. Ooh, new version this week. Time to upgrade!"
Indeed!
References
- Winamp's home page
- The tutorial page for developing modern freeform Winamp skins (on the Wasabi platform)
- The Winamp SDK home page
- "Winamp's 10th Anniversary Version Edition Will Challenge ITunes": Wired Blog Network, September 13, 2007
- "Winamp Sings to Gaming Consoles": GameDaily.com, September 13, 2007
- "Winamp 5.5 Initial Thoughts": Doobybrain.com, September 14, 2007
- "Something Old, Something New": USA Today, "Tech_space," September 14, 2007
- "Winamp Goes Where ITunes Doesn't Dare": Last100.com, September 17, 2007

Winamp rules : )
I'm using v5.21 and I really satisfied with modern skin.
Bst Rgds,
Michael B.