It's done! ЁЯОЙ Winamp2-js (https://t.co/BtfXzKsJYH) finally supports all three windows!

To celebrate, here's a list of some of the cool things it can do: (thread)

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. https://t.co/k9gKnA6G1B)
Drag local audio files into the playlist to queue them up.
Visualize your music with the bar or line visualizer.
Adjust the fully functional EQ to pump up the bass.
(Shoutout to @epistemex for cardinal-spline-js https://t.co/NIXjit7zY4)
Import/export Winamp's own binary EQ settings files.
Export your playlist as an .html file.
Save screen real estate with each window's "shade" mode.
See each file's title/artist as specified in its ID3 tags.
(Shoutout to @aadsm for jsmediatags https://t.co/HVPFMScACF)
If a skin specifies some transparent regions in its region.txt, they are respected. (Shoutout to @SaraSoueidan for https://t.co/8VRPVbtwE6)
Drag windows around, and easily align them with window snapping.
Use hotkeys to control all major functions.
Select/drag tracks to reorder them.
"Double" mode (ctrl+d) makes the main and EQ windows twice as big.
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. ЁЯЩЗтАНтЩВя╕П

You May Also Like

рджрдзреАрдЪрд┐ рдЛрд╖рд┐ рдХреЛ рдордирд╛рд╣реА рдереА рдХрд┐ рд╡рд╣ рдЕрд╢реНрд╡рд┐рдиреА рдХреБрдорд╛рд░реЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдмреНрд░рд╣реНрдорд╡рд┐рджреНрдпрд╛ рдХрд╛ рдЙрдкрджреЗрд╢ рдирд╣реАрдВ рджреЗрдВред рдпреЗ рдЖрджреЗрд╢ рджреЗрд╡рд░рд╛рдЬ рдЗрдиреНрджреНрд░ рдХрд╛ рдерд╛редрд╡рд╣ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдЙрдирдХреЗ рд╕рд┐рдВрд╣рд╛рд╕рди рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдкрд░реЛрдХреНрд╖ рд░реБрдк рд╕реЗ рдХреЛрдИ рднреА рдЦрддрд░рд╛ рд╣реЛредрдордЧрд░ рдЬрдм рдЕрд╢реНрд╡рд┐рдиреА рдХреБрдорд╛рд░реЛрдВ рдиреЗ рд╕рд╣реГрджрдп рдкреНрд░рд╛рд░реНрдердирд╛ рдХреА рддреЛ рдорд╣рд░реНрд╖рд┐ рд╕рд╣рд░реНрд╖ рдорд╛рди рдЧрдПред


рдФрд░ рдЙрдиреНрд╣реЛрдиреЗрдВ рдмреНрд░рд╣реНрдорд╡рд┐рджреНрдпрд╛ рдХрд╛ рдЬреНрдЮрд╛рди рдЕрд╢реНрд╡рд┐рдирд┐ рдХреБрдорд╛рд░реЛрдВ рдХреЛ рджреЗ рджрд┐рдпрд╛ред рдЧреБрдкреНрддрдЪрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрдм рдЦрдмрд░ рдЗрдиреНрджреНрд░рджреЗрд╡ рддрдХ рдкрд╣реБрдВрдЪреА рддреЛ рд╡реЗ рдХреНрд░реЛрдз рдореЗрдВ рдЦрдбрд╝рдЧ рд▓реЗ рдХрд░ рдЧрдП рдФрд░ рдорд╣рд░реНрд╖рд┐ рджрдзреАрдЪрд┐ рдХрд╛ рд╕рд░ рдзрдбрд╝ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛редрдордЧрд░ рдЕрд╢реНрд╡рд┐рдиреА рдХреБрдорд╛рд░ рднреА рдХрд╣рд╛рдВ рдЪреБрдк рдмреИрдардиреЗ рд╡рд╛рд▓реЗ рдереЗредрдЙрдиреНрд╣реЛрдиреЗ рддреБрд░рдВрдд рдПрдХ рдЕрд╢реНрд╡ рдХрд╛ рд╕рд┐рд░ рдорд╣рд░реНрд╖рд┐ рдХреЗ рдзрдбрд╝ рдкреЗ...


...рдкреНрд░рддреНрдпрд╛рд░реЛрдкрд┐рдд рдХрд░ рдЙрдиреНрд╣реЗрдВ рдЬреАрд╡рд┐рдд рд░рдЦ рд▓рд┐рдпрд╛редрдЙрд╕ рджрд┐рди рдХреЗ рдкрд╢реНрдЪрд╛рдд рдорд╣рд░реНрд╖рд┐ рджрдзреАрдЪрд┐ рдЕрд╢реНрд╡рд╢рд┐рд░рд╛ рднреА рдХрд╣рд▓рд╛рдП рдЬрд╛рдиреЗ рд▓рдЧреЗредрдЕрдм рдЖрдЧреЗ рд╕реБрдирд┐рдпреЗ рдХреА рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдорд╣рд░реНрд╖рд┐ рджрдзреАрдЪрд┐ рдХрд╛ рд╕рд░ рдХрд╛рдЯрдиреЗ рд╡рд╛рд▓реЗ рдЗрдиреНрджреНрд░ рдХреИрд╕реЗ рдЕрдкрдиреА рд░рдХреНрд╖рд╛ рд╣реЗрддреБ рдЙрдирдХреЗ рдЖрдЧреЗ рдЧрд┐рдбрд╝рдЧрд┐рдбрд╝рд╛рдП ред

рдПрдХ рдмрд╛рд░ рджреЗрд╡рд░рд╛рдЬ рдЗрдиреНрджреНрд░ рдЕрдкрдиреА рд╕рднрд╛ рдореЗрдВ рдмреИрдареЗ рдереЗ, рддреЛ рдЙрдиреНрд╣реЗ рдЦреБрдж рдкрд░ рдЕрднрд┐рдорд╛рди рд╣реЛ рдЖрдпрд╛ред


рд╡реЗ рд╕реЛрдЪрдиреЗ рд▓рдЧреЗ рдХрд┐ рд╣рдо рддреАрдиреЛрдВ рд▓реЛрдХреЛрдВ рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВред рдмреНрд░рд╛рд╣реНрдордг рд╣рдореЗрдВ рдпрдЬреНрдЮ рдореЗрдВ рдЖрд╣реБрддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реА рдЙрдкрд╛рд╕рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рд╣реНрдордг рдмреГрд╣рд╕реНрдкрддрд┐ рд╕реЗ рдХреНрдпреЛрдВ рдбрд░рддреЗ рд╣реИрдВ ?рдЙрдирдХреЗ рдЖрдиреЗ рдкрд░ рдХреНрдпреЛрдВ рдЦрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ?рд╡реЗ рддреЛ рд╣рдорд╛рд░реА рдЬреАрд╡рд┐рдХрд╛ рд╕реЗ рдкрд▓рддреЗ рд╣реИрдВред рджреЗрд╡рд░реНрд╖рд┐ рдмреГрд╣рд╕реНрдкрддрд┐ рджреЗрд╡рддрд╛рдУрдВ рдХреЗ рдЧреБрд░реБ рдереЗред

рдЕрднрд┐рдорд╛рди рдХреЗ рдХрд╛рд░рдг рдЛрд╖рд┐ рдмреГрд╣рд╕реНрдкрддрд┐ рдХреЗ рдкрдзрд╛рд░рдиреЗ рдкрд░ рди рддреЛ рдЗрдиреНрджреНрд░ рд╣реА рдЦрдбрд╝реЗ рд╣реБрдП рдФрд░ рди рд╣реА рдЕрдиреНрдп рджреЗрд╡реЛрдВ рдХреЛ рдЦрдбрд╝реЗ рд╣реЛрдиреЗ рджрд┐рдпрд╛редрджреЗрд╡рдЧреБрд░реБ рдмреГрд╣рд╕реНрдкрддрд┐ рдЗрдиреНрджреНрд░ рдХрд╛ рдпреЗ рдХрдареЛрд░ рджреБрд░реНрд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рдХрд░ рдЪреБрдк рдЪрд╛рдк рд╡рд╣рд╛рдВ рд╕реЗ рд▓реМрдЯ рдЧрдПредрдХреБрдЫ рджреЗрд░ рдкрд╢реНрдЪрд╛рдд рдЬрдм рджреЗрд╡рд░рд╛рдЬ рдХрд╛ рдордж рдЙрддрд░рд╛ рддреЛ рдЙрдиреНрд╣реЗ рдЕрдкрдиреА рдЧрд▓рддреА рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖред