FastLED 3.9.15
Loading...
Searching...
No Matches
midi_Defs.h File Reference

Detailed Description

MIDI Library for the Arduino - Definitions.

Project Arduino MIDI Library

Author
Francois Best, lathoub
Date
24/02/11 @license MIT - Copyright (c) 2015 Francois Best

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Definition in file midi_Defs.h.

#include "midi_Namespace.h"
#include <inttypes.h>
+ Include dependency graph for midi_Defs.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RPN
 
struct  Thru
 

Macros

#define MIDI_CHANNEL_OFF   17
 
#define MIDI_CHANNEL_OMNI   0
 
#define MIDI_PITCHBEND_MAX   8191
 
#define MIDI_PITCHBEND_MIN   -8192
 

Typedefs

using ActiveSensingCallback = void (*)(void)
 
using AfterTouchChannelCallback = void (*)(Channel channel, byte)
 
using AfterTouchPolyCallback = void (*)(Channel channel, byte note, byte velocity)
 
typedef uint8_t byte
 
typedef byte Channel
 
using ClockCallback = void (*)(void)
 
using ContinueCallback = void (*)(void)
 
using ControlChangeCallback = void (*)(Channel channel, byte, byte)
 
typedef byte DataByte
 
using ErrorCallback = void (*)(int8_t)
 
typedef byte FilterMode
 
using NoteOffCallback = void (*)(Channel channel, byte note, byte velocity)
 
using NoteOnCallback = void (*)(Channel channel, byte note, byte velocity)
 
using PitchBendCallback = void (*)(Channel channel, int)
 
using ProgramChangeCallback = void (*)(Channel channel, byte)
 
using SongPositionCallback = void (*)(unsigned beats)
 
using SongSelectCallback = void (*)(byte songnumber)
 
using StartCallback = void (*)(void)
 
typedef byte StatusByte
 
using StopCallback = void (*)(void)
 
using SystemExclusiveCallback = void (*)(byte * array, unsigned size)
 
using SystemResetCallback = void (*)(void)
 
using TickCallback = void (*)(void)
 
using TimeCodeQuarterFrameCallback = void (*)(byte data)
 
using TuneRequestCallback = void (*)(void)
 

Enumerations

enum  MidiControlChangeNumber : uint8_t {
  BankSelect = 0 , ModulationWheel = 1 , BreathController = 2 , FootController = 4 ,
  PortamentoTime = 5 , DataEntryMSB = 6 , ChannelVolume = 7 , Balance = 8 ,
  Pan = 10 , ExpressionController = 11 , EffectControl1 = 12 , EffectControl2 = 13 ,
  GeneralPurposeController1 = 16 , GeneralPurposeController2 = 17 , GeneralPurposeController3 = 18 , GeneralPurposeController4 = 19 ,
  DataEntryLSB = 38 , Sustain = 64 , Portamento = 65 , Sostenuto = 66 ,
  SoftPedal = 67 , Legato = 68 , Hold = 69 , SoundController1 = 70 ,
  SoundController2 = 71 , SoundController3 = 72 , SoundController4 = 73 , SoundController5 = 74 ,
  SoundController6 = 75 , SoundController7 = 76 , SoundController8 = 77 , SoundController9 = 78 ,
  SoundController10 = 79 , GeneralPurposeController5 = 80 , GeneralPurposeController6 = 81 , GeneralPurposeController7 = 82 ,
  GeneralPurposeController8 = 83 , PortamentoControl = 84 , Effects1 = 91 , Effects2 = 92 ,
  Effects3 = 93 , Effects4 = 94 , Effects5 = 95 , DataIncrement = 96 ,
  DataDecrement = 97 , NRPNLSB = 98 , NRPNMSB = 99 , RPNLSB = 100 ,
  RPNMSB = 101 , AllSoundOff = 120 , ResetAllControllers = 121 , LocalControl = 122 ,
  AllNotesOff = 123 , OmniModeOff = 124 , OmniModeOn = 125 , MonoModeOn = 126 ,
  PolyModeOn = 127
}
 Enumeration of Control Change command numbers. See the detailed controllers numbers & description here: http://www.somascape.org/midi/tech/spec.html#ctrlnums. More...
 
enum  MidiType : uint8_t {
  InvalidType = 0x00 , NoteOff = 0x80 , NoteOn = 0x90 , AfterTouchPoly = 0xA0 ,
  ControlChange = 0xB0 , ProgramChange = 0xC0 , AfterTouchChannel = 0xD0 , PitchBend = 0xE0 ,
  SystemExclusive = 0xF0 , SystemExclusiveStart = SystemExclusive , TimeCodeQuarterFrame = 0xF1 , SongPosition = 0xF2 ,
  SongSelect = 0xF3 , Undefined_F4 = 0xF4 , Undefined_F5 = 0xF5 , TuneRequest = 0xF6 ,
  SystemExclusiveEnd = 0xF7 , Clock = 0xF8 , Undefined_F9 = 0xF9 , Tick = Undefined_F9 ,
  Start = 0xFA , Continue = 0xFB , Stop = 0xFC , Undefined_FD = 0xFD ,
  ActiveSensing = 0xFE , SystemReset = 0xFF
}
 

Variables

static const uint16_t ActiveSensingTimeout = 300
 
static const uint8_t ErrorActiveSensingTimeout = 1
 
static const uint8_t ErrorParse = 0
 
static const uint8_t WarningSplitSysEx = 2