Gaborator reference: API Introduction

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;.

Frequency and Time Units

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 milliherz or gigaherz. 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.