AFTonePair(3)

NAME
AFTonePair - generate a ULAW tone pair

SYNTAX
#include <AF/AFUtils.h>

extern void AFTonePair(double f1, double dBgain1,
                        double f2, double dBgain2,
                        int gainramp,
                        unsigned char *buffer, int length);

DESCRIPTION
is a subroutine which is suitable for generating ringback, busy, dialtones, and other telecommunications sounds represented by pairs of tones at given frequencies and power levels.

ARGUMENTS

f1  are the frequencies of the two tones. The sample rate is known to be 8000 Hz, so the tone frequencies must be in the range 0-4000Hz.

dBgain1
    are the power levels of the two tones. These are values relative to "0 dBm" or the digital milliwatt, which in turn is defined to be 3.16 dB below the digital clipping level, where signals distort.

gainramp
    is the number of samples over which the tones reach their full amplitude. At the beginning of the block, the signal will ramp linearly up to full power over so many samples. This tends to make the signals sound cleaner and reduces frequency splatter. At the end of the block, the signals will ramp down to silence over the same period.

buffer
    is a pointer to the signal buffer that will be filled in by AFTonePair.

length
    is the length of the block desired.

EXAMPLES
Typical usage is:

unsigned char busytone[4000]; /* fill block with 1/2 second of a busy signal */ AFTonePair(480.0, -12.0, 620.0, -12.0, 24, busytone, 4000); /* the parameters for other tones are:
 * ringing 440, -19, 480, -19
 * busy 480, -12, 620, -12
 * dialtone 350, -13, 440, -13
 */

SEE ALSO
AFDialPhone(3) .SH BUGS If you encounter a reproducible bug, please submit a problem report to (af-bugs@crl.dec.com).

COPYRIGHT
Copyright 1990-1994, Digital Equipment Corporation.
See AF(1) for a full statement of rights and permissions.

AUTHORS
Larry Stewart, Digital Cambridge Research Lab