Visualization Mega SDK (VMS)
    VMS is a codebase for creating Winamp 2.x visualization plug-ins based on DirectX 8.
    Written by Ryan Geiss and copyright (c) 2002-2003 Nullsoft, Inc.
    And 100% free for you to use, as-is or otherwise.

About:
    This package is for developers who want to write their own Winamp 2.x audio-visualization plugins whose graphics are generated through DirectX 8. When you download VMS, what you get is simply a ZIP file containing the source code to a carefully-designed example plugin. Most of the source files are part of the VMS 'framework' and shouldn't require modification; only a few files - mainly plugin.cpp and plugin.h - contain the code that you'll want to change to write your own plugin. To get started, take a look at these two files, and be sure to read documentation.txt.
    Note that plugins built from the VMS framework will run in Winamp3 (like any Winamp 2 vis plug-in) as long as the ClassicVis component is installed; the sample installer script that comes with VMS will alert your users to this if they try to install your plug-in to Winamp 3 and ClassicVis is not present.

Motivation:
    Building your plugin on top of the VMS framework should drastically reduce the time it takes to write your plugin, as well as start your plugin off with a wealth of handy features that, over time, users would probably otherwise be demanding (and you would spend months implementing). I've written 4 plug-ins now, over about 4 years, and this code is, in effect, the culmination of most of that experience. It's here to save you time and make your plugins better.

Features:
    * can run as animated wallpaper ("Desktop Mode") with very little overhead
    * plug-in's window frame will be 'skinned' like winamp's
    * high-quality sound analysis
    * robust timing and framerate limiting, with 5-microsecond accuracy
    * fully-featured config panel
    * superior multimon support
    * onscreen playlist and help screen
    * safe switching between fullscreen/windowed modes at runtime
    * ALT-TAB and monitor-sleep safe
    * behaves nicely if user is missing DirectX 8
    * extensively-commented example code
    * handles a million little things you'll never have to worry about
    * heavily tested, mother-approved
    * great for rapid prototyping
    * awesome, fully-featured sample NSIS installer script (for creating an installer for your plug-in)

Required Software:
    1. Microsoft Visual C++ 6.0 or later (retail)
    2. Microsoft DirectX 8.0+ (~11 MB)
    3. Microsoft DirectX 8.0+ SDK (Software Development Kit)(~173 MB)
            -then click the 'MSDN' logo in the bottom right
            -then click 'Downloads' on the left (under Graphics and Multimedia->DirectX->Downloads)
            -then click the appropriate download on the left (under Downloads)
    4. MSDN (Microsoft Developer Network) help library (~1GB). Optional. (available on CD or online)
    5. Nullsoft Winamp 2.X (~1 MB)

Browse Individual Files:
Documentation/Installer Files:
    [ documentation.txt ]
    [ installer.nsi ]

Example Plugin Code:
    [ defines.h ]
    [ plugin.h ]
    [ plugin.cpp ]
    [ support.h ]
    [ support.cpp ]

Resource/Data Files:
    [ ex_tex.jpg ]
    [ vms_desktop.lib ]
    [ vms_desktop.dll ]
    [ plugin.rc ]
    [ plugin_icon.ico ]
    [ resource.h ]

Workspace/Project Files:
    [ ExPlugin.dsw ]
    [ plugin.dsp ]
VMS Framework Code:    
    [ shell_defines.h ]

    [ dxcontext.h ]
    [ dxcontext.cpp ]
    [ fft.h ]
    [ fft.cpp ]
    [ pluginshell.h ]
    [ pluginshell.cpp ]

    [ vis.h ]
    [ vis.cpp ]
    [ utility.h ]
    [ utility.cpp ]

    [ config.cpp ]
    [ config2.cpp ]

    [ icon_t.h ]
    [ desktop_mode.cpp ]
The Compiled Example Plugin:
    [ vis_ExPlugin.dll ]

Downloads:
    The latest version is 1.05b, released 31 July 2003.
    [ version 1.05b ] 395k
    [ version 1.05 ] 393k
    [ version 1.04 ] 366k
    [ version 1.03 ] 300k
    [ version 1.02 ] 252k
    [ version 1.01 ] 246k

Links:
    [ VMS forum at winamp.com ]
    [ VMS page at winamp.com ]
    [ NSIS: Nullsoft Scriptable Installation System ]
    [ Nullsoft Winamp 2.x ]
    [ Nullsoft Winamp 3.x ]
    [ Microsoft DirectX ]
    [ Nullsoft, Inc. ]
    [ Geisswerks ]