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
ivstnoteexpression.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivstnoteexpression.h
6// Created by : Steinberg, 10/2010
7// Description : VST Note Expression 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//------------------------------------------------------------------------
35typedef uint32 NoteExpressionTypeID;
37typedef double NoteExpressionValue;
40//------------------------------------------------------------------------
64
65//------------------------------------------------------------------------
79
80#if SMTG_OS_WINDOWS && !SMTG_PLATFORM_64
81#include "pluginterfaces/vst/vstpshpack4.h"
82#endif
83//------------------------------------------------------------------------
99
100//------------------------------------------------------------------------
116
117#if SMTG_OS_WINDOWS && !SMTG_PLATFORM_64
119#endif
120
121//------------------------------------------------------------------------
145
146//------------------------------------------------------------------------
166{
167public:
169 virtual int32 PLUGIN_API getNoteExpressionCount (int32 busIndex, int16 channel) = 0;
170
172 virtual tresult PLUGIN_API getNoteExpressionInfo (int32 busIndex, int16 channel, int32 noteExpressionIndex, NoteExpressionTypeInfo& info /*out*/) = 0;
173
175 virtual tresult PLUGIN_API getNoteExpressionStringByValue (int32 busIndex, int16 channel, NoteExpressionTypeID id, NoteExpressionValue valueNormalized /*in*/, String128 string /*out*/) = 0;
176
178 virtual tresult PLUGIN_API getNoteExpressionValueByString (int32 busIndex, int16 channel, NoteExpressionTypeID id, const TChar* string /*in*/, NoteExpressionValue& valueNormalized /*out*/) = 0;
179
180 //------------------------------------------------------------------------
181 static const FUID iid;
182};
183
184DECLARE_CLASS_IID (INoteExpressionController, 0xB7F8F859, 0x41234872, 0x91169581, 0x4F3721A3)
185
186//------------------------------------------------------------------------
187//------------------------------------------------------------------------
198
199typedef uint32 KeyswitchTypeID;
200
201//------------------------------------------------------------------------
207{
208 KeyswitchTypeID typeId;
211
214 int32 keyRemapped;
217 int32 unitId;
218
219 int32 flags;
220};
221
222//------------------------------------------------------------------------
235{
236public:
238 virtual int32 PLUGIN_API getKeyswitchCount (int32 busIndex, int16 channel) = 0;
239
241 virtual tresult PLUGIN_API getKeyswitchInfo (int32 busIndex, int16 channel, int32 keySwitchIndex, KeyswitchInfo& info /*out*/) = 0;
242
243 //------------------------------------------------------------------------
244 static const FUID iid;
245};
246
247DECLARE_CLASS_IID (IKeyswitchController, 0x1F2F76D3, 0xBFFB4B96, 0xB99527A5, 0x5EBCCEF4)
248
249//------------------------------------------------------------------------
250} // namespace Vst
251} // namespace Steinberg
252
253//------------------------------------------------------------------------
255//------------------------------------------------------------------------
Handling 16 Byte Globally Unique Identifiers.
Definition funknown.h:241
The basic interface of all interfaces.
Definition funknown.h:375
Extended plug-in interface IEditController for key switches support: Vst::IKeyswitchController.
virtual int32 PLUGIN_API getKeyswitchCount(int32 busIndex, int16 channel)=0
Returns number of supported key switches for event bus index and channel.
virtual tresult PLUGIN_API getKeyswitchInfo(int32 busIndex, int16 channel, int32 keySwitchIndex, KeyswitchInfo &info)=0
Returns key switch info.
Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionCon...
virtual int32 PLUGIN_API getNoteExpressionCount(int32 busIndex, int16 channel)=0
Returns number of supported note change types for event bus index and channel.
virtual tresult PLUGIN_API getNoteExpressionInfo(int32 busIndex, int16 channel, int32 noteExpressionIndex, NoteExpressionTypeInfo &info)=0
Returns note change type info.
virtual tresult PLUGIN_API getNoteExpressionStringByValue(int32 busIndex, int16 channel, NoteExpressionTypeID id, NoteExpressionValue valueNormalized, String128 string)=0
Gets a user readable representation of the normalized note change value.
virtual tresult PLUGIN_API getNoteExpressionValueByString(int32 busIndex, int16 channel, NoteExpressionTypeID id, const TChar *string, NoteExpressionValue &valueNormalized)=0
Converts the user readable representation to the normalized note change value.
KeyswitchTypeIDs
KeyswitchTypeIDs describes the type of a key switch.
@ kOnReleaseKeyswitchTypeID
press before entering release
@ kKeyRangeTypeID
key should be maintained pressed for playing
@ kNoteOnKeyswitchTypeID
press before noteOn is played
@ kOnTheFlyKeyswitchTypeID
press while noteOn is played
int32 flags
not yet used (set to 0)
uint32 ParamID
parameter identifier
Definition vsttypes.h:81
int32 noteId
associated note identifier to apply the change
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:69
char16 TChar
UTF-16 character.
Definition vsttypes.h:68
int32 noteId
associated note identifier to apply the change
double NoteExpressionValue
Note Expression Value.
NoteExpressionTypeIDs
NoteExpressionTypeIDs describes the type of the note expression.
@ kTextTypeID
See NoteExpressionTextEvent.
@ kInvalidTypeID
indicates an invalid note expression type
@ kExpressionTypeID
Expression.
@ kPanTypeID
Panning (L-R), plain range [0 = left, 0.5 = center, 1 = right].
@ kCustomStart
start of custom note expression type ids
@ kVolumeTypeID
Volume, plain range [0 = -oo , 0.25 = 0dB, 0.5 = +6dB, 1 = +12dB]: plain = 20 * log (4 * norm)
@ kTuningTypeID
Tuning, plain range [0 = -120.0 (ten octaves down), 0.5 none, 1 = +120.0 (ten octaves up)] plain = 24...
@ kCustomEnd
end of custom note expression type ids
@ kBrightnessTypeID
Brightness.
int32 keyswitchMax
associated main key switch max (value between [0, 127])
uint32 NoteExpressionTypeID
Note Expression Types.
int32 keyswitchMin
associated main key switch min (value between [0, 127])
NoteExpressionValue maximum
maximum normalized value [0,1]
const TChar * text
UTF-16, null terminated.
NoteExpressionValue defaultValue
default normalized value [0,1]
NoteExpressionValue value
normalized value [0.0, 1.0].
NoteExpressionValue minimum
minimum normalized value [0,1]
NoteExpressionTypeID typeId
see NoteExpressionTypeID (kTextTypeID or kPhoneticTypeID)
int32 stepCount
number of discrete steps (0: continuous, 1: toggle, discrete value otherwise - see vst3ParameterIntro...
int32 unitId
optional remapped key switch (default -1), the plug-in could provide one remapped key for a key switc...
KeyswitchTypeID typeId
see KeyswitchTypeID
String128 title
name of key switch (e.g. "Accentuation")
String128 shortTitle
short title (e.g. "Acc")
uint32 textLen
the number of characters (TChar) between the beginning of text and the terminating null character (wi...
NoteExpressionTypeID typeId
see NoteExpressionTypeID
KeyswitchInfo is the structure describing a key switch This structure is used by the method IKeyswitc...
Description of a Note Expression Type This structure is part of the NoteExpressionTypeInfo structure,...
NoteExpressionTypeInfo is the structure describing a note expression supported by the plug-in.
NoteExpressionTypeID typeId
unique identifier of this note Expression type
int32 unitId
id of unit this NoteExpression belongs to (see vst3Units), in order to sort the note expression,...
String128 units
note Expression type unit (e.g. "dB")
String128 title
note Expression type title (e.g. "Volume")
ParamID associatedParameterId
optional associated parameter ID (for mapping from note expression to global (using the parameter aut...
NoteExpressionValueDescription valueDesc
value description see NoteExpressionValueDescription
@ kAssociatedParameterIDValid
indicates that the associatedParameterID is valid and could be used
@ kIsBipolar
event is bipolar (centered), otherwise unipolar
@ kIsOneShot
event occurs only one time for its associated note (at begin of the noteOn)
@ kIsAbsolute
This note expression will apply an absolute change to the sound (not relative (offset))
int32 flags
NoteExpressionTypeFlags (see below)
String128 shortTitle
note Expression type short title (e.g. "Vol")