Working with Pure Data

I initially planned to use the MIDI data coming in from the sensor + Arduino directly in my DAW of choice Cubase. This, however, proved to be difficult because either Cubase is not really suited for this kind of external input, or I do not know Cubase well enough to make it work. Although, I could select the Arduino as a MIDI input in Cubase, I only managed to assign some parameters to be controlled and these were not the parameters I needed. Consequently, I abandoned the idea to use my DAW (for now) and decided to try it with Pure Data since my goal for now is only to try things out and I do not need a perfect setup yet – only a working one XD.

Luckily, I managed to write a patch in Pure Data that receives the MIDI input from the sensor + Arduino and allows me to use it further. With no DAW plug-ins at hand, I had to make my own  and with some help from YouTube I made a delay. I subsequently assigned the incoming MIDI data to the delay parameters and played the guitar to see how I could change the delay parameters through my playing. The parameters controlled by the sensor data were “Delay Time”, “Feedback Amount” and “Delay Volume (dry/wet)” respectively. I made the following observations:

The sensor measurements and consequently the MIDI values fluctuate quite a bit even when I try not to move my fretting hand at all. This is not ideal, particularly for controlling the “Delay Time” and “Feedback Amount” parameters. Additionally, dropouts occur from time to time with the MIDI value dropping to zero before going back up to the initial value which of course ruins the delay settings. I think this problem could be solved by defining certain MIDI note ranges e.g. from 97 to 103 where the effect parameters still stays the same. This way one could achieve more constant settings.

There are annoying clicks when the delay parameters change. I tried to smooth the transitions with a PD “line” object but the clicking did not really improve. I do not know what causes this problem and how to deal with it at the moment.

I had the greatest success with using the MIDI data to switch the delay on and off depending on if one is above or below a certain point of the fretboard. I discovered and used the PD “moses” object to turn the delay off for basic chords in the lower region of the fretboard and to turn the delay on if I reach up for higher frets. This setup is not harmed by the fluctuating problem since there is more room for error so to speak: If MIDI values over 50 mean ON, then it does not matter if the value is 56 or 60, the effect will stay ON.

To complement this discovery, I made a custom overdrive/distortion effect in Pure Data using the “clip” object. It is not a Tubescreamer but it serves my purpose. I also used the MIDI data as a means to turn the effect on and off and it works really well. There are only some latency issues.

The possibility to turn an effect on above a certain fret and turn it off when below this fret is one important step towards my envisioned “Solo Mode” so I am pretty happy that I made it work and achieved the first goal of my project.

Leave a Reply

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