LINAMP Project – Winamp-Style Audio Front Panel on Raspberry Pi 5

This project perfectly fuses the iconic Winamp software with modern Raspberry Pi functionality, where every original Winamp function is fully touch-responsive on the finished product, demonstrating a successful and practical tribute to a legendary media player.

Winamp is one of the most iconic and historically significant digital media players ever created. It became synonymous with the MP3 revolution and the early days of digital music ownership. It supported a wide array of audio formats, including MP3, AAC, WAV, and WMA. You're probably familiar with its classic style: a simple, small interface that resembled a car stereo head unit, complete with a separate equalizer and playlist window.

Recently the source code of this player was released on GitHub. After that, many enthusiasts created versions of this legendary player for multiple operating systems. Incredibly intuitive is the idea of ​​Rodrigo Méndez to create a practical "Front Panel" for an Audio Amplifier in the style of such devices from the end of the last century, based on this player. In addition to its beautiful appearance, this front panel is also very functional. The original device is based on a 7.9-inch ultrawide HDMI touch display with a resolution of 1280x480 and a Raspberry Pi small single board computer. I currently have an ultrawide LCD with a built-in Raspberry Pi 5 intended for a POS system project, so I decided to use this existing hardware.

The difference with the original project is in the resolution and dimensions of the display, namely my display is 9.3 inches, and has a native resolution of 1600x600 pixels. My knowledge of Raspberry Pi OS is quite limited, so I had to spend more time searching for information on the Internet. Therefore, the explanation and terminology for the procedure for implementing this project will be at the lowest level, which would be a great advantage for absolute beginners.

This project is sponsored by PCBWay . From concept to production, PCBWay provide cutting-edge electronic design solutions for global innovators, Including hardware design, software development, mechanical design, product testing and certification. PCBWay engineering team consists of experienced engineers in electronics, embedded systems, and product development. They successfully delivered hundreds of projects across industries such as medical devices, industrial automation, consumer electronics, smart home, and IoT.

The following is a sequential presentation of each part.
- First, on the Windows PC, we need to create an image of the Raspberry Pi operating system on an SD card. For this purpose, we need an SD card with a capacity of 8GB or larger.

Then we need to download the Raspberry Pi imager software from the given Link . Now we need to select the Raspberry Pi model (in my case, Raspberry Pi 5).

Next is the operating system, we select "Port of Debian Bookworm" according to the author's recommendations.

Then we select the storage device and customization, which I will skip in this case. Now we put the prepared SD card in the Raspberry Pi and start it. At first, I will use a large monitor, mouse and keyboard for easier work and visibility. We also need to enable internet access via network cable or WiFi. When the operating system boots up, open the author's GitHub page in a browser where the installation is explained in detail.
First, we need to clone the project from GitHub to the local storage with the following command
(command for cloning the project: git clone https://github.com/Rodmg/linamp.git).
Now a folder named "linamp" should appear in the File Explorer.
Next, we need to open the Terminal window and enter that folder with "cd linamp" - Enter. Then we copy the instructions from Github into the Terminal and press Enter. Now the installation of support (libraries and environment) as well as the program itself is being performed. This will take a few minutes. Then we go to "Programing" and we will see that new programs have been installed, Python 3.11 and QT Creator.

We start QT Creator, Open Project, Linamp folder, and activate the file named: CMakelists.txt. Now we go RUN, and after a certain time the program will start. If the Linamp program appears, it means that we have successfully installed it.

As you can see from the above, the installation is extremely simple. However, if you try to install it on another version of the OS, such as the latest OS (for example, a port of Debian Trixie), you will notice that it is almost impossible due to certain incompatibilities of the libraries and the environment.
Now it's time to connect the original touch display. We start the program in the same way as before. As you can see, Linamp does not cover the entire screen and there is empty space on all sides.

The reason for this is the fact that the author created the program strictly for a resolution of 1280x400, and specifically on this display it is 1600x600. It is very simple to set the required resolution on this display. We go to preferences - screen configuration, right click on HDMI - resolution. However, the required resolution is not here. In order for the required resolution to appear, we need to make certain changes to the OS kernel. For this purpose, the following procedure is used:
In the terminal window, we write the following command:
(sudo nano /boot/firmware/cmdline.txt) - Enter
Now before the beginning of the line we write:
(video=HDMI-A-1:1280x480@60D) and leave one space
Next:
Press Ctrl+O to write out the file.
Press Enter to confirm the file name.
Press Ctrl+X to exit nano.
Reboot your Raspberry Pi to apply the change:
(sudo reboot)
After restarting, the display menu should have the required resolution.
One very important note: Raspberry Pi 5 does not have a standard audio port, but the sound goes through the HDMI protocol. This means in practice that this program will crash on startup unless there is a standard audio device. For this purpose, I installed this small cheap USB audio accessory (sound card).

After assembling and testing the device, I had a very unpleasant experience. Namely, out of carelessness, I mistakenly connected 12V instead of 5V and at that moment I smelled the smell of burnt electronic components. Raspberry Pi 5 was irreversibly damaged. On the display, I discovered a small SOT23-6 chip marked "LPS FtEf1" which was completely shorted and at the same time I could not find any information about it anywhere.

According to the components around it, it was almost clear that it was a BOOST chip that raises the voltage from 5V to the appropriate level to power the LED backlight. So, in place of the cathode of the Schottky diode from the boost converter circuit, I connected 20V with a limited current of 10mA. The backlight appeared with a very weak intensity and flickering. Then I gradually increased the limited current to 60mA and got a completely normal LED backlight on the Display.

Then, as a more elegant solution, I connected a cheap external BOOST converter module from 5 to 20V and with an LM317 I limited the output current to exactly 60mA. This way I got the display back fully functional (otherwise its price is around 100 Dollars.)
Now it's time to install the device in a suitable box and demonstrate its functionality. For this purpose, I made the box from PVC material and covered it with colored self-adhesive wallpaper. This is what the finished product looks like. Inside is the Raspberry Pi 5 plus the HDMI touch display module, and on the back panel is a small stereo amplifier module PAM8403, but of course a more powerful amplifier can be installed.

It have the 5V / 5A input voltage connector as well as a small toggle switch. The volume potentiometer is part of the amplifier module. As I mentioned earlier, for the software to work on the Raspberry Pi 5, you need to add an external USB sound card with appropriate input and output connectors. Its output is connected to the input of the audio amplifier.

It have the 5V / 5A input voltage connector as well as a small toggle switch. The volume potentiometer is part of the amplifier module. As I mentioned earlier, for the software to work on the Raspberry Pi 5, you need to add an external USB sound card with appropriate input and output connectors. Its output is connected to the input of the audio amplifier.

It have the 5V / 5A input voltage connector as well as a small toggle switch. The volume potentiometer is part of the amplifier module. As I mentioned earlier, for the software to work on the Raspberry Pi 5, you need to add an external USB sound card with appropriate input and output connectors. Its output is connected to the input of the audio amplifier.


When playing a song, the equalizer is active, and the long slider shows the duration and elapsed time of the song. Just like in the original, with this slider we can select the moment until which the song is activated.

As I mentioned earlier, all other functions are activated by touching the screen. By pressing the Winamp logo, we enter a menu where we can select one of four sources from which the sound would be emitted: File (that is this particular case), external USB CD player, Bluetooth source, or Spotify

Now I will present you with a special case where I will use a Stereo Tube amplifier at the output, as a symbiosis between very old and the latest technology.

And finally a short conclusion. This project perfectly fuses the iconic Winamp software with modern Raspberry Pi functionality, where every original Winamp function is fully touch-responsive on the finished product, demonstrating a successful and practical tribute to a legendary media player.

Link to the original project where you can also get a pre-installed SD card and 3D print files: https://store.linamp.org/

License
All Rights
Reserved
licensBg
0