IPB

Welcome Guest ( Log In | Register )

foo_convolve - Impulse response convolver, 'Mother of all effects' plugin
Garf
post Jun 20 2003, 20:50
Post #1


Server Admin


Group: Admin
Posts: 4886
Joined: 24-September 01
Member No.: 13



Download for foobar2000 0.8.x (250K)
Please see the official additional components page for the foobar2000 0.9.x compatible version.

This DSP component takes impulse response and does a
fast convolution of the sound data with that impulse
response.

Basically, it allows quick computation of any combination of
linear effects, such as equalization, echo, flange, reverb,
phase shift and so on. It can transform the sound to exactly
the image you would get as where the impulse response was
recorded, allowing you to get an accurate reproduction of
a big theather or stadium.

This effect is available as 'Acoustic Mirror' in Sound Forge.
A restricted version is available as 'Digital Convolution'
in Cool Edit.

A small manual is included in the readme.

Some discussion about convolutions:

http://www.hydrogenaudio.org/show.php/act/...t/ST/f/1/t/9116

Edit: Added download instructions for foobar2000 0.9.x compatible version.

This post has been edited by foosion: Sep 13 2007, 10:56
Go to the top of the page
+Quote Post
 
Start new topic
Replies
DickD
post Jun 24 2003, 18:38
Post #2





Group: Members
Posts: 265
Joined: 12-January 03
Member No.: 4542



QUOTE (Garf @ Jun 23 2003 - 12:38 AM)
QUOTE

Can you add a cross channel feature?


I don't think this is worth the hassle at all, and I can't see many if any practical situations in which this would be useful.

You can crossmix after the convolver BTW. If there's a need for a crossmixer I'll make one.

Garf,

I'm not saying there's much need for crossmixing, but I do have an application. In a previous post I suggested a simple stereo ambience effect (which allows adding stereo ambience to a mono recording as well as to mono) that could ideally be implemented with cross-channel convolution.

The special case (theta = 90 per pass) has two factors which I've tried rather laboriously with Cool Edit (Delay and Amplify/Crossmix/Invert features), but it does work rather nicely with just 4 passes:

1. Delay between passes (e.g. 1152 samples at 44.1 kHz = 26.112 ms)
2. Attenuation Coefficient per pass (e.g. -18 dB)

Assume you have L and R original sample values, you end up adding a delayed and attenuated version with channels swapped and one inverted to the input signal.

You can then pass this delayed signal through the same transformation/attenuation and add that too. (By this stage it's -L and -R but delayed and attenuated)

As an example, if you have a delta function on the left channel only, delay by 1152 and attenuate by 6dB per pass (rather "wet" sounding), the output pulse switches channel with each pass of the delay and inverts when going from right to left:

L(0) = 1.0000

R(1152) = 0.5000

L(2304) = -0.2500

R(3456) = -0.1250

L(4608) = 0.0625

My previous post showed this on an argand diagram (complex number) representation, including options to use non-90 steps per pass, which could also be represented using separate left and right convolution functions.

That defines the left channel's stereo convolution function for 4 passes (in practice -18 dB is a subtler, less wet effect, and sounds rather natural). I must get round to posting some samples.

The right channel's stereo convolution function for 4 passes of -6 dB per pass, 1152 samples delay per pass would be:

R(0) = 1.0000

L(1152) = -0.5000

R(2304) = -0.2500

L(3456) = 0.1250

R(4608) = 0.0625

When used subtly, the effect is a rather polished sheen and space around recordings that can be quiet pleasant when used sparingly yet doesn't colour the sound's frequency response like some measured room effects or comb-filter stereo effects.

Compared to the Cool Edit approach I've used a couple of times now, I could actually save some steps in achieving this effect by generating the same-channel file with one convolution using your foo_convolve as it stands, then mix-pasting with a file created by convolving a cross-mixed version with a different convolution function (and auto gain off).

Further applications of crossmixed FIR convolution include playback of binaural material over loudspeakers (probably requires rather exact listener location, so probably not very useful) and probably some kinds of cancellation of room-interaction with loudspeakers (you need to generate the inverse convolution function to cancel out the effects). I suspect the frequency-flattening part of the latter doesn't need cross-mix, and cross mix might not add much value to it.

By the way, Garf, I note in the Readme.txt that you wrote it 18000 years in the future:
QUOTE
Copyright © 20003 Gian-Carlo Pascutto


Just thought I'd point it out. wink.gif

DickD
Go to the top of the page
+Quote Post

Posts in this topic
- Garf   foo_convolve - Impulse response convolver   Jun 20 2003, 20:50
- - xbenchman   Thanks Garf, Looks like a new toy to play with.   Jun 20 2003, 21:08
- - Melomane   ERROR (CORE) : Failed to load DLL: foo_convolve.dl...   Jun 20 2003, 21:32
- - Garf   Get libmmd.dll from rarewares. Does it solve thing...   Jun 20 2003, 21:48
- - DigitalMan   Garf, Thanks for creating this - it could be extre...   Jun 20 2003, 21:58
- - Garf   I reuploaded it, the new version does not need lib...   Jun 20 2003, 21:59
- - Garf   QUOTE (DigitalMan @ Jun 20 2003 - 10:58 PM)Qu...   Jun 20 2003, 22:06
- - DigitalMan   QUOTE (Garf @ Jun 20 2003 - 01:06 PM)QUOTE (D...   Jun 20 2003, 22:22
- - Garf   QUOTE Thanks, I think I can make this work for equ...   Jun 20 2003, 22:30
- - Garf   Thanks to Case the example impulses are now in Wav...   Jun 20 2003, 22:37
- - Canar   QUOTE (Readme.txt)It can do an 2 048 tap equalizat...   Jun 21 2003, 00:36
- - Garf   QUOTE (Canar @ Jun 21 2003 - 01:36 AM)QUOTE (...   Jun 21 2003, 00:45
- - Canar   QUOTE (Garf @ Jun 20 2003 - 03:45 PM)As expla...   Jun 21 2003, 05:38
- - Garf   QUOTE (Canar @ Jun 21 2003 - 06:38 AM)QUOTE (...   Jun 21 2003, 09:18
- - Canar   QUOTE (Garf @ Jun 21 2003 - 12:18 AM)How is t...   Jun 21 2003, 18:33
- - Garf   It's possible. I don't think it has much o...   Jun 21 2003, 18:38
- - lucpes   I may have found a bug: [speakers off!] downl...   Jun 21 2003, 22:42
- - lucpes   Problem "solved" by keeping the impulse ...   Jun 21 2003, 23:01
- - Garf   It's a bug - the impulse doesn't get loade...   Jun 21 2003, 23:09
- - Garf   Uploaded new version with bugfixes and speed impro...   Jun 21 2003, 23:21
- - Messer   Thanks for this truly essential tool, Garf. Tiny r...   Jun 22 2003, 02:16
- - _Shorty   you don't think this type of thing would/shoul...   Jun 22 2003, 02:50
- - Messer   QUOTE (_Shorty @ Jun 22 2003 - 03:50 AM)you d...   Jun 22 2003, 03:53
- - _Shorty   I'm not strictly confident that a mix control ...   Jun 22 2003, 09:48
- - lucpes   QUOTE (Garf @ Jun 21 2003 - 10:21 PM)Uploaded...   Jun 22 2003, 10:28
- - Garf   Updated - Added auto level adjustment - Added Wet...   Jun 22 2003, 14:18
- - Garf   QUOTE (lucpes @ Jun 22 2003 - 11:28 AM)BUG...   Jun 22 2003, 14:22
- - Messer   QUOTE (Garf @ Jun 22 2003 - 03:18 PM)- Added ...   Jun 22 2003, 16:27
- - DigitalMan   Garf, Can you add a cross channel feature? This w...   Jun 22 2003, 22:08
- - Garf   QUOTE Can you add a cross channel feature? I don...   Jun 23 2003, 00:38
- - Messer   QUOTE (Garf @ Jun 22 2003 - 03:18 PM)- Added ...   Jun 24 2003, 03:19
- - Garf   Yay, of course. I'll have to look whether this...   Jun 24 2003, 14:31
- - Garf   I just checked, and it does seem to work correctly...   Jun 24 2003, 15:48
- - Messer   D'oh! You're right. Of course I tried ...   Jun 24 2003, 16:34
- - Garf   Yup... It's padded out with silence because s...   Jun 24 2003, 16:46
- - Canar   Could you post this component on Jan's 3rd Par...   Jun 24 2003, 16:59
- - DickD   QUOTE (Garf @ Jun 23 2003 - 12:38 AM)QUOTE C...   Jun 24 2003, 18:38
- - Garf   Okay, two thoughts: 1) Maybe it would be better t...   Jun 24 2003, 19:05
- - DickD   Sorry for blowing your cover - those time cops wil...   Jun 25 2003, 12:56
- - Garf   QUOTE BTW, can I ask why you do an FFT in your plu...   Jun 25 2003, 14:06
- - KikeG   QUOTE (DickD @ Jun 25 2003 - 12:56 PM)For sim...   Jun 25 2003, 14:18
- - DickD   QUOTE (Garf @ Jun 25 2003 - 02:06 PM)The conv...   Jun 25 2003, 15:38
- - Garf   QUOTE Ah, seeing that you use FFTs to actually per...   Jun 25 2003, 16:21
- - tacitus10   Brilliant plugin! I was wondering if you migh...   Jun 25 2003, 18:01
- - Garf   For regulating delay edit the impulse. It makes no...   Jun 25 2003, 18:40
- - tacitus10   All professional digital reverbs have pre-delay sl...   Jun 27 2003, 19:42
- - Garf   I don't care what design mistakes other people...   Jun 27 2003, 20:14
- - tacitus10   Lexicon, TC, & Waves units do not use impulses...   Jun 28 2003, 15:09
- - kode54   Another interesting proposition, possibly required...   Jun 28 2003, 15:38
- - Canar   QUOTE (tacitus10 @ Jun 28 2003 - 06:09 AM)Lex...   Jun 29 2003, 20:00
- - kode54   Correction for previous request, I have no idea ho...   Jun 30 2003, 09:17
- - paradynamic   How does one go about converting Sound Forge impul...   Jul 9 2003, 00:25
- - kode54   Feed that unitpulse2k.wav through it. You can trim...   Jul 9 2003, 02:41
- - Melomane   MIX ADJUST not work fine here. Load impulse file,...   Jul 19 2003, 14:29
- - Messer   Melomane, read whole thread - I had the same ...   Jul 19 2003, 15:20
- - Melomane   Thank you Messer, now i understand. i have use fil...   Jul 19 2003, 15:53
- - Messer   QUOTE (Garf @ Jun 27 2003, 09:14 PM)I don...   Jul 19 2003, 16:13
- - kode54   There is also no way to compensate for that on out...   Jul 20 2003, 01:05
- - Garf   kode54 is correct. It's also reason why the in...   Jul 20 2003, 14:26
- - Messer   Nah, that's not really a whining, I was just ...   Jul 20 2003, 15:20
- - tigre   Garf, in case you need some more whining as motiva...   Dec 1 2003, 09:20
- - WaldoMonster   Where can I download the latest foo_convolve plugi...   Dec 29 2003, 00:23
- - tigre   QUOTE (WaldoMonster @ Dec 29 2003, 01:23 AM)W...   Dec 29 2003, 01:24
- - WaldoMonster   QUOTE (tigre @ Dec 29 2003, 01:24 AM)QUOTE (W...   Dec 29 2003, 10:45
- - tacitus10   I was wondering the processing pipeline of FooConv...   Jan 18 2004, 13:51
- - Garf   QUOTE (tacitus10 @ Jan 18 2004, 02:51 PM)Impu...   Jan 18 2004, 15:41
- - kelesh   So does anybody have a good impulse for use with S...   Jan 30 2004, 11:46
- - Messer   QUOTE (kelesh @ Jan 30 2004, 12:46 PM)So does...   Jan 30 2004, 12:00
- - Garf   QUOTE (Messer @ Jan 30 2004, 01:00 PM)QUOTE (...   Jan 30 2004, 15:17
- - Mhenckel   QUOTE (Garf @ Jun 25 2003, 03:06 PM)This is w...   Feb 2 2004, 09:04
- - Pio2001   Is it possible to add support for one impulse resp...   Apr 24 2004, 14:30
- - Paranoia   Exhibited *very* strange behaviour. Upon first r...   Apr 24 2004, 17:31
- - Garf   QUOTE (Pio2001 @ Apr 24 2004, 03:30 PM)Is it ...   Jul 29 2004, 18:45
- - Pio2001   I don't know. If you know as a fact that it w...   Jul 31 2004, 03:32
|- - Garf   QUOTE (Pio2001 @ Jul 31 2004, 04:32 AM)though...   Jul 31 2004, 12:09
- - Wizard   After reading about foo_convolve, I decided to use...   Nov 7 2004, 12:52
- - Garf   Just feed the wav through winamp??   Nov 7 2004, 13:52
- - upNorth   I think Wizard is suggesting that Winamp has a for...   Nov 7 2004, 14:14
|- - Wizard   QUOTE (upNorth @ Nov 7 2004, 04:14 PM)I think...   Nov 7 2004, 14:21
|- - wimms   Hi, Garf, you planned to add cross-channel convol...   Dec 1 2004, 16:07
- - Xenion   will there pleeease be a 0.9 version when it's...   Jan 8 2006, 22:36
|- - Garf   QUOTE (Xenion @ Jan 8 2006, 11:36 PM)will the...   Jan 21 2006, 19:12
- - CSMR   Could Garf or someone else tell me what the functi...   Jan 21 2006, 17:38
- - CSMR   Bump. If this convolver just convolves with a sing...   Jan 26 2006, 06:34
|- - graham_mitchell   QUOTE (CSMR @ Jan 26 2006, 06:34 AM)Bump. If ...   Mar 15 2006, 22:16
|- - kadajawi   QUOTE (graham_mitchell @ Mar 15 2006, 01:16 P...   Mar 18 2006, 16:08
- - CSMR   Bump   Feb 1 2006, 09:56
- - tacitus10   I was wondering if convolver in 0.9 will support 5...   Mar 19 2006, 15:55
- - tacitus10   Any news on 0.9 convolver?   Mar 22 2006, 04:53
- - skyhopper88   This is the last thing I need to feel at home with...   Apr 20 2006, 21:20
- - Xenion   same here also waiting   Apr 20 2006, 21:24
- - Wedge   i'm also missing the 0.9 convolver. any plans ...   Apr 23 2006, 11:58
- - kaiwei   I would go down on my knees if I have to. Please,...   Apr 25 2006, 17:14
- - askoff   I've been waiting this plugin also and I need ...   Apr 25 2006, 18:38
- - tintin814   is there ant plan for the development to support f...   Apr 29 2006, 07:41
- - deandob   The convolver is not part of the standard foobar i...   May 6 2006, 23:41
- - Wedge   it's available now @ http://www.foobar2000.org...   May 7 2006, 21:07
- - saivert   Regarding the way Equalization works in Winamp Win...   Jul 30 2006, 06:36
- - foosion   QUOTE (saivert @ Jul 30 2006, 07:36) Rega...   Jul 30 2006, 10:07
- - saivert   QUOTE (foosion @ Jul 30 2006, 11:07) I ho...   Aug 13 2006, 22:50
2 Pages V   1 2 >


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 26th December 2014 - 04:38