FastLED 3.9.15
Loading...
Searching...
No Matches
midi_Defs.h
Go to the documentation of this file.
1
27
28#pragma once
29
30#include "midi_Namespace.h"
31
32#if ARDUINO
33#include <Arduino.h>
34#else
35#include <inttypes.h>
36typedef uint8_t byte;
37#endif
38
40
41// -----------------------------------------------------------------------------
42
43#define MIDI_CHANNEL_OMNI 0
44#define MIDI_CHANNEL_OFF 17 // and over
45
46#define MIDI_PITCHBEND_MIN -8192
47#define MIDI_PITCHBEND_MAX 8191
48
51static const uint16_t ActiveSensingTimeout = 300;
52
53// -----------------------------------------------------------------------------
54// Type definitions
55
56typedef byte StatusByte;
57typedef byte DataByte;
58typedef byte Channel;
59typedef byte FilterMode;
60
61// -----------------------------------------------------------------------------
62// Errors
63static const uint8_t ErrorParse = 0;
64static const uint8_t ErrorActiveSensingTimeout = 1;
65static const uint8_t WarningSplitSysEx = 2;
66
67// -----------------------------------------------------------------------------
68// Aliasing
69
70using ErrorCallback = void (*)(int8_t);
71using NoteOffCallback = void (*)(Channel channel, byte note, byte velocity);
72using NoteOnCallback = void (*)(Channel channel, byte note, byte velocity);
73using AfterTouchPolyCallback = void (*)(Channel channel, byte note, byte velocity);
74using ControlChangeCallback = void (*)(Channel channel, byte, byte);
75using ProgramChangeCallback = void (*)(Channel channel, byte);
76using AfterTouchChannelCallback = void (*)(Channel channel, byte);
77using PitchBendCallback = void (*)(Channel channel, int);
78using SystemExclusiveCallback = void (*)(byte * array, unsigned size);
79using TimeCodeQuarterFrameCallback = void (*)(byte data);
80using SongPositionCallback = void (*)(unsigned beats);
81using SongSelectCallback = void (*)(byte songnumber);
82using TuneRequestCallback = void (*)(void);
83using ClockCallback = void (*)(void);
84using StartCallback = void (*)(void);
85using TickCallback = void (*)(void);
86using ContinueCallback = void (*)(void);
87using StopCallback = void (*)(void);
88using ActiveSensingCallback = void (*)(void);
89using SystemResetCallback = void (*)(void);
90
91// -----------------------------------------------------------------------------
92
123
124// -----------------------------------------------------------------------------
125
127struct Thru
128{
129 enum Mode
130 {
131 Off = 0,
132 Full = 1,
135 };
136};
137
138// -----------------------------------------------------------------------------
139
145{
146 // High resolution Continuous Controllers MSB (+32 for LSB) ----------------
150 // CC3 undefined
156 // CC9 undefined
157 Pan = 10,
161 // CC14 undefined
162 // CC15 undefined
167
169
170 // Switches ----------------------------------------------------------------
175 Legato = 68,
176 Hold = 69,
177
178 // Low resolution continuous controllers -----------------------------------
194 // CC85 to CC90 undefined
195 Effects1 = 91,
196 Effects2 = 92,
197 Effects3 = 93,
198 Effects4 = 94,
199 Effects5 = 95,
202 NRPNLSB = 98,
203 NRPNMSB = 99,
204 RPNLSB = 100,
205 RPNMSB = 101,
206
207 // Channel Mode messages ---------------------------------------------------
216};
217
218struct RPN
219{
230};
231
static const uint8_t WarningSplitSysEx
Definition midi_Defs.h:65
byte StatusByte
Definition midi_Defs.h:56
void(*)(Channel channel, byte note, byte velocity) NoteOnCallback
Definition midi_Defs.h:72
void(*)(int8_t) ErrorCallback
Definition midi_Defs.h:70
void(*)(void) ActiveSensingCallback
Definition midi_Defs.h:88
void(*)(void) StopCallback
Definition midi_Defs.h:87
void(*)(Channel channel, byte) ProgramChangeCallback
Definition midi_Defs.h:75
void(*)(Channel channel, byte note, byte velocity) AfterTouchPolyCallback
Definition midi_Defs.h:73
void(*)(Channel channel, byte, byte) ControlChangeCallback
Definition midi_Defs.h:74
void(*)(Channel channel, byte) AfterTouchChannelCallback
Definition midi_Defs.h:76
void(*)(void) TickCallback
Definition midi_Defs.h:85
byte FilterMode
Definition midi_Defs.h:59
void(*)(byte *array, unsigned size) SystemExclusiveCallback
Definition midi_Defs.h:78
void(*)(void) TuneRequestCallback
Definition midi_Defs.h:82
static const uint8_t ErrorParse
Definition midi_Defs.h:63
byte DataByte
Definition midi_Defs.h:57
MidiControlChangeNumber
Enumeration of Control Change command numbers. See the detailed controllers numbers & description her...
Definition midi_Defs.h:145
@ EffectControl1
Definition midi_Defs.h:159
@ RPNLSB
Registered Parameter Number (LSB)
Definition midi_Defs.h:204
@ Effects5
Phaser depth.
Definition midi_Defs.h:199
@ GeneralPurposeController3
Definition midi_Defs.h:165
@ AllNotesOff
Definition midi_Defs.h:211
@ MonoModeOn
Definition midi_Defs.h:214
@ DataIncrement
Definition midi_Defs.h:200
@ LocalControl
Definition midi_Defs.h:210
@ GeneralPurposeController4
Definition midi_Defs.h:166
@ GeneralPurposeController2
Definition midi_Defs.h:164
@ SoundController5
Synth: Brightness FX: Expander On/Off.
Definition midi_Defs.h:183
@ OmniModeOff
Definition midi_Defs.h:212
@ Sostenuto
Definition midi_Defs.h:173
@ DataEntryLSB
Definition midi_Defs.h:168
@ RPNMSB
Registered Parameter Number (MSB)
Definition midi_Defs.h:205
@ ChannelVolume
Definition midi_Defs.h:154
@ DataEntryMSB
Definition midi_Defs.h:153
@ PortamentoTime
Definition midi_Defs.h:152
@ SoundController4
Synth: Attack Time FX: EQ On/Off.
Definition midi_Defs.h:182
@ ExpressionController
Definition midi_Defs.h:158
@ ModulationWheel
Definition midi_Defs.h:148
@ OmniModeOn
Definition midi_Defs.h:213
@ Hold
Definition midi_Defs.h:176
@ NRPNLSB
Non-Registered Parameter Number (LSB)
Definition midi_Defs.h:202
@ GeneralPurposeController1
Definition midi_Defs.h:163
@ Balance
Definition midi_Defs.h:155
@ EffectControl2
Definition midi_Defs.h:160
@ SoundController9
Synth: Vibrato Delay FX: Flange/Chorus On/Off.
Definition midi_Defs.h:187
@ ResetAllControllers
Definition midi_Defs.h:209
@ NRPNMSB
Non-Registered Parameter Number (MSB)
Definition midi_Defs.h:203
@ PortamentoControl
Definition midi_Defs.h:193
@ SoundController10
Synth: Undefined FX: Special Effects On/Off.
Definition midi_Defs.h:188
@ Effects4
Celeste depth.
Definition midi_Defs.h:198
@ SoundController6
Synth: Decay Time FX: Reverb On/Off.
Definition midi_Defs.h:184
@ GeneralPurposeController5
Definition midi_Defs.h:189
@ BreathController
Definition midi_Defs.h:149
@ AllSoundOff
Definition midi_Defs.h:208
@ FootController
Definition midi_Defs.h:151
@ DataDecrement
Definition midi_Defs.h:201
@ GeneralPurposeController8
Definition midi_Defs.h:192
@ Effects2
Tremolo depth.
Definition midi_Defs.h:196
@ Pan
Definition midi_Defs.h:157
@ GeneralPurposeController7
Definition midi_Defs.h:191
@ GeneralPurposeController6
Definition midi_Defs.h:190
@ SoundController8
Synth: Vibrato Depth FX: Pitch Transpose On/Off.
Definition midi_Defs.h:186
@ Legato
Definition midi_Defs.h:175
@ SoftPedal
Definition midi_Defs.h:174
@ Effects3
Chorus send level.
Definition midi_Defs.h:197
@ SoundController2
Synth: Harmonic Content FX: Compressor On/Off.
Definition midi_Defs.h:180
@ Sustain
Definition midi_Defs.h:171
@ BankSelect
Definition midi_Defs.h:147
@ PolyModeOn
Definition midi_Defs.h:215
@ SoundController1
Synth: Sound Variation FX: Exciter On/Off.
Definition midi_Defs.h:179
@ SoundController7
Synth: Vibrato Rate FX: Delay On/Off.
Definition midi_Defs.h:185
@ Effects1
Reverb send level.
Definition midi_Defs.h:195
@ SoundController3
Synth: Release Time FX: Distortion On/Off.
Definition midi_Defs.h:181
@ Portamento
Definition midi_Defs.h:172
void(*)(void) ContinueCallback
Definition midi_Defs.h:86
void(*)(void) SystemResetCallback
Definition midi_Defs.h:89
MidiType
Definition midi_Defs.h:95
@ AfterTouchChannel
Channel Message - Channel (monophonic) AfterTouch.
Definition midi_Defs.h:102
@ ProgramChange
Channel Message - Program Change.
Definition midi_Defs.h:101
@ Undefined_F4
Definition midi_Defs.h:109
@ SystemExclusiveStart
System Exclusive Start.
Definition midi_Defs.h:105
@ Continue
System Real Time - Continue.
Definition midi_Defs.h:117
@ Clock
System Real Time - Timing Clock.
Definition midi_Defs.h:113
@ ActiveSensing
System Real Time - Active Sensing.
Definition midi_Defs.h:120
@ Undefined_F9
Definition midi_Defs.h:114
@ SystemReset
System Real Time - System Reset.
Definition midi_Defs.h:121
@ Undefined_F5
Definition midi_Defs.h:110
@ SystemExclusive
System Exclusive.
Definition midi_Defs.h:104
@ InvalidType
For notifying errors.
Definition midi_Defs.h:96
@ SongPosition
System Common - Song Position Pointer.
Definition midi_Defs.h:107
@ Undefined_FD
Definition midi_Defs.h:119
@ Tick
System Real Time - Timing Tick (1 tick = 10 milliseconds)
Definition midi_Defs.h:115
@ TuneRequest
System Common - Tune Request.
Definition midi_Defs.h:111
@ Start
System Real Time - Start.
Definition midi_Defs.h:116
@ ControlChange
Channel Message - Control Change / Channel Mode.
Definition midi_Defs.h:100
@ PitchBend
Channel Message - Pitch Bend.
Definition midi_Defs.h:103
@ NoteOff
Channel Message - Note Off.
Definition midi_Defs.h:97
@ SongSelect
System Common - Song Select.
Definition midi_Defs.h:108
@ SystemExclusiveEnd
System Exclusive End.
Definition midi_Defs.h:112
@ AfterTouchPoly
Channel Message - Polyphonic AfterTouch.
Definition midi_Defs.h:99
@ Stop
System Real Time - Stop.
Definition midi_Defs.h:118
@ TimeCodeQuarterFrame
System Common - MIDI Time Code Quarter Frame.
Definition midi_Defs.h:106
@ NoteOn
Channel Message - Note On.
Definition midi_Defs.h:98
uint8_t byte
Definition midi_Defs.h:36
void(*)(Channel channel, byte note, byte velocity) NoteOffCallback
Definition midi_Defs.h:71
void(*)(void) StartCallback
Definition midi_Defs.h:84
void(*)(byte songnumber) SongSelectCallback
Definition midi_Defs.h:81
void(*)(byte data) TimeCodeQuarterFrameCallback
Definition midi_Defs.h:79
void(*)(unsigned beats) SongPositionCallback
Definition midi_Defs.h:80
byte Channel
Definition midi_Defs.h:58
static const uint8_t ErrorActiveSensingTimeout
Definition midi_Defs.h:64
static const uint16_t ActiveSensingTimeout
Definition midi_Defs.h:51
void(*)(void) ClockCallback
Definition midi_Defs.h:83
void(*)(Channel channel, int) PitchBendCallback
Definition midi_Defs.h:77
#define END_MIDI_NAMESPACE
#define BEGIN_MIDI_NAMESPACE
MIDI Library for the Arduino - Namespace declaration.
RegisteredParameterNumbers
Definition midi_Defs.h:221
@ ModulationDepthRange
Definition midi_Defs.h:227
@ ChannelFineTuning
Definition midi_Defs.h:223
@ NullFunction
Definition midi_Defs.h:228
@ ChannelCoarseTuning
Definition midi_Defs.h:224
@ PitchBendSensitivity
Definition midi_Defs.h:222
@ SelectTuningBank
Definition midi_Defs.h:226
@ SelectTuningProgram
Definition midi_Defs.h:225
@ DifferentChannel
All the messages but the ones on the Input Channel will be sent back.
Definition midi_Defs.h:134
@ Full
Fully enabled Thru (every incoming message is sent back).
Definition midi_Defs.h:132
@ Off
Thru disabled (nothing passes through).
Definition midi_Defs.h:131
@ SameChannel
Only the messages on the Input Channel will be sent back.
Definition midi_Defs.h:133