Does Renoise's mixer prevent clipping?

I recently just bought Renoise, and I was wondering if clipping only occurs on the master track. More technically, I was wondering if Renoise mixes using 32-bit (or more) floating point samples. This would mean that no matter how high the audio level of the tracks are, they won’t be clipped. Rather, when the mixer’s master track outputs the audio to the computer’s sound card (which operates in fixed-point 16- or 24-bit samples) or renders to an audio file, only then will the audio be clipped when exceeding the maximum value.

I apologize if the question is hard to understand, but I would appreciate any opinions/details regarding this, and I would also make sure to do my own tests.

Thanks in advance!

How exactly does that work?

in my understanding it only clips when the master is above 0 dB
Here the gainer “clips”, but you still have a perfect sine wave.

Yes, renoise does floating point mixing internally…you can safely overdrive the channels, if the volume is lowered into valid range later there will be no clipping. The master of course does clip, it does display the maximum db it was clipping, and also has a soft clipping mode to make it more graceful.

1 Like

Didn’t confirm this, but if you render with 32bit float, also the master should not clip.

In DAWs there’s no clipping with internal rates of 32 bits. You don’t have to worry about, as long as you work on the project. It matters, when exporting to a 16 bit audio file. Then you have to lower the master fader to prevent clipping on the rendered file. In digital 32 bit float world clipping even is not possible, because with 32-bit audio you theoretically have an amount of 770 dB more headroom, which you never will be able to reach.

1 Like

Speaking of ‘clipping’, my own thought (and no expert on it btw). Two figures:

Figure 1

Figure 2

The way in which I interpret the graphical sample editor (or any sample software) is the top is +1.0 the bottom is -1.0 and 0.0 zero in the middle as you work in 32-bit signed floating point format (See Figure 1). I see those values as the maximum and minimum that the sound card DAC can swing through its output voltages electrically.

Of course computer science mathematically the max/min range of numbers allowed by the IEEE 32-bit floating point signed format (or what I call the ‘float’ data type in the C language) is more than this range -1.0 - 0.0 - +1.0. Trying to keep all this simple from a musicians perspective you would have around 770 dB of ‘internal mathematical mixing headroom’ at 32-bit IEEE signed floating point which we say most DAW’s/VST’s use internally to ‘mix’ the sample data.

If we take that sine wave from Figure 1 and add a gainer set at +12dB, the graphical output (for which the DAC physically would interpret the sample data) would sort of look like Figure 2 (going more square wave.) Now the track that is playing the sine wave and the vu meter would not go red and ‘clip’ the sample values amplified outside the -1.0 +1.0 range. It is quite happy to show the ‘internal mathematical mixing headroom’ sample values as is. I.e. the sine wave would be completely preserved mathematically. The master channel vu meter however does go red alert ‘clip’ which I think is correct. It is maybe saying I’ve got to ‘clip’ some sample values here because you’ve gone over the DAC’s input sample range of values. Probably (even if you were to bypass any hard clipping/clamping of values) for all intent and purpose that’s how the DAC would sound/react given the ‘unclipped’ sample data anyway.

Finally is it possible to break the 770 dB of ‘internal mixing headroom’? I suppose. Obviously it would be ridiculous to place 65+ 12.04 dB gainer devices (outputting a constant flat +1.0 sample(s)) on a track just to lift the ‘internal math mixing sample volume’ over 770 dB during any normal practical mixing. But technically you can do this. What happens? Well I imagine not a lot (your computer doesn’t explode or anything dramatic.) Once the sample values go over 770 dB (or in computer science terms reach the maximum floating point value that a IEEE 32-bit ‘float’ can store) the computer probably just calculates for that sample a ‘NaN/Infinity’ number as the sample value. In other words if you were to keep on throwing on more and more gainers after say the 65th 12.04 dB gainer, those gainers would silently just stop ‘gaining’ and probably any dsp devices you add after that would be trying to mess around with ‘Nan/Infinite’ sample value(s).

Just my thought, not saying it is right/accurate.

1 Like

That doesn’t really matter in 32 bit world because of the 770 dB “headroom”. The maximum gain still will be 0 dB anyway on an bounced audio file, but the sound will distort due to the clipping when no (brickwall) limiter is used on the master bus to limit the volume to 0 dB.) You also easily can compensate the clipping by lowering the master volume before bouncing the audio to a file. Heavy clipping even was used as a creative element on certain analog studio amps, mixers or tape machines in the 90s era to create a distortion effect. All the common clip distortion effect processors like e.g. the Logic Clip Distortion plugin are based on these technique. But what more matters is the RMS level in that case. The more clipping/distortion the more RMS. The more or louder sub frequencies, the more RMS, just to name a few examples. Too high RMS also can distroy electrical componemts like the speaker drivers or power amps when the RMS level exceeds their power limit. The ideal maximum RMS level of a mastered audio file is -8 dB RMS to protect electrical circuits against damage.

See here on Wikipedia: