lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
plugins
DynamicsProcessor
DynamicsProcessor.h
Go to the documentation of this file.
1
/*
2
* DynamicsProcessor.h - DynamicsProcessor effect-plugin
3
*
4
* Copyright (c) 2014 Vesa Kivimäki <contact/dot/diizy/at/nbl/dot/fi>
5
* Copyright (c) 2006-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
6
*
7
* This file is part of LMMS - https://lmms.io
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public
11
* License as published by the Free Software Foundation; either
12
* version 2 of the License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public
20
* License along with this program (see COPYING); if not, write to the
21
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22
* Boston, MA 02110-1301 USA.
23
*
24
*/
25
26
27
#ifndef DYNPROC_H
28
#define DYNPROC_H
29
30
#include "
Effect.h
"
31
#include "
DynamicsProcessorControls.h
"
32
33
namespace
lmms
34
{
35
36
class
RmsHelper
;
37
38
39
class
DynProcEffect
:
public
Effect
40
{
41
public
:
42
DynProcEffect
(
Model
* _parent,
43
const
Descriptor::SubPluginFeatures::Key * _key );
44
~DynProcEffect
()
override
;
45
46
ProcessStatus
processImpl
(
SampleFrame
* buf,
const
f_cnt_t
frames)
override
;
47
void
processBypassedImpl
()
override
;
48
49
EffectControls
*
controls
()
override
50
{
51
return
( &
m_dpControls
);
52
}
53
54
55
private
:
56
void
calcAttack
();
57
void
calcRelease
();
58
59
DynProcControls
m_dpControls
;
60
61
// this member array is needed for peak detection
62
float
m_currentPeak
[2];
63
double
m_attCoeff
;
64
double
m_relCoeff
;
65
66
bool
m_needsUpdate
;
67
68
RmsHelper
*
m_rms
[2];
69
70
friend
class
DynProcControls
;
71
72
} ;
73
74
75
}
// namespace lmms
76
77
#endif
DynamicsProcessorControls.h
Effect.h
lmms::DynProcEffect::processImpl
ProcessStatus processImpl(SampleFrame *buf, const f_cnt_t frames) override
Definition
DynamicsProcessor.cpp:96
lmms::DynProcEffect::calcAttack
void calcAttack()
Definition
DynamicsProcessor.cpp:85
lmms::DynProcEffect::controls
EffectControls * controls() override
Definition
DynamicsProcessor.h:49
lmms::DynProcEffect::m_attCoeff
double m_attCoeff
Definition
DynamicsProcessor.h:63
lmms::DynProcEffect::DynProcEffect
DynProcEffect(Model *_parent, const Descriptor::SubPluginFeatures::Key *_key)
Definition
DynamicsProcessor.cpp:63
lmms::DynProcEffect::m_needsUpdate
bool m_needsUpdate
Definition
DynamicsProcessor.h:66
lmms::DynProcEffect::m_currentPeak
float m_currentPeak[2]
Definition
DynamicsProcessor.h:62
lmms::DynProcEffect::m_relCoeff
double m_relCoeff
Definition
DynamicsProcessor.h:64
lmms::DynProcEffect::calcRelease
void calcRelease()
Definition
DynamicsProcessor.cpp:90
lmms::DynProcEffect::DynProcControls
friend class DynProcControls
Definition
DynamicsProcessor.h:70
lmms::DynProcEffect::m_dpControls
DynProcControls m_dpControls
Definition
DynamicsProcessor.h:59
lmms::DynProcEffect::processBypassedImpl
void processBypassedImpl() override
Definition
DynamicsProcessor.cpp:214
lmms::DynProcEffect::m_rms
RmsHelper * m_rms[2]
Definition
DynamicsProcessor.h:68
lmms::EffectControls
Definition
EffectControls.h:44
lmms::Effect::Effect
Effect(const Plugin::Descriptor *_desc, Model *_parent, const Descriptor::SubPluginFeatures::Key *_key)
Definition
Effect.cpp:41
lmms::Effect::ProcessStatus
ProcessStatus
Definition
Effect.h:150
lmms::Model
Definition
Model.h:37
lmms::RmsHelper
Definition
RmsHelper.h:37
lmms::SampleFrame
Definition
SampleFrame.h:41
lmms
Definition
RemotePluginBase.cpp:34
lmms::f_cnt_t
std::uint64_t f_cnt_t
Definition
LmmsTypes.h:43
Generated on
for lmms by
1.18.0