7 | | The tone generator (tonegen.c) supports several algorithms, and since version 1.0-rc3, the use of these algorithms is controlled by {{{PJMEDIA_TONEGEN_ALG}}} setting: |
8 | | - {{{PJMEDIA_TONEGEN_SINE}}}: The good-old generation using math's sine(), floating point. This has very good precision but it's the slowest and requires floating point support and linking with the math library. |
9 | | - {{{PJMEDIA_TONEGEN_FLOATING_POINT}}}: Floating point approximation of sine(). This has relatively good precision and much faster than plain sine(), but it requires floating-point support and linking with the math library. |
10 | | - {{{PJMEDIA_TONEGEN_FIXED_POINT_CORDIC}}} (new in 1.0-rc3): Fixed point using sine signal generated by Cordic algorithm. This algorithm can be tuned to provide balance between precision and performance by tuning the {{{PJMEDIA_TONEGEN_FIXED_POINT_CORDIC_LOOP}}} setting, and may be suitable for platforms that lack floating-point support. |
11 | | - {{{PJMEDIA_TONEGEN_FAST_FIXED_POINT}}}: Fast fixed point using some approximation to generate sine waves. The tone generated by this algorithm is not very precise, however the algorithm is very fast. |
| 7 | The tone generator (tonegen.c) supports several algorithms, and since version 1.0-rc3, the use of these algorithms can be controlled by application by using the {{{PJMEDIA_TONEGEN_ALG}}} macro setting: |
| 8 | '''{{{PJMEDIA_TONEGEN_SINE}}}''':: |
| 9 | The good-old generation using math's sine(), floating point. This has very good precision but it's the slowest and requires floating point support and linking with the math library. |
| 10 | |
| 11 | '''{{{PJMEDIA_TONEGEN_FLOATING_POINT}}}''' (default when floating point is enabled):: |
| 12 | Floating point approximation of sine(). This has relatively good precision and much faster than plain sine(), but it requires floating-point support and linking with the math library. |
| 13 | |
| 14 | '''{{{PJMEDIA_TONEGEN_FIXED_POINT_CORDIC}}}''' (new in 1.0-rc3, and the default when floating point is disabled):: |
| 15 | Fixed point using sine signal generated by a 28-bit [http://en.wikipedia.org/wiki/CORDIC CORDIC] algorithm. This algorithm can be tuned to provide balance between precision and performance by tuning the {{{PJMEDIA_TONEGEN_FIXED_POINT_CORDIC_LOOP}}} setting, and it is suitable for platforms that lack floating-point support. |
| 16 | |
| 17 | '''{{{PJMEDIA_TONEGEN_FAST_FIXED_POINT}}}''':: |
| 18 | Fast fixed point using some approximation to generate sine waves. The tone generated by this algorithm is not very precise, however the algorithm is very fast. |