JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
ivstevents.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivstevents.h
6// Created by : Steinberg, 11/2005
7// Description : VST Events Interfaces
8//
9//-----------------------------------------------------------------------------
10// This file is part of a Steinberg SDK. It is subject to the license terms
11// in the LICENSE file found in the top-level directory of this distribution
12// and at www.steinberg.net/sdklicenses.
13// No part of the SDK, including this file, may be copied, modified, propagated,
14// or distributed except according to the terms contained in the LICENSE file.
15//-----------------------------------------------------------------------------
16
17#pragma once
18
21
22//------------------------------------------------------------------------
24//------------------------------------------------------------------------
25
26//------------------------------------------------------------------------
27namespace Steinberg {
28namespace Vst {
29
30//------------------------------------------------------------------------
33{
34 kNoteIDUserRangeLowerBound = -10000,
35 kNoteIDUserRangeUpperBound = -1000,
36};
37
38//------------------------------------------------------------------------
44{
45 int16 channel;
46 int16 pitch;
47 float tuning;
48 float velocity;
49 int32 length;
50 int32 noteId;
51};
52
53//------------------------------------------------------------------------
58{
59 int16 channel;
60 int16 pitch;
61 float velocity;
62 int32 noteId;
63 float tuning;
64};
65
66//------------------------------------------------------------------------
71{
72 uint32 size;
73 uint32 type;
74 const uint8* bytes;
75
78 {
79 kMidiSysEx = 0
80 };
81};
82
83//------------------------------------------------------------------------
88{
89 int16 channel;
90 int16 pitch;
91 float pressure;
92 int32 noteId;
93};
94
95//------------------------------------------------------------------------
100{
101 int16 root;
102 int16 bassNote;
103 int16 mask;
104 uint16 textLen;
106 const TChar* text;
107};
108
109//------------------------------------------------------------------------
114{
115 int16 root;
116 int16 mask;
117 uint16 textLen;
119 const TChar* text;
120};
121
122//------------------------------------------------------------------------
130{
132 int8 channel;
133 int8 value;
134 int8 value2;
135};
136
137//------------------------------------------------------------------------
142struct Event
143{
144 int32 busIndex;
147 uint16 flags;
148
151 {
152 kIsLive = 1 << 0,
153
154 kUserReserved1 = 1 << 14,
155 kUserReserved2 = 1 << 15
156 };
157
171
172 uint16 type;
173 union
174 {
175 NoteOnEvent noteOn;
176 NoteOffEvent noteOff;
177 DataEvent data;
178 PolyPressureEvent polyPressure;
179 NoteExpressionValueEvent noteExpressionValue;
180 NoteExpressionTextEvent noteExpressionText;
181 ChordEvent chord;
182 ScaleEvent scale;
183 LegacyMIDICCOutEvent midiCCOut;
184 };
185};
186
187//------------------------------------------------------------------------
196class IEventList : public FUnknown
197{
198public:
199//------------------------------------------------------------------------
201 virtual int32 PLUGIN_API getEventCount () = 0;
202
204 virtual tresult PLUGIN_API getEvent (int32 index, Event& e /*out*/) = 0;
205
207 virtual tresult PLUGIN_API addEvent (Event& e /*in*/) = 0;
208
209//------------------------------------------------------------------------
210 static const FUID iid;
211};
212
213DECLARE_CLASS_IID (IEventList, 0x3A2C4214, 0x346349FE, 0xB2C4F397, 0xB9695A44)
214
215//------------------------------------------------------------------------
216} // namespace Vst
217} // namespace Steinberg
218
219//------------------------------------------------------------------------
221//------------------------------------------------------------------------
Handling 16 Byte Globally Unique Identifiers.
Definition funknown.h:241
The basic interface of all interfaces.
Definition funknown.h:375
List of events to process: Vst::IEventList.
Definition ivstevents.h:197
virtual tresult PLUGIN_API addEvent(Event &e)=0
Adds a new event.
virtual int32 PLUGIN_API getEventCount()=0
Returns the count of events.
virtual tresult PLUGIN_API getEvent(int32 index, Event &e)=0
Gets parameter by index.
float velocity
range [0.0, 1.0]
Definition ivstevents.h:61
float tuning
1.f = +1 cent, -1.f = -1 cent
Definition ivstevents.h:63
int32 length
in sample frames (optional, Note Off has to follow in any case!)
Definition ivstevents.h:49
uint8 controlNumber
see enum ControllerNumbers [0, 255]
Definition ivstevents.h:131
int16 root
range [0, 127] = [C-2, G8] with A3=440Hz
Definition ivstevents.h:101
int16 mask
Bit 0 = C, Bit 1 = C#, ... (0x5ab5 = Major Scale)
Definition ivstevents.h:116
const TChar * text
UTF-16, null terminated, Hosts Scale Name.
Definition ivstevents.h:119
int8 value
value of Controller [0, 127]
Definition ivstevents.h:133
char16 TChar
UTF-16 character.
Definition vsttypes.h:68
NoteIDUserRange
Reserved note identifier (noteId) range for a plug-in.
Definition ivstevents.h:33
int16 mask
root is bit 0
Definition ivstevents.h:103
int32 noteId
event should be applied to the noteId (if not -1)
Definition ivstevents.h:92
int8 value2
[0, 127] used for pitch bend (kPitchBend) and polyPressure (kCtrlPolyPressure)
Definition ivstevents.h:134
int32 noteId
associated noteOn identifier (if not available then -1)
Definition ivstevents.h:62
float pressure
range [0.0, 1.0]
Definition ivstevents.h:91
int16 channel
channel index in event bus
Definition ivstevents.h:59
float tuning
1.f = +1 cent, -1.f = -1 cent
Definition ivstevents.h:47
int16 channel
channel index in event bus
Definition ivstevents.h:45
int8 channel
channel index in event bus [0, 15]
Definition ivstevents.h:132
int32 noteId
note identifier (if not available then -1)
Definition ivstevents.h:50
int16 pitch
range [0, 127] = [C-2, G8] with A3=440Hz (12-TET: twelve-tone equal temperament)
Definition ivstevents.h:46
int16 bassNote
range [0, 127] = [C-2, G8] with A3=440Hz
Definition ivstevents.h:102
uint16 textLen
the number of characters (TChar) between the beginning of text and the terminating null character (wi...
Definition ivstevents.h:104
float velocity
range [0.0, 1.0]
Definition ivstevents.h:48
int16 pitch
range [0, 127] = [C-2, G8] with A3=440Hz (12-TET)
Definition ivstevents.h:60
int16 pitch
range [0, 127] = [C-2, G8] with A3=440Hz
Definition ivstevents.h:90
int16 channel
channel index in event bus
Definition ivstevents.h:89
int16 root
range [0, 127] = root Note/Transpose Factor
Definition ivstevents.h:115
uint16 textLen
the number of characters (TChar) between the beginning of text and the terminating null character (wi...
Definition ivstevents.h:117
double TQuarterNotes
time expressed in quarter notes
Definition vsttypes.h:85
const TChar * text
UTF-16, null terminated Hosts Chord Name.
Definition ivstevents.h:106
Chord event specific data.
Definition ivstevents.h:100
Legacy MIDI CC Out event specific data.
Definition ivstevents.h:130
Note-off event specific data.
Definition ivstevents.h:58
Note-on event specific data.
Definition ivstevents.h:44
PolyPressure event specific data.
Definition ivstevents.h:88
Scale event specific data.
Definition ivstevents.h:114
Data event specific data.
Definition ivstevents.h:71
uint32 type
type of this data block (see DataTypes)
Definition ivstevents.h:73
DataTypes
Value for DataEvent::type.
Definition ivstevents.h:78
@ kMidiSysEx
for MIDI system exclusive message
Definition ivstevents.h:79
const uint8 * bytes
pointer to the data block
Definition ivstevents.h:74
uint32 size
size in bytes of the data block bytes
Definition ivstevents.h:72
EventStructure representing a single Event of different types associated to a specific event (kEvent)...
Definition ivstevents.h:143
int32 sampleOffset
sample frames related to the current block start sample position
Definition ivstevents.h:145
EventFlags
Event Flags - used for Event::flags.
Definition ivstevents.h:151
@ kUserReserved1
reserved for user (for internal use)
Definition ivstevents.h:154
@ kIsLive
indicates that the event is played live (directly from keyboard)
Definition ivstevents.h:152
@ kUserReserved2
reserved for user (for internal use)
Definition ivstevents.h:155
uint16 flags
combination of EventFlags
Definition ivstevents.h:147
int32 busIndex
event bus index
Definition ivstevents.h:144
TQuarterNotes ppqPosition
position in project
Definition ivstevents.h:146
EventTypes
Event Types - used for Event::type.
Definition ivstevents.h:160
@ kScaleEvent
is ScaleEvent
Definition ivstevents.h:168
@ kNoteExpressionValueEvent
is NoteExpressionValueEvent
Definition ivstevents.h:165
@ kPolyPressureEvent
is PolyPressureEvent
Definition ivstevents.h:164
@ kNoteExpressionTextEvent
is NoteExpressionTextEvent
Definition ivstevents.h:166
@ kNoteOffEvent
is NoteOffEvent
Definition ivstevents.h:162
@ kChordEvent
is ChordEvent
Definition ivstevents.h:167
@ kNoteOnEvent
is NoteOnEvent
Definition ivstevents.h:161
@ kLegacyMIDICCOutEvent
is LegacyMIDICCOutEvent
Definition ivstevents.h:169
@ kDataEvent
is DataEvent
Definition ivstevents.h:163
uint16 type
a value from EventTypes
Definition ivstevents.h:172