Winamp

General Overview

Why develop for Winamp, you ask? Besides being a kickass media player with a flexible programming platform, Winamp has a very loyal fan base with over 72 million worldwide users per month. So chances are your creative masterpiece will live well beyond the boundaries of your hard drive. Winamp has 4 distinct types of developer programs — Skins, Plugins, Visualizations, and our newest program, Online Services. Now that we've got your creative juices flowing (or at a minimum, appealed to your desire for fame and adoration), you can go to Winamp's dedicated developer site as a springboard for everything you need. Get the SDK now.

Skins

Based on the Winamp 2 model, Classic skins are easier to create than Modern skins, but they do not allow the developer to change the form or function of the player. Classic skin developers may only replace a standard set of images that alter the player's visual appearance.

Classic skins are skins that adhere to the Winamp 2 style model. Classic skins are easier to create than Modern skins but do not allow the author to change the form or function of the player. Classic authors may only replace a standard set of images that alter the player's visual appearance.

Modern skins are skins that adhere to the Winamp 3+ skin model. Modern or Freeform skins offer developers a tremendous amount of flexibility by allowing you to change the player's shape, size, layout, and function. Learn how to create a modern skin for Winamp!

 

Plug-ins

Winamp plug-ins are files that extend Winamp's functionality. There are currently seven different plug-in types, each of which extends Winamp in a particular way. Winamp plug-ins are implemented as 32-bit Windows DLLs. Here are the plug-in categories:

  1. Input plug-ins: Input plug-ins give Winamp the ability to play additional file types that aren't supported by Nullsoft directly.
  2. Output plug-ins: Output plug-ins allow Winamp to manifest audio data in different ways.
  3. General purpose plug-ins: Anything that needs to run continuously in the background or doesn't require audio processing qualifies as a General purpose plug-in.
  4. DSP/effect plug-ins: DSP Plug-ins manipulate audio data before actually being sent to the speakers (or whatever the Output plug-in decides to do with it).
  5. Visualization plug-ins: "Vis" plug-ins display some sort of visual effect based on audio that's being decoded by Winamp.
  6. Language packs: Language packs are used to internationalize Winamp to the language of your choice.
  7. Media Library plug-ins: Media Library plug-ins extend the media library for instance, for portable devices such as iPods, accessing Media Library databases, etc.
Most of the plug-in types (with the exception of Language packs) export one function, which is used to query the plug-in of its interface. The way each plug-in is queried varies, and will be covered on a type-by-type basis.

All of the plug-ins are designed to be written in C or C++, using Microsoft Visual C++ 4.0 or later. Other people have reported success with writing some forms of plug-ins using Delphi, LCC, and Visual Basic. We don't use these alternate development platforms, so we can't really support development on them (writing this page alone took way too much time, wink).

 

Visualizations

With the AVS (Advanced Visualization Studio) visualization environment, you are not limited to the standard visual effects. You have the ability to combine the library of built-in effects in endless ways to create your own AVS visualization preset masterpiece.

As you listen to music, MilkDrop (& MilkDrop 2) renders the sound waves in a visual feedback loop to create a rich visual journey through sound. Like AVS, it is a fully configurable platform allowing you to design and create your own MilkDrop visual presets.

 

Online Services (Beta)

A Winamp online service is a web site that appears embedded within the Winamp client. An Online Service is distinct in that the web pages displayed in the client are able to interact with the Winamp Client.

Online Services are created by leveraging the Winamp Online Services API, which allow for you to exercise the power of the Winamp client to create a great user experience.