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. Play maxabs.csd
Example 574. Example of the maxabs opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; 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 </CsOptions> <CsInstruments> 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 endin </CsInstruments> <CsScore> f1 0 32768 10 1 i1 0 5 e </CsScore> </CsoundSynthesizer>