LMMS
Loading...
Searching...
No Matches
Kicker.h
Go to the documentation of this file.
1/*
2 * Kicker.h - drum synthesizer
3 *
4 * Copyright (c) 2006-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
5 * Copyright (c) 2014 grejppi <grejppi/at/gmail.com>
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#ifndef LMMS_KICKER_H
27#define LMMS_KICKER_H
28
29#include "AutomatableModel.h"
30#include "Instrument.h"
31#include "InstrumentView.h"
32#include "TempoSyncKnobModel.h"
33
34
35namespace lmms
36{
37
38#define KICKER_PRESET_VERSION 1
39
40
41class NotePlayHandle; // IWYU pragma: keep
42
43namespace gui
44{
45class Knob;
46class LedCheckBox;
47class KickerInstrumentView;
48}
49
50
52{
53 Q_OBJECT
54public:
55 KickerInstrument( InstrumentTrack * _instrument_track );
56 ~KickerInstrument() override = default;
57
58 void playNote( NotePlayHandle * _n,
59 SampleFrame* _working_buffer ) override;
60 void deleteNotePluginData( NotePlayHandle * _n ) override;
61
62 void saveSettings(QDomDocument& doc, QDomElement& elem) override;
63 void loadSettings(const QDomElement& elem) override;
64
65 QString nodeName() const override;
66
67 float desiredReleaseTimeMs() const override
68 {
69 return 12.f;
70 }
71
72 gui::PluginView* instantiateView( QWidget * _parent ) override;
73
74
75private:
86
89
91
93
94} ;
95
96
97namespace gui
98{
99
100
126
127
128} // namespace gui
129
130} // namespace lmms
131
132#endif // LMMS_KICKER_H
Definition AutomatableModel.h:497
Definition AutomatableModel.h:463
Definition Instrument.h:52
Instrument(InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
Definition Instrument.cpp:38
Definition InstrumentTrack.h:62
Definition AutomatableModel.h:481
BoolModel m_startNoteModel
Definition Kicker.h:87
void loadSettings(const QDomElement &elem) override
Definition Kicker.cpp:107
FloatModel m_slopeModel
Definition Kicker.h:85
void saveSettings(QDomDocument &doc, QDomElement &elem) override
Definition Kicker.cpp:87
FloatModel m_startFreqModel
Definition Kicker.h:76
FloatModel m_endFreqModel
Definition Kicker.h:77
KickerInstrument(InstrumentTrack *_instrument_track)
Definition Kicker.cpp:66
void playNote(NotePlayHandle *_n, SampleFrame *_working_buffer) override
Definition Kicker.cpp:158
gui::PluginView * instantiateView(QWidget *_parent) override
Create a view for the model.
Definition Kicker.cpp:222
QString nodeName() const override
Definition Kicker.cpp:150
FloatModel m_envModel
Definition Kicker.h:82
FloatModel m_distEndModel
Definition Kicker.h:80
~KickerInstrument() override=default
float desiredReleaseTimeMs() const override
Definition Kicker.h:67
FloatModel m_clickModel
Definition Kicker.h:84
FloatModel m_noiseModel
Definition Kicker.h:83
FloatModel m_distModel
Definition Kicker.h:79
FloatModel m_gainModel
Definition Kicker.h:81
void deleteNotePluginData(NotePlayHandle *_n) override
Definition Kicker.cpp:214
BoolModel m_endNoteModel
Definition Kicker.h:88
IntModel m_versionModel
Definition Kicker.h:90
TempoSyncKnobModel m_decayModel
Definition Kicker.h:78
Definition NotePlayHandle.h:48
Definition SampleFrame.h:41
Definition TempoSyncKnobModel.h:45
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
Definition Kicker.h:102
KickerInstrumentView(Instrument *_instrument, QWidget *_parent)
Definition Kicker.cpp:270
Knob * m_startFreqKnob
Definition Kicker.h:111
Knob * m_distKnob
Definition Kicker.h:114
~KickerInstrumentView() override=default
Knob * m_slopeKnob
Definition Kicker.h:120
void modelChanged() override
Definition Kicker.cpp:340
Knob * m_envKnob
Definition Kicker.h:117
Knob * m_decayKnob
Definition Kicker.h:113
Knob * m_distEndKnob
Definition Kicker.h:115
Knob * m_noiseKnob
Definition Kicker.h:118
Knob * m_clickKnob
Definition Kicker.h:119
LedCheckBox * m_endNoteToggle
Definition Kicker.h:123
Knob * m_gainKnob
Definition Kicker.h:116
LedCheckBox * m_startNoteToggle
Definition Kicker.h:122
Knob * m_endFreqKnob
Definition Kicker.h:112
Definition Knob.h:47
Definition LedCheckBox.h:37
Definition PluginView.h:36
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
GUI::ui_handle_t gui
Definition main.cpp:50