Webamp's ability to render classic Winamp skins led to a collaboration with the Internet Archive where we preserved ~70k (and counting) classic Winamp skins.
I also built the Winamp Skin Museum (https://skins.webamp.org/) where you can infinite scroll through those 70k skins and try them out in your browser with one click.
Have you considered spinning off the visualizer as a separate project? I'd love to it running on its own, on top of any audio I may have playing on the background
Good job! I am really impressed. Reminds me of XMMS as well of which I have great memories. Your blog post on the in-browser Eel-Wasm compiler sounds really interesting, will read!
How is the Skin Museum's default layout organized? I assumed by most downloads, but I'm not sure from where and the Archive sorts by views which is a completely different list.
Really impressive project, I was surprised how well it worked on my phone.
Didn't expect that, the list seemed so similar to the ones I browsed twenty years ago I assumed they had the same source. I guess the collective nostalgia is very similar to my memory at least. Thanks for the answer!
A couple years ago I tried to integrate this into a website specifically for the visualizations, but couldn't get it working... did the work you did on the visualizer just increase performance, or did it also increase support or ease of getting it setup on a new site?
That equalizer curve for the Rock preset is burnt into my memory, its shape, and color, and positions of sliders.
Say what you want about the skeuomorphic design, but it really felt great to slide the volume a bit higher when at your favorite part of the song. It really felt like a piece of hardware in your hands.
Mark this: Skeumorphic design is coming back, hopefully not in the form of Neumorphic design [1], but it is going to make a comeback. Unfortunately, designers will latch onto the worse of both - there is already a huge interest in neumorphic design which is basically flat material UI x skeumorphism, but the combination is worse than the individual parts.
Just today, I was reading comments praising Coinbase UI. It is just cliches piled on top of cliches by designers. Everything that happened between 2010-2020 made UI worse in many ways.
Winamp UI was whimsical, functional and successful.
Oh god I hope not. Neumorphism is just what dribbble "designers" who have 0 idea about usability like to drool over the past couple years. Absolute drivel.
Wow. I was expecting the UI to feel dated/retro, but it still looks really good. And the window snapping behavior is still as satisfying as it always was. Timeless?
Yes, i was quite surprised too. I can't figure out if i actually like it more or if it's just nostalgia.
It's like modern interfaces are way to flat and everything are is just floating in empty space with too much whitespace and not enough texture and depth.
Is something very wrong with modern interfaces? Quite interesting..
Modern interfaces revolve around mobile and touch interfaces. The narrow/small buttons don't work consistently enough in this context and presents many usability and accessibility issues.
I look at it and remember those days, and the system was quite usable with a high resolution mouse to be the primary interface. While I can use it on mobile, I would hate to try to do so under any kind of degraded condition. Cold fingers, inclement weather, driving in a card/bus/train.
No, they don't have to be flat. There are two items that hinder it. One is that winamp has a fixed size, modern layout systems have to support a multitude of screen sizes, which is a hard problem. Throw on some nice 3d texture as a full skin and getting that to work is much more difficult. It's not impossible, but some of the items on the skins would be very hard.
The other big one is accessibility. People with poor eyesight can struggle when the system has low contrast.
3d buttons or adding depth to controls and the like are pretty simple and don't have any major impediments that I'm aware of. I often will accent my GUI designs with a light touch of depth.
I can't tell you for sure as to the evolution of the systems, I design modern systems and while I did toy with GUIs back in that day I didn't do major systems then - I was a kid. Aesthetics takes a major backseat to usability in my work.
Though I'd say that some of today's look and style is much like clothing. It's a style of the day.
I'm sure some (most) of it is just nostalgia, but Winamp, to me, represents the pinnacle of internet culture.
A free, infinitely-customizable piece of software, playing a simple and open-ish format (open for everyone who wanted to use it by figuring out how to use liblame), sharing files of dubious origins, ...
I guess basically I liked the internet better when it was just a bunch of shady pirates running amok.
One of my first practical pieces of software I wrote was for Winamp. I noticed at the time Winamp didn't support using the Media Keys unless it was focused. So I whipped up a simple application that listens to the media keys, then forwards the message to the Winamp process directly.
I haven't used a media player since Winamp that I like as much as I liked Winamp. I really miss it.
Such happy memories. I am using QMMP on my RPi4 these days and using CherryMusic to also offer the same giant directory of music to my other devices over HTTP, whilst running a classic WindowMaker desktop for lightness and speed. It's the pinnacle of computing in my opinion! xfe, xfimage, pluma, geany, qmms. Happy speedy computing!
I loved the old Winamp where you could set it to be always on top, and then simply Alt-Shift-Tab on Windows and know that it'd focus Winamp, then use B, C, V whatever.
I used to use xmms on Linux for a while I think but I couldn't seem to find anything like what I remember in the repos.
Anyway, interesting project and like the milkdrop implementation! I seem to remember Goom as some plugin?
I remember using a plugin where I could setup my Microsoft Sidewinder to skip songs and control other settings. I felt very advanced to have such controls.
I've checked it out and run it on various things. It might be a better choice, but pretty much only because it's current and maintained.
The use case is a little different. IDJC has a lot of features for live DJs who are doing stuff. If you just want to run a playlist, winamp is actually a little more usable, and the shoutcast plugin also streams your audio input device. Our live DJs just press pause and do their thing with records and CDs, then they kick the playlist back on when they finish. For remote broadcasting, we just use BUTT. IMO, both BUTT and Winamp are easier than IDJC for most volunteer DJs
So many memories. From a time far away. Before I got my first Macbook. When computer were honest. When the underlying OS was ugly and nobody cared if apps used their own style.
Safari does not currently support WebGL2, which is the blocker. They support it behind and flag, and it seems to work there, but until they enable it by default, Butterchurn will not work on Safari.
Very cool! I am particularly intrigued by the "full-colour" bitmap font approach you took. (I'm trying to get a Fallout 2 font into my F2-inspired browser game, and so far I've managed to get PNG-in-SVG-in-OT working in everything except Chrome. Infuriating.)
I want to ask, did you notice any performance hits when wrapping each character in its own <span> with background-image? Do you think that would scale for a page with up to ~2 screens of text at one time?
I'm a bit lucky here in that the number of characters on the screen at any given time is bounded, so at max we have maybe 50 spans, which should not be a big deal.
I'm not sure how it would scale. In general, if you employ windowing all UI rendering issues are bounded by the number of items visible at a time which can let you get away with a lot of craziness, but if the number of items on the screen is as much as the number of characters on the screen... that could end up being a bit much.
I know a lot of things like that end up using shaders to render text, but that is a lot of added complexity.
Visualizations kick ass, I bet they are even better than original. Enjoyable thing but playlist could be larger! It ran out of songs pretty quickly and the show was prematurely over.
> Sorry for suggesting electron but it could be the ultimate multi-platform winamp clone.
That however would defeat best Winamp's feature: being light and fast, which is the number one reason why I kept using the classic one ignoring all following versions until my last day on Windows.
Today I use qmmp under Linux, which is close enough (has been ported to Windows too).
Chromium Edge reports this download as unsafe with the message:
This app might harm your device
Microsoft Defender SmartScreen reported that this app is not commonly downloaded; you should only open files you trust.
I'm not a desktop or a ui engineer by trade so I don't understand the contention with Electron. I know slack uses it and _seems_ to work fine but I have heard similar phrasing around "sorry for suggesting electron" and I'm curious to learn more about the cons of electron.
The reason a lot of people groan when we hear Electron is that it requires modern-ish hardware to do the same exact things that worked fine on hardware from 25 years ago.
The reason a bunch of people use it anyway is because they have to be cross platform, and target the web.
That accusation is quite the stone to be throwing around in the glasshouse that is the web technology stack. A portable version of Win32 would be infinitely better and more accessible than anything the web can come up with.
Many Electron apps are sluggish and use more resources than necessary for the problem they're trying to solve.
For example, IRC was doing most of the things Slack (desktop client in Electron) does, but 20+ years ago when computers were a thousandth (or less) as powerful. IRC clients were snappy to load and interact with, didn't use a gigabyte of RAM, and didn't eat a CPU core.
> Your desktop todo app is probably written in Electron and thus has a userland driver for the Xbox 360 controller in it, can render 3D graphics and play audio and take photos with your web camera.
Simple: you're running an entire web browser and all its requirements like network support, image decoding and other support features to interpret a javascript program for the task of playing an mp3 that should be way lighter than running a browser.
This project is open source and the code, and instructions to use it on your site, can be found here: https://github.com/captbaritone/webamp
Webamp's ability to render classic Winamp skins led to a collaboration with the Internet Archive where we preserved ~70k (and counting) classic Winamp skins.
I also built the Winamp Skin Museum (https://skins.webamp.org/) where you can infinite scroll through those 70k skins and try them out in your browser with one click.
Most recently I've been experimenting with improving the visualizer's performance with an in-browser Eel-Wasm compiler. Blog post here: https://jordaneldredge.com/blog/speeding-up-winamps-music-vi...
The project has given me lots of enjoyment over the years, and I'm glad to see that others are enjoying it as well.