Krotos Modules 3
Loading...
Searching...
No Matches
Kwidget_CoreEngine.h
Go to the documentation of this file.
1namespace krotos
2{
4 {
5 public:
6 class Listener
7 {
8 public:
9 virtual ~Listener() = default;
10 virtual void soloActivated(Kwidget_CoreEngine* engine) = 0;
11 virtual void soloDeActivated(Kwidget_CoreEngine* engine) = 0;
12 virtual void autoPlayChanged(Kwidget_CoreEngine* engine, float newValue) = 0;
13 virtual void loopEnableChanged(Kwidget_CoreEngine* engine, float newValue) = 0;
14 };
15
16 void addListener(Listener* listenerToAdd);
17 void removeListener(Listener* listenerToRemove);
18
20 {
21 static const String Start;
22 static const String Size;
23 static const String Rate;
24 static const String Pitch;
25 static const String PitchMod;
26 static const String Width;
27 static const String Pan;
28 static const String Level;
29 static const String SamplerLevel;
30 static const String GranularLevel;
31 static const String VehicleLevel;
32 static const String LevelMod;
33 static const String StartRand;
34 static const String SizeRand;
35 static const String RateRand;
36 static const String PitchRand;
37 static const String WidthRand;
38 static const String PanRand;
39 static const String LevelRand;
40 static const String Quench;
41 static const String NOR;
42 static const String Robin;
43 static const String SALoop;
44 static const String AutoRate;
45 static const String PhaseLock;
46 static const String PhaseSync;
47 static const String Normalise;
48 static const String MuteUp;
49 static const String MuteDown;
50 static const String Autoplay;
51 static const String Shape;
52 static const String GrainMax;
53 static const String Tracking;
54 static const String Cycles;
55 static const String Smoothing;
56 static const String Sensitivity;
57 static const String ASize;
58 static const String ARate;
59 static const String ASpray;
60 static const String AMix;
61 static const String BSize;
62 static const String BRate;
63 static const String BSpray;
64 static const String BMix;
65 static const String Mode;
66 static const String SamplePaths;
67 static const String TabIndex;
68 static const String SlotIndex;
69 static const String Mute;
70 static const String Solo;
71 static const String MIDIMode;
72 static const String Distance;
73 static const String Selections;
74 };
75
76 static const String embeddingsFilePath;
77 static const String embeddingsFilePathFull;
78
79 static const StringArray ModeNames;
80 static const StringArray MIDIModeNames;
81
89
97
98 Kwidget_CoreEngine(const String& id);
99
101
102 bool isDroneVoice(int voiceIdx);
103 void noteOn(int voiceIdx, int midiNote, float velocity) override;
104 void noteOff(int voiceIdx, float velocity) override;
105 void noteCleared(int voiceIdx) override;
106
107 bool isActive(int voiceIdx) override;
108
111 bool isMlEnabled();
112
113 inline void canReadSpecificFiles(bool canRead) { m_readSpecificFiles = canRead; };
114
115 static constexpr float GranularParamValue{0.5f};
116 static constexpr float SamplerParamValue{0.0f};
117
122 void setActiveMidiMode(MIDIMode newMidiMode);
123
128
129 static const String CoreEngineVersion;
130
131 protected:
132 std::unique_ptr<NearestNeighbourSearch> m_nearestNeighbourSearch;
133
134 std::vector<ParameterInfo> createParameters() override;
135 std::unique_ptr<KwidgetProcessor> createProcessor() override;
136 std::unique_ptr<KwidgetGUI> createGUI() override;
137
138 const std::vector<std::pair<String, GuiTypes>> m_coreEngineGuiTypes{
139 {"Normal", GuiTypes::Normal},
140 {"Sampler", GuiTypes::Sampler},
141 {"Granular", GuiTypes::Granular},
142 {"Vehicle", GuiTypes::Vehicle},
143 };
144
145 size_t numGUIImplementations() override { return m_coreEngineGuiTypes.size(); }
146
147 String getGuiName(int id) override;
148
149 private:
150 void noteOnInternal(int voiceIdx, int midiNote, float velocity);
151 void noteOffInternal(int voiceIdx, float velocity);
152 void noteClearedInternal(int voiceIdx);
153
154 void loadFiles(const StringArray& files);
155 void refreshState();
156
157 bool m_enableNOR{false};
159 bool m_autoplayEnabled{false};
161
164 void soloActivate();
165
168 void soloDeActivate();
169
170 ListenerList<Listener> m_listeners;
171
173
175
177
178 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Kwidget_CoreEngine)
179 };
180} // namespace krotos
Definition KrotosSynthesiserSound.h:19
Definition Kwidget_CoreEngine.h:7
virtual void loopEnableChanged(Kwidget_CoreEngine *engine, float newValue)=0
virtual void soloActivated(Kwidget_CoreEngine *engine)=0
virtual void autoPlayChanged(Kwidget_CoreEngine *engine, float newValue)=0
virtual void soloDeActivated(Kwidget_CoreEngine *engine)=0
Definition Kwidget_CoreEngine.h:4
void noteOnInternal(int voiceIdx, int midiNote, float velocity)
Definition Kwidget_CoreEngine.cpp:343
SamplesTree * m_samplesTree
Definition Kwidget_CoreEngine.h:176
std::unique_ptr< NearestNeighbourSearch > m_nearestNeighbourSearch
Definition Kwidget_CoreEngine.h:132
std::unique_ptr< KwidgetProcessor > createProcessor() override
Definition Kwidget_CoreEngine.cpp:520
static const StringArray ModeNames
Definition Kwidget_CoreEngine.h:79
static const String embeddingsFilePathFull
Definition Kwidget_CoreEngine.h:77
bool m_readSpecificFiles
Definition Kwidget_CoreEngine.h:172
static const String CoreEngineVersion
Definition Kwidget_CoreEngine.h:129
void createNestedKwidgets(KwidgetAudioProcessor &) override
Definition Kwidget_CoreEngine.cpp:276
void soloDeActivate()
Called When the state of our solo button is selected false [SOLO].
Definition Kwidget_CoreEngine.cpp:545
void noteCleared(int voiceIdx) override
Definition Kwidget_CoreEngine.cpp:434
Kwidget_CoreEngine(const String &id)
Definition Kwidget_CoreEngine.cpp:72
std::unique_ptr< KwidgetGUI > createGUI() override
Definition Kwidget_CoreEngine.cpp:525
std::vector< ParameterInfo > createParameters() override
Definition Kwidget_CoreEngine.cpp:455
size_t numGUIImplementations() override
Definition Kwidget_CoreEngine.h:145
float m_previousSoloValue
Definition Kwidget_CoreEngine.h:174
bool isDroneVoice(int voiceIdx)
Definition Kwidget_CoreEngine.cpp:322
EngineMode
Definition Kwidget_CoreEngine.h:83
@ modeSampler
Definition Kwidget_CoreEngine.h:84
@ modeVehicle
Definition Kwidget_CoreEngine.h:86
@ modeGranular
Definition Kwidget_CoreEngine.h:85
@ modeNUM_MODES
Definition Kwidget_CoreEngine.h:87
MIDIMode m_activeMIDIMode
Definition Kwidget_CoreEngine.h:158
KrotosSampleOscillatorSound m_soSound
Definition Kwidget_CoreEngine.h:160
void setActiveMidiMode(MIDIMode newMidiMode)
Definition Kwidget_CoreEngine.cpp:550
bool m_enableNOR
Definition Kwidget_CoreEngine.h:157
static const StringArray MIDIModeNames
Definition Kwidget_CoreEngine.h:80
bool m_autoplayEnabled
Definition Kwidget_CoreEngine.h:159
void removeListener(Listener *listenerToRemove)
Definition Kwidget_CoreEngine.cpp:534
const std::vector< std::pair< String, GuiTypes > > m_coreEngineGuiTypes
Definition Kwidget_CoreEngine.h:138
void refreshState()
Definition Kwidget_CoreEngine.cpp:252
void loadFiles(const StringArray &files)
Definition Kwidget_CoreEngine.cpp:221
static constexpr float GranularParamValue
Definition Kwidget_CoreEngine.h:115
void noteOff(int voiceIdx, float velocity) override
Definition Kwidget_CoreEngine.cpp:415
void addListener(Listener *listenerToAdd)
Definition Kwidget_CoreEngine.cpp:532
static constexpr float SamplerParamValue
Definition Kwidget_CoreEngine.h:116
void noteClearedInternal(int voiceIdx)
Definition Kwidget_CoreEngine.cpp:424
bool isMlEnabled()
Returns true if the ML nearest neighbour search has initialised successfully and is ready for use.
Definition Kwidget_CoreEngine.cpp:320
void soloActivate()
Called When the state of our solo button is selected true [SOLO].
Definition Kwidget_CoreEngine.cpp:540
void canReadSpecificFiles(bool canRead)
Definition Kwidget_CoreEngine.h:113
static const String embeddingsFilePath
Definition Kwidget_CoreEngine.h:76
String getGuiName(int id) override
Definition Kwidget_CoreEngine.cpp:530
bool isActive(int voiceIdx) override
Definition Kwidget_CoreEngine.cpp:327
GuiTypes
Definition Kwidget_CoreEngine.h:91
@ Sampler
Definition Kwidget_CoreEngine.h:93
@ Vehicle
Definition Kwidget_CoreEngine.h:95
@ Granular
Definition Kwidget_CoreEngine.h:94
@ Normal
Definition Kwidget_CoreEngine.h:92
void noteOn(int voiceIdx, int midiNote, float velocity) override
Definition Kwidget_CoreEngine.cpp:359
void noteOffInternal(int voiceIdx, float velocity)
Definition Kwidget_CoreEngine.cpp:405
ListenerList< Listener > m_listeners
Definition Kwidget_CoreEngine.h:170
MIDIMode getActiveMidiMode()
Definition Kwidget_CoreEngine.cpp:564
Definition KwidgetAudioProcessor.h:12
Definition Kwidget.h:8
A CustomParameterTree for managing a list of samples, with parameters for mute, solo,...
Definition SampleDataTree.h:9
Definition AirAbsorptionFilter.cpp:2
MIDIMode
Definition SampleEngine.h:54
Definition Kwidget_CoreEngine.h:20
static const String MIDIMode
Definition Kwidget_CoreEngine.h:71
static const String NOR
Definition Kwidget_CoreEngine.h:41
static const String TabIndex
Definition Kwidget_CoreEngine.h:67
static const String Mode
Definition Kwidget_CoreEngine.h:65
static const String PitchRand
Definition Kwidget_CoreEngine.h:36
static const String BMix
Definition Kwidget_CoreEngine.h:64
static const String BSpray
Definition Kwidget_CoreEngine.h:63
static const String PhaseSync
Definition Kwidget_CoreEngine.h:46
static const String Width
Definition Kwidget_CoreEngine.h:26
static const String PhaseLock
Definition Kwidget_CoreEngine.h:45
static const String Selections
Definition Kwidget_CoreEngine.h:73
static const String SizeRand
Definition Kwidget_CoreEngine.h:34
static const String Distance
Definition Kwidget_CoreEngine.h:72
static const String Solo
Definition Kwidget_CoreEngine.h:70
static const String MuteUp
Definition Kwidget_CoreEngine.h:48
static const String SamplerLevel
Definition Kwidget_CoreEngine.h:29
static const String SamplePaths
Definition Kwidget_CoreEngine.h:66
static const String VehicleLevel
Definition Kwidget_CoreEngine.h:31
static const String Pan
Definition Kwidget_CoreEngine.h:27
static const String Robin
Definition Kwidget_CoreEngine.h:42
static const String Start
Definition Kwidget_CoreEngine.h:21
static const String Mute
Definition Kwidget_CoreEngine.h:69
static const String AMix
Definition Kwidget_CoreEngine.h:60
static const String LevelMod
Definition Kwidget_CoreEngine.h:32
static const String GrainMax
Definition Kwidget_CoreEngine.h:52
static const String Pitch
Definition Kwidget_CoreEngine.h:24
static const String PanRand
Definition Kwidget_CoreEngine.h:38
static const String Level
Definition Kwidget_CoreEngine.h:28
static const String Size
Definition Kwidget_CoreEngine.h:22
static const String Smoothing
Definition Kwidget_CoreEngine.h:55
static const String Rate
Definition Kwidget_CoreEngine.h:23
static const String LevelRand
Definition Kwidget_CoreEngine.h:39
static const String ARate
Definition Kwidget_CoreEngine.h:58
static const String WidthRand
Definition Kwidget_CoreEngine.h:37
static const String Tracking
Definition Kwidget_CoreEngine.h:53
static const String Normalise
Definition Kwidget_CoreEngine.h:47
static const String Autoplay
Definition Kwidget_CoreEngine.h:50
static const String StartRand
Definition Kwidget_CoreEngine.h:33
static const String BRate
Definition Kwidget_CoreEngine.h:62
static const String SALoop
Definition Kwidget_CoreEngine.h:43
static const String BSize
Definition Kwidget_CoreEngine.h:61
static const String RateRand
Definition Kwidget_CoreEngine.h:35
static const String PitchMod
Definition Kwidget_CoreEngine.h:25
static const String AutoRate
Definition Kwidget_CoreEngine.h:44
static const String GranularLevel
Definition Kwidget_CoreEngine.h:30
static const String Shape
Definition Kwidget_CoreEngine.h:51
static const String ASpray
Definition Kwidget_CoreEngine.h:59
static const String Sensitivity
Definition Kwidget_CoreEngine.h:56
static const String SlotIndex
Definition Kwidget_CoreEngine.h:68
static const String Quench
Definition Kwidget_CoreEngine.h:40
static const String Cycles
Definition Kwidget_CoreEngine.h:54
static const String MuteDown
Definition Kwidget_CoreEngine.h:49
static const String ASize
Definition Kwidget_CoreEngine.h:57