This is a C++ and Java based audio visualizer for Spotify. The project relies on two Spring-Boot applications. The first one is used to make Spotify web API calls. The second is a callback redirection service; it is used to get API access tokens. The visualizer client itself is in C++, since the original requirement was to run in the Unreal engine. However, this will no longer be the case.
In the project's current state, it provides a means to get detailed information about what song a user is listening to. This includes the song ID, song name, artist name, album name, duration of the song, and current progress in the song.
The first image shows basic information about the currently playing track.
The second image shows the real-time segment data from the song.
The goal behind this API is to provide tools that ease the development of applications that use audio processing. There are two main goals I have for this API. The first goal is the ability to detect if one audio signal is present anywhere in a different audio signal. The other main goal is to provide meaningful visual feedback in the form of a spectrogram.
Smasheo is a project that uses computer vision and audio signal processing in order to analyze the game-play of Super Smash Brothers Ultimate players.
This assignment dealt with audio processing. I was required to write an algorithm for the DFT, IDFT, FFT, and IFFT. Furthermore, I had to synthesize 3 dial tone area codes. Although the assignment indicated that we should plot the spectrograms in Matlab, I decided to write my own in Java using the FFT I wrote. I'm glad I did, as it helped me understand how the Fourier Transform works. The colors are based on the magnitude of each complex number given by the FFT algorithm. Higher magnitudes, in dB, correspond to brighter colors.
A spectrogram plotted for the 515 area code.
A spectrogram for an audio clip.
This assignment dealt with computer vision, just like the previous one. However, rather than working with still images, I worked with videos. The assignment required to manipulate a game of Breakout and to parse data from a project board running bubble sort.
This program detects the position of the ball and shows its trajectory.
This is the output of a program that finds the number of rectangular blocks in each column and displays it at the top.
This is one of the output videos from the assignment. The digits in the seven-segment display are written on the video. The LEDs are assigned a 0 or 1 depending on if they are on or not.
This is one of my favorite assignments during my college career, as it was both challenging and interesting. It required us to use concepts such as image dilation, erosion, and filtering. Below shows a gallery of source word searches and the output from the assignment.
This particle simulator was made in 24 hours for the 2019 global game jam. It features 7 different materials that each have their own properties. The source code and the executable jar can be found here: https://github.com/briang0/ParticleSimulator