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.
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?
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.
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
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.
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.
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.
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.
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.
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.
also brings to light a new scripting language that was created to aid both
skinners and coders.
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.
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++.
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.
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.
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.
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
, 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.
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.
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?
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
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?
just say some time this summer.
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?
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