Clips an a-rate signal to a predefined limit, in a "soft" manner, using one of three methods.
imeth -- selects the clipping method. The default is 0. The methods are:
0 = Bram de Jong method (default)
1 = sine clipping
2 = tanh clipping
ilimit -- limiting value
iarg (optional, default=0.5) -- when imeth = 0, indicates the point at which clipping starts, in the range 0 - 1. Not used when imeth = 1 or imeth = 2. Default is 0.5.
asig -- a-rate input signal
The Bram de Jong method (imeth = 0) applies the algorithm:
This method requires that asig be normalized to 1.
The second method (imeth = 1) is the sine clip:
The third method (imeth = 0) is the tanh clip:
Note: Method 1 appears to be non-functional at release of Csound version 4.07.
Here is an example of the clip opcode. It uses the files clip.orc and clip.sco.
Example 15-1. Example of the clip opcode.
/* clip.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
; Generate a noisy waveform.
arnd rand 44100
; Clip the noisy waveform's amplitude to 20,000
a1 clip arnd, 2, 20000
out a1
endin
/* clip.orc */
/* clip.sco */
; Play Instrument #1 for one second.
i 1 0 1
e
/* clip.sco */