Inspiration
Acoustic guitars are incredible instruments with incredible versatility; however, we found that sometimes their sound can get a bit stale, and many players wish they could create more unique sounds and rhythms. We sought to create a device that could take in the sound of an acoustic guitar and output a modified version of it, as well as offer a looping option for players to practice over a custom-made backing track.
What it does
FlexiChord takes the signal from the pickup on an acoustic guitar and sends it into a computer running our custom Python program, which records the incoming signal and modifies the sound before playing it back.
How we built it
We have a 1/4 inch cable running from the guitar into an overdrive pedal, which runs via a 1/4 inch to 3.5 mm cable into a USB sound card. The sound card is connected to a Macbook with our Python program running on it. After the computer applies our effects based on user input, a signal is outputted through the sound card via a 3.5 mm cable into a speaker for playback.
The software records and saves the imported audio as a wav file which can then be converted to a numpy array for conducting Fourier Transformations and generating our pitch shifting effect. The looper works by continuously playing the recording wav file through the speaker until the user tells it to stop.
Challenges we ran into
We initially planned to run our program on a Raspberry Pi; however, there proved to be too many issues with installing and recognizing the Python packages, as well as recognizing the input signal. We had significantly more success transitioning our project to a MacBook as our primary computer; however, we still had hardware challenges. The sound card we were using was unable to format the analogue guitar signal into a digital signal for the computer to read, so we had to fiddle around with our components until we settled on an overdrive pedal to do the signal boosting and formatting for us. After this stage, the only hurdle facing us was the software, but we eventually figured this out.
Accomplishments that we're proud of
We are proud of persisting with the Raspberry Pi for as long as we did. Even though it did not end up working, we spent hours upon hours in the lab and exhausted nearly all possible options for importing the modules needed to make our project work. Even after switching to the MacBook, our work with the Raspberry Pi benefited us because it helped us with our familiarity with Python—a language neither one of us had any prior experience with.
Our final product includes a pitch shifting effect, and we are particularly proud of this feature. Although the effect can be improved in the future, it uses Fourier Transform and a NumPy array to do its job. These were the tools we imagined using from the very beginning, so it was awesome to even partially fulfill our vision of using FFT technology to modify a guitar signal in new and innovative ways.
What we learned
FlexiChord taught us so much about the engineering design process, particularly in using Python and Python-based tools like Jupyter Notebook. The road to a working product was a lot rougher than we expected, but the challenges we faced helped us push ourselves. Rather than relying on our past physics and computer science knowledge, we had to become more familiar with how Python, the Raspberry Pi, and NumPy worked specifically. We now understand what Fourier Transformation looks like in practice, and we are also more familiar with the inner-workings of computer software; our experiences with different operating systems, Python versions, download techniques, and terminal commands were critical to our learning process.
What's next for FlexiChord
Admittedly, FlexiChord has room for improvement. First, the hardware for our product is bulky and is not specific to our needs. We worked with what was available to us, but custom parts will make FlexiChord better. In particular, we would like to consolidate the many cables and adaptors that we have. One way to do this is with a central, custom circuit board housed in a visually appealing box of some sort. This consolidation will make FlexiChord easier to set up, easier to use, and ultimately easier to package and sell.
The software of FlexiChord also has room to grow. We would like to explore methods for refining our pitch shifting effect to make it more user-friendly, predictable, and effective. We would also like to explore adding new effects like Reverb, Chorus, and Delay. Finally, we would like to add an option to use multiple effects at once (for example, having the looper play back a recording while also amplifying live guitar audio through the same speaker with a Chorus effect applied to it).
30 second Kickstarter Video: https://youtu.be/3XcYZ6QeHMc
Log in or sign up for Devpost to join the conversation.