All Projects → mohabouje → Edsp

mohabouje / Edsp

Licence: gpl-3.0
A cross-platform DSP library written in C++ 11/14. This library harnesses the power of C++ templates to implement a complete set of DSP algorithms.

Projects that are alternatives of or similar to Edsp

Q
C++ Library for Audio Digital Signal Processing
Stars: ✭ 481 (+314.66%)
Mutual labels:  audio, music, dsp, audio-processing
Pyo
Python DSP module
Stars: ✭ 904 (+679.31%)
Mutual labels:  audio, music, dsp, signal-processing
DTMF-Decoder
A Java program to implement a DMTF Decoder.
Stars: ✭ 28 (-75.86%)
Mutual labels:  signal-processing, dsp, signal, audio-processing
Librosa
Python library for audio and music analysis
Stars: ✭ 4,901 (+4125%)
Mutual labels:  audio, music, dsp
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (+240.52%)
Mutual labels:  audio, music, dsp
Matchering
🎚️ Open Source Audio Matching and Mastering
Stars: ✭ 398 (+243.1%)
Mutual labels:  audio, music, dsp
Hifiberry Os
Linux distribution optimized for audio playback
Stars: ✭ 487 (+319.83%)
Mutual labels:  audio, music, dsp
Webmidikit
Simplest MIDI Swift library
Stars: ✭ 100 (-13.79%)
Mutual labels:  audio, music, music-library
Tauonmusicbox
The Linux desktop music player from the future! 🌆
Stars: ✭ 494 (+325.86%)
Mutual labels:  audio, music, music-library
Sincnet
SincNet is a neural architecture for efficiently processing raw audio samples.
Stars: ✭ 764 (+558.62%)
Mutual labels:  audio, audio-processing, signal-processing
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (+678.45%)
Mutual labels:  audio, music, audio-processing
Sporth
A small stack-based audio language.
Stars: ✭ 325 (+180.17%)
Mutual labels:  audio, music, dsp
Surfboard
Novoic's audio feature extraction library
Stars: ✭ 318 (+174.14%)
Mutual labels:  audio, audio-processing, signal-processing
Audiomentations
A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.
Stars: ✭ 439 (+278.45%)
Mutual labels:  audio, music, dsp
Daisysp
A Powerful, Open Source DSP Library in C++
Stars: ✭ 291 (+150.86%)
Mutual labels:  audio, music, dsp
Nara wpe
Different implementations of "Weighted Prediction Error" for speech dereverberation
Stars: ✭ 265 (+128.45%)
Mutual labels:  audio, audio-processing, signal-processing
RTspice
A real-time netlist based audio circuit plugin
Stars: ✭ 51 (-56.03%)
Mutual labels:  signal-processing, dsp, audio-processing
Guitard
Node based multi effects audio processor
Stars: ✭ 31 (-73.28%)
Mutual labels:  audio, dsp, audio-processing
Audio Visualizer Android
🎵 [Android Library] A light-weight and easy-to-use Audio Visualizer for Android.
Stars: ✭ 581 (+400.86%)
Mutual labels:  audio, music, audio-processing
Cs.2click
🔊 A Better Audio Router for a Modular System.
Stars: ✭ 7 (-93.97%)
Mutual labels:  audio, music, signal

releases issues license GitHub contributors Build Status codecov Codacy Badge

GitHub forks GitHub stars GitHub watchers

eDSP (easy Digital Signal Processing) is a digital signal processing framework written in modern C++ that implements some of the common functions and algorithms frequently used in digital signal processing, audio engineering & telecommunications systems.

It aims to provide efficient and streamlined base calculations while at the same time having a straightforward and easy-to-use interface similar to another numeric language like MATLAB. The library integrates a C++ and Python interfaces and supports Windows, Linux, Mac OS, iOS and Android.

Yet another DSP framework?

Got it! Excellent question! There are plenty of established DSP frameworks for C++. You may be wondering, What's the point of implementing other DSP framework? What does eDSP bring to the party that differentiates it from these?

eDSP is a modern framework written for modern C++ developers. It is an alternative for those who want a powerful template DSP library that keeps a simple STL-like API. eDSP is a framework that:

  • Is implemented as a Headers only library, just copy and use.
  • Is Template library: supports single and double floating point, and fixed-point operations.
  • Integrates an easy to use interface, STL-like API.
  • Provides fast implementations: check the available benchmarks.
  • Aims to be cross-platform
  • Supports modern C++11/14/17 features
  • Implements a simple interface compatible with C
  • Integrates bind for different languages: Python, Go and JavaScript

What platforms are supported?

eDSP relies in a modern C++ compiler and some standard third-party dependencies. The idea is to build a framework compatible with most of the modern platforms with the minimum modifications.

Those are the supported platforms:

  • Linux, FreeBSD, OpenBSD, Solaris, AIX
  • Windows (msvc 2013+, cygwin)
  • macOS (clang 3.5+), iOS
  • Android

Features

eDSP is organized in different modules. Each module integrates different related features. This is the list of the available modules:

  • Audio Coder: encoder/decoder for different audio formats.
  • Digital filters: Biquad, FIR, IIR, moving average, moving median etc.
  • Spectral analysis: Fourier transform, Hilbert transform, Hartley transform, cepstrum, periodogram etc.
  • Oscillators: sinusoidal, square, triangular and sawtooth signals.
  • Random: binary sequence, uniform distribution, Bernoulli, Weibull, Student, Fisher etc.
  • Math: extra functionalities not available in the C++ standard.
  • Noising: white noise, brown noise, pink noise, Perlin noise etc.
  • Algorithms: clipper, amplifier, lineal-space, logarithmic-space , padder, normalizer etc.
  • Quantizer: u-law, A-law etc.
  • Statistics: moment, median, skewness, kurtosis etc.
  • Windowing: Bartlett, Hamming, Kaiser, Welch, Blackman etc.
  • Modulation: AM, FM, M-PSK, OFDM etc.
  • MIR: feature engineering for MIR (Music Information Retrieval) applications.
  • Equalization: LMS, RLS etc.

Note: eDSP is a framework under construction. Some features are scheduled for future development.

Please check the official docs or the list of available features to find a detailed information of each module.

Quick start

Documentation

Check the wiki for more information. The latest development documentation is available online.

TODO

  • [ ] Test the different features [WIP]
  • [ ] Benchmark the library [WIP]
  • [ ] Write Documentation [WIP]
  • [ ] Python Wrapper
  • [ ] Open-Frameworks Wrapper
  • [x] Compile time optimizations: constexpr & traits
  • [x] Modern C++: const method, noexcept construction, contract, assertions...

Check the Kanban of this project to get more information about the current state.

License

GPLv3

This program is licensed under GNU General Public License, Version 3.

Copyright (c) 2018, Mohammed Boujemaoui Boulaghmoudi, All rights reserved.

Distributed under the GPLv3 license.

Donation

This project is developed by Mohammed Boujemaoui on his free time to provide a fully integrated DSP framework for signal processing, speech processing or music information retrieval.

If you feel this project is useful to you and want to support it and it's future development please consider donating money.

| Paypal | |

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].