arduino-audio-tools
Loading...
Searching...
No Matches
MDFEchoCancellationConfig.h
1/* Copyright (C) 2003-2008 Jean-Marc Valin
2 * Copyright (C) 2024 Phil Schatzmann (Header-only adaptation)
3 *
4 * Echo canceller configuration constants
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * 3. The name of the author may not be used to endorse or promote products
17 * derived from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32#pragma once
33
34#include <cstdint>
35
36namespace audio_tools {
37
38// ============================================================================
39// Feature Flags
40// ============================================================================
41
46#define FIXED_POINT // Disabled - floating-point mode is currently supported
47
53#define TWO_PATH
54
55// ============================================================================
56// Echo Canceller Tuning Parameters
57// ============================================================================
58
59
64#define PLAYBACK_DELAY 2
65
66// ============================================================================
67// Mathematical Constants
68// ============================================================================
69
70#ifndef M_PI
72#define M_PI 3.14159265358979323846
73#endif
74
75// ============================================================================
76// Floating Point Mode Constants
77// ============================================================================
78
79#ifdef FIXED_POINT
80
82#define FLOAT_ZERO {0, 0}
83
85#define FLOAT_ONE {32767, 0}
86
88#define FLOAT_HALF {16384, 0}
89
90#else
91
93#define FLOAT_ZERO 0.f
94
96#define FLOAT_ONE 1.f
97
99#define FLOAT_HALF 0.5f
100
101#endif // FIXED_POINT
102
103} // namespace audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10