Hi all, I noticed a recent thread in Nabble's Csound-General list regarding 0dbfs and clipping, which prompted a related concern of mine. As I'm not subscribed to that list [too many lists already...] I'd like to bring it up here. It seems to me that the 0dbfs scheme was designed in the days when most or all output was integer, but I'm not sure it is being applied to float values in the best way. When you are working to a maximum integer limit that can't be exceeded, it seems right to be able to set 0dbfs to the level that corresponds to that limit, so that generated signals can be scaled to that, and you get warned if it is exceeded. However, I find that the 0dbfs setting is also used to scale floating output values -- so that the level correponding to '0' dbfs is always rescaled to '1.000'. When this output is going to a mixer -- as is usual in real-time preformance, I guess -- it can be frustrating because this may be insufficient to get a decent final level, unless all the faders in the chain are set to maximum. In practice I overcome this by using a 0dbfs of less than 1, but as a consequence I get many many "out of range" messages. It was a while before I realized that these were totally meaningless! Only the levels *after* the mixer chain are relevant to clipping and distortion. I think there ought to be some decoupling here. One solution would be to *not* scale floating output by 0dbfs. That setting would represent only a 'desired limit': any higher signal would just trigger an 'out of range' report, but would not be clipped or scaled. Then one could set the signal levels in the csd to whatever will give a suitable level to send to the mixer. Alternatively, there could be either a new 'scaling' system variable, or a command option to set the scale. 0dbfs would then continue to scale to 1.000, but the scaling factor would be applied after that, to raise the actual output to a suitable level. What do you think? -- Pete -- ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net