
The Project
During my time studying, I found having to swap between Spotify and my IDE's often distracting, especially if it were just to see what was currently playing or to quickly skip through a few songs. I had also acquired a Logitech G13 keyboard, which had a small LDC screen attached to the keyboard, and as Logitech had released the SDK to use the screen, applications could be created for it. Being able to display Spotify's current playback, in a style very reminiscent to old USB Sony Walkman's and car radios, became the obvious choice for my personal G13 project.
Goals achieved
Setting up a C++ project using the Logitech gaming SDK to connect to the G13
Creating an instance of Spotify development space, to gain access to user playback information
Handled Spotify's OArth system, deciding on the session and refresh key system to keep a user's Spotify login details safe, yet still not requiring them to log in every time they wanted to use the G13 Spotify screen
Setting up a lightweight Node.js application which would launch if a user needed to log into their Spotify to use the G13 application
Setting up REST API calls to Spotify to obtain current user playback
Setting up a render loop, text rendering, and image rendering to create the screen UI
Setting up dynamic API polling to reduce the possibility of being rate limited from too many API calls
Planned Improvements
Media controls independent of the computer's inbuilt controls
Quick add to a playlist, and quick playlist select
Intelligent merge between playlists (Spotify's more detailed API calls can return attributes about songs, such as tempo and style, making the possibility to merge between playlists without large jumps in tempo and style a possibility)
Current Progress
The application in it's current state does work, and shows a user's current playback correctly, but there are still many features I'd like to add to turn the G13 Spotify controller from just being a screen to an actual tool
