minabs — Produces a signal that is the minimum of the absolute values of any number of input signals.
The minabs 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 minimum of all of the inputs. It is identical to the min 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. minabs does not scan an entire ksmps period of a signal for its local minimum as the max_k opcode does).
amin minabs ain1, ain2 [, ain3] [, ain4] [...]
kmin minabs 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 minabs opcode. It uses the file minabs.csd.
Example 511. Example of the minabs 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 minabs.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 kmin minabs k1, k2, k3 kmin = kmin*250 ;scale kmin printk2 kmin ;check the values aout vco2 .5, 220, 6 ;sawtooth asig moogvcf2 aout, 600+kmin, .5 ;change filter above 600 Hz outs asig, asig endin </CsInstruments> <CsScore> f1 0 32768 10 1 i1 0 5 e </CsScore> </CsoundSynthesizer>