The PARIS Patent, and technical details:
[originally posted by DJ at Gearslutz forum:]
...One of the Paris user base was able to obtain the hardware patents from E-MU systems. Here’s some really interesting information that was posted by this person after reading the patent and who continued the development of FX plugins for the unique DSP processors (called esp2) which may explain one reason why this system more closely emulates analog tape saturation when mixing at levels unheard of with other systems while avoiding the ugly digital clipping that happens at zero dBfs levels in other digital platforms………..as follows:
1. esp2s (the chips on the EDS card that are the basis of paris) work internally at 24bits of resolution regardless of the bit depth selected for the project. The *only* thing this setting controls is whether the bounce to disk is at 16 or 24 bits. When you mix bounce at 16 bits the least significant bits are truncated before being written. It should be noted that (IMHO) the vast majority of the resolution of the least significant bits is going to be converter self noise, system noise or other inaudible junk. I doubt that anything past 20bits is significant in a bounce in paris. I'm sure this will cause some contention with some, but it's only my opinion.
2. There is saturation occuring in the ESP2, in hardware, at the instruction level. I'm not an expert in this by any means, and I may be a bit off in my explanation - but here's what I have figured out after careful reading of the ESP2 patent. I'm trying to put some of it in laymens terms below with a bit of background.
In general there a couple basic instructions / math operations that go on in a mix. I'll stick to two:
1. Mixing streams of audio together is ADDITION. The addition operators in the ESP2 are *saturating*
2. Changing gain is MULTIPLICATION. The multiplication operators in the ESP2 are *saturating* . What does this mean? Well it involves the oft quoted "52bit" accumulator line.
Now for a bit about what this means
1. An accumulator is used to store the result of a series of operations such as additions or multiplications.
2. The actual accumulator in paris is a 48 bits word with 4 control bits for a total of 52.
3. The 4 extra bits provide 4 guard bits for use in *detecting overlow/underflow* in the result of any calculation.
There's the background - now here's what happens:
- When a series of additions or multiplications occurs on the esp2 the "intermediate result" is stored in the accumulator. The accumulator is 48 bits for a reason. Two 24bit values, or a series of 24bit values added together may produce a value that is greater than can be held in 24 bits. If in the course of this "accumulation" a result greater than 24bits is produced an "overflow" occurs. These overflows are tracked by the 4 control bits.
- When an overflow occurs the "final result" or output of the operation or series of operations is *saturated*. This is done by setting the output value to saturated to h7FFFFF,FFFFFF (the largest positive number that can be represented by a 48-bit word)
- When an "underflow" occurs the output of the operation or series of operations is set to h800000,000000 (the largest negative number)
- The final step to producing the real output value is to take the most significant 24bits of the accumulator (7FFFFF) and send them on their way.
Other keys to the paris sound lie in the way it handles panning, pre-eq gain (this is really interesting) and reserving enough headroom to sum all those submixes together :-) I can write more about those later as I get some kind of clue.
Anyway - here's a really concrete way for you to see how saturation at the instruction level affects the sound.
- Open a project with 16 tracks or less.
- Drive the hell out of the mix, push it way into the red and make sure the submix clip lights come on occasionally.
- Don't use any paris eqs, directx or eds effects on this mix. Keep it dry and confined to faders and panning only. Make it SLAMMING.
- Now add another submix to the project.
- Take the submix with your slamming hot mix and switch it to a NATIVE submix.
I'm sure you will be able to hear the difference in seconds. All kinds of gnarly nasty going on. “
This “may be” the difference between a system that clips the audio signal resulting in various degrees of unpleasantness when the audio reaches 0dBfs and one which doesn’t. Paris, to my knowledge is the only digital system that doesn’t, until pushed far beyond the limitations of other systems. Even with the information shown above, this still doesn’t fully explain the mystery of why the system behaves as it does. This may be known only to the designer of the hardware DSP instruction set, to the software designers at Intelligent Devices, Inc., or this behaviour may be a combination of both software and hardware code integration.
Does this equate to a 52 bit floating point DAW with with analog circuit modelling? Well, no one is talking anymore and nothing has come along since Paris was discontinued that behaves quite like it …….and Paris, like an analog console, has multiple gain stages available using the channel, global and submix faders as well as EQ makeup gain trim pots and very flexible compressor settings. These can be pushed and pulled in a manner similar to mixing on an analog board while achieving almost unheard of RMS levels when mixing in the digital realm...
More information about PARIS' analog-like behaviour ParisIntoTheRed here.