Skip to content

SoftClipFract32

Overview

Fract32 Soft clip in Fract32

Discussion

The soft clipper uses a combination of piecewise linear and non-linear functions. Threshold sets the beginning of the knee. The maximum output is always -6*guardbit dB. The knee is shorter when the threshold is closer to max output.

Module Pack

Standard

ClassID

classID = 204

Type Definition

typedef struct _ModuleSoftClipFract32
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
FLOAT32 threshold;                            // Transition point between linear response and knee.
INT32 guardbit;                               // Linear threshold and max output are scaled by 2^(-guardbit) so output has 6*guardbit dB of headroom.
fract32 th;                                   // Threshold in linear scale
fract32* lastIn;                              // Array of last input sample, one per channel.
fract32* lastOut;                             // Array of last output sample, one per channel.
FLOAT32* currentGain;                         // Array of soft clipper gain, one per channel.
} ModuleSoftClipFract32Class;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
threshold float parameter 0 -4 -20:-0.5 dB
guardbit int parameter 0 4 0:8 linear
th fract32 derived 1 0.039435 Unrestricted
lastIn fract32* state 1 [1 x 1] Unrestricted linear
lastOut fract32* state 1 [1 x 1] Unrestricted linear
currentGain float* state 0 [1 x 1] -40:3 linear

Pins

Input Pins

Name in
Description audio input
Data type fract32
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Output Pins

Name out
Description audio output
Data Type fract32

Matlab Usage

File Name: soft_clip_fract32_module.m 
 M=soft_clip_fract32_module(NAME) 
 Creates a soft clipper module for use in Audio Weaver.  The soft clipper 
 is realized using a piecewise function. 
 Arguments: clipping threshold in dB. When input signal is below the 
 threshold, the gain of the soft clipper is 0 dB.  
 Then as the input signal increases, the output approaches max value of 
 1.0. The soft clipper maintains the continuity of the piecewise 
 compression function at the threshold point. 
    NAME - name of the module. 

Copyright (c) 2026 DSP Concepts, Inc.