LMMS
Loading...
Searching...
No Matches
juce_MidiMessageSequence.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//==============================================================================
38{
39public:
40 //==============================================================================
43
46
48 MidiMessageSequence& operator= (const MidiMessageSequence&);
49
52
54 MidiMessageSequence& operator= (MidiMessageSequence&&) noexcept;
55
56 //==============================================================================
65 {
66 public:
67 //==============================================================================
70
80
81 private:
82 //==============================================================================
83 friend class MidiMessageSequence;
87 };
88
89 //==============================================================================
91 void clear();
92
95
98
101
104
107
110
115 double getTimeOfMatchingKeyUp (int index) const noexcept;
116
121 int getIndexOfMatchingKeyUp (int index) const noexcept;
122
125
130 int getNextIndexAtTime (double timeStamp) const noexcept;
131
132 //==============================================================================
136 double getStartTime() const noexcept;
137
141 double getEndTime() const noexcept;
142
146 double getEventTime (int index) const noexcept;
147
148 //==============================================================================
161 MidiEventHolder* addEvent (const MidiMessage& newMessage, double timeAdjustment = 0);
162
175 MidiEventHolder* addEvent (MidiMessage&& newMessage, double timeAdjustment = 0);
176
185 void deleteEvent (int index, bool deleteMatchingNoteUp);
186
201 double timeAdjustmentDelta,
202 double firstAllowableDestTime,
203 double endOfAllowableDestTimes);
204
213 double timeAdjustmentDelta);
214
215 //==============================================================================
223
228 void sort() noexcept;
229
230 //==============================================================================
239 void extractMidiChannelMessages (int channelNumberToExtract,
240 MidiMessageSequence& destSequence,
241 bool alsoIncludeMetaEvents) const;
242
249
253 void deleteMidiChannelMessages (int channelNumberToRemove);
254
256 void deleteSysExMessages();
257
261 void addTimeToMessages (double deltaTime) noexcept;
262
263 //==============================================================================
298 void createControllerUpdatesForTime (int channelNumber, double time,
299 Array<MidiMessage>& resultMessages);
300
301 //==============================================================================
304
305private:
306 //==============================================================================
307 friend class MidiFile;
309
311
313};
314
315} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
Definition juce_MidiMessage.h:35
Definition juce_MidiMessageSequence.h:65
MidiMessage message
Definition juce_MidiMessageSequence.h:69
friend class MidiMessageSequence
Definition juce_MidiMessageSequence.h:83
MidiEventHolder * noteOffObject
Definition juce_MidiMessageSequence.h:79
MidiEventHolder(const MidiMessage &)
Definition juce_MidiMessageSequence.cpp:26
void extractMidiChannelMessages(int channelNumberToExtract, MidiMessageSequence &destSequence, bool alsoIncludeMetaEvents) const
Definition juce_MidiMessageSequence.cpp:275
double getEventTime(int index) const noexcept
Definition juce_MidiMessageSequence.cpp:144
void deleteSysExMessages()
Definition juce_MidiMessageSequence.cpp:299
void clear()
Definition juce_MidiMessageSequence.cpp:70
MidiMessageSequence()
Definition juce_MidiMessageSequence.cpp:30
void createControllerUpdatesForTime(int channelNumber, double time, Array< MidiMessage > &resultMessages)
Definition juce_MidiMessageSequence.cpp:420
double getTimeOfMatchingKeyUp(int index) const noexcept
Definition juce_MidiMessageSequence.cpp:90
MidiEventHolder * addEvent(const MidiMessage &newMessage, double timeAdjustment=0)
Definition juce_MidiMessageSequence.cpp:167
int getIndexOf(const MidiEventHolder *event) const noexcept
Definition juce_MidiMessageSequence.cpp:116
void updateMatchedPairs() noexcept
Definition juce_MidiMessageSequence.cpp:226
int getIndexOfMatchingKeyUp(int index) const noexcept
Definition juce_MidiMessageSequence.cpp:99
void addTimeToMessages(double deltaTime) noexcept
Definition juce_MidiMessageSequence.cpp:267
void swapWith(MidiMessageSequence &) noexcept
Definition juce_MidiMessageSequence.cpp:65
friend class MidiFile
Definition juce_MidiMessageSequence.h:307
void deleteMidiChannelMessages(int channelNumberToRemove)
Definition juce_MidiMessageSequence.cpp:292
void sort() noexcept
Definition juce_MidiMessageSequence.cpp:220
double getStartTime() const noexcept
Definition juce_MidiMessageSequence.cpp:134
void deleteEvent(int index, bool deleteMatchingNoteUp)
Definition juce_MidiMessageSequence.cpp:177
double getEndTime() const noexcept
Definition juce_MidiMessageSequence.cpp:139
MidiEventHolder ** end() noexcept
Definition juce_MidiMessageSequence.cpp:87
int getNextIndexAtTime(double timeStamp) const noexcept
Definition juce_MidiMessageSequence.cpp:121
MidiEventHolder * getEventPointer(int index) const noexcept
Definition juce_MidiMessageSequence.cpp:80
OwnedArray< MidiEventHolder > list
Definition juce_MidiMessageSequence.h:308
MidiEventHolder ** begin() noexcept
Definition juce_MidiMessageSequence.cpp:85
int getNumEvents() const noexcept
Definition juce_MidiMessageSequence.cpp:75
void addSequence(const MidiMessageSequence &other, double timeAdjustmentDelta, double firstAllowableDestTime, double endOfAllowableDestTimes)
Definition juce_MidiMessageSequence.cpp:200
void extractSysExMessages(MidiMessageSequence &destSequence) const
Definition juce_MidiMessageSequence.cpp:285
Definition juce_OwnedArray.h:51
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition juce_LeakedObjectDetector.h:138
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
#define const
Definition zconf.h:137