Wow, it even has skin support! I spent way too many hours developing skins for WinAmp and Trillian back in the late 90s as a teenager. I get why skins fell out of style, but I also kinda wish they didn't. Choosing a skin lets you personalize an app, creating a skin does so even more while also letting you express your creativity, and having skins creates a community. If I ever make an app where skinning would make sense, I would 100% go for it. Skinning should make a come-back.
I always used skins in Winamp/XMMS, but I'm immediately filled with nostalgia upon seeing the default skin. I wonder if people who came to use computers in the last decade will experience the sort of enjoyment I got out of customizing the look and feel of applications. All of the walled gardens have intertwined design with functionality to the point where skinning doesn't really exist in the same way. I haven't used Windows 10, but I wonder if it's possible to replace the Windows shell like I used to in college.
> I wonder if people who came to use computers in the last decade will experience the sort of enjoyment I got out of customizing the look and feel of applications
Honestly, skinning is probably easier today than it ever has been. With custom client-side stylesheets, there's no reason someone couldn't roll out custom skins for sites like Facebook, Twitter, etc.
Originally stylesheets were meant to be recommendations. It was envisioned that user agents, users, and web pages would have their own, separate stylesheets, and the user agent would negotiate between the different stylesheets to determine the final style. I would argue that Twitter is going against the original spirit and best practices of the web with their technical decision to use css-in-js.
The Web is a medium with built-in customizability.
This "our product is perfect and must be used as is" attitude reminds me of a relatively recent example that seems to be dying down: mobile websites that used the `maximum-scale=1 ` value in `<meta name="viewport"`. This disabled zooming in mobile devices. This was an accessibility issue that affected people who otherwise don't encounter other accessibility issues.
If it were simply a matter of providing the smallest payload to clients, these sites could provide some sort of external manifest/source map mapping human-readable class names to hashes.
Meanwhile most people who have to use the web as a platform to build things view it as an incredibly painful mash of half implemented ideas and couldn't care less what the founders intended.
Let's stop using divs for presentation whilst we're at it and spend man-years on picking the right semantically named elements with no benefit to anyone anywhere ever.
No ajax or js either, I'm pretty sure they didn't envisage that.
To be honest, yes. The web was designed for hyperlinked documents. 90% of what I use the web for is still following links to pages with text and images. It is an unfortunate historical accident that people are trying to build thick client interactive applications using a technology envisioned and designed for sharing documents.
Just because the client-side application's source code is readable in a text editor it doesn't mean it's easier to skin than a binary blob who's theming support is documented.
Not to mention how your method could break tomorrow without warning because Facebook (or whatever you're skinning) push out an update that's incompatible with the theme you've hacked on to it.
I've tried to run custom stylesheets for some of these sites, to make them more usable and cut the cruft, but the interface elements are such a moving target, and with what appears to be randomized or obfuscated class names and ids, that it's a real PITA to keep working
I bet there's branding and usability reasons for Facebook to avoid allowing you to skin/theme it to the extent Winamp was skinnable. Not sure I know what those are, but I just really doubt they'll ever add that feature.
Facebook is optimized to get you addicted to your feed. Muted blue colors everywhere with contrasting bright "berry red" rewarding notifications. Images that are always more contrasted than the layout, etc.
Anecdotal: I use a custom Facebook skin that makes the whole UI red and add a background image. Since I've started using it, I spend less time on the website. It feels, in a way, more tiring to use the custom theme.
While it worked great for Winamp and a few other apps, the process was a negative for others: MySpace being a big example. People modifying their pages to look like Angelfire/Geocities sites from back in the day killed any interest I had in them.
One big difference is that in MySpace a user could modify how other users viewed their page. With skins a user can modify how they view other users page, but would not modify those other users experience.
What's the issue with people making their own space look like Geocities if it's what makes them happy and is how they want to express themselves.
Would also like to point out that customisation on MySpace is probably responsible for a whole generation of not only developers but non-tech focused people learning how to code. Met a lot of artists and designers who now work on the internet who MySpace was the starting point.
I have no issue with someone doing it, but it doesn't mean I as a user am going to want to continue visiting it. As bland as Facebook is in look (and it could probably do with a less cluttered redesign), it is at least not a jarring experience so I can live with it. And for a site like MySpace to work, it needs traffic.
Not sure on the generation of web developers MySpace created. Pretty sure every single page that looked like this was plastered with logos for theme building sites/companies littered with various neon-on-black comic sans designs as far as the eye can see.
It looks harder to completely replace the Windows shell than before. I've looked long and hard for a replacement that looks like Windows 95 (menus and windows controls especially) but no luck. There is WindowShades but it doesn't completely replace everything.
Yes. It's almost required, since it replaces the incredibly brain-dead start menu search with something that works in a way that makes some kind of sense. I don't know how the default Windows 10 search is so broken.
> I wonder if people who came to use computers in the last decade will experience the sort of enjoyment I got out of customizing the look and feel of applications.
What you had to make skins yourself??? You didn't just get them via micro-transactions and loot-boxes???
Absolutely. I don't get why skins fell out of style. I remember back in the day when I was working on an accounting app, even that I made skinnable. You may just be reconciling your bank account, but at least you could do it in a form that looked like it was made from marble, or wood, or whatever you wanted! It just made everything feel just a little bit less tedious... at least to me
Apple's designers decided that looked tacky and stopped doing it; the rest of the industry soon followed suit. Now everything has to be floating in a screamingly bright white void, so that your phone ruins your night vision every time you pull it out.
At least when Trillian ditched skins, I think they were trying to compete with the bigger players (MSN, Google Chat) more seriously in the business world, and skinning isn't really something businesses care much about. In fact, just having this feature available can make the app seem more juvenile and less appealing than more "serious" alternatives.
Plus, you have to keep adding skin support for every new feature you add, which means the many skins that don't keep up will no longer work for the latest version of your app, which pisses off users. And when skins slow down or stop being made (people get bored, move on) it reflects poorly on the app, making it look like a ghost town.
> At least when Trillian ditched skins, I think they were trying to compete with the bigger players (MSN, Google Chat) more seriously in the business world, and skinning isn't really something businesses care much about.
Businesses often care a lot about it, they just call it “branding” (and it can be a big deal, even for internal tools); obviously, you need to show different examples to them than typical consumers.
i've been using fb2k for more than a decade now, but i gave up trying to do anything to fancy with it because its addon support was such a clusterfsck, mostly because i found over time that a lot of addons became defunct as their developer vanished, or the links broke or etc, and trying to get support on hydrogen audio was like sticking your hands into a bees nest.
to be fair it's been a long time since i looked into skinning it and things may be better now. it's still an excellent clean audio player, i just keep it close to stock with a few addons so i send audio to a chromecast.
there sure were some wild and beautiful fb2k skins and themes back in the day.
Even better: skins that let you relocate everything. It was super-awesome to have a little cartoon cat sitting on a spaceship on my desktop, and poke at various parts of it to control Audion.
I spent a lot of time customizing Windows skinning back in the late 90's and early 2000's. Unfortunately that kind of fell out of style as well. Third party ui shell replacements and easy customization are things I miss. I know you can supposedly do this with Gnome etc, but I really haven't taken the time/effort to do so, as I just don't have it these days.
I will say I really like(d) the windows 7-10 taskbar in general, and the windows 7-style start menu interaction with the windows 10 look (without the tiles). I switched to Ubuntu with gnome last year after win10 just pissed me off one too many times with the "user engagement" crap that gets loaded with win10. Though I've thought about going back a few times. (Laptop at home and at work are 2014-2015 mac pros)
Now I feel dumb. I use Dark Reader [0] for all my web browsing. I was just so used to the desktop Slack client I forgot about the web one. Thanks for reminding me.
The closest thing we have to skinning on a major mainstream website today is subreddits being allowed to customize their CSS, and looking at what utter disasters the vast majority of subreddits look in their custom skins, I am somehow not super stoked about the idea.
But if you're the only app with skinning support, it's a different sort of identity, and arguably a stronger one. I forgot almost all of the MP3 players I used in the 90s and 2000s, but Winamp is the one I do remember by name, probably for this reason.
CSS is pretty simple but modern sites have hundreds to thousands selectors. If you want to do anything worthwhile you need to modify big part of those. And hope new updates won't change anything making your custom layout a total mess at some random point.
I tried to theme some popular sites to my taste of dark themes and it's really tedious.
Obviously every site is different, but I've developed a few styles before for sites like DDG and wikipedia, and it's a job measured in hours, generally. Nowhere near the amount of work involved in most OSS, and plenty of people here work on OSS.
The dev still has the power to choose the default; the user just has the ability to veto it. That sounds like a massive positive, from the user's perspective.
Super cool. Where are you finding the skins? I went looking for some skins I made and put up on deviantart, but the download links are all broken. Do you just scrape the web or are they your personal collection, or are you querying a specific site?
Does it decode the audio files (mp3, etc.) into the low level PCM audio samples and play those back? Or does it use a higher level browser API that lets you play high level mp3 files directly?
If the latter, how can you still implement the equalizer?
This is great and brings back a lot of old memories. Something that would help this spread (perhaps if it was hosted somewhere dedicated to it), is allowing a URL of an MP3 or a list of other audio files to be included in the link so people can share a song "the way it was meant to be played."
Thanks for your hard work and for making sure it wasn't broken in Edge. It was really satisfying to pull it up on my Windows 10 Mobile without issue.
Alas, this is more complicated than just including a link. The mp3 needs to be served with permissive "CORs" headers, and most are not. I made the call, that it would be too confusing for users to try to support loading from URL.
Yeah, that makes sense. You would have to download the remote resource in the link and re-host it which can get expensive quickly. There are probably a few scenarios where DNS tricks would save the day, but not reliably.
For those who don't want to navigate Twitter for whatever reason (tracking, slows down your browser, bad UI, etc.), here's the content from the thread (the images and videos are still Twitter-hosted, by the way):
Getting all of this to work entirely in the browser has been a great challenge, and I've learned a lot. Thanks to @The_DoctorO for being an invaluable source of insider information. Thanks to @LuigiHann for catching many small places where I hand't perfectly recreated Winamp's handling of skins. Thanks to @ja2ke for the original retweet which I believe kicked this whole thing off more than three years ago. And of course, thanks to @JustinFrankel. ️
-----------------------------------
(@captbaritone, I'm assuming you're ok with pasting the content here, but please let me know in case you have objections.)
No worries about copy/pasting. Twitter’s UI is not the ideal way to interact with this stuff, but it was the easiest way for me to put together all those short videos. Thanks for helping make it accessible.
That makes sense, I forgot about the pesky CORS situation. My thinking was maybe the <audio> or other subsystem that is capable of loading MP3s remotely (since they are media objects) could do the same for playlist data.
Wishful thinking: If this included something akin to Shoutcast (perhaps via WebRTC), it would give us back the peer-to-peer listening joy we had for small groups and teams back in the day. I miss the era when things were more commonly/naturally peer-to-peer and decentralized.
Shoutcast and the real-time visualisations are two killer features Winamp had that I don't think any media player since has even come close to competing with.
I'm not saying there aren't still decent media players out there, but honestly I think Winamp is still the best there's ever been.
I completely agree, nothing came close to the awesomeness of Milkdrop 2 in Winamp. That's one of the reasons I got into programming, by being curious about how it "knew" how to move to the music. Still have it installed on an ancient PC, will never delete it!
I still don't get how they did the transitions. Maybe I'm remembering it wrong, but it seemed like one visualisation always smoothly transitioned to another one. No idea how they that worked.
Cool, but it depends on Soundcloud (dying platform AFAIK given the recent exodus). How's that gonna help me if I use Spotify? Spotify can stream to my TV using Chromecast, showing lyrics via Genius. Why can't it also do some VJing? projectM is open source.
Shoutcast was amazing, I can easily credit it to opening up my music horizons to bands that just weren't played on the radio at the time(euro-metal/etc \m/ \m/).
To this day I find Spotify and its competitors a poor substitute, algorithms still can't match a well curated station.
For a brief moment of my life, I got up as soon as my alarm went off. It was always exciting to see what MP3s were downloaded overnight from the queue.
In my experience almost anyone referring to dialup is talking about 56.6k, or at the very least some sort of modem connected to the PTSN, screeching noises and all. Is your experience different?
Too many, I'm afraid. But do you remember the first time you had broadband and the time needed to download an mp3 was so short that you can't queue up the next download.
Had a aimilar experience recently after getting a fiber line installed and grabbing a game off Steam. Would have taken me hours on the old DSL, never mind a 33.6 dial-up.
I think my aging LAN gear capped out way before the fiber did, and an upgrade is on my todo list. ;)
I moved dorms almost entirely for this reason when I was in College. The new dorms were being built with a broadband Internet connection straight into the College network.
It was leecher heaven!
That is until some wiseass thought it'd be a good idea to run a private ftp site for a piracy group from their dorm room. The damn thing saturated the entire network until they got caught.
I didn't have internet in my dorm, so I was downloading mp3s at university and retrieving them at home by floppy disk. That is, 128kbps mp3s, which is about 1MB per minute (iirc), on 1.44MB floppy disks. split(1) to the rescue. I did the same for (short) videos too. Crazy days.
I think i pissed off some kids in the neighborhood when i started doing CDRs for the cost of the disc (or bring your own and i'll fill it up), when they had been selling them at a 100% (or more) markup...
For me the phone bill was even bigger issuer than slow download speed. Our local telephone company charged more than $1 per hour for all calls. I remember my parents being furious after seeing the bills.
As of Mp3 Player, it was my first one... and it simply worked! I didn't need anything more than quick play (light memory use) and eventually a play lists. Its too bad they didn't cashed hard-core on it.
Not idea why anyone ever would need to change for another player that does... more.
Alas, I needed finer grain control over the marquee behavior (scroll character by character, pause the scrolling, etc), so I had to implement it in JS.
For macOS users, I can vouch for Vox (https://vox.rocks/mac-music-player). I was a Winamper for years until I moved to Mac and lost it, Vox is a decent replacement.
Or if you don't need a genuine Winamp, Audacious Media Player has an optional Winamp-style interface that supports Winamp skins and looks and feels almost identical.
Native WinAmp has two dropin extension systems. The one everybody seemed to use was MilkDrop, but they also had AVS (Advanced Visualization Studio), for which I wrote a bunch of extensions about a decade ago. These included several composition dlls (multi-lane video pipes, MIDI control, joystick control, 30 sec rolling video recorder/playback) and also a number of effects (image animations, placers, blenders, oscillators). This made for a very engaging interactive experience, especially flying through using the joystick to control pretty much any set of parameters. Turns out the visualizers have hidden strange attractors that never appear when just using passive mode. That was in XP, I have waiting a Windows 7 build TODO.
I'm semi-guessing the browser re-implementation does not support these. Pity.
xmms (formerly x11amp) used to fill that niche, but it's not available in Debian anymore apparently. xmms2 apparently went with something different, but it does look like promoe is a xmms2 frontend that takes on this legacy.
Winamp2-js author here. Just a note, that since that discussion, the playlist window, and thus support for multiple tracks at a time, has been added. As such, the project is only just now "complete".
I remember when I only had enough spare space on my Centris 610's HD (it was 80MB) for two or three MP3 files. I just had my two favorite songs on my computer that I would listen to with some MP3 player. It may have been a version of Winamp for System 7 if there was such a thing but I can't remember. I think the songs were Chemical Brothers and Crystal Method.
Amazing work. Moving the main application window around in the open blue workspace is so "native". It's like I just got a new OS right there in my browser.
I wonder if I can get other things to run in the same isolated space??? To begin with how about something symbolic like XEyes or good old, in fact anything good old.
You'd still need the Spotify desktop client open (Winamp2-js would function as a remote), but you could do things like populating the playlist window with a user playlist.
Unfortunately, you can never fully work. DRM means we can’t get raw access to the audio stream so EQ, visualization, balance, (for example) won’t work.
I'm overly excited about this. Winamp was a huge part of my early computer experience, even went so far as to (poorly) design my own. Can't wait to start using this!
God damn it, this was smooth to get working. Only got some odd error regarding the tag writer on vorbis, but not a major loss. Had it been a GTK based project i fear the number of "esoteric" sub-sub-sub-dependencies i would have had to track down...
Have you tried clicking the play button or double clicking the single, 5 second audio file in the player? It doesn't play by default and it isn't a .gif
Unless you're using Safari 5.1 on Windows (it also explicitly states modern versions), the supported browsers are seen here https://caniuse.com/#feat=audio-api