taninv2 — Returns an arctangent.
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.
ky, kx -- control rate signals to be converted
ay, ax -- audio rate signals to be converted
Here is an example of the taninv2 opcode. It uses the file taninv2.csd.
Example 1081. Example of the taninv2 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 ; 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:
instr 1: i1 = 0.464
Here is another example of the taninv2 opcode. It uses the file taninv2-advanced.csd.
Example 1082. Advanced example of the taninv2 opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<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>