Inspiration
From the humble beginnings of a beat up record player we resurrected life anew. With the theme of Supercharge we started brainstorming how we could take hobbies we were passionate about and supercharge them! Many of us shared a great passion for music and album art and we wanted a way to incorporate that into how we enjoyed music on a daily basis.
What it does
ViVis listens to what you're listening to and supercharges it! Taking in either input from a vinyl or Bluetooth ViVis will display what song you're listening to, the artist that sang it, and an album cover associated with that song to incorporate all parts of the music into one place.
How we built it
ViVis uses the ACRcloud and Spotify Web APIs to take a .wav file, gather information about the song and then display it. The program is written in Python and then run on a Raspberry Pi 4 Model B. Input is taken in through a microphone secured in the chassis of the unit. Video output is routed to our display and audio output to our speakers.
Challenges we ran into
Taking audio input was a big task that had many road bumps. An earlier vision of programming our own audio capture cards and implementing our own digital signal processing was plagued with frequent problem of microcontrollers being burnt out and not reading in data. We were working with the analog output from the turntable directly, but we had issues with high frequency noise and the wide range of possible signal levels. This lead to a "bodge" whereby we modified an off the shelf sound card and pivoted to instead using a more conventional microphone to ingest audio, leading to a much cleaner operation in the long run. However, we want to move back to a custom ingestion system eventually so that we can implement DSP on the STM32 capture cards to optimize for track recognition.
Accomplishments that we're proud of
There's a lot we're proud of over the course of the project. We're really proud of the display and the clean form of the unit as well as how reliably it takes in input.
What we learned
We learned a lot across each of our skill sets. We learned more about tkinter to display graphics using Python. We learned how to interact with APIs and how to work on a project as a team with splitting up work and joining it together as the need presents itself to create a final project.
What's next for ViVis
We have a lot of ideas of what to do next with ViVis, we want to further polish the display to support scrolling text for names that exceed the bounds of our screen. We would still like to move back to a sound card in order to not worry about environmental noise when collecting our data. As well as using previous played songs to support the album cover chosen for future information displays. More fundamentally, we want to fetch and display more information such as lyrics synced to the track being played as well as optimize it for minimal external web requests using caching and intelligent identification of track changes.
Built With
- acrcloud
- python
- raspberry-pi
- spotify
- stm32
Log in or sign up for Devpost to join the conversation.