Noise Issues
So now that all of the hardware for the computer side of the project is sorted, I thought I would start to code some of the main functions in puredata.
I opened up a patch where I tried to get a noise gate working and noticed that the noise levels from the audio card recording were rather high, noticeably so when playing guitar. The noise is actually an issue as this will effect all signal processing.
Possible reasons for excessive noise:
- The electronics are unshielded, and has a Wi-Fi dongle amongst other things attached, so interference maybe causing noise.
- I am using a pretty crude adapter to cover the 1/4" jack to a 3.5mm jack to allow an audio signal into the card.
- The guitar signal is simply too low, and the noise to signal ratio needs adjusting.
In truth, I doubt that interference is causing much of an issue, as my other sound card has never had an issue, however that has an inbuilt preamp to increase the gain of incoming audio signals.
I believe the issue lies with the weak incoming audio signal, and will need a pre-amp to adjust the levels. I will try and borrow a pre-amp from a friend to see if it makes a difference to the signal to noise ratio. I maybe able to use my Blackstar amplifier as a sort of pre-amp, just to get the gain I need to test the SNR.
Regarding the software though, because of this issue I haven't made much headway. I have found some interesting resources online though, one describing how to make a compressor using vanilla puredata with an introduction to RMS. Another source I have found shows a guy who uses puredata in essentially the same way I am, a guitar effects processor. He seems to use an Arduino as a controller for the effects in puredata. Puredata compressor: http://designingsound.org/2013/06/tutorial-a-compressor-in-pure-data/
Guitar Effects Processor:https://guitarextended.wordpress.com
![](https://static.wixstatic.com/media/6a2c8e_863fb7396091466e85ab5ad5f02bc427~mv2.jpg/v1/fill/w_980,h_551,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/6a2c8e_863fb7396091466e85ab5ad5f02bc427~mv2.jpg)
This is the patch I made in puredata. It send the audio signal through a gain multiplier, then through a low pass filter then just to the output. Before the output the signal is also sent to a 'writesf~' function which records the signal to a wav file. The block of objects to the right then plays back the recorded audio file. This was useful in determining how much the low pass filter took out of the noise, and the guitar. Of course when playing live and monitoring in real time it can be hard to see how much hi frequency content there is when you can hear the strings being played 'in real life'. The recording of the signal showed what was actually being recorded by the code. The two arrays showed a visual waveform of the inputted, and outputted signal. A pretty simple patch so far.