tanstaafl wrote:
If the entire piece were played at the same effective volume level (single flute intro as loud as the whole orchestra with brass section in the closing bars?) I'm afraid you would lose much of the effectiveness of the piece.

That is (in my opinion) the beauty of the algorithm. It's intended to have a user configurable parameter, where you specify the minimum volume level you want to hear. All your dynamics still exist, but they aren't as pronounced. If your car is stopped, you set this parameter to 0, and then you get the full dynamic range (no distortion at all, actually). If you're driving around town, you might set it to 0.1 or 0.2. On the highway you might set it to 0.5. For a bit of a lark (just to see what it sounds like) you might set it to 1.0. However, rather than actually calculating these numbers by hand, I envisage that you have an upper limit volume control (the existing volume control) and a lower limit volume control. The empeg would then calculate the appropriate number between 0 and 1.

Update: I've rewritten my little program in C, and now I use 32 or 16 bit integers for everything, and now it is rather a lot faster than it used to be. The implementation also magically became a lot simpler once I started using a fixed length buffer. Hopefully by Monday I'll have it in a form that other people can try it out, and figure out if it's the sort of thing they'd like on their empeg. For a giggle, I tried setting the volume adjustment to 30db per second. I got many audible artifacts. 3db per second seems fairly acceptable.

Richard.