{"id":20278438,"url":"https://github.com/mohabouje/edsp","last_synced_at":"2025-08-20T04:32:39.959Z","repository":{"id":40984213,"uuid":"107450847","full_name":"mohabouje/eDSP","owner":"mohabouje","description":"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. ","archived":false,"fork":false,"pushed_at":"2022-12-27T15:33:51.000Z","size":17649,"stargazers_count":195,"open_issues_count":4,"forks_count":33,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-12-08T15:03:44.524Z","etag":null,"topics":["audio","audio-processing","digital-signal-processing","dsp","music","music-library","signal","signal-processing","wip"],"latest_commit_sha":null,"homepage":"https://mohabouje.github.io/edsp-docs/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohabouje.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"mohabouje","custom":"https://paypal.me/mohabouje"}},"created_at":"2017-10-18T19:02:45.000Z","updated_at":"2024-11-28T10:40:30.000Z","dependencies_parsed_at":"2023-01-31T04:16:48.181Z","dependency_job_id":null,"html_url":"https://github.com/mohabouje/eDSP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohabouje%2FeDSP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohabouje%2FeDSP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohabouje%2FeDSP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohabouje%2FeDSP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohabouje","download_url":"https://codeload.github.com/mohabouje/eDSP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230394228,"owners_count":18218707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-processing","digital-signal-processing","dsp","music","music-library","signal","signal-processing","wip"],"created_at":"2024-11-14T13:23:34.400Z","updated_at":"2024-12-19T07:06:46.132Z","avatar_url":"https://github.com/mohabouje.png","language":"C++","funding_links":["https://patreon.com/mohabouje","https://paypal.me/mohabouje","https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QMXHMYW9BY5C4\u0026source=url","https://www.patreon.com/join/mohabouje"],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.svg\" width=\"350\" title=\"hover text\"\u003e\n\u003c/p\u003e\n\n\n![releases](https://img.shields.io/github/tag/mohabouje/eDSP.svg)\n![issues](https://img.shields.io/github/issues/mohabouje/eDSP.svg)\n![license](https://img.shields.io/github/license/mohabouje/eDSP.svg)\n![GitHub contributors](https://img.shields.io/github/contributors/mohabouje/eDSP.svg)\n[![Build Status][travis-badge]][travis-link]\n[![codecov][codecov-badge]][codecov-link]\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/bbea9e1e8efd4610b71071b275948d83)](https://www.codacy.com/app/mohabouje/eDSP?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=mohabouje/eDSP\u0026amp;utm_campaign=Badge_Grade)\n\n![GitHub forks](https://img.shields.io/github/forks/mohabouje/eDSP.svg?style=social\u0026label=Fork)\n![GitHub stars](https://img.shields.io/github/stars/mohabouje/eDSP.svg?style=social\u0026label=Star)\n![GitHub watchers](https://img.shields.io/github/watchers/mohabouje/eDSP.svg?style=social\u0026label=Watch)\n\n\n*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 \u0026 telecommunications systems.\n\nIt 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](https://www.mathworks.com/products/matlab.html). The library integrates a C++ and Python interfaces and supports Windows, Linux, Mac OS, iOS and Android. \n\n### Yet another DSP framework?\n\nGot 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?\n\n*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:\n\n- Is implemented as a **Headers only** library, just copy and use.\n- Is **Template library**: supports single and double floating point, and fixed-point operations.\n- Integrates an **easy** to use interface,  **STL-like API**. \n- Provides **fast** implementations: check the available [benchmarks](https://github.com/mohabouje/eDSP/wiki/Benchmark).\n- Aims to be **cross-platform**\n- Supports modern **C++11/14/17 features**\n- Implements a simple interface compatible with C\n- Integrates bind for different languages: **Python, Go and JavaScript**\n\n### What platforms are supported?\n\n*eDSP* relies in a modern C++ compiler and some standard [third-party dependencies](https://github.com/mohabouje/eDSP/wiki/Dependencies).  The idea is to build a framework compatible with most of the modern platforms with the minimum modifications. \n\nThose are the supported platforms:\n\n- Linux, FreeBSD, OpenBSD, Solaris, AIX\n- Windows (msvc 2013+, cygwin)\n- macOS (clang 3.5+), iOS\n- Android\n\n### Features\n\neDSP is organized in different modules. Each module integrates different related features. This is the list of the available modules:\n\n- *Audio Coder*: encoder/decoder for different audio formats. \n- *Digital filters*: Biquad, FIR, IIR, moving average, moving median etc.\n- *Spectral analysis*: Fourier transform, Hilbert transform, Hartley transform, cepstrum, periodogram etc.\n- *Oscillators*: sinusoidal, square, triangular and sawtooth signals.\n- *Random*: binary sequence,  uniform distribution, Bernoulli, Weibull, Student, Fisher etc.\n- *Math*: extra functionalities not available in the C++ standard.\n- *Noising*: white noise, brown noise, pink noise, Perlin noise etc.\n- *Algorithms*: clipper, amplifier, lineal-space, logarithmic-space , padder, normalizer etc.\n- *Quantizer*:  u-law, A-law etc.\n- *Statistics*: moment, median, skewness, kurtosis etc.\n- *Windowing*: Bartlett, Hamming, Kaiser, Welch, Blackman etc.\n- *Modulation*: AM, FM, M-PSK, OFDM etc.\n- *MIR*: feature engineering for MIR (Music Information Retrieval) applications.\n- *Equalization*: LMS, RLS etc.\n\n**Note:** *eDSP is a framework under construction. Some features are scheduled for future development.*\n\nPlease check the official [docs](https://mohabouje.github.io/edsp-docs/) or the list of [available features](https://github.com/mohabouje/eDSP/wiki/Modules) to find a detailed information of each module.\n\n### Quick start\n\n- [How to install it?](https://github.com/mohabouje/eDSP/wiki/Installation)\n- [What's about the external dependencies?](https://github.com/mohabouje/eDSP/wiki/Dependencies)\n- [Benchmark: How fast is eDSP?](https://github.com/mohabouje/eDSP/wiki/Benchmark )\n- [MIR (Music Information Retrieval): feature engineering](https://github.com/mohabouje/eDSP/wiki/Features )\n\n### Documentation\n\nCheck the [wiki](https://github.com/mohabouje/eDSP/wiki) for more information. The latest development documentation is available [online](https://mohabouje.github.io/eDSP).\n\n\n## TODO\n\n- [ ] Test the different features [WIP]\n- [ ] Benchmark the library [WIP]\n- [ ] Write Documentation [WIP]\n- [ ] Python Wrapper\n- [ ] Open-Frameworks Wrapper\n- [x] Compile time optimizations: constexpr \u0026 traits\n- [x] Modern C++: const method, noexcept construction, contract, assertions...\n\nCheck the [Kanban](https://github.com/mohabouje/eDSP/projects/1) of this project to get more information about the current state.\n\n\n### License\n\n![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)\n\nThis program is licensed under GNU General Public License, Version 3. \n\nCopyright (c) 2018, [Mohammed Boujemaoui Boulaghmoudi](mohabouje@gmail.com), All rights reserved.\n\nDistributed under the [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.html).\n\n[travis-badge]: https://travis-ci.org/mohabouje/eDSP.svg?branch=master\n[travis-link]: https://travis-ci.org/mohabouje/eDSP\n[codecov-badge]: https://codecov.io/gh/mohabouje/eDSP/branch/master/graph/badge.svg\n[codecov-link]: https://codecov.io/gh/mohabouje/eDSP\n\n### Donation\n\nThis project is developed by [Mohammed Boujemaoui](mailto:mohabouje@gmail.com) on his free time to provide a\nfully integrated DSP framework for signal processing, speech processing or music information retrieval.\n\nIf you feel this project is useful to you and want to support it and it's\nfuture development please consider donating money. \n\n\n\n\n| [![Paypal](https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QMXHMYW9BY5C4\u0026source=url) | [![](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/join/mohabouje) |\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohabouje%2Fedsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohabouje%2Fedsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohabouje%2Fedsp/lists"}