Cheng Liang's LVGL-Driven Winamp Clone Really Whips the Llama's Ass on an Espressif ESP32
Inspired by everyone's favorite MP3 player of the late '90s, this ESP32-powered project uses real Winamp skins as a design base.
Maker Chen Liang has a project for those who miss the classic Winamp MP3 player but who don't fancy installing its current-generation successor on their desktop: a clone designed to run on a microcontroller, mimicking the original software's iconic user interface.
"This Instructable shows how to use LVGL and SquareLine Studio design a music player UI," Liang writes in what is a dramatically understated introduction for what he has actually created. Inspired by memories of Nullsoft's Winamp and the Chinese-character-supporting TTPlayer, the user interface is a near-direct copy of Winamp — made easier by the theming support the software offered.
"These two applications are my (and also many people's) childhood memory," Liang explains in a post brought to our attention by Adafruit, "so I will use those UI as a design template. Winamp is designed [so you] can change 'skin' easily, and the skin image resources are in BMP format packed in a ZIP file. You can find a huge Winamp skin collection at skins.webamp.org, so it is easy to access your favor[ite] Winamp skin as a design template."
Using these graphics as a base, Liang was able to put together a Winamp clone running on an Espressif ESP32 microcontroller — using the LVGL library to handle the graphics of the user interface and SquareLine Studio to speed up the design process. Under the hood, there software includes a broad range of features: listing and loading MP3 files from an SD Card, playback and volume controls, automatic ID3 display including cover image, lyric display, and even an audio spectrum analyzer — though nothing quite as complicated as the classic Milkdrop.
"Here are further function[s] we can implement," Liang adds of his ideas to take the project further. "Shuffle playlist order, MP3 timeline seek, support more cover image formats, [and] connect to the internet."
The project is detailed in full on Liang's Instructables page.