Live data from Hacker News

A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

github.com

171–180 of 212 posts

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#171

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.

Check out http://www.windows93.net for a bonkers take on that vision.

I know about it. It's cool for sure.

With this we have a clean implementation tho.

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#172
post #45
post #43

Earlier quoted context omitted.

Probably because he is on macOS or Linux.

winamp 2 almost certainly runs fine under wine.

Indeed, except for video playback. Also, the minibrowser looks dead. Also, I try to update WineHQ WinAmp 2.x entry

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#173
post #163

Earlier quoted context omitted.

Could have sworn that browsers have the capability to load custom CSS. But then writing CSS may well be a full time job, so...

CSS is pretty simple. Lots of people offer custom stylesheets for websites at https://userstyles.org .

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.

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#174

Author here. I wrote a Twitter thread demonstrating many of its features. You can find it here: https://mobile.twitter.com/captbaritone/status/9612747140133...

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):

-----------------------------------

It's done! Winamp2-js (https://jordaneldredge.com/projects/winamp2-js/) finally supports all three windows!

To celebrate, here's a list of some of the cool things it can do: (thread) https://pbs.twimg.com/media/DVcfDHBVQAAp3Tm?format=png

* Load any classic Winamp skin just by dragging it onto the main window. (Shoutout to @stuk for JSZip which lets us decompress .wsz files in the browser. (link: https://stuk.github.io/jszip/) https://video.twimg.com/ext_tw_video/961271636983820288/pu/v...

* Drag local audio files into the playlist to queue them up. https://video.twimg.com/ext_tw_video/961271712238063621/pu/v...

* Visualize your music with the bar or line visualizer. https://video.twimg.com/ext_tw_video/961271795725709314/pu/v...

* Adjust the fully functional EQ to pump up the bass. (Shoutout to @epistemex for cardinal-spline-js (link: https://github.com/epistemex/cardinal-spline-js)) https://video.twimg.com/ext_tw_video/961271880035389441/pu/v...

* Import/export Winamp's own binary EQ settings files. https://video.twimg.com/ext_tw_video/961272045177782275/pu/v...

* Export your playlist as an .html file. https://video.twimg.com/ext_tw_video/961272121270743040/pu/v...

* Save screen real estate with each window's "shade" mode. https://pbs.twimg.com/media/DVcf90bVQAALtl_?format=jpg

* See each file's title/artist as specified in its ID3 tags. (Shoutout to @aadsm for jsmediatags (link: https://github.com/aadsm/jsmediatags)) https://video.twimg.com/ext_tw_video/961272266322407425/pu/v...

* If a skin specifies some transparent regions in its region.txt, they are respected. (Shoutout to @SaraSoueidan for (link: https://www.sarasoueidan.com/blog/css-svg-clipping/)) https://video.twimg.com/ext_tw_video/961272327584403457/pu/v...

* Drag windows around, and easily align them with window snapping. https://video.twimg.com/ext_tw_video/961272384148815873/pu/v...

* Use hotkeys to control all major functions. https://video.twimg.com/ext_tw_video/961272440251822080/pu/v...

* Select/drag tracks to reorder them. https://video.twimg.com/ext_tw_video/961272499219587072/pu/v...

* "Double" mode (ctrl+d) makes the main and EQ windows twice as big. https://pbs.twimg.com/media/DVcgTW3VMAAgrdc?format=jpg

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.)

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#175
post #163

Earlier quoted context omitted.

CSS is pretty simple. Lots of people offer custom stylesheets for websites at https://userstyles.org .

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.

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#176

Earlier quoted context omitted.

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…

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.

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

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#177
post #84

Earlier quoted context omitted.

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.

Doesn't ClassicShell still work in Win10?

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.

Re: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript

#180
post #143

Earlier quoted context omitted.

If those websites don't wish to support skinning, I don't see how the technical choices are misguided.

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.

Exactly.

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 `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.

Post reply on HN