maxabs — Produces a signal that is the maximum of the absolute values of any number of input signals.


The maxabs opcode takes any number of a-rate or k-rate signals as input (all of the same rate), and outputs a signal at the same rate that is the maximum of all of the inputs. It is identical to the max opcode except that it takes the absolute value of each input before comparing them. Therefore, the output is always non-negative. For a-rate signals, the inputs are compared one sample at a time (i.e. maxabs does not scan an entire ksmps period of a signal for its local maximum as the max_k opcode does).


amax maxabs ain1, ain2 [, ain3] [, ain4] [...]
kmax maxabs kin1, kin2 [, kin3] [, kin4] [...]


ain1, ain2, ... -- a-rate signals to be compared.

kin1, kin2, ... -- k-rate signals to be compared.


Here is an example of the maxabs opcode. It uses the file maxabs.csd.

Example 591. Example of the maxabs opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; Select audio/midi flags here according to platform
-odac   ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o maxabs.wav -W ;;; for file output any platform

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

k1   oscili 1, 10.0, 1			;combine 3 sinusses
k2   oscili 1, 1.0, 1			;at different rates
k3   oscili 1, 3.0, 1
kmax maxabs   k1, k2, k3
kmax = kmax*250				;scale kmax
printk2 kmax				;check the values

aout vco2 .5, 220, 6			;sawtooth
asig moogvcf2 aout, 600+kmax, .5 	;change filter above 600 Hz		
     outs asig, asig


f1 0 32768 10 1

i1 0 5

See also

Comparators and Accumulators


Author: Anthony Kozar
March 2006

New in Csound version 5.01