| FFT experiments - review |
[Jun. 11th, 2006|04:40 am] |
A few months ago, I posted a list of random ideas that I wanted to try out once I'd gotten some code up and running that would do FFT transforms on audio. I actually got the core of it working within a few days, and did a lot of monkeying with it, but didn't really refer back to my list, so now I shall look over the whole thing and see how I fared.Fauxverb - a synthesized reverb-like trail off the end of a sound. For each bin, look at the previous frame, and if it is less than X% of the previous amplitude, bring it up to that. We could even extrapolate the phase change from the previous two to be more exact. Could be made more controllable by making the value of "X" dependent on the frequency. I have not tried that yet. I should. It wouldn't take me more than five minutes to write the function.Isolate - reject all sound that isn't panned within a certain region. Should be able to reasonably dissect stereo recordings into more than two channels. This actually worked better than I thought it would. I now have an app that I've compiled for both mac and windows which will slice a stereo field up into "regions" to make artificial 5.1 mixes. There are "stereo to 5.1" programs out there but I don't think they actually do this!Max-mix - mix two sounds together, then adjust the amplitude of each bin to the louder of the two originals. This should counteract phase cancellations, if you're trying to replace an instrument that's already there - i.e. you're doubling a bass line but you don't want it to get quieter and louder as the old bass and new bass go in and out of phase with each other. Haven't really tried.Overflow - if there is too much energy in any one bin, reduce it to a certain limit and carry what you removed over into higher multiples of that frequency. This should add a gentle "brightening" to tones that are a little too loud. A problem I can already see with this is that it involves pitch shifting, which is more complex than I'm ready to handle. (I actually tried some uneducated pitch-shifting, and it didn't work right.)Phase align - force the left and right channels to be in phase. Louder bins get more weight. I don't know what this would be good for but I'd be curious to hear it. This would be like "max-mix" but keeping the signals separate. You could then just mix them together for the same effect.Smart limit - same as "overflow" but just throw the extra energy away instead of carrying it over. I have done this to an extent, but it didn't seem to do much until I set it to a harsh amount, and then all it did was make it noisy because it brought out all the quiet frequencies. Useless. Gone!The twist - gradually shift one channel's phase by +90 degrees and the other by -90 degrees so that a sound goes 180 degrees out without changing the overall level of either channel. May have a small impact on perceived pitch in each channel. This actually works. The sound doesn't seem damaged or distorted, but in the headphones appears to "rotate" without actually panning. In mono, the overall volume changes but there is no flanging or phasing type effect. If I can figure out how to write plugins, this might make a good one. Using a constant shift value would make a sound quieter in mono without being quieter in stereo. (Is anyone ever going to hear it in mono nowadays?)The watusi - sorry, there will be no such thing as "the watusi". Unless you can think of something. No "el dorado" either. Take this, brother, may it serve you well. Since there's no list item for it, I could call my "shepard flanger" the watusi. Or I could call it "shepard flanger". It's a comb-shaped filter that moves up or down infinitely, sounding very much like a flanging effect, but which would be impossible to do with an actual flanger (unless you carefully crossfaded between multiple flangers so that only the rising is ever heard).Total separation - for two sounds that are recorded with microphones near each other, like an acoustic guitar and vocal. For any bin, if it is louder in the left, silence the right altogether, and vice versa. I've tried this out on acoustic guitar and voice, and would recommend trying to get as much natural separation as possible first. There were odd moments when one sound "swallowed" part of the other one.Transient - any bin that is louder in this frame than the one just before it and just after it is considered a transient - it can be removed by replacing this bin with an average of the one before and after it. (I might try to work this out so a transient can last for two frames, since it might fall right between two.) This doesn't really work. At all. |
|
|