Skip to content

immortalx74/3damp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A 3rd dimension for Winamp

See it in action on YouTube

About

3DAmp is a free and open-source fun project that tries to reimagine the iconic Winamp GUI in 3D.
It acts as a controller that communicates with Winamp for playback, setting volume and EQ values, managing the playlist, and much more.
It's also a tool to make simple visualization videos for playback with audio-reactive shaders, or used live by VJs.

Installation

This is a portable app. Grab the latest release and extract it anywhere you wish. Copy the gen_sa_getter.dll file from the plugin folder and paste it into your Winamp's Plugins folder (usually C:\Program Files (x86)\Winamp\Plugins).

3DAmp will try to launch Winamp automatically. If you have it installed somewhere else than the default installation directory, navigate to C:\Users\<your username>\AppData\Roaming\3damp and change the winamp_path in the settings.json file.

Although it will still work without copying the plugin, you'll get random-generated spectrum analyzer data (the colored "jumping" bars) if you don't do so.

WACUP (32-bit only for now) seems to work too but needs more testing. If you use that, do as above both for the plugin and the path.

If you have a fairly old CPU (> 10 years) that supports AVX but not AVX2, try the "no_avx2" archive from the releases.

Requirements

The only strict requirement is a Vulkan-capable GPU. Currently it was tested only on Windows 11 and Windows 10 LTSC but could probably work on older versions too. If it quits on launch, make sure you have the latest Microsoft VC++ redistributable installed.

Features

  • Launch/Close Winamp automatically (configurable)
  • Drag&Drop support. Drop any files to 3DAmp's window to create a new playlist
  • Open a directory as a new playlist
  • Same keyboard shortcuts as Winamp (with a few exceptions)
  • 3 background modes: Solid color, Image, Visualization shader
    • Solid color can be used either to be easier on the eyes or for chroma-keying in your own audio-visualization video. The color value can be set by editing the settings.json file located in C:\Users\<your username>\AppData\Roaming\3damp
    • More background images can be added by dropping your own ones in the backgrounds folder
    • Visualization shaders are audio-reactive GLSL fragment shaders. They have access to the spectrum analyzer data, and up to 4 textures. You can write your own, drop them in the vis_shaders folder and they'll become available automatically
  • Toggle EQ/Playlist windows On/Off
  • All Winamp's built-in EQ presets and support for custom ones, or loading from .EQF files
  • Zoom/Rotate/Pan
  • Toggle Windowed/Fullscreen borderless
  • It can be set as the default app for playing audio files
  • Single instance. Every time you double click or use open with adds the file in the playlist

Basic Controls

Middle mouse to rotate
Right mouse to pan
Mouse wheel to zoom in/out
F1 to toggle background mode (solid color/image/shader)
F2 to cycle available background images (when background mode is set to image)
F3 to cycle available shaders (when background mode is set to shader)

Keyboard Shortcuts

Shortcut Action
X Play/Restart/Unpause
C Pause/Unpause
V Stop
B or Keypad 6 Next Track
Z or Keypad4 Previous Track
Alt+G Toggle Graphical Equalizer
Alt+E Toggle Playlist Editor
Alt+M Minimize
Ctrl+Alt+S Load Preset
Ctrl+T Toggle Time Display Mode
S Toggle Shuffle
R Toggle Repeat
N Toggle EQ Enabled
A Toggle EQ Auto-Loading
L or Keypad 0 Open File(s)
Shift+L or Insert Open/Play Directory
Up Arrow or Keypad 8 Turn Volume Up
Down Arrow or Keypad 2 Turn Volume Down
Right Arrow Fast-forward 5 seconds
Left Arrow Rewind 5 seconds
` Increase EQ Preamp
TAB Decrease EQ Preamp
Shift + [1 to 0] Increase EQ bands [1 to 10]
Ctrl + [1 to 0] Decrease EQ bands [1 to 10]
Keypad 3 Jump Ten Songs Forward
Keypad 1 Jump Ten Songs Back

Notes

Some things work a bit differently than Winamp due to the 3D nature of the application, some personal choices, and a couple of technical difficulties. Some are described bellow.

In presets list: LOAD loads a preset from an .EQF file. SAVE saves the current EQ values to a new preset at the bottom of the list, and DEL deletes the currently selected preset.

In playlist: ADD adds a whole directory to the playlist. REM clears the playlist. The SEL, MISC, and LIST OPTS buttons don't have any functionality yet. The total length of all tracks displayed in the playlist, is just a placeholder as I've not yet found an easy way to get it.

The app uses a timeout on launch to try find if Winamp is loaded. It will stil launch, but the spectrum-analyzer data would be random if the timeout is exceeded. On slower machines this timeout could be too short but I don't have a way to test it. If it happens to you please open an issue.

Make sure Winamp uses the default classic skin, it won't work with anything other than that! Also, Winamp has a ton of settings that can change it's functionality. All my tests were done with the default settings so better use those if possible.

Most tests were made with Winamp v5.9.2. 5.666 seems to work too. Older versions might work but I haven't tested them yet.

If you're a LÖVR user and you're running from source, make sure you have the latest LÖVR dev build

Credits

3DAmp is made with the awesome LÖVR framework!

Libraries used:
lovr-phywire for collider visualization/debugging
json.lua for json parsing

Some shaders where ported from shadertoy and include links to the original works inside their source:
uNiversal
UnitZeroOne
rnslv
Eitraz
lexicobob

ASCII art by: ASCII Art Archive

Free to use and CC0 bakground images by: jgryntysz, Decster1, Felix Mittermeier, Pixabay

Linux (Wine) testing by: ASiC

Coding/3D models by me :)

If you make something interesting with this app, being a music video or use the models in your own project, I'd be more than happy if you show me your work!

PayPal

Disclaimer

This project is an independent, free, and open-source companion app and is not affiliated with, authorized, maintained, sponsored, or endorsed by Winamp Group SA (formerly Llama Group SA) or any of its affiliates. "Winamp" is a registered trademark of Winamp Group SA. All related names, marks, emblems, and images are registered trademarks of their respective owners. Use of the Winamp name is for identification and reference purposes only and does not imply any association with the trademark holder.