Modern Skin: Intro

From Winamp Developer Wiki
Jump to: navigation, search

Creating a Modern Skin --> Intro --> Winamp 2 to Winamp 3+ --> Simple Skin Tutorial --> XML Intro --> Simple Skin Tutorial (Continued) --> Container --> Group --> Relative Positioning --> Complex Skin --> Non-Rect Player --> Layer Composition --> Alpha Channels --> Animatedlayer --> Snap Points --> Drawers --> Skin Scripting --> Drawer Scripting --> Animating a Skin --> Maki Overview --> Glossary

Making Modern Skins

Modern skins are skins that adhere to the Winamp 3+ skin model. Modern (aka freeform) skins offer authors a tremendous amount of flexibility by allowing authors to change the player's shape, size, layout, and function. Learn how to create a modern skin for Winamp! We'll show you the pipeline from beginning to end. To get started, use the links to the left to navigate, or download the PDF at the bottom of this page.

Why Winamp 3/Winamp5?

Classic skins only consist of static bitmap replacement. The application cannot be deployed with radically different interfaces or behaviors.

Plugins cannot publish interfaces to each other, thereby limiting their ability to leverage one another.


Winamp 2.x was not built with portability in mind.

Features of Winamp 3+

Skin engine:

  • XML-based format
  • freeform
  • scripting
  • emulation of Winamp 2.x skins
  • on-the-fly bilinear filtered scaling of any Winamp piece
  • animations, realtime transformations
  • alpha transparency
  • color correction of any skin

Component architecture:

  • allows any kind of plugin you can think of
  • components become part of the system and extend it
  • components can interoperate without even knowing who they are talking to
  • component windows and interfaces are skinnable
  • components are built with the same C++ library as the main product for consistency and to enable developers to quickly create powerful addons
  • using a dispatchable interface to make interaction of multiple plugin versions easier

New audio playback system:

  • crossfading
  • "dsp" plugins can be stacked
  • gapless output (even for cd playback)


  • XML-based format
  • ability to queue up files in playlist out of order (hold down alt)
  • media library


  • caching
  • queries
  • multiple indexes and views on tables