Thinking of good ideas is hard, so we decided to use this as more of a learning opportunity for some of our interests rather than try to build something with much practical use. We're interested in learning more about how to process audio in various ways, hence this project.

What it does

This project will take a WAV audio file and process it in various ways depending on whatever is specified by the user. The waveform will be converted into a custom audio format with a .funk extension, which can be played back using a modified vgmstream library in conjunction with foobar2000.

How I built it

We took the approach of setting up some basic infrastructure to try different modifications to the audio stream, then to try different ones until we see what sounds "cool".

Challenges I ran into

Going through the vgmstream source code and getting it to compile with the new additions certainly was difficult for us. Implementing some of the new algorithms was also reasonably difficult at times.

Accomplishments that I'm proud of

We managed to write to a custom audio format with a non-conventional format, which is pretty cool.

What I learned

Not all algorithms we used were as "funky" as we had hoped in theory, but some were definitely quite interesting to say the least. This project also gave us some good insight in how certain audio works under the hood.

What's next for Funkify

Probably nothing, unless we come up with new interesting ideas to mess with audio in a more interesting manner.

Built With

  • c++
  • cmake
  • fftw
  • vgmstream
Share this project: