Ardour
9.0-18-g01809b426c
midi++2/midi++/types.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2000-2017 Paul Davis <paul@linuxaudiosystems.com>
3
* Copyright (C) 2006-2007 David Robillard <d@drobilla.net>
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#pragma once
21
22
#include <inttypes.h>
23
24
#include "
midi++/libmidi_visibility.h
"
25
26
namespace
MIDI
{
27
28
typedef
char
channel_t
;
29
typedef
float
controller_value_t
;
30
typedef
unsigned
char
byte
;
31
typedef
unsigned
short
pitchbend_t
;
32
typedef
uint32_t
timestamp_t
;
33
35
typedef
int64_t
samplecnt_t
;
36
typedef
uint32_t
pframes_t
;
37
38
enum
eventType
{
39
none
= 0x0,
40
raw
= 0xF4,
/* undefined in MIDI spec */
41
any
= 0xF5,
/* undefined in MIDI spec */
42
off
= 0x80,
43
on
= 0x90,
44
controller
= 0xB0,
45
program
= 0xC0,
46
chanpress
= 0xD0,
47
polypress
= 0xA0,
48
pitchbend
= 0xE0,
49
sysex
= 0xF0,
50
mtc_quarter
= 0xF1,
51
position
= 0xF2,
52
song
= 0xF3,
53
tune
= 0xF6,
54
eox
= 0xF7,
55
timing
= 0xF8,
56
tick
= 0xF9,
57
start
= 0xFA,
58
contineu
= 0xFB,
/* note spelling */
59
stop
= 0xFC,
60
active
= 0xFE,
61
reset
= 0xFF
62
};
63
64
LIBMIDIPP_API
extern
const
char
*
controller_names
[];
65
byte
decode_controller_name
(
const
char
*
name
);
66
67
struct
LIBMIDIPP_API
EventTwoBytes
{
68
union
{
69
byte
note_number
;
70
byte
controller_number
;
71
};
72
union
{
73
byte
velocity
;
74
byte
value
;
75
};
76
};
77
78
enum
LIBMIDIPP_API
MTC_FPS
{
79
MTC_24_FPS
= 0,
80
MTC_25_FPS
= 1,
81
MTC_30_FPS_DROP
= 2,
82
MTC_30_FPS
= 3
83
};
84
85
enum
LIBMIDIPP_API
MTC_Status
{
86
MTC_Stopped
= 0,
87
MTC_Forward
,
88
MTC_Backward
89
};
90
91
}
// namespace MIDI
92
93
94
95
96
name
GtkImageIconNameData name
Definition:
gtkimage.h:6
libmidi_visibility.h
LIBMIDIPP_API
#define LIBMIDIPP_API
Definition:
libmidi_visibility.h:38
MIDI
Definition:
midi_region_view.h:50
MIDI::decode_controller_name
byte decode_controller_name(const char *name)
MIDI::byte
unsigned char byte
Definition:
ctrl-interface/midi_surface/midi_surface/midi_byte_array.h:26
MIDI::MTC_Status
MTC_Status
Definition:
midi++2/midi++/types.h:85
MIDI::MTC_Forward
@ MTC_Forward
Definition:
midi++2/midi++/types.h:87
MIDI::MTC_Backward
@ MTC_Backward
Definition:
midi++2/midi++/types.h:88
MIDI::MTC_Stopped
@ MTC_Stopped
Definition:
midi++2/midi++/types.h:86
MIDI::samplecnt_t
int64_t samplecnt_t
Definition:
midi++2/midi++/types.h:35
MIDI::controller_names
const char * controller_names[]
MIDI::eventType
eventType
Definition:
midi++2/midi++/types.h:38
MIDI::reset
@ reset
Definition:
midi++2/midi++/types.h:61
MIDI::none
@ none
Definition:
midi++2/midi++/types.h:39
MIDI::start
@ start
Definition:
midi++2/midi++/types.h:57
MIDI::off
@ off
Definition:
midi++2/midi++/types.h:42
MIDI::timing
@ timing
Definition:
midi++2/midi++/types.h:55
MIDI::eox
@ eox
Definition:
midi++2/midi++/types.h:54
MIDI::chanpress
@ chanpress
Definition:
midi++2/midi++/types.h:46
MIDI::song
@ song
Definition:
midi++2/midi++/types.h:52
MIDI::stop
@ stop
Definition:
midi++2/midi++/types.h:59
MIDI::mtc_quarter
@ mtc_quarter
Definition:
midi++2/midi++/types.h:50
MIDI::controller
@ controller
Definition:
midi++2/midi++/types.h:44
MIDI::contineu
@ contineu
Definition:
midi++2/midi++/types.h:58
MIDI::pitchbend
@ pitchbend
Definition:
midi++2/midi++/types.h:48
MIDI::tune
@ tune
Definition:
midi++2/midi++/types.h:53
MIDI::on
@ on
Definition:
midi++2/midi++/types.h:43
MIDI::any
@ any
Definition:
midi++2/midi++/types.h:41
MIDI::sysex
@ sysex
Definition:
midi++2/midi++/types.h:49
MIDI::position
@ position
Definition:
midi++2/midi++/types.h:51
MIDI::raw
@ raw
Definition:
midi++2/midi++/types.h:40
MIDI::program
@ program
Definition:
midi++2/midi++/types.h:45
MIDI::tick
@ tick
Definition:
midi++2/midi++/types.h:56
MIDI::polypress
@ polypress
Definition:
midi++2/midi++/types.h:47
MIDI::active
@ active
Definition:
midi++2/midi++/types.h:60
MIDI::pitchbend_t
unsigned short pitchbend_t
Definition:
midi++2/midi++/types.h:31
MIDI::MTC_FPS
MTC_FPS
Definition:
midi++2/midi++/types.h:78
MIDI::MTC_25_FPS
@ MTC_25_FPS
Definition:
midi++2/midi++/types.h:80
MIDI::MTC_30_FPS
@ MTC_30_FPS
Definition:
midi++2/midi++/types.h:82
MIDI::MTC_30_FPS_DROP
@ MTC_30_FPS_DROP
Definition:
midi++2/midi++/types.h:81
MIDI::MTC_24_FPS
@ MTC_24_FPS
Definition:
midi++2/midi++/types.h:79
MIDI::controller_value_t
float controller_value_t
Definition:
midi++2/midi++/types.h:29
MIDI::channel_t
char channel_t
Definition:
midi++2/midi++/types.h:28
MIDI::timestamp_t
uint32_t timestamp_t
Definition:
midi++2/midi++/types.h:32
MIDI::pframes_t
uint32_t pframes_t
Definition:
midi++2/midi++/types.h:36
MIDI::EventTwoBytes
Definition:
midi++2/midi++/types.h:67
MIDI::EventTwoBytes::value
byte value
Definition:
midi++2/midi++/types.h:74
MIDI::EventTwoBytes::note_number
byte note_number
Definition:
midi++2/midi++/types.h:69
MIDI::EventTwoBytes::velocity
byte velocity
Definition:
midi++2/midi++/types.h:73
MIDI::EventTwoBytes::controller_number
byte controller_number
Definition:
midi++2/midi++/types.h:70
libs
midi++2
midi++
types.h
Generated on Thu Feb 12 2026 06:04:16 for Ardour by
1.9.1