SoundSphere

Idea
The inspiration for this project came from my desire to give an old Surface RT a new purpose instead of letting it collect dust. I wanted a practical yet elegant solution to seamlessly play music and radio through my stereo system. The idea was to repurpose the Surface RT and turn it into a dedicated Spotify and radio player that could be easily connected to the stereo.
Initially, I explored existing options such as Music Player Daemon and Volumio. Unfortunately, I encountered compatibility issues, as Volumio couldn’t be installed on the Surface RT due to its limitations. After trying several approaches and considering the unique constraints of the device, I ultimately decided to create my own web application. This way, I could design a solution perfectly tailored to my needs while bringing new life into the old hardware.

Implementation
To install custom software on the tablet, I followed the guide from Open Surface RT and installed Raspberry Pi OS. This allowed me to overcome some of the restrictions of the original operating system and run my own software.
For the framework, I chose Svelte because it seemed like an interesting and modern JavaScript framework, and I was eager to try it out. Additionally, I used Tailwind CSS to simplify the styling process and ensure a clean, responsive design. The source code for the project is available on GitHub for anyone who wants to explore it further.
To enable music playback from Spotify, I integrated the Spotify Web API©, which allowed me to seamlessly interact with Spotify’s music catalog and play tracks directly within the application. For accessing radio stations, I utilized the Community Radio Station Index API, which enabled me to search and stream various radio stations. This combination of APIs allowed me to create a versatile platform for playing both Spotify tracks and online radio stations, offering users an engaging and dynamic listening experience.
When designing the user interface, I focused on keeping it minimalistic. I wanted the interface to be visually appealing and unobtrusive, so it would blend into the environment even when the device was simply playing music in the background. This approach prioritizes clarity and simplicity, making the application easy to use and visually pleasant.
Throughout the project, I learned a lot about working with APIs and handling authentication through OAuth2, especially with the integration of Spotify.

Problems
Unfortunately, I couldn’t get the web application to run on the Surface RT. Chromium doesn’t support DRM APIs, which are essential for playing Spotify content, and Firefox kept crashing due to a lack of hardware acceleration. As a workaround, I tried converting the web application into a desktop app using Tauri. However, since Tauri relies on WebKit on Linux, which also doesn’t support the required APIs, this approach ultimately failed as well.
As a result, I had to abandon the project for the time being. However, if I find a solution in the future, I definitely plan to revisit the project and try again.