![]() | All Advertisers |
| Member Services Directory | Classifieds | Reviews | Jobs | Deal Zone | Merchandise | Marketplace | Facebook App | Books, DVDs & Gadgets | Video Vault | Tips & Techniques |
| |||||||
New Reply | Thread Tools | Search this Thread |
| | #511 |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
| I should also add that plenty of "classic" reverb algorithms used linear interpolation for modulated delays.
__________________ Sean Costello Valhalla DSP, LLC Words: http://valhalladsp.wordpress.com Plugins: http://www.valhalladsp.com |
| | |
| | #512 | |
| Lives for gear Joined: May 2003 Location: Cambridge MA USA
Posts: 1,113
| Quote:
![]() ![]() ![]() It is the alignment issue that must be attended to. Delays cannot be multiples of some block size. So, and Dale alludes to this, some head and tail processing must take place to allow delays to be of arbitrary length. Really, this is just for the record, I know you understand this! ![]() -Casey
__________________ cdowdell@bricasti.com www.bricasti.com My love shall hear the music of my hounds. - Shakespeare | |
| | |
| | #513 |
| Lives for gear | |
| | |
| | #514 | |
| Airwindows Joined: Aug 2004 Location: Vermont
Posts: 2,053
| Quote:
| |
| | |
| | #515 | |
| Lives for gear Joined: Dec 2003 Location: Calgary, Alberta
Posts: 816
Thread Starter | Quote:
What I would be tempted to do is make an internal RAM delay line equal to the desired delay line length (and making the basic delay line non-tappable except at the output end), then you subtract out however many 'blocks' you need out of the middle, leaving maybe 100 or 200 samples in the internal SRAM. Then you can DMA into and out of the middle of the array, although care must be taken about delay line wraparound, since the DMA controller must be programmed to reload its address register once it gets to the end. The modulus DSP addressing mode takes care of the code of an arbitrary length circular buffer, but the DMA controller may not be that sophisticated. If the delay is less than, say, 300 samples or so, then don't bother moving the data around - just leave it in SRAM. There would be a bit of work in the memory management control software, but it only needs to run to completion at least every 'N' samples where 'N' is the transfer block size (which may or may not be equal to the algorithm block size). But in this way, a delay line can be interpolated at the end (in SRAM), and it can be an arbitrary length. The algorithm that takes the reverb descriptor tables and allocates memory based on programmed reverb size would need to manage setting all of this up. You also could program sample-by-sample if you wanted to, or in blocks. In this way, the SRAM delay line acts as the arbitrary length adjustment, and also as a (manually maintained) data cache. I know there are more ways to do this than this, but it should work ok. Another option is to have two circular buffers. The write buffer is, say, double the transfer block size. Once the write pointer gets halfway, write the first half. Once it wraps around, write the other half. The read buffer would be similar - the same length. The phase offset between the read and write pointers, plus the length of the bulk SDRAM delay would determine the delay line length. I can only think of maybe five ways of managing the SDRAM to SRAM data shuffle, and a couple of ways of doing the calculations in-place. There are three main time delays in SDRAM that are important from what I can tell out of the datasheets. The first delay and the last delay are obvious - the open page and close page operations. The other delay is address supply to data available, and that applies to in-page accesses. And to make matters worse, if your block size aligns to a page length in SDRAM (which it should), that would be fine, but also for efficient access to SDRAM by the software, you either will have to misalign the writes (open and close two pages for one operation) or misalign the reads, unless the delay size is also a multiple of the block size (which also aligns with SDRAM page size). SDRAM also does not necessarily do well when you try to interleave writes and reads to the same bank, though that depends on the SDRAM controller built into the DSP. This is interesting, I think one thing that's missing from people developing software these days is how the software actually has to mess with chips. | |
| | |
| | #516 |
| Lives for gear Joined: May 2003 Location: Cambridge MA USA
Posts: 1,113
| |
| | |
| | #517 |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
|
Could an FPGA be used to aid with getting data out of the SDRAM and into the DSP / local SRAM system? Maybe with modulo math? Of course, if you have an FPGA doing the delay line management with the cheaper chips, it would be tempting to create a full reverb solution based around said FPGA. This conversation is reminding me of having to deal with the 2126x SHARCs during the ADI days, before the 21369 came out. The 2126x chips had the memory access pins removed, due to some large customer requesting this. So all external memory access had to go through DMA, which was horribly slow. The block based processing helped a little, but not much. The Blackfin DSPs were coming out at that time, and were viewed as underachievers for audio by most of the higher ups at ADI. In our little group, we were able to get much higher performance out of the Blackfins than the 2126x for delay based algorithms. The 2136x series restored the memory access pins, thus saving face for the SHARC line. Last edited by seancostello; 15th March 2010 at 07:32 AM.. Reason: It's late at night, and I was getting too chatty... |
| | |
| | #518 |
| Lives for gear Joined: Dec 2003 Location: Calgary, Alberta
Posts: 816
Thread Starter | If your allpass is in-line (ie. one big memory loop and not several segments that are kept separate), then you should not need to read and write both ends simultaneously. If you consider the input to an allpass as coming from somewhere else (say, the end of another delay line that is totally separate), and consider the output as going to somewhere else (the start of another delay line that is totally separate), then you need to read feedback from the end of the allpass, write to the start of the allpass, and write the output to the head of its own delay line. You will waste some SDRAM this way, but SDRAM's pretty cheap and there's lots of it. Provided that there is at least one transfer block size of empty space in the SDRAM between delays, then there should not be an issue. Or am I missing something?
|
| | |
| | #519 |
| Gear Head Joined: Mar 2006
Posts: 65
| Could be wrong but I think that orchestral example is of a VSL mock-up by Berlin composer Andreas Koslik - posted on a German site when the M7 first came out. Actually, those files posted then are what sealed my purchase!
|
| | |
| | #520 |
| Airwindows Joined: Aug 2004 Location: Vermont
Posts: 2,053
|
What about the guitar clip? That's awfully well suited to a smaller room ambience.
|
| | |
| | #521 |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
|
Just found this: https://ccrma.stanford.edu/~dattorro/Griesinger.jpg For those of us that were always fascinated by the Dattorro papers - and the story behind them - this letter sheds some light on the subject. Interesting to read what Griesinger says about the Gardner reverbs as well. |
| | |
| | #522 |
| Lives for gear |
Very interesting. Thanks for the paper |
| | |
| | #523 |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
|
Something I just noticed in Griesinger's letter: "I know it is possible to decode algorithms, and have done it myself." I wonder if this might be a reference to the Constant Density Plates in the 224 and 224X/L, with regards to the EMT250. Otherwise, I wouldn't know what Griesinger would have wanted to reverse engineer during his tenure at Lexicon. Or maybe Griesinger is talking about decoding the older Lexicon algorithms, after the development machines were, um, lost. |
| | |
| | #524 |
| Lives for gear |
Reverse engineering is a way to get some information on the famous old algos. Doing without is like reinventing and that is not the easy route. The shared information like in this thread is but also in the datorro papers are very valuable, because they give real insight. I did start effectprocessor.com in 2004 to share some of the information I gathered. |
| | |
| | #525 |
| Lives for gear Joined: May 2010
Posts: 723
|
I'm really happy to see an open discussion of this. I've read through the thread (and related threads) several times and carefully taken notes, and I'm trying to digest all the papers and patents I can find on the subject. I was going to just work on it by myself, but it seems more in the spirit of things to share my observations and questions. I'm building reverberators and other effects in Pure Data. After a few initial experiments, a couple "cloned" algorithms, and some increasingly stupid ideas, I think I can safely clear all effect processors, hardware and software, from my wanted list. That probably sounds excessive, but my tastes tend toward the exotic, so I don't mind making things that turn single piano notes into underwater reverse bowed Balinese gong tone clusters. Making something that resembles an actual acoustic space seems quite difficult, but "outlandish" can be a lot more forgiving. I've only been messing with these for a few weeks but I'm really surprised at how quickly I'm able to make and refine them. As I become accustomed to the freedom I'm allowed here, I suspect even the most powerful Eventide/TC boxes would feel limiting. Some ideas and things that I've tried: 1. Frequency shifters in feedback loops. I suspect Isao Tomita may have done this with a Bode frequency shifter and AKG BX20, results are interesting but it's perhaps too tempting to take it to total excess. 2. Dispersion filters- I saw that Sean participated in a paper modeling spring reverb (I don't have the full paper), and I saw a patent (4955057) suggesting 20-ish allpass analog phase shifter stages in a reverb feedback loop, which I tried. It's interesting in comparison to normal APFs, since an impulse is spread into a chirp, but it's sort of computationally intensive. Gary Kendall wrote a paper (The Decorrelation of Audio Signals and Its Impact on Spacial Imagery, 1995) suggesting time variant decorrelating filters made from long chains of allpass biquads- maybe this is another option? I imagine sticking these inside normal APFs could be useful, computing power permitting. Anyone tried it? 3. That random delay Yamaha patent that Sean mentioned (553150)- I didn't expect a lot but I tried it with 16 delays and got interesting results. A single "comb" made this way can't handle much feedback due to the amplitude modulation of the crossfade, but modulated APFs and additional feedback paths (sort of a naive FDN) can actually make things quite smooth. Without feedback it can be used as a weirdly modulating "early reflection" FIR. It's really interesting and I'll have to play with it a lot more. 4. Long APF chain with random taps: I chained 16 APFs per channel and randomly crossfade between taps at each stage for output, feedback, etc. This can be used in a relatively sane way, or to make reverbs with a sort of dynamic "envelope", building slowly or quickly or panning from right to left or whatever. It's pretty cool so far, but I need to extend it. Some questions and things: 1. I've had trouble finding some papers. I have a healthy pile of user manuals, service manuals, patents, papers that the authors have made available on their websites, DAFX ones, etc. but I'm missing some Computer Music Journal/JAES/etc. ones that are probably fairly important- in particular Schroeder, Blesser, Jot, Gerzon, and the Agnello one describing the Eventide SP2016. Anyone got these handy? 2. I've gotten the impression that it's best to modulate "in the loop" APF delay times (one paper suggested modulating feedback coefficients, though Sean described poor results), but are there limits to this? Is it a logical conclusion, given adequate processing power, to just "modulate everything"? Does it make more sense to use one n-phase sinusoidal or triangular modulator for everything, or to break it down into separate 2/3/4 phase modulators running at different rates? Or independent randomized (piecewise linear or whatever) modulators? Is it preferred to apply complementary modulation to consecutive APFs? There are a huge number of options, and I'm not sure I'm perceptive enough to find the "best". 3. I'm not a huge fan of FIR "early reflections", but they do come in handy sometimes. I've found they're quite hard to make from scratch and generating them randomly just results in 10000 flavors of crap. I've gotten a few from papers and such, but is there any sort of repository or some that people wouldn't mind sharing? 3.14159... Speaking of which, Moorer notes that an APF with a non-allpass filter in the loop can be made allpass if preceded by its time reverse. It seems like a multitap FIR type thing used this way could take care of early reflections and diffusion all at once- anyone tried it? 4. Regarding multi-band reverbs, is there much advantage here besides independent control over reverb times? I know Yamaha did this a lot, but did anyone else? Do different delay times for different bands result in a smoother sound? Christ, I've nearly written a doctoral thesis myself... |
| | |
| | #526 |
| Lives for gear |
Hello Acreil, Thats a lenghty post. There are a few papers and patents in the effectprocessor forum and some older discussions on building algos. Feel free to add more if you have found some. My work is in the constant density reverb type, so most of your questions are for other people around here. I am not a big fan of allpass filters. I am working now with inversed feedback combfilters. The darkening sound of these filters sound more natural to me. |
| | |
| | #527 |
| Lives for gear Joined: May 2010
Posts: 723
|
I'll probably be doing a constant density thing sometime soon, some sort of extended Moorer/Ursa Major 8x32 type algorithm with some EMT-inspired enhancements (and whatever else I can think of). Even with all the design metrics that have come up over the years, they still seem more difficult to tune than the "big loop with a bunch of APFs" topologies. The best hardware reverb I have at the moment is an Ibanez SDR-1000, which was very well received in this thread (anyone got the "+" OS ROMs?). While there's no modulation, it's a quite nice sounding constant density reverb, so I'm not really worried about making some sort of gold standard. Part of what got me curious about reverb is pondering what makes vintage boxes so desirable, and if there was some cheap and overlooked shortcut to the "vintage sound"- turns out the SDR-1000 was a pretty good choice. I'm still perpetually intrigued by some other "underdog" boxes, the Dynacord DRP-20, Korg DRV-3000, etc. but if my synth buying habits have taught me anything, it's that obscure and overlooked items, while sometimes very interesting, aren't always the most useful. |
| | |
| | #528 | |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
| Quote:
As far as papers, if you have a local university, try going there and see if they have subscriptions to the journals in question. I head over to the University of Washington all the time, and email papers to myself. | |
| | |
| | #529 | |
| Lives for gear Joined: May 2010
Posts: 723
| Quote:
I wonder if the constant density parallel comb filter case can be improved by using fewer combs and adding more output taps per delay... I suspect it's really only trading one problem for another... | |
| | |
| | #530 | ||
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
| Quote:
Quote:
| ||
| | |
| | #531 |
| Gear addict Joined: Sep 2005 Location: Cork, Ireland
Posts: 464
|
acreil, I think the Ibanez became the Sony DPS box, there's a Roger Nichols article that refers to that. Still a very nice sound.
__________________ madtheory creations |
| | |
| | #532 | |
| Lives for gear | Quote:
| |
| | |
| | #533 |
| ValhallaDSP Joined: Feb 2009 Location: Pacific NW
Posts: 1,715
| Repetition can be heard with 2, 3, or 20 "wheels" (tapped combs) as well. For time-invariant reverbs, the best you can do is to have a repetition rate that is the sum of all of the delay lengths. 16 parallel combs with a total delay of 500 msec and a single delay line with lots of taps and embedded allpasses with a total length of 500 msec will both have a repetition artifact of 500 msec.
|
| | |
| | #534 | |
| Lives for gear Joined: May 2010
Posts: 723
| Quote:
What got me thinking along these lines is that the "single loop" topology basically reduces to a multitap with feedback if all the APF coefficients are zero. This initially didn't strike me as a great idea, but the results are good. | |
| | |
| | #535 |
| Lives for gear Joined: May 2010
Posts: 723
|
This is an example of my random delay based reverb. There are 8 delays per channel, each with crossfading random delay taps (separate "audition" and "feedback" taps), followed by 2 APFs with both piecewise continuous random and sinusoidal modulation. There are 3 feedback paths- a delay can feed back into its own input, into the next delay's input, or groups of 4 delays can be mixed and fed into the 4 delays on the other channel. Don't take the "granular" name too seriously, I don't think it really has anything to do with granular synthesis as described by Barry Truax, it just needed a name. Obviously this is an extreme example with less than compelling source material (crappy Yamaha TG77 marimba sample), but I was rather surprised that the tail does smooth out without turning into a mess. Somehow a bunch of apparent no-nos combined to form something useful (to me, at least). It can be toned down but probably not to the extent that I'd consider it a general purpose style effect. |
| | |
| | #536 | |
| Lives for gear | Quote:
| |
| | |
| | #537 |
| Gear interested Joined: Jul 2010
Posts: 3
|
Hello Everyone. Something you may want to look at - Dattorro - Wikimization Talk:Dattorro - Wikimization hmmmmmmm.... |
| | |
| | #538 | |
| Lives for gear | Ircam spat Flux:: sound and picture development Quote:
| |
| | |
| | #539 | |
| Lives for gear Joined: May 2003 Location: Cambridge MA USA
Posts: 1,113
| Quote:
If you think of convolution as a shortcut; Even there, Sony still has the best example of that technology. ![]() -Casey | |
| | |
| | #540 |
| Lives for gear Joined: May 2010
Posts: 723
|
Mostly I had naively wondered if the vintage "discrete DSP" architecture had some speed advantage over a general purpose DSP. I was thinking of how, for example, the hardware implementation of FM in the Yamaha DX7 (and to a lesser extent, the Synergy) is far more efficient than software running on a DSP. But of course this is based on clever use of shift registers and avoiding multiplication, and doesn't really apply to reverb. I think a better explanation is that the difficulty of the problem in the early years attracted a more dedicated class of designer that was willing to spend a great deal of time experimenting and refining the algorithms. They worked well ahead of any published research, without necessarily having a great deal of prior knowledge of artificial reverberation, or even much of a preconceived notion of what digital reverb is supposed to sound like. That's extremely impressive, and more than a little humbling when I can get something basic happening in about an hour, but then I'm too lazy to tune it much better than "not completely awful". Also, on a somewhat related note, are the Ursa Major products the only ones that used significant analog processing inside the actual reverb engine? |
| | |
New Reply
Facebook
Twitter
LinkedIn
| Thread Tools | Search this Thread |
| Similar Threads | ||||
| Thread | Thread starter | Forum | Replies | Last Post |
| Not liking convolution reverb so much these days...recommoned me a reverb plugin? | danbronson | So much gear, so little time! | 19 | 16th June 2008 06:12 PM |
| IK Multimedia Classik Classic Reverb Plug-In Bundle or TL Space for first reverb? | Sean Sullivan | Music computers | 23 | 22nd February 2008 03:45 PM |
| Fender Twin Reverb (1971) Reverb noise/Power tube recommedations? | wthiessen | Geekslutz forum | 6 | 27th January 2007 05:19 PM |
| Fender Twin Reverb (1971) Reverb noise/Power tube recommedations? | wthiessen | Geekslutz forum | 0 | 24th January 2007 08:31 PM |
| |