https://github.com/akiyukiokayasu/ame
C++ header-only DSP library for Cortex-M
https://github.com/akiyukiokayasu/ame
audio cortex-m imxrt
Last synced: 8 months ago
JSON representation
C++ header-only DSP library for Cortex-M
- Host: GitHub
- URL: https://github.com/akiyukiokayasu/ame
- Owner: AkiyukiOkayasu
- License: mit
- Created: 2020-04-23T15:10:42.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-10T06:23:02.000Z (over 3 years ago)
- Last Synced: 2025-04-12T03:54:39.836Z (about 1 year ago)
- Topics: audio, cortex-m, imxrt
- Language: C++
- Homepage:
- Size: 33.2 MB
- Stars: 18
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= AME - C++ header-only DSP library for Cortex-M
image:https://github.com/AkiyukiOkayasu/ame/actions/workflows/cmake.yml/badge.svg[UnitTest] image:https://github.com/AkiyukiOkayasu/ame/actions/workflows/doxygen.yml/badge.svg[link=https://akiyukiokayasu.github.io/ame/] image:https://img.shields.io/github/v/release/AkiyukiOkayasu/ame[link=https://github.com/AkiyukiOkayasu/ame/releases/latest] image:https://img.shields.io/github/license/AkiyukiOkayasu/ame[link=LICENSE]
AME is a C++ header-only library focused on fast audio processing on Cortex-M. +
Specifically, AME provides a function that is missing from the CMSIS-DSP for audio processing. +
If CMSIS-DSP is available, use it, but it is not required. This means that ame can run on non-Cortex-M environments. +
This is my back up project and also in the early stages of the project. +
Major changes may be added to this project. +
== Dependencies
* C++20
=== Optional
* https://arm-software.github.io/CMSIS_5/DSP/html/index.html[ARM CMSIS-DSP] +
== Features
* Audio buffer that can only be allocatable at compile time
* Oscillator and noise generator
* Filters
* Fractional delay
* Reverb
* WAV reader
* Interpolate functions
* Ambisonics
* Conversion functions
** Float and Q23
** Decibel and Amplitude
** Frequency and Period
** MIDI note and Frequency
** Radian and Degree
== How to use
The easiest way is to just copy this repository and include ame.hpp.
Just copy this repository and #include "ame.hpp".
=== CMake integration
If you are using CMake, you can install ame using https://cmake.org/cmake/help/latest/module/FetchContent.html[FetchContent]
[source,cmake]
----
# CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(example_project)
add_executable(example_project main.cpp)
include(FetchContent)
FetchContent_Declare(ame GIT_REPOSITORY https://github.com/AkiyukiOkayasu/ame GIT_TAG origin/master)
# FetchContent_Declare(ame GIT_REPOSITORY https://github.com/AkiyukiOkayasu/ame GIT_TAG v1.2.2)
FetchContent_MakeAvailable(ame)
target_compile_features(example_project PUBLIC cxx_std_20)
target_link_libraries(example_project PRIVATE ame)
----
=== For JUCE users
ame is also a JUCE module. +
https://github.com/AkiyukiOkayasu/ame-juce[ame-juce] is a simple example of combining JUCE and ame. +
Be aware that the order of audio samples in ame is interleaved. +
== Other document
See the https://akiyukiokayasu.github.io/ame/[document] for details.
== Contribution
Contributions are welcome. +
To keep your source code clean, remember to run clang-format before submitting your PR and check it with clang-tidy. The configuration files are located in the root of Project. +
Refer to the https://www.aes.org/par/guide/[Pro Audio Style Guide] for the technical terms used in doxygen comments.