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

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИ, рдкрд┐рддреГ рдкрдХреНрд╖ рдореЗрдВ рдХреМрд╡реЗ рдХреЛ рдЦрд╛рдирд╛ рджреЗрдиреЗ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рд░рдг!

рд╢реНрд░рд╛рджреНрдз рдкрдХреНрд╖ рдореЗрдВ рдХреМрдУрдВ рдХрд╛ рдмрдбрд╝рд╛ рд╣реА рдорд╣рддреНрд╡ рд╣реИред рдХрд╣рддреЗ рд╣реИ рдХреМрдЖ рдпрдо рдХрд╛ рдкреНрд░рддреАрдХ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рднреЛрдЬрди рдЧреНрд░рд╣рдг рдХрд░ рд▓реЗ, рддреЛ рдРрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд┐рддрд░реЛрдВ рдХреА рдХреГрдкрд╛ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИ рдФрд░ рд╡реЗ рдЖрдкрд╕реЗ рдЦрд╝реБрд╢ рд╣реИред


рдХреБрдЫ рд▓реЛрдЧ рдХрд╣рддреЗ рд╣реИрдВ рдХреА рд╡реНрдпрдХреНрддрд┐ рдорд░рдХрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреМрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдиреНрдо рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдЦрд╛рдирд╛ рдЦрд┐рд▓рд╛рдиреЗ рд╕реЗ рд╡рд╣ рднреЛрдЬрди рдкрд┐рддрд░реЛрдВ рдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ

рд╢рд╛рдпрдж рд╣рдо рд╕рдмрдиреЗ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рдХрд┐рд╕реА рдмрдбрд╝реЗ рдмреБрдЬрд╝реБрд░реНрдЧ, рдХрд┐рд╕реА рдкрдВрдбрд┐рдд рдпрд╛ рдЬреНрдпреЛрддрд┐рд╖рд╛рдЪрд╛рд░реНрдп рд╕реЗ рдпреЗ рд╕реБрдирд╛ рд╣реЛрдЧрд╛ред рд╡реЗ рдЕрдирдЧрд┐рдирдд рдХрд┐рд╕реНрд╕реЗ рд╕реБрдирд╛рдПрдВрдЧреЗ, рдХрд╣реЗрдВрдЧреЗ рдмрдбрд╝реЗ рдмреБрдЬрд╝реБрд░реНрдЧ рдХрд╣ рдЧрдП рдЗрд╕реАрд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛

рд╢рд╛рдпрдж рд╣реА рд╣рдореЗрдВ рдХреЛрдИ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рд░рдг рдмрддрд╛ рд╕рдХреЗред

рд╣рдорд╛рд░реЗ рдЛрд╖рд┐ рдореБрдирд┐ рдФрд░ рдкреМрд░рд╛рдгрд┐рдХ рдХрд╛рд▓ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдореБрд░реНрдЦ рдирд╣реАрдВ рдереЗ! рдХрднреА рд╕реЛрдЪрд┐рдпреЗрдЧрд╛ рдХреМрд╡реЛрдВ рдХреЛ рдкрд┐рддреГ рдкрдХреНрд╖ рдореЗрдВ рдЦрд┐рд▓рд╛рдИ рдЦреАрд░ рд╣рдорд╛рд░реЗ рдкреВрд░реНрд╡рдЬреЛрдВ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдЧреА?

рд╣рдорд╛рд░реЗ рдЛрд╖рд┐ рдореБрдирд┐ рд╡рд┐рджреНрд╡рд╛рди рдереЗ, рд╡реЗ рдЬреЛ рдмрд╛рдд рдХрд░рддреЗ рдпрд╛ рдХрд╣рддреЗ рдереЗ рдЙрд╕рдХреЗ рдкреАрдЫреЗ рдХреЛрдИ рди рдХреЛрдИ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рд░рдг рдЫреБрдкрд╛ рд╣реЛрддрд╛ рдерд╛ред

рдПрдХ рдмрд╣реБрдд рд░реЛрдЪрдХ рддрдереНрдп рд╣реИ рдкрд┐рддреГ рдкрдХреНрд╖, рднрд╛рджреЛ( рднрд╛рджреНрд░рдкрдж) рдкреНрд░рдХреГрддрд┐ рдФрд░ рдХрд╛рдХ рдХреЗ рдмреАрдЪред

рдПрдХ рдмрд╛рдд рдЬреЛ рдХрд╣ рд╕рдХрддреЗ рдХрд┐ рд╣рдо рд╕рдм рдиреЗ рд╕реНрд╡рддрдГ рдЙрдЧ рдЖрдпреЗ рдкреАрдкрд▓ рдпрд╛ рдмрд░рдЧрдж рдХрд╛ рдкреЗрдбрд╝/ рдкреМрдзрд╛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рджреАрд╡рд╛рд░, рдкреБрд░рд╛рдиреА

рдЗрдорд╛рд░рдд, рдкрд░реНрд╡рдд рдпрд╛ рдЕрдЯреНрдЯрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдЬрд╝рд░реВрд░ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ред рджреЗрдЦрд╛ рд╣реИ рди?

рдЬрд╝рд░рд╛ рд╕реЛрдЪрд┐рдпреЗ рдкреАрдкрд▓ рдпрд╛ рдмрд░рдЧрдж рдХреА рдмреАрдЬ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ рд╣реЛрдВрдЧреЗ рд╡рд╣рд╛рдБ рддрдХ?┬ардЗрдирдХреЗ рдмреАрдЬ рдЗрддрдиреЗ рд╣рд▓реНрдХреЗ рднреА рдирд╣реАрдВ рд╣реЛрддреЗ рдХреЗ рд╣рд╡рд╛ рдЙрдиреНрд╣реЗрдВ рдЙрдбрд╝рд╛рдХреЗ рд▓реЗ рдЬрд╛ рд╕рдХреЗред
8 March 1679 - The date on which 300 saffron clad warriors gave their life to protect temples from mugal army. ThreadтЮбя╕П
Aurangzeb's huge army, which was adorned with artillery, elephant and horses, under the leadership of Commander Darab Khan had marched to punish the ruler of/1


Khandela Raja Bahadur Singh, who became a rebel due to the anti-Hindu policies of Aurangzeb, and to destroy the temples of Shekhawati. Bahadur Singh to compete with such a large army, vacated Khandela for the purpose of conducting guerilla warfare and went Kot Sakrai /2

located in the inaccessible hills of Sakrai. People of Khandela also vacated Khandela and hid in nearby villages.

But some Shekhawat warriors did not like this as they knew that the royal army would not leave a single temple located in Shekhawati unbroken./3

so soon the teams of self-sacrificing Dharma-protectors Shekhawat heroes started reaching Khandela to protect the Dev temples.

Sujan Singh Shekhawat, the young thakur of Chhapoli, was coming back from his wedding when he heard about the imperial army from Shepherds./4

рдЭрд┐рд░рдореАрд░ рдЭрд┐рд░рдорд┐рд░ рдореЗрд╣рд╛ рдмрд░рд╕реЗ,рдореЛрд░рд╛рдВ рдЫрддрд░реА рдЫрд╛рдИ |
рдХреБрд▓ рдореЗрдВ рд╣реИ рддреЛ рдЖрд╡ рд╕реБрдЬрд╛рдг, рдлреЛрдЬ рджреЗрд╡рд░реЗ рдЖрдИ ||

if you are born in your glorious clan, then come, the army have come to destroy temple. /5