LMMS
Loading...
Searching...
No Matches
juce_MPESynthesiserBase.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
47{
48public:
49 //==============================================================================
52
61
62 //==============================================================================
66 MPEZoneLayout getZoneLayout() const noexcept;
67
72 void setZoneLayout (MPEZoneLayout newLayout);
73
74 //==============================================================================
78 virtual void setCurrentPlaybackSampleRate (double sampleRate);
79
84
85 //==============================================================================
99 template <typename floatType>
100 void renderNextBlock (AudioBuffer<floatType>& outputAudio,
101 const MidiBuffer& inputMidi,
102 int startSample,
103 int numSamples);
104
105 //==============================================================================
117 virtual void handleMidiEvent (const MidiMessage&);
118
119 //==============================================================================
140 void setMinimumRenderingSubdivisionSize (int numSamples, bool shouldBeStrict = false) noexcept;
141
142 //==============================================================================
153 void enableLegacyMode (int pitchbendRange = 2,
154 Range<int> channelRange = Range<int> (1, 17));
155
157 bool isLegacyModeEnabled() const noexcept;
158
160 Range<int> getLegacyModeChannelRange() const noexcept;
161
163 void setLegacyModeChannelRange (Range<int> channelRange);
164
166 int getLegacyModePitchbendRange() const noexcept;
167
169 void setLegacyModePitchbendRange (int pitchbendRange);
170
171 //==============================================================================
173
175 void setPressureTrackingMode (TrackingMode modeToUse);
176
178 void setPitchbendTrackingMode (TrackingMode modeToUse);
179
181 void setTimbreTrackingMode (TrackingMode modeToUse);
182
183protected:
184 //==============================================================================
188 virtual void renderNextSubBlock (AudioBuffer<float>& outputAudio,
189 int startSample,
190 int numSamples) = 0;
191
195 virtual void renderNextSubBlock (AudioBuffer<double>& /*outputAudio*/,
196 int /*startSample*/,
197 int /*numSamples*/) {}
198
199protected:
200 //==============================================================================
203
204private:
205 //==============================================================================
207
209 double sampleRate = 0.0;
212
214};
215
216} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AudioSampleBuffer.h:34
Definition juce_CriticalSection.h:43
Definition juce_MPEInstrument.h:260
Definition juce_MPEInstrument.h:54
Definition juce_MPEZoneLayout.h:121
Definition juce_MidiBuffer.h:145
Definition juce_MidiMessage.h:35
Definition juce_Range.h:40
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
int minimumSubBlockSize
Definition juce_MPESynthesiserBase.h:210
void setPitchbendTrackingMode(TrackingMode modeToUse)
Definition juce_MPESynthesiserBase.cpp:86
MPEZoneLayout getZoneLayout() const noexcept
Definition juce_MPESynthesiserBase.cpp:39
bool subBlockSubdivisionIsStrict
Definition juce_MPESynthesiserBase.h:211
MPEInstrument defaultInstrument
Definition juce_MPESynthesiserBase.h:206
void setZoneLayout(MPEZoneLayout newLayout)
Definition juce_MPESynthesiserBase.cpp:44
MPEInstrument::TrackingMode TrackingMode
Definition juce_MPESynthesiserBase.h:172
CriticalSection noteStateLock
Definition juce_MPESynthesiserBase.h:208
MPEInstrument & instrument
Definition juce_MPESynthesiserBase.h:202
void setTimbreTrackingMode(TrackingMode modeToUse)
Definition juce_MPESynthesiserBase.cpp:91
void setPressureTrackingMode(TrackingMode modeToUse)
Definition juce_MPESynthesiserBase.cpp:81
virtual void setCurrentPlaybackSampleRate(double sampleRate)
Definition juce_MPESynthesiserBase.cpp:145
double getSampleRate() const noexcept
Definition juce_MPESynthesiserBase.h:83
virtual void renderNextSubBlock(AudioBuffer< float > &outputAudio, int startSample, int numSamples)=0
MPESynthesiserBase()
Definition juce_MPESynthesiserBase.cpp:26
double sampleRate
Definition juce_MPESynthesiserBase.h:209
Definition juce_MPEZoneLayout.h:40
@ lower
Definition juce_MPEZoneLayout.h:41
#define const
Definition zconf.h:137