Shreya’s Status Report for 2/12

This week, I looked into various methods of implementing the beat tracker algorithm. I looked at the fft’s from a basic example of a simple beat as well as the fft of a more complicated, multi instrument song. I attached both here. It can be seen that the complicated song has more noise. A majority of algorithms do not depend on filtering out higher frequencies. Instead, they suggest looking at consistency. A popular method is to determine the spikes in frequency and consider that the beat. For this game, this should hopefully be sufficient. 

I put this in lower quality for the post, so it’s difficult to see. This is the basic fft for about three minutes. As it can be seen, there is very little noise and the spikes are relatively clean.

Here, we can see the fft for a complicated song (“Drive By” by Train). Again, because of the low quality of the post, the noise levels are difficult to see, but this is significantly noisier than the previous graph, something that will have to be considered in the future.

There are several challenges that can be considered when looking at this. The examples up above show the majority of the song. Although the noise is not as apparent in the full sections of the songs, the complicated example is far noisier. Taking out this noise would take too long and be too complex to consider. However, one idea I have is to have an input (user-generated) beat pulse and use that to detect the specific beat of the current song. This is hopefully only for the beginning stages, and should be gone later as the algorithm advances. This week, I worked on looking at the implementation with this on numpy. Even processing the data is very slow on my personal device, so I’m looking at using other processing tools that would work better with our user requirements.

George’s Status Report for 2/12

Hello, welcome to my first status report for Hit It!. Hit It! is a rhythm game where the user hits drum pads with drum sticks to the beat of a song. I will be programming the user interface of the game with OpenGL and C++, and I will also be writing the code for overall gameplay flow. I chose to do graphics programmings on this project mainly because I am interested in working in the video games industry as a graphics programmer, and because I enjoyed taking Computer Game Programming last fall, which required me to make games with C++ & OpenGL.

This week on Monday we had our project proposal presentation. Over the last 2 weeks, I helped create the slide deck for the presentation and I also worked on the graphics framework for the game. I am following tutorials on graphics programming from an online textbook at https://learnopengl.com/. At the beginning of the semester, this game had zero code. Since then, I have worked on the following things:

  1. Importing libraries for graphics programming into the code base: glfw, glm, and glad
  2. Creating a window with glfw
  3. Drawing a square in the window

Right now the game looks like this:

The game can draw a square…  woah!

Each of the 3 steps listed above took several hours. I had to do quite a bit of internet research to figure out how to create a Makefile and how to compile our game. Then I needed to learn how to import gladglm, and glfw into the codebase. It took me around 5 hours or so to draw a square once the window was created, because I had to debug an issue related to how I configured my vertex and fragment shaders.

Next week I would like to add texture rendering into the game. I also want to be able to import placeholder artwork and maybe even have font rendering before the end of next week. In our schedule, we have allocated 3 weeks after the proposal presentation to test our technologies. Font rendering isn’t really necessary right how, but it would be nice if I can get it working by the end of next week so that I can use it in our prototype.

Right now I am on track to create a simple rhythm game prototype before spring break. I think that the biggest challenge for me moving forward will be balancing school with interviews and job searching. Interviewing and filling out applications takes a lot of time, which means I’ll need strong time management skills to stay on top of everything.

Project Summary

Rhythm games, like Dance, Dance Revolution or Guitar Hero, that are currently on the market are expensive and hard to set up. Other games lack the external apparatus to create an interesting and active experience for the user. “Hit It!” is a new rhythm game that combines a dynamic game interface  with a portable drum apparatus that the user can hit in time with the inputs on the screen. The user can input their own song into the game and a specially created beat map will appear on the screen, allowing the user to play the rhythm to their favorite songs on a portable apparatus. The game is great for all ages and skill levels, allowing anyone from a child to an adult to play their favorite songs.