taninv2
Returns the arctangent of iy/ix, ky/kx, or ay/ax.
Syntax
ares taninv2 ay, ax
ires taninv2 iy, ix
kres taninv2 ky, kx
... taninv2(ky, kx)... (no rate restriction)
Returns the arctangent of iy/ix, ky/kx, or ay/ax. If y is zero, taninv2 returns zero regardless of the value of x. If x is zero, the return value is:
- π/2, if y is positive.
- -π/2, if y is negative.
- 0, if y is 0.
Initialization
iy, ix -- values to be converted
ky, kx -- control rate signals to be converted
ay, ax -- audio rate signals to be converted
Examples
Here is an example of the taninv2 opcode. It uses the file taninv2.csd.
Example of the taninv2 opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-n ; no sound
; For Non-realtime ouput leave only the line below:
; -o system.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; by Kevin Conder
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1
i1 taninv2 1, 2 ; Returns the arctangent for 1/2.
print i1
endin
</CsInstruments>
<CsScore>
i 1 0 0
e
</CsScore>
</CsoundSynthesizer>
|
Its output should include a line like this:
Here is another example of the taninv2 opcode. It uses the file taninv2-advanced.csd.
Advanced example of the taninv2 opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
-odac -d
; By Stefano Cucchi 2020
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 10
nchnls = 2
0dbfs = 1
instr 1
a1 oscili 0.1, p4
a2 oscili 0.1, p5
ashape taninv2 a1, a2
kdeclick linseg 0, 0.3, 0.2, p3-0.6, 0.2, 0.3, 0
outs ashape*kdeclick, ashape*kdeclick
endin
instr 2
a1 diskin p4, 1
a2 = a1
ashape taninv2 a1, a2
kdeclick linseg 0, 0.3, 0.2, p3-0.6, 0.2, 0.3, 0
outs ashape*kdeclick*.5, ashape*kdeclick*.5
endin
</CsInstruments>
<CsScore>
i 1 0 3 440 300
i 1 3 3 200 210
i 1 6 3 50 40
i 1 9 3 50 3000
i 2 12 3 "fox.wav"
</CsScore>
</CsoundSynthesizer>
|
See also
Opcode Equivalents of Functions
Trigonometric Functions
Credits
Author: John ffitch
University of Bath/Codemist Ltd.
Bath, UK
April 1998
New in Csound version 3.48
Corrected on May 2002, thanks to Istvan Varga.
Available as a function in version 6.00