Classic Windows Media Player skins and visualizers for VLC (skins2). VLC's own visualizers run right inside the skin screen. Unofficial fan project.
Skin Status Files (dist/)
------------- -------------- ------------------------------------------
Headspace finished (v1.0) Headspace.vlt (1x, 549x394)
9SeriesDefault in design (WMP9 default "Corona", 859x468)
<more> planned Headspace-2x.vlt (2x, pixel look)
Headspace-3x.vlt (3x, pixel look)
Requirements: VLC 3.0.x (tested: 3.0.23, Windows).
Option 1 -- starter bat (recommended, no admin needed):
skins/headspace/Start-Headspace.bat (2x skin, EQ + goom visualizer enabled)
Option 2 -- command line:
"C:\Program Files\VideoLAN\VLC\vlc.exe" -I skins ^
--skins2-last="C:\...\dist\Headspace-2x.vlt"
Option 3 -- install into VLC: copy the .vlt to
C:\Program Files\VideoLAN\VLC\skins\ and select it in VLC:
Tools > Preferences > Interface > "Use custom skin" (restart required).
Playlist note: by default the skin shows VLC's playlist root nodes ("Playlist"/"Media Library") as rows. With
--no-media-library(see the starter bats) the list is clean, just like the original.
WARNING 1: "Open skin..." (context menu) can crash VLC (reproduced on 3.0.23). Workaround: restart VLC via the starter bat /
--skins2-last.
WARNING 2: If VLC will not start after a crash, clear the folder
%APPDATA%\vlc\crashdump-- a left-over crash dump blocks every start (known VLC 3.0.x behavior).
Element Function
--------------------------- --------------------------------------------
Forehead left / right Minimize / Close
Forehead center Previous | Play | Stop | Next
and the "sun" = Open media
(during playback) Pause button appears over Play
Chin left (bars icon) Equalizer drawer (left ear) open/close
Chin right (list icon) Playlist drawer (right ear) open/close
Chin center (bracket icon) Preferences
Seekbar Seek via click / drag
Head Drag the window
Drag & drop Drop media onto the window -- videos and
visualizers show up in the head screen
Equalizer drawer:
- 10 band sliders + Volume: take effect immediately during playback and are saved for the next session.
- VLC's equalizer filter is off by default; the starter bats enable it on launch (like the original, where the EQ was always active). Alternatively click the "reset" link once (on; LED lit = active), click again = off.
- The "Volume" label doubles as the mute indicator: it reads "Volume" normally and shows a struck-through label while muted. Click it to mute/unmute.
- "reset" link = equalizer on/off. A true gain reset is technically not possible in the VLC skin system (the engine offers no reset command).
- "Preamp" slider (originally Balance): controls the EQ pre-amp (+/-20 dB, live). VLC skins cannot bind Balance -- so it was repurposed and relabeled.
Playlist drawer:
- Per-row checkboxes and the scrollbar with arrows are rebuilt original artwork. VLC has no per-item state (the boxes are always "on") and no arrow scrolling (scroll with the mouse wheel or drag the thumb). Rows can be Ctrl/Shift-click multi-selected (highlighted). The drawer's bottom strip holds the playlist tools: bin (remove selected), sort (A-Z), shuffle toggle and loop toggle (both states are shown). Free drag-reordering is not possible (engine limit).
- The bottom right shows the current track time ("00:04 / 00:30"). A duration column per row is not possible: VLC only hands the skin the title strings.
VLC's own visualizers run inside the skin screen. The standard starter bat enables goom by default; manual option:
--audio-visual=goom (goom: ships with VLC, works reliably via CLI)
- VLC also ships projectM and glSpectrum, but VLC's
audio-visualoption validation silently drops these two when set on the command line or in the vlcrc -- they can only be picked at runtime via VLC's own menu ("Audio > Visualizations"). Default isnone(no visualizer). - The visualizer cannot be switched from within the skin -- VLC offers no visualizer actions to skins. The original Headspace had a "WhiteCap Viz" chooser at the top of the screen; reproducible as pure artwork if wanted.
- projectM presets (
.milk) can be configured in VLC; the upcoming VLC pack will ship a small curated selection. - In development: "Bitmancer Visualizer Pack" -- custom retro and modern visualizers (100% own code).
- Screen fit: the screen recess in the artwork is round, but skins2 renders
video into a rectangular child window on top of the skin. The
<Video>control therefore sits on the recess's full bounding box -- only then does VLC keep the player window's geometry stable (a smaller control + manual moving makes the window jump). The starter bat launchestools/vout_mask.ps1, which (a) clips the player window to the recess shape (alpha mask of head.png) and (b) trims the ~78 px of that box lying outside the head artwork (the two screen corners, which the video control otherwise forces opaque black) out of the skin window's region -- re-applied in a tight loop because skins2 rebuilds its region on every repaint. Result: edge-to-edge, no black, no colour patchwork, no jumping.vid_bkgd.png(generated bytools/make_vid_bkgd.ps1) is the recess-shaped black idle screen. DPI-aware; follows layouts and new vouts. Starting VLC directly with--skins2-lastbypasses the watchdog (square / black-tipped corners).
An Inno Setup installer with its own package manager is planned: English UI
(German strings included), uninstall/repair supported. Design and implementation
plan live under docs/.
Packs (individually selectable):
[x] VLC pack Headspace skins 1x/2x/3x, curated projectM presets,
VLC detection + version warning, optional portable
MilkDrop 3; sets skins2-last in the vlcrc (with backup)
[ ] WMP pack Original .wmz from the WMP Goodies archives + original
WMP visualizers (Alchemy, Battery & co.; admin rights
required). Experimental: WMP visualizers in the VLC
screen (feasibility spike: GO for GDI viz)
[ ] Winamp pack MilkDrop 2 (community fix) + AVS for Winamp/WACUP;
MilkDrop 3 standalone for everyone
[x] Bitmancer pack Custom visualizers (own code, safe to redistribute;
retro DLLs + modern presets) -- in development
Engine features: manifest with mandatory SHA256 for all downloads, mirror chains, BYO picker when sources are dead (hash match only), journal with uninstall/repair/resume, vlcrc editor with backup/restore. CLI:
Install-<Project>.ps1 [-Packs vlc,wmp,winamp] [-DryRun] [-OfflinePath <dir>] [-Resume]
Recommended: VLC >= 3.0.24 (security fix in the skins2 loader); tested on 3.0.23.
- No "disabled" button artwork (skins2 only knows up/hover/down states).
- Ear drawers open without slide animation (no motion animation support).
- The cursor does not switch to a hand cursor (not provided by the skin system).
- The "reset" link toggles the EQ instead of zeroing gains.
- Balance cannot be bound in VLC skins -- the slider was repurposed into a working pre-amp (label adjusted).
- Visualizer selection/name is not possible inside the skin (see above).
- Playlist checkboxes are decorative, the arrows do not scroll; no per-row duration (see Controls).
- Download progress in the seekbar (original artwork) is omitted.
SkinSpace/
|
+-- skins/
| +-- headspace/ skin #1 (more will live next to it)
| +-- theme/ build sources: XML fragments, images, fonts
| +-- variants/ staged 2x/3x variants (generated)
| +-- originals/ original raw files (WMZ, bitmaps, previews)
| +-- Start-Headspace.bat
|
+-- tools/ shared build chain (-Skin <name>)
+-- dist/ finished .vlt files for all skins
+-- research/, docs/ project knowledge & docs
+-- README.md, RESUME.md
Adding a new skin:
- Create
skins/<name>/(withtheme/andoriginals/) - Put the original assets into
originals/extracted/ - Adjust the XML fragments/images in
theme/ - Run the chain with
-Skin <name>(see below)
Original (.wmz / bitmaps)
|
v
tools/make_*.ps1 --> skins/<name>/theme/ (PNG32 + fragments)
|
v
tools/build_theme.ps1 --> theme.xml (with built-in validation)
|
v
tools/pack.ps1 --> dist/<Skin>.vlt --> VLC 3.0.x (skins2)
|
+-- tools/build_variants.ps1 --> dist/<Skin>-2x.vlt / -3x.vlt
Calls (default skin: headspace):
tools/make_original_assets.ps1 -Skin headspace # BMP -> PNG32 (+ bitmaps.xml)
tools/make_extra_assets.ps1 -Skin headspace # LED/fill/link/playlist artwork
tools/make_track_assets.ps1 -Skin headspace # slider tracks from original tiles
tools/build_theme.ps1 -Skin headspace -Scale 1 # theme.xml + validation
tools/pack.ps1 -Skin headspace # -> dist/Headspace.vlt
tools/build_variants.ps1 -Skin headspace # -> dist/Headspace-2x/-3x.vlt
Test suites (click-free): tools/tests/run_task5.ps1, run_task6.ps1
Detailed docs: research/ (reverse engineering, mapping, spike results) and
docs/ (specs + plans, incl. distribution/installer).
- Original skin "Headspace" (c) 2000/2001 Microsoft Corporation -- official WMP skin. Assets from the Internet Archive backup of the Microsoft skin collection (archive.org/details/windowsmediaplayerskinscollection). All rights to the original belong to Microsoft.
- "VLC" is a trademark of the VideoLAN organization. This project is unofficial and not affiliated with VideoLAN or Microsoft.
- Non-commercial fan project, use at your own risk.
Have fun -- and remember: this project lives from the originals. Thanks, Microsoft, 2000/01.