Certain members of The MagPi team like a good bit of karaoke. Africa by Toto, Disney music, the theme to Mazinger Z – it’s all a bit of fun with the right people. Karaoke machines can be expensive, though, and the cheaper ones lack great functionality as well. Harry Gonzalez-Rivera came across this problem when trying to buy a commercial karaoke machine.
“About a year ago, I bought a consumer karaoke box that had USB and HDMI for about $140,” Harry tells us. “It looked awesome until I actually tried to use it: at first, the HDMI output created an audio delay and the outputof the HDMI wasn’t even 1080p. It turned out to be a conversion from composite to HDMI. Also, the USB implementation of the device [for loading files] was poorly programmed.”
After getting a smart hub for home automation, Harry spent some time trying to get it to control his TV, and one of his friends joked that he should try to automate the karaoke machine as well. Harry ran with the joke: “I decided to do some research about using an Arduino or a Raspberry Pi to control the karaoke device, using an IR emitter to change songs, or look for a way to emulate a USB. I had an old Raspberry Pi Model B hanging around and remembered my uncle had a pretty cheap but cool karaoke mixer; I decided to do everything using the Pi and continued doing some research to see what I would need to make it work.”
The mixer was quite small, so the system had to be built to an extreme size constraint, hence the use of a Pi Zero. The Pi has a 128GB SD card, and is accompanied by a USB audio card and a USB WiFi adapter that are plugged into a small USB hub. All it needs is a mic, then you can hook it up to a TV and it’s ready to go.
“Most of the research was done on the software side,” Harry reveals. “There were a few projects that people had worked on, but none of them works perfectly on the Pi. While researching, I came to the conclusion that VLC worked perfectly with no resizing, so the project runs in the native CD-G resolution of 288×192. I also wanted to make it as bare-bones as possible, so it took a lot of trial and error to run VLC with a pretty basic web back end that works perfectly.”
The full code for Harry’s karaoke box is available on GitHub, like all good projects, if you fancy giving it a go yourself. The biggest question about this project, though, is what is Harry’s favourite song to do on karaoke?
“I mostly sing La Flaca by Jarabe de Palo (I’m from Puerto Rico), but in English I have to pick Hotel California by The Eagles.”
That proves it, then: once you check into karaoke, you can never leave.