Exclusive Interview: GUI Olympics talks to Nullsoft about Winamp 3 and the future.

It wouldn't be much of an overstatement to say that Nullsoft invented skinning as we know it. They certainly coined the term "skinning" in the sense that most of us use it. Previous to Winamp, skinning was strictly something people playing Quake did to their characters.

Winamp rules the world of MP3 players. Its been downloaded many tens of millions of times. And how popular are Winamp skins? On Winamp.com, their top skin is about to get its 4 millionth download. That's on top of the millions of downloads Winamp skins get on such sites as WinCustomize and deviantART and Deskmod.

Nullsoft is also a different kind of company. While owned by AOL Time Warner, they have somehow managed to maintain a truly independent streak. They have incredible technology under development such as Wasabi and have done a great deal to support independents. For instance, Nullsoft sent more traffic to the GUI Olympics than nearly any other site thanks to banner promotion (thanks Nullsoft!).

We caught up to Steve Gedikian from Nullsoft and asked him how things were going on Winamp 3, how much K-jofol influenced its design and how to meet the Microsoft challenge. And best of all, it looks as if Winamp 3 will be part of the Summer GUI Olympics.

Read on!

Q1: Winamp 2 is the world's most popular MP3 player. With Winamp 3 being such a radical departure in many respects, are you concerned with users upgrading to it when it becomes available?


Nullsoft:  There’s no question that Winamp2 has been immensely successful over the past few years. We have been quite fortunate to have such a strong and active community who have helped us make Winamp2 into the solid player it is today.  Because Winamp2 has performed well on such a wide variety of system configurations and platforms, it would be foolish for us to just walk away from that. There will always be an audience for Winamp2 and we will make sure that audiences’ needs are met. However, the time has come for us to look forward and take Winamp to the next level.


Winamp has always been a very consumer driven product. Over time, Winamp3 will also evolve and mature with the continued support of the Winamp community. With every new version that we release, there will be more and more reason for users to upgrade.

Q2: How compatible is Winamp3 with Winamp2 skins or plugins and such?

Nullsoft: Winamp3 is vastly different from Winamp2. We realize that it will take some time for developers to get up to speed.  Winamp3 has been developed to load legacy skins with virtually no (or minimal) differences in appearance from Winamp2. Winamp3 will also permit Winamp2x visualization plug-ins to work pretty seamlessly.

Although Winamp2 visualizations are supported by the new code, the other plug-in types will not be supported in the standard Winamp3 product. However, there is already a third-party project underway to emulate Winamp2’s plug-in architecture under Winamp3 via a Winamp3 component. This emulator should allow developers and users to bring Winamp2 plug-ins back into the fold.


Q3: What would you say are some of the principle advantages of Winamp3 over Winamp2?

Nullsoft: While we’ve been developing Winamp3, the original fundamental philosophies of Winamp2 have always been our highest priority (fast, light-weight, high fidelity media player). However the directions we wanted to take Winamp3 simply would not have been possible using the existing architecture, so we wanted to create something that gave us and Winamp developers tremendous power and flexibility.


For example, coders were creating wonderful plug-ins that added all sorts of utility to Winamp2; however, the level of integration was generally clunky. By creating a system where coders can now abstract the UI from their code, skinners gained the ability to not only skin Winamp, but also all of the added components.


Coders can now write components that expose their services and functionality to other components installed on the system. This enables existing components to do more as other developers create components that expose their services. So, in effect, the developers help each other build better and better tools using this really flexible component model.


Skinners are going to be amazed at the power that they possess with Winamp3’s skinning engine. Currently, skinners define the layout of their skin using an XML document that they create rather than simply replacing a few images to make the skin look like something else. This allows the skinner to create skins that can take any shape rather than being restricted to the 275x116 dimensions of Winamp2.  However, in Winamp3, if a skinner doesn’t wish to redefine the layout or shape of their skin, they don’t need to. Winamp3 can be skinned by just replacing the graphical elements we’ve provided, a concept we now refer to as traditional skinning.


Winamp3 also brings to light a new scripting language that was created to aid both skinners and coders.


The most common misconception of Winamp3’s skinning engine is that you HAVE to script to make a skin, and that’s not the case at all.  The scripting language was put in place to allow skinners and coders to extend their skins and components to take on new behaviors that we haven’t already done. An example of what developers can do with scripts is create new GUI objects or alter existing GUI objects to behave differently than anything we’ve ever provided. A common use for scripting by skinners will likely be creating events that get triggered when the user interacts with their skin. 


The scripting language was added with the intent to serve as an enabling technology that allows developers to take their work to the next level while making it easier for people to do tasks without having to code in something like C++.


Q4: Microsoft was certainly "inspired" by much of your work in the past when they created Windows Media Player. What are some of the advantages in Winamp 3 over Windows Media Player?

Nullsoft: Winamp3 is designed to meet the demands of our evolving community.


This community of skinners and coders who continually invest time and effort in making Winamp a better product is a tremendous advantage. These are the people who will embrace and grow Winamp3.


Winamp3 is definitely geared towards providing the most optimized user experience using the least system resources possible. Skinners will find that they can do some pretty amazing things using Winamp3 that are not possible in WMP today.


Winamp3 was also designed to be portable.   We hope to have versions of Winamp3 available on all the major OS’s as soon as we can and that means the skins and scripts that our users create are instantly cross platform. Components will require a simple recompile on each platform assuming coders use our SDK and API’s as the building blocks for their components.


Wasabi , which is the architecture that powers Winamp3, was designed so that the media capabilities could be removed and other skinnable and modular applications could be built. The framework creates a wonderful starting point for any developer who is looking to build their products to be incredibly modular and/or skinnable. Our vision for the future is having a series of applications that are built off Wasabi where each component from each application can be mixed and matched between the applications to build either new applications or new experiences.


Q5: Winamp3 has some of the team from K-jofol, an MP3 player with a really flexible skin format. What influences has K-jofol had on Winamp 3?

Nullsoft: We emulated a few tricks that K-jofol used to do, like using maps and animations to create custom controls. Apart from that, all other aspects of Winamp3’s skinning engine were rethought and re-architected. Christophe, the creator of K-jofol, set up the initial mechanism of the rendering system in the early months of the project and then shifted his attention to working mainly on the media core functionality. Francis, the creator of LiteStep, worked primarily on the GUI, as well as the skinning and scripting engines of Winamp3. You could say Winamp3 is a mix of influences from Winamp2, K-jofol, LiteStep, and many other goodies we've been working on for years before working together.


Q6: Microsoft has pushed the Windows Media Player skin format as being extremely powerful and flexible. One could write all sorts of interesting things in it that go beyond just playing MP3 files.  What are some of the things  you are  putting into Winamp3 that make its skin language particularly interesting?


Nullsoft: The obvious answer to this question when you’re familiar with the system is the scripting language. It serves as the 'glue code' that allows a skinner to do complex, custom things. In fact an entire application could be coded in script if one wanted to. The skinning engine is also a dynamic renderer, which means that you can distort the controls of the player as they are rendered in real-time, much like AVS uses evaluations. You can use script to define those behaviors.


Wasabi also supports something called desktop alpha (also referred to as “layered windows” if you're a win32 programmer). With desktop alpha, skins support per-pixel alpha blending over the desktop, which means that your skins will no longer have jagged edges; they will just blend into the desktop and look like they do when you first designed them. This feature is limited to Windows 2000 and newer OS’s and also requires modern video cards. This feature also taxes CPU usage, so we only recommend this on high end machines, today.  However, in two years, when computer hardware has advanced, desktop alpha will probably have no noticeable effect on performance.

Q7: What is the expected final release date for Winamp3?

Nullsoft: Let’s just say some time this summer.

Q8: The Summer GUI Olympics is expected to begin later this next summer. The organizers would love to see Winamp 3 be one of the select few programs involved in that competition. You interested?

Nullsoft: Absolutely, Winamp3 will be ready for prime time and that’s a wonderful opportunity educate skinners and take what we’ve all done and really put it to the test.