IPB

Welcome Guest ( Log In | Register )

6 Pages V   1 2 3 > »   
Reply to this topicStart new topic
foo_convolve - Impulse response convolver, 'Mother of all effects' plugin
Garf
post Jun 20 2003, 20:50
Post #1


Server Admin


Group: Admin
Posts: 4884
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
xbenchman
post 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.
Go to the top of the page
+Quote Post
Melomane
post Jun 20 2003, 21:32
Post #3





Group: Members
Posts: 643
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.
Go to the top of the page
+Quote Post
Garf
post Jun 20 2003, 21:48
Post #4


Server Admin


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



Get libmmd.dll from rarewares. Does it solve things?

http://rarewares.hydrogenaudio.org/files/libmmd7.zip
Go to the top of the page
+Quote Post
DigitalMan
post Jun 20 2003, 21:58
Post #5





Group: Members
Posts: 486
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?
Go to the top of the page
+Quote Post
Garf
post Jun 20 2003, 21:59
Post #6


Server Admin


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



I reuploaded it, the new version does not need libmmd.dll.
Go to the top of the page
+Quote Post
Garf
post Jun 20 2003, 22:06
Post #7


Server Admin


Group: Admin
Posts: 4884
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.
Go to the top of the page
+Quote Post
DigitalMan
post Jun 20 2003, 22:22
Post #8





Group: Members
Posts: 486
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?
Go to the top of the page
+Quote Post
Garf
post Jun 20 2003, 22:30
Post #9


Server Admin


Group: Admin
Posts: 4884
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 smile.gif Just make stereo impulse responses.

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.
Go to the top of the page
+Quote Post
Garf
post Jun 20 2003, 22:37
Post #10


Server Admin


Group: Admin
Posts: 4884
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).
Go to the top of the page
+Quote Post
Canar
post Jun 21 2003, 00:36
Post #11





Group: Super Moderator
Posts: 3358
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?


--------------------
You cannot ABX the rustling of jimmies.
No mouse? No problem.
Go to the top of the page
+Quote Post
Garf
post Jun 21 2003, 00:45
Post #12


Server Admin


Group: Admin
Posts: 4884
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.
Go to the top of the page
+Quote Post
Canar
post Jun 21 2003, 05:38
Post #13





Group: Super Moderator
Posts: 3358
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?


--------------------
You cannot ABX the rustling of jimmies.
No mouse? No problem.
Go to the top of the page
+Quote Post
Garf
post Jun 21 2003, 09:18
Post #14


Server Admin


Group: Admin
Posts: 4884
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.
Go to the top of the page
+Quote Post
Canar
post Jun 21 2003, 18:33
Post #15





Group: Super Moderator
Posts: 3358
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... wink.gif


--------------------
You cannot ABX the rustling of jimmies.
No mouse? No problem.
Go to the top of the page
+Quote Post
Garf
post Jun 21 2003, 18:38
Post #16


Server Admin


Group: Admin
Posts: 4884
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.
Go to the top of the page
+Quote Post
lucpes
post 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
Go to the top of the page
+Quote Post
lucpes
post 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).
Go to the top of the page
+Quote Post
Garf
post Jun 21 2003, 23:09
Post #19


Server Admin


Group: Admin
Posts: 4884
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.
Go to the top of the page
+Quote Post
Garf
post Jun 21 2003, 23:21
Post #20


Server Admin


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



Uploaded new version with bugfixes and speed improvements.
Go to the top of the page
+Quote Post
Messer
post 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.
Go to the top of the page
+Quote Post
_Shorty
post 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.
Go to the top of the page
+Quote Post
Messer
post 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 wink.gif Especially in reverb, hrtf-related effects and similiar stuff. It's just an easy and fast way to adjust "amount" of effect you'd like at the moment. It's not "a must" for convolver, but that was first thing that I've been kinda "missing" while I was playing with IRs converted from SF Acoustic Mirror wink.gif

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.
Go to the top of the page
+Quote Post
_Shorty
post 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.
Go to the top of the page
+Quote Post
lucpes
post 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 tongue.gif dammit... I need to get new fuses smile.gif

This post has been edited by lucpes: Jun 22 2003, 13:32
Go to the top of the page
+Quote Post

6 Pages V   1 2 3 > » 
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: 2nd September 2014 - 06:08