Re: [LAU] Create A Negative of the sound

From: F. Silvain <silvain@email-addr-hidden>
Date: Fri Apr 24 2015 - 13:08:22 EEST

Set Hallstrom, Apr 24 2015:

> Hi,
>
> Is there any software that can create a negative of the sound? I'm
> thinking of taking an arbitrary frequency bandwith, pick a center and
> invert it, so that bass becomes high, and high becomes bass? I have the
> feeling this is an impossible task due to the nature of sound.
...
Set, depending on your original signal generation there are two ideas, that I have.

If you generate the signal yourself synthetically with something like additive synthesis, it's a matter of doing some simple calculation in your synth definition.

If you take an external signal, possibly sampled, you can try FFT. Csound and other general purpose synthesizers offfer quite interesting and powerful FFT-based modules. With an FFT analysis you break down a complex signal in sinoidal componenets, i.e. pure frequencies, without overtones. In Csound you can get an array of those frequencies and their respective volumes. This changes in realtime, so you can track the movement of the signal. If you have such arrays, you could modify each frequency (bin), by something like:
knewfreq = (kmycenterfreq - kold) + kmycenter
You'd need a loop applying this operation to each bin. When you create such an analysis, you will specify the number of bins the signal should be broken down into.

Note, that there are issues with that. More bins mean less accuracy with transients. So if you have a fine frequency resolution of a bin every Hertz, means, that the hits of drums will sound muddy. If you don't want time stretching at the same time, I think you can try to lessen the effect by balancing the volume of the output to the original signal. Csound's balance opcode will take a reference signal and follow its volume (peaks and everythng) and apply this "volume curve" to the second input signal. This will only be a simplistc method and its results may have room for improvement. :-) I know, that there are better ways.

I don't know of any other technique, that would get you the same result. Perhaps there are simpler methods without the side effects of FFT. But this would work.

Ta-ta

----
Ffanci
* Homepage: https://freeshell.de/~silvain
* Twitter:  http://twitter.com/ffanci_silvain
* GitHub:   https://github.com/fsilvain
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Apr 24 16:15:02 2015

This archive was generated by hypermail 2.1.8 : Fri Apr 24 2015 - 16:15:02 EEST