Subtracting sounds from white noise - approaches/feasibility etc?
Hi,
I'm attempting to subtract the sound of a live input (probably a string instrument) from white noise. The resulting idea is to create a white noise (or possibly another type of noise, but for now, white) sound which is shared between the live instruments and the PA system.
I've been looking at a couple of ways to make this work, but am a little stumped. I was wondering if anybody has any feedback or ideas - or can tell me to what extent this is possible?
My initial simple approach is FFT-based. This may not be a great idea. I have attached the patch and pfft subpatcher to this post. It is based on the simple convolution example, along with some forum posts Alex Harker has made. I am dividing the two signals, and removing the phase of the 'filter' (my live input). I get frankly terrible results with this (watch your speakers on the example I have posted - something is going wrong) - I imagine this could be due to the limitations of fft, but equally could be due to my own limitations ;-)
Quite a high latency is OK, so long as the sound quality is convincing. I am wondering if FFT is a reasonable way to approach this - eg. could i get reasonable quality with this result given that I am working with white noise, or are there better approaches, perhaps to do with filtering?
This leads me on to my second attempt - using sinusoidal output of sigmund~ to drive a cascade~ (eg. starting with white noise, and using sigmund~s analysis to filter it). This appears promising, but the big issue with this approach is that it appears that sigmund~ doesn't respond particularly well to noisier sounds. In the piece I am conceiving I imagine the possibility that the instruments will be able to create noisy sounds, which will at times essentially annihilate the white noise from the PA.
If anybody has any advice on this it would be great!
The main attached patch is noise-subtract. The pfft~ is wn-sub1
I've gone over the FFT tutorials again, and can't find anything obviously wrong with my approach. By scaling the inputs in the above patch I have managed to get a reasonable output level, but with a huge amount of artefacts in the re-synthesis. At this point I cannot tell whether the problem is attempting this in FFT, or my implementation...
Im trying to do the same thing actually! FFT Noise reduction plugins work super well but only can do a general imprint of the whole sound to be subtracted - so no live input. I tried doing this in reaktor but it wasnt working so well. Ever have any luck figuring this out?
Hi. My answer is 'sort of'. I realised I shouldn't use divide but subtract (really obvious in retrospect). The issue is that there are huge tradeoffs between frequencies and latency and windowing etc, with it being fft. But my use for this was very esoteric, and not geared towards noise reduction.
I found this, which seemed good:
https://cycling74.com/forums/fft-noise-removal-with-subtraction-of-noise-profile/
Ha - my use is quite esoteric as well.
Im having trouble understanding that patch to make it so that it can have a separate input for the white noise and the live input. What part did you modify? Thanks so much!