Hardware convolution reverb: remotely possible?

Started by Taylor, June 06, 2008, 10:48:40 PM

Previous topic - Next topic

Taylor

I don't know anything about DSP. I love using convolution reverb plugins, but usually not for reverb. Convolving a piano with a ride cymbal, for instance, creates a wonderfully bizzare sound. I would love to have it available in a dedicated hardware effects, whether pedal, desktop, or rack.

Now, even though I know nothing about DSP, I know that convolution uses a lot of resources in a computer, and by extension, I would expect it to need a very poweful processor to work as hardware. However, I'm wondering if maybe having something designed specifically for this purpose, and with no other job to do, would make it more efficient.

Can anyone with knowledge on this subject tell me if this is something that could be done by a skilled DIYer (like you, for instance)?

TELEFUNKON

the closest related easy hardware DIY thing would be a vocoder

majormono

Apart from the Receptor by Muse Research, which is a 19" host for VST-plugins including convolution plugs, there's been the Sony DRE-S777 (but I am uncertain which type of hardware it used). Since there are lots of free convolution plugins and Laptops around, the might be little commercial sense in designing and producing a hardware version I guess (even more as a DIY project).

tommy.genes

One problem with convolution reverb in real time: you have to convolve your incoming signal with the reverse of the impulse, so you have a minimum latency equal to at least the length of your impulse sample. That's even before you consider any computer or sound card latency. So you could imagine that a really long impulse sample, like a cathedral, could make the effect unplayable in real time. Having said that, however, some guys do use convo verbs in real time in computer recording by carefully selecting their impulse and by tolerating a few milliseconds of latency.

Now as to making a DIY convo verb? AFAIK, most convolution plugins are written for personal computers (I mean that generically, PC or Mac), so a DIY convo pedal would have to be, essentially, a PC in a pedal. That's the same reason why there are very few "pedals" that run VST plugins, and why those are quite expensive.

I'm not sure how convo algorithms compare/relate to other native DSP code, so I'm not sure if you can develop a convo program for a DSP-based system like the Line 6 Tone Core Development Kit, if/when that ever comes out.

-- T. G. --
"A man works hard all week to keep his pants off all weekend." - Captain Eugene Harold "Armor Abs" Krabs

SeanCostello

Convolution reverb does not work with the reverse of the impulse - that would be reverse convolution reverb.

Most convolution reverbs use frequency domain techniques, as convolution in the time domain corresponds to multiplication in the frequency domain. To have longer impulses with low latency, the standard technique is to use sectioned overlap/add convolution. Many of the plugins make use of techniques similar to those in the Lake DSP low-latency convolution patent, where the impulse is divided into unequal length sections that are overlapped and added together.

A high powered DSP would be able to perform convolution, no problem. The Tonecore development kit uses a Freescale DSP56364, running at 100 MHz, which would probably not be powerful enough. You would want to use a SHARC 21369, TI 6713/672x, or TigerSHARC to run a convolution reverb. All of these processors are optimized for running very fast FFTs, which is what you are looking for.

Another option: create your own hardware using a FPGA. You could implement a brute-force FIR based convolver, a processor optimized for FFTs, or a combination of the two.

Personally, I think that convolution reverbs are a waste of computational resources, considering how much cheaper it usually is to run a Lexicon-style allpass loop on the same hardware. In some cases, it might be a toss-up as to which algorithm makes the most sense. Systems with fast FFTs and DMA-based memory access (i.e. slower access to a random sample, but pretty quick at bringing in blocks of data once the desired start location has been reached) are good candidates for convolution reverb. My theory is that convolution reverbs are appealing, in that people feel that they can "sample" a space, and the algorithm does not require the secret sauce of the professional algorithmic reverbs. However, a convolution reverb is unable to emulate the time-varying characteristics of real-world acoustic spaces, uses variable amounts of resources for different impulse lengths (an algorithmic reverb uses the same CPU for a .1 sec T60 as a 100 sec T60), and requires a huge amount of memory and MIPS compared to an algorithmic system.

Sean Costello

hardwire666

This is my first post here, and I know this is an old topic. But, I felt it was better to reuse a topic pertinent to my current question, as opposed to starting a new topic.

So, hardware convolution reverb seems to be pointless no mater where I seem to look. But, what about the impulses used to model the sound coloring done by specific pieces of hardware like, mic's, preamps, cabinets, amp's/head's, reverbs, or specific guitar amp/tube/cab/mic setups. From what I understand these tend to take much less work to get the desired effect. Generally because they don't require the resolution needed, or the "time" portion of the reverb calculated to create reverb, and thus require less computing power. The IR's I believe are also smaller in size as well. I can't be 100% on that one though. From what I have seen the IR's used for guitar/recording equipment modeling seem to be in the 200k size, and reverbs are are near the 1MB size or grater.

Like any time someone asks a question it's for personal gain, but I do see how this could be a nice tool to have. I appreciate any/and all thoughts or input one might have as this has been on my mind for quite some time, and this is the first time I have ever found a place dedicated to this type of DIY.

Taylor

This was my question, and it's something I'd still like, but haven't really thought much about since then.

I think the easiest, cheapest way to do this if you don't have extensive DSP knowledge is to buy a dedicated computer just for this task. Whatever form factor you want, rackmounted or laptop, you could build something to do just this for a few hundred bucks I think.

What exactly is your application? Do you want microphone models for live shows, that sort of thing?

hardwire666

Since i don't need it for live applications I personally don't need it as my PC is more than capable of using impulses for this sort of thing anyway. If i wanted to I could load Reaper onto my second computer, and use that for FX processing. But, the idea having hardware impulses for amp/gear modeling is still very intriguing. Especially if it's DIY, and I don't have to pay a company a bloated price to build it for me. As well I know there are people out there who would really want something like this.

I have always assumed it would take a PC with a custom Linux build that did nothing but load a VST host. But, then you have hardware driver issues to deal with. Then I found this msg board, and that changed my way of thinking about it. Since the whole process is basically math I figured it would be much more efficient to to have hardware dedicated to doing it. Granted there is a decent amount of math that goes into the process for reverb. But, what about just the tonal qualities? That's EQ'ing at is basic, and that cant be all that complicated.

I could be totally wrong on all of this, but that's why I posted the question. I wanted to know if it could be done for this application as DIY, and I know people would want it.

kfw

Depends on your definition of hardware...

SIR2 is cheap, workable (i.e. not vaporware) and offers zero-latency convolution.  Voxengo has a real-time convolution reverb, as do others.
VSThost is reliable and free (for windows)
An XP laptop is hardware (well, sort of).

So sure, it's doable.  People build their own rocket engines from scratch. 

Cost-effective? No. 

Practical? Not unless you happen to have access to the entire digital PCB production process, and are skilled at all the different aspects (or at least skilled at all the different aspects of using the software). 

You could fake hardware by using an industrial PC board with no keyboard, custom controls, and a programmed LCD display, but it's still going to boot like an XP machine.  And crash like one.

Or if you like ICs and big boards, you could design specialty hardware for convolution - there are modular CPU-like chips for this purpose.  You could even do it with adders and multipliers and memory if you're bullheaded enough.  But even if you had convolution hardware, you're still going to want a CPU to manage patches and controls...or you could design a box from scratch like a Lexicon.  I mean, someone had to do it.  But my old LXP-5 has TWO CPUs in it, and it doesn't even have a display.  One for the user interface and one to feed the DSP - or one for the knobs and one for it's fabulously complicated MIDI implementation, I'm not sure.

So have a Linux geek build you a server-quality platform running convolution software, and that's about as close as you'll get.

But yeah, using piano harps and cymbals for reverbs is way cool.  Also big clanky industrial noises.  And playing live with it would be killer.  Best way to deal with a keyboard player who doesn't groove - convolve them with the drummer!

What WOULD be practical is a standalone box with a USB interface that let you download just a couple of impulses.  I think this could be a $200 stompbox if Roland made them - mix knob, decay knob, and a knob for 16 different presets.  This way all the editing, tweaking, etc. is removed from the actual convolution hardware and offloaded to a computer where it belongs.  Just dump 16 impulses to it, and pack in in your guitar bag.  But I think if you made your own you'd be lucky to get it into a 19" rack box.