View Single Post
Old 5th May 2009   #84
seancostello
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Quote:
Originally Posted by Casey View Post
Don't get hung up on yesterdays constraints. Today, most algorithms are expected to run at 96k. At this sample rate, linear interpolation will only impinge down to roughly 24k (which I cannot hear.)
Yeah, but us plugin folks still run things at 48K much of the time, where linear interpolation is quite audible. I put an Infinite button on one of the reverbs I have been working on, and after about a minute, the high end had gone away. I was using linear interpolation. Meanwhile, the same controls on an algorithm with allpass interpolation resulted in a nice ambient pad that went on and on without any high end loss.

Plus, the VisualAudio code was developed on a Blackfin EZ-KIT, with a fixed 48K sampling rate. Not to mention the noisy convertors that pass DC. Oh wait, I guess I did mention that. Anyway, we couldn't presume high sampling rates, or high end audio for that matter. At the time, folks at ADI were amazed that we were getting any sort of decent audio quality out of the Blackfin, as the Blackfin was originally developed as a chip for a laser printer. The Bricasti was one of the first products that demonstrated that the Blackfin could be used for high quality audio - I think it was Denis Labrecque that dragged me over to your booth at an AES show to see an early demo of the reverb.

The linear interpolation sampling rate argument makes a lot of sense for hardware boxes that run at higher sampling rates, or for running in an upsampled environment, such as might be used for tape echo or vintage BBD flangers with distorted feedback.

Quote:
Whisky Tango Foxtrot??? When (I mean really when) are you going to allow allpass coefs to get any where near +-1.0?
1st order allpass with single sample delay, not the allpass delays we have been talking about in this thread. In 1st order allpass interpolation, instead of cross-fading between two delay locations separated by a sample, the fractional part of the interpolation signal is used to control the coefficient of a 1st order allpass filter.

The coefficient can get very close to +-1.0 as the interpolation approaches the integer boundaries of the delay line. Coefficients that are too close to +-1.0 result in a ringing allpass, with the sonic result being unpleasant noise and distortion in the output. Warping the fractional part of the interpolation signal to better approximate linear control over the allpass delay helps, as the warping function (an approximation of (1-frac)/(1+frac)) results in the allpass coefficient spending far less time in the extreme coefficient settings. However, quantizing the coefficients to 256 settings would also help with this.

As far as delay based allpasses having their coefficients being set too close to 1.0, I have heard this in a few commercial systems. One was the reverb that came with the original Unreal video game engine, that was clearly an allpass cascade with no global feedback, similar to the original Schoreder design, or to Chamberlin's reverb in his book. The allpass coefficients were used to control the reverb decay, which became obvious when really long reverb settings resulted in the straight signal becoming much louder than the reverb signal. I can cut them some slack, as having a reverb at all was an admirable achievement for video game engines at the time. The reverb sounded better than the Half-Life engine, for example.

My Ensoniq DP/2 also seems to have the ability to set the allpass coefficients way too close to +-1.0. The Large Hall algorithm sounds similar to the PCM70 Concert Hall algorithm that I have heard, but the Ensoniq has STUPID coefficient ranges. Turning up the Definition to 99 seems to set some of the loop allpasses to coefficients of 0.99. I don't mind giving the user enough power to do cool things, but giving someone raw control over this, without explaining what ranges to avoid, will inevitably result in horrible sounding patches.

Sean
seancostello is offline   Reply With Quote