Status Update – Joseph (03/23/19)

This week, I worked on a few things. Our parts arrived for the pedal we are testing against, so I spent a few hours assembling it. It took longer than I initially thought, since the circuit is fairly simple, but having to solder in a small confined space with a rusty soldering iron proved more difficult than I initially thought (I had to get another soldering iron eventually). Once the pedal was built, I tested it with a guitar to make sure it was working as intended.

I also spent considerable amount of time trying to figure out how our audio processor built on JUCE was to be integrated with the rest of our application. While JUCE made it really easy to get started and was well documented, it was difficult to get out of the environment it sets up. I spent many hours trying to get the build to work with a Makefile rather than on XCode. Though JUCE also gives users the ability to generate a CMake, it was only compatible on linux systems and not on OS X, our main target platform. I looked into an open source code named FRUT that claimed to do what I wanted, but that didn’t compile successfully either.

Considering the fact that our Audio processor is much simpler than we initially imagined it to be, we decided that the JUCE library was a lot more heavyweight than it needed to be. So, after a bit of research, I decided to switch over our platform to use Portaudio for audio I/O and Libsndfile to read audio files. These solutions are way more lightweight, requiring me to only put in two linker flags to compile. The only downside is that the documentation is way more limited — the C++ wrapper for Libsndfile didn’t have any written documentation at all, so I just had to read source code and header files to figure out what they did.

Most of the functionality of the audio processor is done now, so next week, I want to focus on our testing pipeline. I need to figure out how to split the audio signal from the guitar/preamp, and record it on two computers. One computer will have the pedal we built connected before receiving the signal, giving us a way to get both the clean audio signal and the distorted signal. With this, we should be able to run the clean signal through the circuit simulator and compare it against the real circuit signal.

Leave a Reply

Your email address will not be published. Required fields are marked *