foo_convolve - Impulse response convolver, 'Mother of all effects' plugin |
![]() ![]() |
foo_convolve - Impulse response convolver, 'Mother of all effects' plugin |
Jun 20 2003, 20:50
Post
#1
|
|
![]() Server Admin Group: Admin Posts: 4810 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 |
|
|
|
Jun 20 2003, 21:08
Post
#2
|
|
|
Group: Members Posts: 144 Joined: 14-October 02 From: USA Member No.: 3545 |
Thanks Garf,
Looks like a new toy to play with. |
|
|
|
Jun 20 2003, 21:32
Post
#3
|
|
|
Group: Members Posts: 640 Joined: 13-January 03 From: Marseille Member No.: 4552 |
ERROR (CORE) : Failed to load DLL: foo_convolve.dll, reason: Unable to load dll.
win98 se foobar 0.667 -------------------- Music is my first love.
|
|
|
|
Jun 20 2003, 21:48
Post
#4
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
Get libmmd.dll from rarewares. Does it solve things?
http://rarewares.hydrogenaudio.org/files/libmmd7.zip |
|
|
|
Jun 20 2003, 21:58
Post
#5
|
|
![]() Group: Members Posts: 477 Joined: 27-March 02 From: California, USA Member No.: 1631 |
Garf,
Thanks for creating this - it could be extremely powerful. libmmd.dll fixed this same error for me. Question - what tools would you recommend for creating custom impulse responses, say for a room correction amplitude equalizer? Could this be done with Sound Forge? -------------------- Was that a 1 or a 0?
|
|
|
|
Jun 20 2003, 21:59
Post
#6
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
I reuploaded it, the new version does not need libmmd.dll.
|
|
|
|
Jun 20 2003, 22:06
Post
#7
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
QUOTE (DigitalMan @ Jun 20 2003 - 10:58 PM) Question - what tools would you recommend for creating custom impulse responses, say for a room correction amplitude equalizer? Could this be done with Sound Forge? I have no experience with 'room correction amplitude equalization', but basically, if you find a single tool that can do it, and allows you to feed the impulse through it, you're set. You can even use analogue equipment. |
|
|
|
Jun 20 2003, 22:22
Post
#8
|
|
![]() Group: Members Posts: 477 Joined: 27-March 02 From: California, USA Member No.: 1631 |
QUOTE (Garf @ Jun 20 2003 - 01:06 PM) QUOTE (DigitalMan @ Jun 20 2003 - 10:58 PM) Question - what tools would you recommend for creating custom impulse responses, say for a room correction amplitude equalizer? Could this be done with Sound Forge? I have no experience with 'room correction amplitude equalization', but basically, if you find a single tool that can do it, and allows you to feed the impulse through it, you're set. You can even use analogue equipment. Thanks, I think I can make this work for equalization. By the way, any chance this plugin could be made to have the option for separate impulse responses for each channel? I'm interested in equalization and that would help a lot. Also, is it correct to assume that the impulse response must be created with the same sampling rate as the file to be convolved? If not I would expect the time/frequency values would shift. -------------------- Was that a 1 or a 0?
|
|
|
|
Jun 20 2003, 22:30
Post
#9
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
QUOTE Thanks, I think I can make this work for equalization. By the way, any chance this plugin could be made to have the option for separate impulse responses for each channel? I'm interested in equalization and that would help a lot. Way ahead of you QUOTE Also, is it correct to assume that the impulse response must be created with the same sampling rate as the file to be convolved? If not I would expect the time/frequency values would shift. Correct. |
|
|
|
Jun 20 2003, 22:37
Post
#10
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
Thanks to Case the example impulses are now in WavPack format (which foobar can read by default, you needed a plugin for the FLAC ones I had before).
|
|
|
|
Jun 21 2003, 00:36
Post
#11
|
|
![]() Group: Super Moderator Posts: 3268 Joined: 26-July 02 From: princegeorge.ca Member No.: 2796 |
QUOTE (Readme.txt) It can do an 2 048 tap equalization at 42 times realtime. The default 18 tap foobar2k equalizer runs at 30 times realtime. In effect, it can equalize faster than the equalizer can. How difficult is it to generate the tap data from the equalization parameters? -------------------- (atrix|(fb2k->e-mu 0404 usb|audio 8 dj))->hd280|jvc ha-fx35-b
|
|
|
|
Jun 21 2003, 00:45
Post
#12
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
QUOTE (Canar @ Jun 21 2003 - 01:36 AM) QUOTE (Readme.txt) It can do an 2 048 tap equalization at 42 times realtime. The default 18 tap foobar2k equalizer runs at 30 times realtime. In effect, it can equalize faster than the equalizer can. How difficult is it to generate the tap data from the equalization parameters? As explained in the readme, just feed an impulse through your effect of choice. In this case, diskwrite 'Unitimpulse2k.wav' with EQ settings of choice enabled. If you want to, you can speed it up further by editing the resulting WAV with a sound editor and cutting the near silence before and after the impulse. |
|
|
|
Jun 21 2003, 05:38
Post
#13
|
|
![]() Group: Super Moderator Posts: 3268 Joined: 26-July 02 From: princegeorge.ca Member No.: 2796 |
QUOTE (Garf @ Jun 20 2003 - 03:45 PM) As explained in the readme, just feed an impulse through your effect of choice. In this case, diskwrite 'Unitimpulse2k.wav' with EQ settings of choice enabled. Ah, so it can't be done algorithmically? -------------------- (atrix|(fb2k->e-mu 0404 usb|audio 8 dj))->hd280|jvc ha-fx35-b
|
|
|
|
Jun 21 2003, 09:18
Post
#14
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
QUOTE (Canar @ Jun 21 2003 - 06:38 AM) QUOTE (Garf @ Jun 20 2003 - 03:45 PM) As explained in the readme, just feed an impulse through your effect of choice. In this case, diskwrite 'Unitimpulse2k.wav' with EQ settings of choice enabled. Ah, so it can't be done algorithmically? How is this not 'algorithmically'??? You need to transform the frequency response of the EQ into an impulse response. Guess what diskwriting the impulse with EQ enabled does... Edit: I guess that you're asking whether it's possible to make an EQ component that uses the foo_convolve engine as a backend for the equalizer. Yes. In fact I checked and there are similarities between the current backends, but my code is faster, and you can finetune the filter length. Not to mention it also works in stereo. |
|
|
|
Jun 21 2003, 18:33
Post
#15
|
|
![]() Group: Super Moderator Posts: 3268 Joined: 26-July 02 From: princegeorge.ca Member No.: 2796 |
QUOTE (Garf @ Jun 21 2003 - 12:18 AM) How is this not 'algorithmically'??? You need to transform the frequency response of the EQ into an impulse response. Guess what diskwriting the impulse with EQ enabled does... Edit: I guess that you're asking whether it's possible to make an EQ component that uses the foo_convolve engine as a backend for the equalizer. Yes. In fact I checked and there are similarities between the current backends, but my code is faster, and you can finetune the filter length. Not to mention it also works in stereo. I mean directly calculating the tap data, rather than running a Dirac pulse through a system and finding its impulse response. Ack. I think I need to start being more specific when I'm posting about technical stuff... -------------------- (atrix|(fb2k->e-mu 0404 usb|audio 8 dj))->hd280|jvc ha-fx35-b
|
|
|
|
Jun 21 2003, 18:38
Post
#16
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
It's possible. I don't think it has much of a point though. The advantage of the convolver is that it's infinitely flexible and that you can combine the equalization with any other effect.
|
|
|
|
Jun 21 2003, 22:42
Post
#17
|
|
|
Group: Members Posts: 517 Joined: 9-October 01 Member No.: 254 |
I may have found a bug:
[speakers off!] download one of the files that are here: http://www.geocities.com/beamsonic/studio.htm, Garf Edit: We killed the site. I uploaded files to http://sjeng.org/ftp/fb2k/analogue.zip (I took the DBX 160 file) open in wave editor, keep only first 16384 samples, duplicate channel to get stereo, then save & set as impulse file in FB2k. Play something, then close FB2k. Open it and play the thing again, but now go into DSP properties to the convolver settings. You'll be granted with either a crash or a very loud distorted sound (kinda like microphone feedback). edit: added speakers off warning... This post has been edited by Garf: Jun 21 2003, 23:46 |
|
|
|
Jun 21 2003, 23:01
Post
#18
|
|
|
Group: Members Posts: 517 Joined: 9-October 01 Member No.: 254 |
Problem "solved" by keeping the impulse sample as short as possible (trimming the impulse to get most of the 0's around it out).
|
|
|
|
Jun 21 2003, 23:09
Post
#19
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
It's a bug - the impulse doesn't get loaded when the config panel isn't opened. Will fix.
Edit: You don't need to convert to stereo - the component will convert automatically. |
|
|
|
Jun 21 2003, 23:21
Post
#20
|
|
![]() Server Admin Group: Admin Posts: 4810 Joined: 24-September 01 Member No.: 13 |
Uploaded new version with bugfixes and speed improvements.
|
|
|
|
Jun 22 2003, 02:16
Post
#21
|
|
![]() Group: Members Posts: 568 Joined: 6-May 02 From: Warsaw / Poland Member No.: 1977 |
Thanks for this truly essential tool, Garf.
Tiny req: I think that "dry/wet" slider would be nice for your tool. |
|
|
|
Jun 22 2003, 02:50
Post
#22
|
|
|
Group: Banned Posts: 694 Joined: 19-April 02 Member No.: 1820 |
you don't think this type of thing would/should be an all or nothing affair? Seems to me that your impulse response would be giving you exactly what you wanted and there wouldn't be any need for mixing it with the original.
|
|
|
|
Jun 22 2003, 03:53
Post
#23
|
|
![]() Group: Members Posts: 568 Joined: 6-May 02 From: Warsaw / Poland Member No.: 1977 |
QUOTE (_Shorty @ Jun 22 2003 - 03:50 AM) you don't think this type of thing would/should be an all or nothing affair? Seems to me that your impulse response would be giving you exactly what you wanted and there wouldn't be any need for mixing it with the original. Well, yes, you're probably right. I'm just used to wet/dry sliders in DSP effects Guess it could also be general request for DSP manager, but there are some plugins (like gap killers, crosfaders...) that couldn't utilize this functionality for any reasonable purpose... So, no. |
|
|
|
Jun 22 2003, 09:48
Post
#24
|
|
|
Group: Banned Posts: 694 Joined: 19-April 02 Member No.: 1820 |
I'm not strictly confident that a mix control would be useless in this case, it was just a thought, given how it operates.
|
|
|
|
Jun 22 2003, 10:28
Post
#25
|
|
|
Group: Members Posts: 517 Joined: 9-October 01 Member No.: 254 |
QUOTE (Garf @ Jun 21 2003 - 10:21 PM) Uploaded new version with bugfixes and speed improvements. Thanks!!! Now if I can borrow a tube preamp... it would be great... muhahaha B) edit: @Garf: can you include these in the analogue 'pack' (the pipeline preamps)? http://www.noisevault.com/index.php?page=3.... BUG! [speakers off...] what happens if I load a 32bit float (IEEE) file as the impulse file? -> answer: blown tweeter fuses This post has been edited by lucpes: Jun 22 2003, 13:32 |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 20th June 2013 - 02:19 |