Skip to content

abs

Returns the absolute value of its input.

In the case of a complex variable, the absolute value is equivalent to the magnitude of the number.

Syntax

abs(var:{i,k,a}) 
abs(var:{k[],i[]})
abs(var:Complex)
abs(var:Complex[])

where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.

The complex array version of the opcode has two overloads, one that returns a k-rate array and another that returns an audio signal.

Array:k = abs(CplxArray)
sig:a = abs(CplxArray)

In the second case, the array should be one dimensional and contain a least ksmps complex numbers. This opcode takes advantage of the fact that audio signals are real-valued vectors, similarly to k-sig one-dimensional arrays.

Examples

Here is an example of the abs opcode. It uses the file abs-modern.csd.

Example of the abs opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
-d        ;;;no display
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o abs.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2

instr 1
  x:i = p4
  iabs = abs(x)
  print(iabs)
endin

</CsInstruments>
<CsScore>

i 1 0 1 0
i 1 + 1 -0.15
i 1 + 1 -13
e

</CsScore>
</CsoundSynthesizer>

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

Example of the abs opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o abs.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2

instr 1
ix = p4
iabs = abs(ix)
print iabs

endin

</CsInstruments>
<CsScore>

i 1 0 1 0
i 1 + 1 -.15
i 1 + 1 -13
e

</CsScore>
</CsoundSynthesizer>

Its output should include lines like:

instr 1:  iabs = 0.000
instr 1:  iabs = 0.150
instr 1:  iabs = 13.000

See also

Mathematical Functions