ARTS 4160 Final Project
Multi Effects Pedal
Follow My Bog
Jan 15, 2020
First Ideas for the project; Create a physical effect pedal rack which will take real time signal and manipulate the sound. Made in PD. Be able to convert a mini midi keyboard into an effect pedal. Goal of project; To create a physical object which performers will be able to use in live performances to create weird sounds out of their instruments.
Jan 22, 2020
This week I took a look at what the hardware for my effects pedal could be. I am interested in using something like a raspberry pi that I can load up Puredata in which would process incoming signal on time. As a raspberry pi is not optimized for real time audio processing, I am interested in using the Bela Boards.
I will 3d Print a box like casing for the board with a quarter inch input and output. I will implement several knobs and switches for parameters such as a Dry/Wet, Amount and others depending on the effects. Im not exactly sure on how I would buy these controllers yet though.
hopefully my final project will look something like this
Jan 27, 2020
some ideas for the project
Jan 29, 2020
February 5, 2020
Started working on designing the hardware aspect of effect pedal.
Still deciding between Raspberry Pi and Bela -> Cost to performance.
3d print the outside box part and a buy an effects pedal kit for Arduino. Don’t know how well the hardware will work with Bela if it’s created for Arduino but i’ll hopefully make it work.
Started working on the Pure-Data patch with what I have right now. As I want to make it a multi-effect pedal, I will have to create a way to change the parameters of the effects on the fly while the performer is performing. Maybe I can use my phone to control these certain parameters so I won’t need to carry my laptop along with my pedal. Also have to find a way to change between effects on the fly as well.
Feb 9, 2020
- Started working on distortion PD patch
Super simple distortion patch ->
A little more complex. Added distortion amount and post gain.
Added Pre as well
For next week to make band pass filters to clean up distortion sound
Feb 12, 2020
Started working on filters to clean up the distortion sound. Not working for some reason.
Realized that I didn’t have the amount the Band pass filters subtracted from the signal. Still not working 😦
Changed the values for frequencies subtracted. Still Not working ugh
First I cleaned up everything by using sub-patch for filters
Finally got it to work. I didn’t put any value for the signal to be multiplied by in the “*~”(Whoops). I still need to figure out the Q for the bandpass filter.
Next week goal; create reverb and delay
Feb 17, 2020
Reverb upon further research seems very hard and would seem to take a while to create lol.
I will work on delay first. I found a cyclone library with a delay object so it should make it easier.
Feb 19, 2020
These bad boys came in the mail today. I am playing around with them by trying to download puredata into them. I have run into several problems such as the guitar signal clipping when plugged into the bela through a quarter to aux adapter. I have to figure several things out to get clean signal through the amp.
Mar 25, 2020
Big gap since last post because of corona virus and mid-term presentations.
I’ve made a prototype effects box with the bela with an Input and Output. Through this, I was able to upload my distortion patch and reverb patch to the bela itself.
Connection between PC and Bela happens over Ethernet by the USB connection. Once connection is established, I uploaded my pure data patch to the Bela, like so…
Mar 29, 2020
Next I attempt to use a midi controller to control certain parameters of my patch (Distortion amount etc.)
Connected to Midi controller, Midi is controlling parameters in the distortion patch like pre-gain, post-gain etc.
Apr 5, 2020
Brain storming ideas for new patch.
Potential ideas -Harmonizer -Automatic Beat Sequencer
As Harmonizer seems the most interesting, that is what I will be working on.
Ideas for Harmonizer; Real time harmonization of audio signal in a way where the sample will sound layered. Automatically generate chords that make sense. Has to sound seamless (The generated layers cannot come in a few seconds after the original). The original signal will be the root note.
This effect in the effects pedal should be able to test the bela’s capabilities pretty well as processing audio signals coming in to change its pitch and layer on top of the original signal in real time should be quite taxing on the computer.
Order of things to be done-> First detect the pitch of original signal. Using that pitch, calculate intervals on top which would create chords. Re-pitch original signal to match those intervals. (PROBLEM; How can I create something that would calculate intervals that would make sense with the chords one before? How can I incorporate basic music theory with this project)
APR 12, 2020
First I will start by creating a pitch detection patch
First I start by using sigmund~ in puredata which detects pitch of audio samples.
After researching sigmund~ a little more I decided to use its sinusoidal peak capabilities to calculate out the most prominent peak in the audio sample. This would serve as its root frequency.
Then for testing purposes I add a sine osc to see if it was really tracking the audio signals.
The osc seemed to pick up the signal’s frequency very well showing how sigmund was able to calculate out the root frequency for the guitar fairly well.
As the pitch tracking is monophonic, I was able to do this pretty easily while if polyphonic I would’ve had a way harder time. For the next week I will create a harmonizing device using preset intervals above the fundamental frequency which I will use as a base.
April 19, 2020
Once I was able to pitch track the incoming signal, I was able to hardcode intervals above the root note which would be tracked at real time and chords would be created. In this instance I used a C major chord as the base chord so E would be 220 hz above the root note etc… I then created certain limits to the signal to weed out noise and unwanted fluctuations in the tracked pitch.
For next week I need to create a Karplus strong model to mimic the sound of the guitar signal.
April 26, 2020
I then started working on a Karplus Strong synth to replace the sin osc. I couldn’t really figure out how to integrate this Karplus strong model into the harmonizer so I resorted to using a phasor to create the sounds.
The Phasor actually proved very nice for the application in which I was using this which is mainly harmonizing plucks. The sawtooth wave sound created an interesting video game like harmonizer.
As this concludes my project for the year, I still have much more to do to improve upon it on my own. One of the biggest things being shifting intervals of the notes making up the chords in the harmonizer. Although the fixed intervals gives an idea of how the harmonizer would work, it is however not at levels where you could use this in real performance. In the future, I would like to continue working on these patches to create many more patches which I will be able to use in performances.