The public API of the Gaborator library is defined in the HTML documentation in the form of annotated C++ declarations. These are similar to the actual declarations in the respective header files, but simplified for clarity, omitting implementation details.
The actual implementation in the header file may be different in a
number of ways, but nonetheless compatible with the documented API.
For example, classes may be declared using the keyword struct
rather than class
, function parameter names may be
different, types may be declared using different but equivalent
typedefs, and functions or templates in the header file may have
additional arguments with default values. Any classes, functions, and
other definitions not mentioned in the documentation should be
considered private and subject to change or deletion without
notice.
All definitions are in the namespace gaborator
.
Applications need to either prefix class names
with gaborator::
, or use using namespace
gaborator;
.
The Gaborator is generally sample rate agnostic: it does not
know or care what the actual sample rate of the signal is, and will
work equally well for signals measured in millihertz or gigahertz.
Frequencies are specified as dimensionless numbers, in units of the
sample rate. Since the highest frequency that can be represented by a
sampled signal is half the sample rate, frequencies in the Gaborator
range from 0 to 0.5. In the API, arguments that represent frequencies
in this way have names beginning with ff_
(short
for fractional frequency) as a reminder that the values are
fractions of the sample rate rather than having a unit such as Hz.
Similarly, time is measured not in an absolute unit such as seconds, but the dimensionless unit of samples.