9#if !defined(__ASOUNDLIB_H) && !defined(ALSA_LIBRARY_BUILD)
11#warning "use #include <alsa/asoundlib.h>, <alsa/ump_msg.h> should not be used directly"
12#include <alsa/asoundlib.h>
15#ifndef __ALSA_UMP_MSG_H
16#define __ALSA_UMP_MSG_H
22#if __BYTE_ORDER != __LITTLE_ENDIAN && __BYTE_ORDER != __BIG_ENDIAN
23#error "Endianness check failed!"
28#if __BYTE_ORDER == __BIG_ENDIAN
47#if __BYTE_ORDER == __BIG_ENDIAN
66#if __BYTE_ORDER == __BIG_ENDIAN
85#if __BYTE_ORDER == __BIG_ENDIAN
104#if __BYTE_ORDER == __BIG_ENDIAN
119}
__attribute((packed)) snd_ump_msg_midi1_program_t;
123#if __BYTE_ORDER == __BIG_ENDIAN
142#if __BYTE_ORDER == __BIG_ENDIAN
157}
__attribute((packed)) snd_ump_msg_midi1_pitchbend_t;
161#if __BYTE_ORDER == __BIG_ENDIAN
177typedef union _snd_ump_msg_midi1 {
200#if __BYTE_ORDER == __BIG_ENDIAN
225#if __BYTE_ORDER == __BIG_ENDIAN
248#if __BYTE_ORDER == __BIG_ENDIAN
267}
__attribute((packed)) snd_ump_msg_midi2_per_note_cc_t;
277#if __BYTE_ORDER == __BIG_ENDIAN
296}
__attribute((packed)) snd_ump_msg_midi2_per_note_mgmt_t;
300#if __BYTE_ORDER == __BIG_ENDIAN
323#if __BYTE_ORDER == __BIG_ENDIAN
346#if __BYTE_ORDER == __BIG_ENDIAN
371}
__attribute((packed)) snd_ump_msg_midi2_program_t;
375#if __BYTE_ORDER == __BIG_ENDIAN
396#if __BYTE_ORDER == __BIG_ENDIAN
413}
__attribute((packed)) snd_ump_msg_midi2_pitchbend_t;
417#ifdef __BIG_ENDIAN_BITFIELD
436}
__attribute((packed)) snd_ump_msg_midi2_per_note_pitchbend_t;
439typedef union _snd_ump_msg_midi2 {
447 snd_ump_msg_midi2_rpn_t
rpn;
461#if __BYTE_ORDER == __BIG_ENDIAN
481typedef union _snd_ump_msg_stream {
482 snd_ump_msg_stream_gen_t
gen;
489#if __BYTE_ORDER == __BIG_ENDIAN
508}
__attribute((packed)) snd_ump_msg_flex_data_meta_t;
512#if __BYTE_ORDER == __BIG_ENDIAN
541#if __BYTE_ORDER == __BIG_ENDIAN
576#if __BYTE_ORDER == __BIG_ENDIAN
615}
__attribute((packed)) snd_ump_msg_set_metronome_t;
619#if __BYTE_ORDER == __BIG_ENDIAN
652#if __BYTE_ORDER == __BIG_ENDIAN
713}
__attribute((packed)) snd_ump_msg_set_chord_name_t;
716typedef union _snd_ump_msg_flex_data {
717 snd_ump_msg_flex_data_meta_t
meta;
718 snd_ump_msg_flex_data_meta_t
text;
729typedef struct _snd_ump_msg_mixed_data_header {
730#ifdef __BIG_ENDIAN_BITFIELD
740 uint16_t manufacturer;
764typedef struct _snd_ump_msg_mixed_data_payload {
765#ifdef __BIG_ENDIAN_BITFIELD
772 uint32_t payloads[3];
780 uint32_t payloads[3];
785typedef union _snd_ump_msg_mixed_data {
793#if __BYTE_ORDER == __BIG_ENDIAN
810#if __BYTE_ORDER == __BIG_ENDIAN
827#if __BYTE_ORDER == __BIG_ENDIAN
841typedef union _snd_ump_msg_utility {
853 SND_UMP_MSG_TYPE_UTILITY = 0x00,
854 SND_UMP_MSG_TYPE_SYSTEM = 0x01,
855 SND_UMP_MSG_TYPE_MIDI1_CHANNEL_VOICE = 0x02,
856 SND_UMP_MSG_TYPE_DATA = 0x03,
857 SND_UMP_MSG_TYPE_MIDI2_CHANNEL_VOICE = 0x04,
858 SND_UMP_MSG_TYPE_EXTENDED_DATA = 0x05,
859 SND_UMP_MSG_TYPE_FLEX_DATA = 0x0d,
860 SND_UMP_MSG_TYPE_STREAM = 0x0f,
867 SND_UMP_MSG_PER_NOTE_RCC = 0x0,
868 SND_UMP_MSG_PER_NOTE_ACC = 0x1,
869 SND_UMP_MSG_RPN = 0x2,
870 SND_UMP_MSG_NRPN = 0x3,
871 SND_UMP_MSG_RELATIVE_RPN = 0x4,
872 SND_UMP_MSG_RELATIVE_NRPN = 0x5,
873 SND_UMP_MSG_PER_NOTE_PITCHBEND = 0x6,
874 SND_UMP_MSG_NOTE_OFF = 0x8,
875 SND_UMP_MSG_NOTE_ON = 0x9,
876 SND_UMP_MSG_POLY_PRESSURE = 0xa,
877 SND_UMP_MSG_CONTROL_CHANGE = 0xb,
878 SND_UMP_MSG_PROGRAM_CHANGE = 0xc,
879 SND_UMP_MSG_CHANNEL_PRESSURE = 0xd,
880 SND_UMP_MSG_PITCHBEND = 0xe,
881 SND_UMP_MSG_PER_NOTE_MGMT = 0xf,
888 SND_UMP_MSG_REALTIME = 0xf0,
889 SND_UMP_MSG_SYSEX_START = 0xf0,
890 SND_UMP_MSG_MIDI_TIME_CODE = 0xf1,
891 SND_UMP_MSG_SONG_POSITION = 0xf2,
892 SND_UMP_MSG_SONG_SELECT = 0xf3,
893 SND_UMP_MSG_TUNE_REQUEST = 0xf6,
894 SND_UMP_MSG_SYSEX_END = 0xf7,
895 SND_UMP_MSG_TIMING_CLOCK = 0xf8,
896 SND_UMP_MSG_START = 0xfa,
897 SND_UMP_MSG_CONTINUE = 0xfb,
898 SND_UMP_MSG_STOP = 0xfc,
899 SND_UMP_MSG_ACTIVE_SENSING = 0xfe,
900 SND_UMP_MSG_RESET = 0xff,
905 SND_UMP_SYSEX_STATUS_SINGLE = 0,
906 SND_UMP_SYSEX_STATUS_START = 1,
907 SND_UMP_SYSEX_STATUS_CONTINUE = 2,
908 SND_UMP_SYSEX_STATUS_END = 3,
913 SND_UMP_MIXED_DATA_SET_STATUS_HEADER = 8,
914 SND_UMP_MIXED_DATA_SET_STATUS_PAYLOAD = 9,
919 SND_UMP_UTILITY_MSG_STATUS_NOOP = 0x00,
920 SND_UMP_UTILITY_MSG_STATUS_JR_CLOCK = 0x01,
921 SND_UMP_UTILITY_MSG_STATUS_JR_TSTAMP = 0x02,
922 SND_UMP_UTILITY_MSG_STATUS_DCTPQ = 0x03,
923 SND_UMP_UTILITY_MSG_STATUS_DC = 0x04,
928 SND_UMP_STREAM_MSG_STATUS_EP_DISCOVERY = 0x00,
929 SND_UMP_STREAM_MSG_STATUS_EP_INFO = 0x01,
930 SND_UMP_STREAM_MSG_STATUS_DEVICE_INFO = 0x02,
931 SND_UMP_STREAM_MSG_STATUS_EP_NAME = 0x03,
932 SND_UMP_STREAM_MSG_STATUS_PRODUCT_ID = 0x04,
933 SND_UMP_STREAM_MSG_STATUS_STREAM_CFG_REQUEST = 0x05,
934 SND_UMP_STREAM_MSG_STATUS_STREAM_CFG = 0x06,
935 SND_UMP_STREAM_MSG_STATUS_FB_DISCOVERY = 0x10,
936 SND_UMP_STREAM_MSG_STATUS_FB_INFO = 0x11,
937 SND_UMP_STREAM_MSG_STATUS_FB_NAME = 0x12,
938 SND_UMP_STREAM_MSG_STATUS_START_CLIP = 0x20,
939 SND_UMP_STREAM_MSG_STATUS_END_CLIP = 0x21,
944 SND_UMP_STREAM_MSG_REQUEST_EP_INFO = (1U << 0),
945 SND_UMP_STREAM_MSG_REQUEST_DEVICE_INFO = (1U << 1),
946 SND_UMP_STREAM_MSG_REQUEST_EP_NAME = (1U << 2),
947 SND_UMP_STREAM_MSG_REQUEST_PRODUCT_ID = (1U << 3),
948 SND_UMP_STREAM_MSG_REQUEST_STREAM_CFG = (1U << 4),
953 SND_UMP_STREAM_MSG_REQUEST_FB_INFO = (1U << 0),
954 SND_UMP_STREAM_MSG_REQUEST_FB_NAME = (1U << 1),
959 SND_UMP_STREAM_MSG_EP_INFO_CAP_TXJR = (1U << 0),
960 SND_UMP_STREAM_MSG_EP_INFO_CAP_RXJR = (1U << 1),
961 SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI1 = (1U << 8),
962 SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI2 = (1U << 9),
967 SND_UMP_STREAM_MSG_FORMAT_SINGLE = 0,
968 SND_UMP_STREAM_MSG_FORMAT_START = 1,
969 SND_UMP_STREAM_MSG_FORMAT_CONTINUE = 2,
970 SND_UMP_STREAM_MSG_FORMAT_END = 3,
975 SND_UMP_FLEX_DATA_MSG_FORMAT_SINGLE = 0,
976 SND_UMP_FLEX_DATA_MSG_FORMAT_START = 1,
977 SND_UMP_FLEX_DATA_MSG_FORMAT_CONTINUE = 2,
978 SND_UMP_FLEX_DATA_MSG_FORMAT_END = 3,
983 SND_UMP_FLEX_DATA_MSG_ADDR_CHANNEL = 0,
984 SND_UMP_FLEX_DATA_MSG_ADDR_GROUP = 1,
989 SND_UMP_FLEX_DATA_MSG_BANK_SETUP = 0,
990 SND_UMP_FLEX_DATA_MSG_BANK_METADATA = 1,
991 SND_UMP_FLEX_DATA_MSG_BANK_PERF_TEXT = 2,
996 SND_UMP_FLEX_DATA_MSG_STATUS_SET_TEMPO = 0x00,
997 SND_UMP_FLEX_DATA_MSG_STATUS_SET_TIME_SIGNATURE = 0x01,
998 SND_UMP_FLEX_DATA_MSG_STATUS_SET_METRONOME = 0x02,
999 SND_UMP_FLEX_DATA_MSG_STATUS_SET_KEY_SIGNATURE = 0x05,
1000 SND_UMP_FLEX_DATA_MSG_STATUS_SET_CHORD_NAME = 0x06,
1005 SND_UMP_FLEX_DATA_MSG_STATUS_PROJECT_NAME = 0x01,
1006 SND_UMP_FLEX_DATA_MSG_STATUS_SONG_NAME = 0x02,
1007 SND_UMP_FLEX_DATA_MSG_STATUS_MIDI_CLIP_NAME = 0x03,
1008 SND_UMP_FLEX_DATA_MSG_STATUS_COPYRIGHT_NOTICE = 0x04,
1009 SND_UMP_FLEX_DATA_MSG_STATUS_COMPOSER_NAME = 0x05,
1010 SND_UMP_FLEX_DATA_MSG_STATUS_LYRICIST_NAME = 0x06,
1011 SND_UMP_FLEX_DATA_MSG_STATUS_ARRANGER_NAME = 0x07,
1012 SND_UMP_FLEX_DATA_MSG_STATUS_PUBLISHER_NAME = 0x08,
1013 SND_UMP_FLEX_DATA_MSG_STATUS_PRIMARY_PERFORMER = 0x09,
1014 SND_UMP_FLEX_DATA_MSG_STATUS_ACCOMPANY_PERFORMAER = 0x0a,
1015 SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_DATE = 0x0b,
1016 SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_LOCATION = 0x0c,
1021 SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS = 0x01,
1022 SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS_LANGUAGE = 0x02,
1023 SND_UMP_FLEX_DATA_MSG_STATUS_RUBY = 0x03,
1024 SND_UMP_FLEX_DATA_MSG_STATUS_RUBY_LANGUAGE = 0x04,
1030static inline uint8_t snd_ump_msg_hdr_status(uint32_t ump)
1032 return (ump >> 20) & 0x0f;
1038static inline uint8_t snd_ump_msg_hdr_channel(uint32_t ump)
1040 return (ump >> 16) & 0x0f;
1046static inline uint8_t snd_ump_msg_hdr_type(uint32_t ump)
1054static inline int snd_ump_msg_type_is_groupless(uint8_t
type)
1056 return type == SND_UMP_MSG_TYPE_UTILITY ||
type == SND_UMP_MSG_TYPE_STREAM;
1062static inline uint8_t snd_ump_msg_hdr_group(uint32_t ump)
1064 return (ump >> 24) & 0x0f;
1070static inline uint8_t snd_ump_msg_status(
const uint32_t *ump)
1072 return snd_ump_msg_hdr_status(*ump);
1078static inline uint8_t snd_ump_msg_channel(
const uint32_t *ump)
1080 return snd_ump_msg_hdr_channel(*ump);
1086static inline uint8_t snd_ump_msg_type(
const uint32_t *ump)
1088 return snd_ump_msg_hdr_type(*ump);
1094static inline uint8_t snd_ump_msg_group(
const uint32_t *ump)
1096 return snd_ump_msg_hdr_group(*ump);
1102static inline uint8_t snd_ump_sysex_msg_status(
const uint32_t *ump)
1104 return (*ump >> 20) & 0xf;
1110static inline uint8_t snd_ump_sysex_msg_length(
const uint32_t *ump)
1112 return (*ump >> 16) & 0xf;
1118static inline uint8_t snd_ump_get_byte(
const uint32_t *ump,
unsigned int offset)
1120#if __BYTE_ORDER == __BIG_ENDIAN
1121 return ((
const uint8_t *)ump)[offset];
1123 return ((
const uint8_t *)ump)[(offset & ~3) | (3 - (offset & 3))];
uint32_t group
Definition ump_msg.h:829
uint32_t status
Definition ump_msg.h:830
uint32_t ticks
Definition ump_msg.h:831
uint32_t type
Definition ump_msg.h:828
uint8_t type
Definition ump_msg.h:811
uint8_t reserved
Definition ump_msg.h:814
uint8_t group
Definition ump_msg.h:812
uint16_t ticks
Definition ump_msg.h:815
uint8_t status
Definition ump_msg.h:813
uint8_t byte1
Definition ump_msg.h:33
uint8_t type
Definition ump_msg.h:29
uint8_t status
Definition ump_msg.h:31
uint8_t channel
Definition ump_msg.h:32
uint8_t byte2
Definition ump_msg.h:34
uint8_t group
Definition ump_msg.h:30
uint8_t status
Definition ump_msg.h:796
uint8_t type
Definition ump_msg.h:794
uint16_t time
Definition ump_msg.h:798
uint8_t reserved
Definition ump_msg.h:797
uint8_t group
Definition ump_msg.h:795
uint8_t data
Definition ump_msg.h:128
uint8_t type
Definition ump_msg.h:124
uint8_t reserved
Definition ump_msg.h:129
uint8_t channel
Definition ump_msg.h:127
uint8_t status
Definition ump_msg.h:126
uint8_t group
Definition ump_msg.h:125
uint8_t channel
Definition ump_msg.h:89
uint8_t data
Definition ump_msg.h:91
uint8_t group
Definition ump_msg.h:87
uint8_t type
Definition ump_msg.h:86
uint8_t status
Definition ump_msg.h:88
uint8_t index
Definition ump_msg.h:90
uint8_t status
Definition ump_msg.h:50
uint8_t velocity
Definition ump_msg.h:53
uint8_t note
Definition ump_msg.h:52
uint8_t channel
Definition ump_msg.h:51
uint8_t type
Definition ump_msg.h:48
uint8_t group
Definition ump_msg.h:49
uint8_t type
Definition ump_msg.h:67
uint8_t group
Definition ump_msg.h:68
uint8_t data
Definition ump_msg.h:72
uint8_t status
Definition ump_msg.h:69
uint8_t channel
Definition ump_msg.h:70
uint8_t note
Definition ump_msg.h:71
uint8_t status
Definition ump_msg.h:145
uint8_t channel
Definition ump_msg.h:146
uint8_t group
Definition ump_msg.h:144
uint8_t data_lsb
Definition ump_msg.h:147
uint8_t type
Definition ump_msg.h:143
uint8_t data_msb
Definition ump_msg.h:148
uint8_t group
Definition ump_msg.h:106
uint8_t program
Definition ump_msg.h:109
uint8_t reserved
Definition ump_msg.h:110
uint8_t type
Definition ump_msg.h:105
uint8_t status
Definition ump_msg.h:107
uint8_t channel
Definition ump_msg.h:108
uint8_t type
Definition ump_msg.h:376
uint32_t data
Definition ump_msg.h:382
uint8_t status
Definition ump_msg.h:378
uint16_t reserved
Definition ump_msg.h:380
uint8_t group
Definition ump_msg.h:377
uint8_t channel
Definition ump_msg.h:379
uint8_t group
Definition ump_msg.h:302
uint8_t type
Definition ump_msg.h:301
uint8_t channel
Definition ump_msg.h:304
uint8_t index
Definition ump_msg.h:305
uint32_t data
Definition ump_msg.h:308
uint8_t status
Definition ump_msg.h:303
uint8_t reserved
Definition ump_msg.h:306
uint8_t group
Definition ump_msg.h:202
uint8_t status
Definition ump_msg.h:203
uint8_t note
Definition ump_msg.h:205
uint16_t velocity
Definition ump_msg.h:208
uint8_t attr_type
Definition ump_msg.h:206
uint8_t channel
Definition ump_msg.h:204
uint16_t attr_data
Definition ump_msg.h:209
uint8_t type
Definition ump_msg.h:201
uint8_t group
Definition ump_msg.h:227
uint32_t data
Definition ump_msg.h:233
uint8_t channel
Definition ump_msg.h:229
uint8_t reserved
Definition ump_msg.h:231
uint8_t type
Definition ump_msg.h:226
uint8_t note
Definition ump_msg.h:230
uint8_t status
Definition ump_msg.h:228
uint32_t data
Definition ump_msg.h:256
uint8_t note
Definition ump_msg.h:253
uint8_t channel
Definition ump_msg.h:252
uint8_t status
Definition ump_msg.h:251
uint8_t type
Definition ump_msg.h:249
uint8_t index
Definition ump_msg.h:254
uint8_t group
Definition ump_msg.h:250
uint8_t note
Definition ump_msg.h:282
uint8_t group
Definition ump_msg.h:279
uint8_t status
Definition ump_msg.h:280
uint8_t flags
Definition ump_msg.h:283
uint8_t channel
Definition ump_msg.h:281
uint32_t reserved
Definition ump_msg.h:285
uint8_t type
Definition ump_msg.h:278
uint8_t channel
Definition ump_msg.h:429
uint8_t note
Definition ump_msg.h:428
uint8_t type
Definition ump_msg.h:432
uint8_t status
Definition ump_msg.h:430
uint8_t reserved
Definition ump_msg.h:427
uint32_t data
Definition ump_msg.h:434
uint8_t group
Definition ump_msg.h:431
uint8_t channel
Definition ump_msg.h:400
uint8_t group
Definition ump_msg.h:398
uint16_t reserved
Definition ump_msg.h:401
uint8_t status
Definition ump_msg.h:399
uint8_t type
Definition ump_msg.h:397
uint32_t data
Definition ump_msg.h:403
uint16_t reserved
Definition ump_msg.h:351
uint8_t program
Definition ump_msg.h:354
uint8_t group
Definition ump_msg.h:348
uint8_t status
Definition ump_msg.h:349
uint8_t channel
Definition ump_msg.h:350
uint8_t bank_msb
Definition ump_msg.h:356
uint8_t reserved2
Definition ump_msg.h:355
uint16_t bank_valid
Definition ump_msg.h:352
uint8_t bank_lsb
Definition ump_msg.h:357
uint8_t type
Definition ump_msg.h:347
uint8_t bank
Definition ump_msg.h:328
uint8_t status
Definition ump_msg.h:326
uint8_t type
Definition ump_msg.h:324
uint8_t channel
Definition ump_msg.h:327
uint32_t data
Definition ump_msg.h:331
uint8_t index
Definition ump_msg.h:329
uint8_t group
Definition ump_msg.h:325
uint8_t alter4_type
Definition ump_msg.h:671
uint8_t bass_sharp
Definition ump_msg.h:675
uint8_t alter3_type
Definition ump_msg.h:669
uint8_t tonic_sharp
Definition ump_msg.h:661
uint8_t type
Definition ump_msg.h:653
uint8_t alter4_degree
Definition ump_msg.h:672
uint8_t bass_type
Definition ump_msg.h:677
uint8_t alter3_degree
Definition ump_msg.h:670
uint8_t alter1_degree
Definition ump_msg.h:665
uint8_t bass_note
Definition ump_msg.h:676
uint8_t bass_alter1_degree
Definition ump_msg.h:679
uint8_t format
Definition ump_msg.h:655
uint8_t addrs
Definition ump_msg.h:656
uint8_t chord_tonic
Definition ump_msg.h:662
uint8_t bass_alter2_degree
Definition ump_msg.h:681
uint8_t alter1_type
Definition ump_msg.h:664
uint8_t bass_alter2_type
Definition ump_msg.h:680
uint16_t reserved
Definition ump_msg.h:673
uint8_t channel
Definition ump_msg.h:657
uint8_t status_bank
Definition ump_msg.h:658
uint8_t chord_type
Definition ump_msg.h:663
uint8_t alter2_degree
Definition ump_msg.h:667
uint8_t alter2_type
Definition ump_msg.h:666
uint8_t status
Definition ump_msg.h:659
uint8_t group
Definition ump_msg.h:654
uint8_t bass_alter1_type
Definition ump_msg.h:678
uint8_t sharps_flats
Definition ump_msg.h:628
uint8_t group
Definition ump_msg.h:621
uint32_t reserved2[2]
Definition ump_msg.h:632
uint8_t tonic_note
Definition ump_msg.h:629
uint8_t reserved1[3]
Definition ump_msg.h:630
uint8_t status
Definition ump_msg.h:626
uint8_t status_bank
Definition ump_msg.h:625
uint8_t channel
Definition ump_msg.h:624
uint8_t format
Definition ump_msg.h:622
uint8_t addrs
Definition ump_msg.h:623
uint8_t type
Definition ump_msg.h:620
uint8_t clocks_primary
Definition ump_msg.h:585
uint16_t reserved1
Definition ump_msg.h:592
uint8_t channel
Definition ump_msg.h:581
uint8_t bar_accent_1
Definition ump_msg.h:586
uint8_t status_bank
Definition ump_msg.h:582
uint8_t group
Definition ump_msg.h:578
uint8_t format
Definition ump_msg.h:579
uint8_t type
Definition ump_msg.h:577
uint8_t status
Definition ump_msg.h:583
uint8_t bar_accent_2
Definition ump_msg.h:587
uint8_t subdivision_1
Definition ump_msg.h:590
uint8_t addrs
Definition ump_msg.h:580
uint8_t subdivision_2
Definition ump_msg.h:591
uint32_t reserved2
Definition ump_msg.h:594
uint8_t bar_accent_3
Definition ump_msg.h:588
uint8_t group
Definition ump_msg.h:514
uint8_t format
Definition ump_msg.h:515
uint8_t addrs
Definition ump_msg.h:516
uint8_t status
Definition ump_msg.h:519
uint8_t type
Definition ump_msg.h:513
uint32_t tempo
Definition ump_msg.h:521
uint8_t channel
Definition ump_msg.h:517
uint32_t reserved[2]
Definition ump_msg.h:523
uint8_t status_bank
Definition ump_msg.h:518
uint8_t addrs
Definition ump_msg.h:545
uint8_t channel
Definition ump_msg.h:546
uint8_t format
Definition ump_msg.h:544
uint8_t status
Definition ump_msg.h:548
uint32_t reserved[2]
Definition ump_msg.h:555
uint8_t numerator
Definition ump_msg.h:550
uint8_t denominator
Definition ump_msg.h:551
uint8_t type
Definition ump_msg.h:542
uint8_t group
Definition ump_msg.h:543
uint8_t reserved1
Definition ump_msg.h:553
uint8_t status_bank
Definition ump_msg.h:547
uint8_t num_notes
Definition ump_msg.h:552
uint16_t data1
Definition ump_msg.h:465
uint32_t data2
Definition ump_msg.h:466
uint32_t data4
Definition ump_msg.h:468
uint32_t data3
Definition ump_msg.h:467
uint16_t type
Definition ump_msg.h:462
uint16_t format
Definition ump_msg.h:463
uint16_t status
Definition ump_msg.h:464
uint8_t group
Definition ump_msg.h:777
uint8_t mds_id
Definition ump_msg.h:775
uint8_t type
Definition ump_msg.h:778
uint16_t payload1
Definition ump_msg.h:774
uint8_t status
Definition ump_msg.h:776
uint8_t parm1
Definition ump_msg.h:165
uint8_t type
Definition ump_msg.h:162
uint8_t status
Definition ump_msg.h:164
uint8_t parm2
Definition ump_msg.h:166
uint8_t group
Definition ump_msg.h:163
int snd_ump_msg_sysex_expand(const uint32_t *ump, uint8_t *buf, size_t maxlen, size_t *filled)
fill sysex byte from a UMP packet
Definition ump.c:1081
@ SND_UMP_MIDI2_NOTE_ATTR_MANUFACTURER
Definition ump_msg.h:193
@ SND_UMP_MIDI2_NOTE_ATTR_PROFILE
Definition ump_msg.h:194
@ SND_UMP_MIDI2_NOTE_ATTR_NO_DATA
Definition ump_msg.h:192
@ SND_UMP_MIDI2_NOTE_ATTR_PITCH79
Definition ump_msg.h:195
uint8_t group
Definition ump_msg.h:2
int snd_ump_packet_length(unsigned int type)
return the length of a UMP packet type
Definition ump.c:1100
uint8_t type
Definition ump_msg.h:1
uint8_t status
Definition ump_msg.h:3
@ SND_UMP_MIDI2_PNMGMT_RESET_CONTROLLERS
Definition ump_msg.h:271
@ SND_UMP_MIDI2_PNMGMT_DETACH_CONTROLLERS
Definition ump_msg.h:272
snd_ump_msg_set_metronome_t set_metronome
Definition ump_msg.h:721
snd_ump_msg_set_chord_name_t set_chord_name
Definition ump_msg.h:723
snd_ump_msg_set_key_sig_t set_key_sig
Definition ump_msg.h:722
snd_ump_msg_set_time_sig_t set_time_sig
Definition ump_msg.h:720
snd_ump_msg_hdr_t hdr
Definition ump_msg.h:724
snd_ump_msg_flex_data_meta_t meta
Definition ump_msg.h:717
snd_ump_msg_flex_data_meta_t text
Definition ump_msg.h:718
snd_ump_msg_set_tempo_t set_tempo
Definition ump_msg.h:719
snd_ump_msg_midi1_pitchbend_t pitchbend
Definition ump_msg.h:184
snd_ump_msg_midi1_program_t program_change
Definition ump_msg.h:182
uint32_t raw
Definition ump_msg.h:187
snd_ump_msg_midi1_cc_t control_change
Definition ump_msg.h:181
snd_ump_msg_midi1_note_t note_on
Definition ump_msg.h:178
snd_ump_msg_midi1_note_t note_off
Definition ump_msg.h:179
snd_ump_msg_midi1_caf_t channel_pressure
Definition ump_msg.h:183
snd_ump_msg_hdr_t hdr
Definition ump_msg.h:186
snd_ump_msg_system_t system
Definition ump_msg.h:185
snd_ump_msg_midi1_paf_t poly_pressure
Definition ump_msg.h:180
snd_ump_msg_midi2_rpn_t relative_rpn
Definition ump_msg.h:449
snd_ump_msg_midi2_paf_t poly_pressure
Definition ump_msg.h:442
snd_ump_msg_midi2_note_t note_off
Definition ump_msg.h:441
snd_ump_msg_midi2_program_t program_change
Definition ump_msg.h:451
snd_ump_msg_midi2_rpn_t rpn
Definition ump_msg.h:447
snd_ump_msg_midi2_per_note_mgmt_t per_note_mgmt
Definition ump_msg.h:445
snd_ump_msg_midi2_pitchbend_t pitchbend
Definition ump_msg.h:453
snd_ump_msg_midi2_cc_t control_change
Definition ump_msg.h:446
snd_ump_msg_midi2_per_note_pitchbend_t per_note_pitchbend
Definition ump_msg.h:454
snd_ump_msg_midi2_note_t note_on
Definition ump_msg.h:440
snd_ump_msg_midi2_rpn_t nrpn
Definition ump_msg.h:448
snd_ump_msg_midi2_per_note_cc_t per_note_acc
Definition ump_msg.h:443
snd_ump_msg_hdr_t hdr
Definition ump_msg.h:455
snd_ump_msg_midi2_caf_t channel_pressure
Definition ump_msg.h:452
snd_ump_msg_midi2_per_note_cc_t per_note_rcc
Definition ump_msg.h:444
snd_ump_msg_midi2_rpn_t relative_nrpn
Definition ump_msg.h:450
snd_ump_msg_mixed_data_payload_t payload
Definition ump_msg.h:787
snd_ump_msg_mixed_data_header_t header
Definition ump_msg.h:786
snd_ump_msg_hdr_t hdr
Definition ump_msg.h:483
snd_ump_msg_stream_gen_t gen
Definition ump_msg.h:482
snd_ump_msg_dc_t dc
Definition ump_msg.h:844
snd_ump_msg_jr_clock_t jr_clock
Definition ump_msg.h:842
snd_ump_msg_dctpq_t dctpq
Definition ump_msg.h:843
uint32_t raw
Definition ump_msg.h:846
snd_ump_msg_hdr_t hdr
Definition ump_msg.h:845