You might be wondering why anyone would create yet another media player in the age of streaming. The answer is simple: I couldn't find anything that met my needs.
Remember jukeboxes?
These are record-playing machines with many singles, a coin slot and a selector. They had a mechanical memory
to remember which records to play. Later, this mechanical memory was replaced by an electronic one, first partially
partly with a toroidal memory, then with a microcomputer. Companies like Wurlitzer, Seeburg, Rowe-Ami or NSM
produced these machines, commonly found in cafés and pubs until about 50 years ago. You could insert money and then select the song you
wanted to listen to. They were often operated by so-called jukebox vendors (at least in Germany), and the
venue owners received a share of the revenue.
However, as the fees and charges for playing records increased, the first cassette
recorders became available and interest in in jukeboxes waned.They gradually disappeared from public spaces, only
occasionally seen in old movies. Nowadays there are a many enthusiasts who have such devices in their party rooms or living rooms.
Many years ago, my cousin started his own business restoring and repairing such historical
jukeboxes. As a hobby, I occasionally repaired 8-bit control computers and other electronic components for him.
Recently, there has been growing interest in converting or expanding 80s devices with MP3 players.
Older mechanical jukeboxes are a different story, they need to stay true to the original. However CD models,
some wallboxes or remote selectors (a type of electromechanical remote control for mechanical jukeboxes,
google for "Seeburg wallbox"), housed in beautiful chrome cases with curved glass fronts, are often
converted, leading to special conversion kits and even replicas. Some wallbox models are off-limits for
internal modifications, but many only had their cases preserved or were mass-produced, making
modifications acceptable.
This gave me the idea of a music player with a text display, which sets us apart from other products.
As I couldn't find any appropriate software for my idea, I looked for a suitable programming environment and
started programming. I chose the Hollywood multimedia system, ideal
for the planned features. The program was supposed to play music and display the associated lyrics, with control
via the wallbox buttons. Unfortunately, because my cousin did not survive his non-Hodkins disease, a marketable
product never materialized.
So although the original goal was somewhat lost, I continued to work on it and have since expanded it into a
complete player with a graphical user interface. The required custom touch screen GUI was quite a challenge
as there are no libraries for this type of interface.
The result is a music player program for various operating systems that displays
lyrics in sync with the music, either as
LRC files (lyrics with time stamps) or embedded in
the music file.
The program plays the tracks either randomly or by playlist and can be used jukebox-style, offering tracks to
the user in the form of jukebox title strips.
(Actually, it's not quite the same. The jukebox title strip for 'Red River Rock' is a bit different, as the original
strips typically have the artist's name in the middle, with the A-side and B-side of the single listed above and below.)
The program's user interface is optimized for small touchscreens; my first resulting player is a Raspberry Pi 3 with a
5" display in the housing of a defective internet radio. However, the program has also performed well on a large
conference room screen.
And although there are many programs or applications that display lyrics along with music, I think my lyrics scrolling
feature is an innovation. I started with Lyrics Jukebox precisely because I couldn't find anything that scrolled
lyrics the way I wanted. Creating an algorithm that handled various timestamp formats and achieved smooth scrolling
without abrupt speed changes was more challenging than expected.
After several unsatisfactory attempts, I turned to kinematics calculating acceleration for given distance and time
values.
As with with any project of this kind, there is still plenty of room for improvement. For example, support for additional music file formats will be added in the future.