Aquila is a digital signal processing library for C++11.
C++ C CMake Other
Switch branches/tags
Nothing to show
Clone or download
Latest commit d5e3bde May 7, 2015

What is Aquila?

Aquila is an open source and cross-platform DSP (Digital Signal Processing) library for C++11.

Build Status Windows Build Status Coverage Status Coverity Scan Build Status


#include "aquila/aquila.h"

int main()
    // input signal parameters
    const std::size_t SIZE = 64;
    const Aquila::FrequencyType sampleFreq = 2000, f1 = 125, f2 = 700;

    Aquila::SineGenerator sine1(sampleFreq);
    Aquila::SineGenerator sine2(sampleFreq);
    auto sum = sine1 + sine2;

    Aquila::TextPlot plot("Input signal");

    // calculate the FFT
    auto fft = Aquila::FftFactory::getFft(SIZE);
    Aquila::SpectrumType spectrum = fft->fft(sum.toArray());


    return 0;

For more usage examples see the examples directory or browse them online.


  • various signal sources (generators, text/binary/WAVE files)
  • signal windowing and filtering
  • performing operations on a frame-by-frame basis
  • calculating energy, power, FFT and DCT of a signal
  • feature extraction, including MFCC and HFCC features, widely used in speech recognition
  • pattern matching with DTW (dynamic time warping) algorithm


The following dependencies are required to build the library from source.

  • a modern C++11 compiler
  • CMake >= 2.8


See for some guidelines how to get involved.


The library is licensed under the MIT (X11) license. A copy of the license is distributed with the library in the LICENSE file.


Zbigniew Siciarz (zbigniew at siciarz dot net)

This library includes code from Takuya Ooura's mathematical software packages, which are available at