OpenShot Audio Library | OpenShotAudio
1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
juce_MPESynthesiserBase.h
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
23
namespace
juce
24
{
25
26
//==============================================================================
46
struct
JUCE_API
MPESynthesiserBase
:
public
MPEInstrument::Listener
47
{
48
public
:
49
//==============================================================================
51
MPESynthesiserBase
();
52
60
MPESynthesiserBase
(
MPEInstrument
&
instrument
);
61
62
//==============================================================================
66
MPEZoneLayout
getZoneLayout
()
const
noexcept
;
67
72
void
setZoneLayout
(
MPEZoneLayout
newLayout);
73
74
//==============================================================================
78
virtual
void
setCurrentPlaybackSampleRate
(
double
sampleRate);
79
83
double
getSampleRate
() const noexcept {
return
sampleRate; }
84
85
//==============================================================================
99
template
<
typename
float
Type>
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
//==============================================================================
172
using TrackingMode =
MPEInstrument
::TrackingMode;
173
175
void
setPressureTrackingMode (TrackingMode modeToUse);
176
178
void
setPitchbendTrackingMode (TrackingMode modeToUse);
179
181
void
setTimbreTrackingMode (TrackingMode modeToUse);
182
183
protected:
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
199
protected
:
200
//==============================================================================
202
MPEInstrument
&
instrument
;
203
204
private
:
205
//==============================================================================
206
MPEInstrument
defaultInstrument {
MPEZone
(MPEZone::Type::lower, 15) };
207
208
CriticalSection
noteStateLock;
209
double
sampleRate = 0.0;
210
int
minimumSubBlockSize = 32;
211
bool
subBlockSubdivisionIsStrict =
false
;
212
213
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
MPESynthesiserBase
)
214
};
215
216
}
// namespace juce
juce::AudioBuffer
Definition
juce_AudioSampleBuffer.h:34
juce::CriticalSection
Definition
juce_CriticalSection.h:43
juce::MPEInstrument::Listener
Definition
juce_MPEInstrument.h:260
juce::MPEInstrument
Definition
juce_MPEInstrument.h:54
juce::MPEZoneLayout
Definition
juce_MPEZoneLayout.h:123
juce::MidiBuffer
Definition
juce_MidiBuffer.h:145
juce::MidiMessage
Definition
juce_MidiMessage.h:35
juce::Range
Definition
juce_Range.h:40
juce::MPESynthesiserBase
Definition
juce_MPESynthesiserBase.h:47
juce::MPESynthesiserBase::getZoneLayout
MPEZoneLayout getZoneLayout() const noexcept
Definition
juce_MPESynthesiserBase.cpp:39
juce::MPESynthesiserBase::setZoneLayout
void setZoneLayout(MPEZoneLayout newLayout)
Definition
juce_MPESynthesiserBase.cpp:44
juce::MPESynthesiserBase::instrument
MPEInstrument & instrument
Definition
juce_MPESynthesiserBase.h:202
juce::MPESynthesiserBase::setCurrentPlaybackSampleRate
virtual void setCurrentPlaybackSampleRate(double sampleRate)
Definition
juce_MPESynthesiserBase.cpp:145
juce::MPESynthesiserBase::getSampleRate
double getSampleRate() const noexcept
Definition
juce_MPESynthesiserBase.h:83
juce::MPESynthesiserBase::renderNextSubBlock
virtual void renderNextSubBlock(AudioBuffer< float > &outputAudio, int startSample, int numSamples)=0
juce::MPESynthesiserBase::MPESynthesiserBase
MPESynthesiserBase()
Definition
juce_MPESynthesiserBase.cpp:26
juce::MPEZone
Definition
juce_MPEZoneLayout.h:42
libopenshot-audio
JuceLibraryCode
modules
juce_audio_basics
mpe
juce_MPESynthesiserBase.h
Generated by
1.18.0