Page 1 of 1

Cross-Synth/Convolution Module

Posted: Fri Dec 28, 2018 12:53 pm
by E8_Heterotic
This is a strange request, but a very interesting module would be a convolution-based cross-synthesis module which takes 2 sounds as inputs and then convolves them together. The best way to do this is to take a FFT of both incoming signals and multiply the amplitude of the corresponding frequencies. Then, you can FFT back in order to get the sound desired.

Convolution can produce 2 unique effects:

1. Custom reverb. If you have a "click" sound which was recorded in a specific location, you can take this recording, which is called an "impulse response," and convolve it with any other sound signal, beta. The result of the convolution will sound like signal beta is being played in the particular location the click was recorded. This allows for very specific and very unusual reverb.

2. Cross-Synthesis. This is a strange method of synthesis that "impresses" the spectrum of one sound onto another. You can impress the resonances of one instrument onto another. You can create a kind of "vocoding" by impressing a human voice onto another signal. There are a lot of strange and creative things you can do with it.

Uses for convolution:

https://www.soundonsound.com/techniques ... -responses

Re: Cross-Synth/Convolution Module

Posted: Fri Dec 28, 2018 8:28 pm
by queries
I am pretty sure convolution is simpler in algorithm than you describe. It's just multiplication, no FFTs.

https://en.m.wikipedia.org/wiki/Convolution_reverb

I think it may require a sampler style module though, to store the impulse response. Since the samples of the impulse response are used over and over during the convolution process, I am not sure if that could be accomplished using an external control signal.

For modulating amplitude or frequency in real-time, try out the different modes of the existing Modulator module.

Re: Cross-Synth/Convolution Module

Posted: Sat Dec 29, 2018 12:37 am
by E8_Heterotic
queries wrote: Fri Dec 28, 2018 8:28 pm I am pretty sure convolution is simpler in algorithm than you describe. It's just multiplication, no FFTs.

https://en.m.wikipedia.org/wiki/Convolution_reverb

I think it may require a sampler style module though, to store the impulse response. Since the samples of the impulse response are used over and over during the convolution process, I am not sure if that could be accomplished using an external control signal.

For modulating amplitude or frequency in real-time, try out the different modes of the existing Modulator module.
It's multplication in the frequency domain. In the time domain (i.e. signals), it's a kind of multiplication combined with integration. You need the FFT to convert a signal into its frequency components.

Convolution is identical to ring modulation but on the frequency side instead of the time side.

Re: Cross-Synth/Convolution Module

Posted: Thu Jan 17, 2019 11:23 am
by Keres
CPU is really important for sunvox since the Java plug-in was released. I think the real hardcore plugins are those made to sound like high-dollar plugins but work well underneath the constraints of a POS processor... Like on this cell phone. It's all about the sound, so maybe try all pass filters or something?

Re: Cross-Synth/Convolution Module

Posted: Sun Jan 20, 2019 9:31 am
by E8_Heterotic
Keres wrote: Thu Jan 17, 2019 11:23 am CPU is really important for sunvox since the Java plug-in was released. I think the real hardcore plugins are those made to sound like high-dollar plugins but work well underneath the constraints of a POS processor... Like on this cell phone. It's all about the sound, so maybe try all pass filters or something?
Unfortunately, the only way to do convolution somewhat quickly is via fast Fourier transforms. Convolution is somewhat CPU intensive. Certainly convolutional neural networks eat immense CPU power. Convolving just 2 audio signals is far less intensive, but it still might take a bit of work.

Re: Cross-Synth/Convolution Module

Posted: Sun Jan 27, 2019 11:28 am
by Keres
It's not that CPU intensive... It's just sunvox real-time dsp mod CPU intensive. It could fit nicely as an effect in the sampler module. Say you loaded 2 samples in some slots, u could calc a 3rd from those 2 (by %) in another slot. Then just use a sample of it. I think I talked my experience with abox2.4 before. That software does it in real-time. It's not the best sounding... Based on what I could do with an 800Mghz intel. It kind-of runs in wine. It's hand coded as for a windows interface.

https://sites.google.com/site/analogbox2/

Anyways, good luck.