41 jassert (midiChannel > 0 && midiChannel <= 16);
55 jassert (midiChannel > 0 && midiChannel <= 16);
75 listeners.call ([&] (
Listener&
l) {
l.handleNoteOn (
this, midiChannel, midiNoteNumber, velocity); });
83 if (
isNoteOn (midiChannel, midiNoteNumber))
95 if (
isNoteOn (midiChannel, midiNoteNumber))
98 listeners.call ([&] (
Listener&
l) {
l.handleNoteOff (
this, midiChannel, midiNoteNumber, velocity); });
106 if (midiChannel <= 0)
108 for (
int i = 1;
i <= 16; ++
i)
113 for (
int i = 0;
i < 128; ++
i)
128 else if (
message.isAllNotesOff())
130 for (
int i = 0;
i < 128; ++
i)
136 const int startSample,
137 const int numSamples,
138 const bool injectIndirectEvents)
142 for (
const auto metadata : buffer)
145 if (injectIndirectEvents)
147 const int firstEventToAdd =
eventsToAdd.getFirstEventTime();
148 const double scaleFactor = numSamples / (double) (
eventsToAdd.getLastEventTime() + 1 - firstEventToAdd);
152 const auto pos =
jlimit (0, numSamples - 1,
roundToInt ((metadata.samplePosition - firstEventToAdd) * scaleFactor));
153 buffer.addEvent (metadata.getMessage(), startSample + pos);
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
Definition juce_MidiBuffer.h:145
Definition juce_MidiKeyboardState.h:139
void processNextMidiBuffer(MidiBuffer &buffer, int startSample, int numSamples, bool injectIndirectEvents)
Definition juce_MidiKeyboardState.cpp:135
MidiBuffer eventsToAdd
Definition juce_MidiKeyboardState.h:184
void addListener(Listener *listener)
Definition juce_MidiKeyboardState.cpp:161
void noteOff(int midiChannel, int midiNoteNumber, float velocity)
Definition juce_MidiKeyboardState.cpp:79
void allNotesOff(int midiChannel)
Definition juce_MidiKeyboardState.cpp:102
void processNextMidiEvent(const MidiMessage &message)
Definition juce_MidiKeyboardState.cpp:118
void removeListener(Listener *listener)
Definition juce_MidiKeyboardState.cpp:167
CriticalSection lock
Definition juce_MidiKeyboardState.h:182
bool isNoteOn(int midiChannel, int midiNoteNumber) const noexcept
Definition juce_MidiKeyboardState.cpp:39
void noteOnInternal(int midiChannel, int midiNoteNumber, float velocity)
Definition juce_MidiKeyboardState.cpp:70
void noteOffInternal(int midiChannel, int midiNoteNumber, float velocity)
Definition juce_MidiKeyboardState.cpp:93
ListenerList< Listener > listeners
Definition juce_MidiKeyboardState.h:185
MidiKeyboardState()
Definition juce_MidiKeyboardState.cpp:26
void noteOn(int midiChannel, int midiNoteNumber, float velocity)
Definition juce_MidiKeyboardState.cpp:53
std::atomic< uint16 > noteStates[128]
Definition juce_MidiKeyboardState.h:183
void reset()
Definition juce_MidiKeyboardState.cpp:32
bool isNoteOnForChannels(int midiChannelMask, int midiNoteNumber) const noexcept
Definition juce_MidiKeyboardState.cpp:47
Definition juce_MidiMessage.h:35
static MidiMessage noteOn(int channel, int noteNumber, float velocity) noexcept
Definition juce_MidiMessage.cpp:604
static MidiMessage noteOff(int channel, int noteNumber, float velocity) noexcept
Definition juce_MidiMessage.cpp:618
static uint32 getMillisecondCounter() noexcept
Definition juce_Time.cpp:241
int * l
Definition inflate.c:1579
register unsigned i
Definition inflate.c:1575
Definition carla_juce.cpp:31
void zerostruct(Type &structure) noexcept
Definition juce_Memory.h:32
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
unsigned short uint16
Definition juce_MathsFunctions.h:41
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
int n
Definition crypt.c:458
typedef int(UZ_EXP MsgFn)()