added all output MIDI command stubs
This commit is contained in:
parent
2ca4746688
commit
2fc509e318
|
|
@ -34,7 +34,7 @@ public:
|
|||
|
||||
inline bool begin(const char* deviceName);
|
||||
|
||||
inline void noteOn(int note, int velocity, int channel) {
|
||||
inline void noteOn(DataByte note, DataByte velocity, Channel channel) {
|
||||
|
||||
if (!_connected) return;
|
||||
if (pCharacteristic == NULL) return;
|
||||
|
|
@ -53,6 +53,67 @@ public:
|
|||
pCharacteristic->notify();
|
||||
}
|
||||
|
||||
inline void noteOff(DataByte note, DataByte velocity, Channel channel) {
|
||||
}
|
||||
|
||||
inline void programChange(DataByte inProgramNumber, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void controlChange(DataByte inControlNumber, DataByte inControlValue, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void pitchBend(int inPitchValue, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void pitchBend(double inPitchValue, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void polyPressure(DataByte inNoteNumber, DataByte inPressure, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void afterTouch(DataByte inPressure, Channel inChannel) {
|
||||
|
||||
}
|
||||
inline void sysEx(const byte*, uint16_t inLength) {
|
||||
|
||||
}
|
||||
inline void timeCodeQuarterFrame(DataByte inTypeNibble, DataByte inValuesNibble) {
|
||||
|
||||
}
|
||||
inline void timeCodeQuarterFrame(DataByte inData) {
|
||||
|
||||
}
|
||||
inline void songPosition(unsigned short inBeats) {
|
||||
|
||||
}
|
||||
inline void songSelect(DataByte inSongNumber) {
|
||||
|
||||
}
|
||||
inline void tuneRequest() {
|
||||
|
||||
}
|
||||
inline void activeSensing() {
|
||||
|
||||
}
|
||||
inline void start() {
|
||||
|
||||
}
|
||||
inline void _continue() {
|
||||
|
||||
}
|
||||
inline void stop() {
|
||||
|
||||
}
|
||||
inline void reset() {
|
||||
|
||||
}
|
||||
inline void clock() {
|
||||
|
||||
}
|
||||
inline void tick() {
|
||||
|
||||
}
|
||||
|
||||
inline void onConnected(void(*fptr)()) {
|
||||
_connected = true;
|
||||
mConnectedCallback = fptr;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,166 @@ BEGIN_BLEMIDI_NAMESPACE
|
|||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#define MIDI_CHANNEL_OMNI 0
|
||||
#define MIDI_CHANNEL_OFF 17 // and over
|
||||
|
||||
#define MIDI_PITCHBEND_MIN -8192
|
||||
#define MIDI_PITCHBEND_MAX 8191
|
||||
|
||||
#define MIDI_SAMPLING_RATE_8KHZ 8000
|
||||
#define MIDI_SAMPLING_RATE_11KHZ 11025
|
||||
#define MIDI_SAMPLING_RATE_44K1HZ 44100
|
||||
#define MIDI_SAMPLING_RATE_48KHZ 48000
|
||||
#define MIDI_SAMPLING_RATE_88K2HZ 88200
|
||||
#define MIDI_SAMPLING_RATE_96KHZ 96000
|
||||
#define MIDI_SAMPLING_RATE_176K4HZ 176400
|
||||
#define MIDI_SAMPLING_RATE_192KHZ 192000
|
||||
#define MIDI_SAMPLING_RATE_DEFAULT 10000
|
||||
|
||||
// Channel Voice Messages
|
||||
#define MIDI_STATUS_NOTE_OFF 0x80
|
||||
#define MIDI_STATUS_NOTE_ON 0x90
|
||||
#define MIDI_STATUS_POLYPHONIC_KEY_PRESSURE 0xA0
|
||||
#define MIDI_STATUS_CONTROL_CHANGE 0xb0
|
||||
#define MIDI_STATUS_PROGRAM_CHANGE 0xc0
|
||||
#define MIDI_STATUS_CHANNEL_PRESSURE 0xd0
|
||||
#define MIDI_STATUS_PITCH_WHEEL_CHANGE 0xe0
|
||||
|
||||
// MIDI Channel enumeration values
|
||||
#define MIDI_CHANNEL_1 0x0
|
||||
#define MIDI_CHANNEL_2 0x1
|
||||
#define MIDI_CHANNEL_3 0x2
|
||||
#define MIDI_CHANNEL_4 0x3
|
||||
#define MIDI_CHANNEL_5 0x4
|
||||
#define MIDI_CHANNEL_6 0x5
|
||||
#define MIDI_CHANNEL_7 0x6
|
||||
#define MIDI_CHANNEL_8 0x7
|
||||
#define MIDI_CHANNEL_9 0x8
|
||||
#define MIDI_CHANNEL_10 0x9
|
||||
#define MIDI_CHANNEL_11 0xa
|
||||
#define MIDI_CHANNEL_12 0xb
|
||||
#define MIDI_CHANNEL_13 0xc
|
||||
#define MIDI_CHANNEL_14 0xd
|
||||
#define MIDI_CHANNEL_15 0xe
|
||||
#define MIDI_CHANNEL_16 0xf
|
||||
#define MIDI_CHANNEL_BASE 0x10
|
||||
#define MIDI_CHANNEL_ALL 0x1f
|
||||
|
||||
#define MIDI_LSB( v ) (v) & 0x7F
|
||||
#define MIDI_MSB( v ) ((v)>> 7) & 0x7F
|
||||
|
||||
typedef byte MIDI_CHANNEL;
|
||||
typedef byte MIDI_VELOCITY;
|
||||
typedef byte MIDI_PRESSURE;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Type definitions
|
||||
|
||||
typedef uint8_t byte;
|
||||
|
||||
typedef byte StatusByte;
|
||||
typedef byte DataByte;
|
||||
typedef byte Channel;
|
||||
typedef byte FilterMode;
|
||||
|
||||
/*! Enumeration of MIDI types */
|
||||
enum MidiType
|
||||
{
|
||||
InvalidType = 0x00, ///< For notifying errors
|
||||
NoteOff = 0x80, ///< Note Off
|
||||
NoteOn = 0x90, ///< Note On
|
||||
AfterTouchPoly = 0xA0, ///< Polyphonic AfterTouch
|
||||
ControlChange = 0xB0, ///< Control Change / Channel Mode
|
||||
ProgramChange = 0xC0, ///< Program Change
|
||||
AfterTouchChannel = 0xD0, ///< Channel (monophonic) AfterTouch
|
||||
PitchBend = 0xE0, ///< Pitch Bend
|
||||
SysEx = 0xF0, ///< System Exclusive
|
||||
SysExStart = SysEx, ///< System Exclusive Start
|
||||
SysExEnd = 0xF7, ///< System Exclusive End
|
||||
TimeCodeQuarterFrame = 0xF1, ///< System Common - MIDI Time Code Quarter Frame
|
||||
SongPosition = 0xF2, ///< System Common - Song Position Pointer
|
||||
SongSelect = 0xF3, ///< System Common - Song Select
|
||||
TuneRequest = 0xF6, ///< System Common - Tune Request
|
||||
Clock = 0xF8, ///< System Real Time - Timing Clock
|
||||
Tick = 0xF9, ///< System Real Time - Tick
|
||||
Start = 0xFA, ///< System Real Time - Start
|
||||
Continue = 0xFB, ///< System Real Time - Continue
|
||||
Stop = 0xFC, ///< System Real Time - Stop
|
||||
ActiveSensing = 0xFE, ///< System Real Time - Active Sensing
|
||||
Reset = 0xFF, ///< System Real Time - System Reset
|
||||
};
|
||||
|
||||
/*! \brief Enumeration of Control Change command numbers.
|
||||
See the detailed controllers numbers & description here:
|
||||
http://www.somascape.org/midi/tech/spec.html#ctrlnums
|
||||
*/
|
||||
enum MidiControlChangeNumber
|
||||
{
|
||||
// High resolution Continuous Controllers MSB (+32 for LSB) ----------------
|
||||
BankSelect = 0,
|
||||
ModulationWheel = 1,
|
||||
BreathController = 2,
|
||||
// CC3 undefined
|
||||
FootController = 4,
|
||||
PortamentoTime = 5,
|
||||
DataEntry = 6,
|
||||
ChannelVolume = 7,
|
||||
Balance = 8,
|
||||
// CC9 undefined
|
||||
Pan = 10,
|
||||
ExpressionController = 11,
|
||||
EffectControl1 = 12,
|
||||
EffectControl2 = 13,
|
||||
// CC14 undefined
|
||||
// CC15 undefined
|
||||
GeneralPurposeController1 = 16,
|
||||
GeneralPurposeController2 = 17,
|
||||
GeneralPurposeController3 = 18,
|
||||
GeneralPurposeController4 = 19,
|
||||
|
||||
// Switches ----------------------------------------------------------------
|
||||
Sustain = 64,
|
||||
Portamento = 65,
|
||||
Sostenuto = 66,
|
||||
SoftPedal = 67,
|
||||
Legato = 68,
|
||||
Hold = 69,
|
||||
|
||||
// Low resolution continuous controllers -----------------------------------
|
||||
SoundController1 = 70, ///< Synth: Sound Variation FX: Exciter On/Off
|
||||
SoundController2 = 71, ///< Synth: Harmonic Content FX: Compressor On/Off
|
||||
SoundController3 = 72, ///< Synth: Release Time FX: Distortion On/Off
|
||||
SoundController4 = 73, ///< Synth: Attack Time FX: EQ On/Off
|
||||
SoundController5 = 74, ///< Synth: Brightness FX: Expander On/Off
|
||||
SoundController6 = 75, ///< Synth: Decay Time FX: Reverb On/Off
|
||||
SoundController7 = 76, ///< Synth: Vibrato Rate FX: Delay On/Off
|
||||
SoundController8 = 77, ///< Synth: Vibrato Depth FX: Pitch Transpose On/Off
|
||||
SoundController9 = 78, ///< Synth: Vibrato Delay FX: Flange/Chorus On/Off
|
||||
SoundController10 = 79, ///< Synth: Undefined FX: Special Effects On/Off
|
||||
GeneralPurposeController5 = 80,
|
||||
GeneralPurposeController6 = 81,
|
||||
GeneralPurposeController7 = 82,
|
||||
GeneralPurposeController8 = 83,
|
||||
PortamentoControl = 84,
|
||||
// CC85 to CC90 undefined
|
||||
Effects1 = 91, ///< Reverb send level
|
||||
Effects2 = 92, ///< Tremolo depth
|
||||
Effects3 = 93, ///< Chorus send level
|
||||
Effects4 = 94, ///< Celeste depth
|
||||
Effects5 = 95, ///< Phaser depth
|
||||
|
||||
// Channel Mode messages ---------------------------------------------------
|
||||
AllSoundOff = 120,
|
||||
ResetAllControllers = 121,
|
||||
LocalControl = 122,
|
||||
AllNotesOff = 123,
|
||||
OmniModeOff = 124,
|
||||
OmniModeOn = 125,
|
||||
MonoModeOn = 126,
|
||||
PolyModeOn = 127
|
||||
};
|
||||
|
||||
|
||||
/*! \brief Create an instance of the library
|
||||
*/
|
||||
#define BLEMIDI_CREATE_INSTANCE(Name) \
|
||||
|
|
|
|||
Loading…
Reference in New Issue