Mema
Memory Matrix — multi-channel audio matrix monitor and router
Loading...
Searching...
No Matches
ProcessorSpectrumData.h
Go to the documentation of this file.
1
/* Copyright (c) 2024-2025, Christian Ahrens
2
*
3
* This file is part of Mema <https://github.com/ChristianAhrens/Mema>
4
*
5
* This tool is free software; you can redistribute it and/or modify it under
6
* the terms of the GNU Lesser General Public License version 3.0 as published
7
* by the Free Software Foundation.
8
*
9
* This tool is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12
* details.
13
*
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this tool; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
*/
18
#pragma once
19
20
#include "
AbstractProcessorData.h
"
21
22
namespace
Mema
23
{
24
26
class
ProcessorSpectrumData
:
public
AbstractProcessorData
27
{
28
public
:
30
struct
SpectrumBands
31
{
32
enum
{
33
count
= 512
34
};
35
36
SpectrumBands
()
37
{
38
for
(
int
i = 0; i <
count
; ++i)
39
{
40
bandsPeak
[i] = 0.0f;
41
bandsHold
[i] = 0.0f;
42
}
43
44
mindB
= 0.0f;
45
maxdB
= 0.0f;
46
minFreq
= 20.0f;
47
maxFreq
= 20000.0f;
48
freqRes
=
static_cast<
float
>
((
maxFreq
-
minFreq
) /
ProcessorSpectrumData::SpectrumBands::count
);
49
};
50
51
float
bandsPeak
[
count
];
52
float
bandsHold
[
count
];
53
float
mindB
;
54
float
maxdB
;
55
float
minFreq
;
56
float
maxFreq
;
57
float
freqRes
;
58
};
59
60
public
:
61
ProcessorSpectrumData
();
62
~ProcessorSpectrumData
();
63
64
void
SetSpectrum
(
unsigned
long
channel,
SpectrumBands
spectrum);
65
const
SpectrumBands
&
GetSpectrum
(
unsigned
long
channel);
66
67
void
SetChannelCount
(
unsigned
long
count)
override
;
68
unsigned
long
GetChannelCount
()
override
;
69
70
private
:
71
std::map<unsigned long, SpectrumBands> m_spectrumsMap;
72
73
};
74
75
}
AbstractProcessorData.h
Mema::AbstractProcessorData
Base class for all data objects exchanged between the audio processor and its analyzers/visualisers.
Definition
AbstractProcessorData.h:30
Mema::ProcessorSpectrumData
Definition
ProcessorSpectrumData.h:27
Mema::ProcessorSpectrumData::SetChannelCount
void SetChannelCount(unsigned long count) override
Sets the number of audio channels this data object covers.
Definition
ProcessorSpectrumData.cpp:47
Mema::ProcessorSpectrumData::GetChannelCount
unsigned long GetChannelCount() override
Returns the number of audio channels this data object covers.
Definition
ProcessorSpectrumData.cpp:59
Mema::ProcessorSpectrumData::ProcessorSpectrumData
ProcessorSpectrumData()
Definition
ProcessorSpectrumData.cpp:24
Mema::ProcessorSpectrumData::GetSpectrum
const SpectrumBands & GetSpectrum(unsigned long channel)
Definition
ProcessorSpectrumData.cpp:39
Mema::ProcessorSpectrumData::~ProcessorSpectrumData
~ProcessorSpectrumData()
Definition
ProcessorSpectrumData.cpp:29
Mema::ProcessorSpectrumData::SetSpectrum
void SetSpectrum(unsigned long channel, SpectrumBands spectrum)
Definition
ProcessorSpectrumData.cpp:34
Mema
Definition
Mema.cpp:27
Mema::ProcessorSpectrumData::SpectrumBands
FFT output for a single channel — 512 frequency bins with peak and hold values.
Definition
ProcessorSpectrumData.h:31
Mema::ProcessorSpectrumData::SpectrumBands::freqRes
float freqRes
Definition
ProcessorSpectrumData.h:57
Mema::ProcessorSpectrumData::SpectrumBands::mindB
float mindB
Definition
ProcessorSpectrumData.h:53
Mema::ProcessorSpectrumData::SpectrumBands::maxdB
float maxdB
Definition
ProcessorSpectrumData.h:54
Mema::ProcessorSpectrumData::SpectrumBands::bandsHold
float bandsHold[count]
Definition
ProcessorSpectrumData.h:52
Mema::ProcessorSpectrumData::SpectrumBands::SpectrumBands
SpectrumBands()
Definition
ProcessorSpectrumData.h:36
Mema::ProcessorSpectrumData::SpectrumBands::bandsPeak
float bandsPeak[count]
Definition
ProcessorSpectrumData.h:51
Mema::ProcessorSpectrumData::SpectrumBands::maxFreq
float maxFreq
Definition
ProcessorSpectrumData.h:56
Mema::ProcessorSpectrumData::SpectrumBands::minFreq
float minFreq
Definition
ProcessorSpectrumData.h:55
Mema::ProcessorSpectrumData::SpectrumBands::count
@ count
Definition
ProcessorSpectrumData.h:33
Source
MemaProcessor
ProcessorSpectrumData.h
Generated by
1.9.8