## AgsMidiUmpUtil

AgsMidiUmpUtil — MIDI UMP util

## Stability Level

Stable, unless otherwise indicated

## Functions

AgsMidiUmpUtil * | ags_midi_ump_util_alloc ()
void | ags_midi_ump_util_free ()
AgsMidiUmpUtil * | ags_midi_ump_util_copy ()
gboolean | ags_midi_ump_util_is_system_common ()
gboolean | ags_midi_ump_util_is_data_message_with_sysex ()
gboolean | ags_midi_ump_util_is_data_message ()
gboolean | ags_midi_ump_util_is_stream_message ()
gboolean | ags_midi_ump_util_is_endpoint_discovery ()
void | ags_midi_ump_util_put_endpoint_discovery ()
guint | ags_midi_ump_util_get_endpoint_discovery ()
gboolean | ags_midi_ump_util_is_endpoint_info_notification ()
void | ags_midi_ump_util_put_endpoint_info_notification ()
guint | ags_midi_ump_util_get_endpoint_info_notification ()
gboolean | ags_midi_ump_util_is_device_identity_notification ()
void | ags_midi_ump_util_put_device_identity_notification ()
guint | ags_midi_ump_util_get_device_identity_notification ()
gboolean | ags_midi_ump_util_is_endpoint_name_notification ()
void | ags_midi_ump_util_put_endpoint_name_notification ()
guint | ags_midi_ump_util_get_endpoint_name_notification ()
gboolean | ags_midi_ump_util_is_product_instance_id_notification ()
void | ags_midi_ump_util_put_product_instance_id_notification ()
guint | ags_midi_ump_util_get_product_instance_id_notification ()
gboolean | ags_midi_ump_util_is_stream_configuration_request ()
void | ags_midi_ump_util_put_stream_configuration_request ()
guint | ags_midi_ump_util_get_stream_configuration_request ()
gboolean | ags_midi_ump_util_is_stream_configuration_notification ()
void | ags_midi_ump_util_put_stream_configuration_notification ()
guint | ags_midi_ump_util_get_stream_configuration_notification ()
gboolean | ags_midi_ump_util_is_function_block_discovery ()
void | ags_midi_ump_util_put_function_block_discovery ()
guint | ags_midi_ump_util_get_function_block_discovery ()
gboolean | ags_midi_ump_util_is_function_block_info_notification ()
void | ags_midi_ump_util_put_function_block_info_notification ()
guint | ags_midi_ump_util_get_function_block_info_notification ()
gboolean | ags_midi_ump_util_is_function_block_name_notification ()
void | ags_midi_ump_util_put_function_block_name_notification ()
guint | ags_midi_ump_util_get_function_block_name_notification ()
gboolean | ags_midi_ump_util_is_start_of_clip ()
void | ags_midi_ump_util_put_start_of_clip ()
guint | ags_midi_ump_util_get_start_of_clip ()
gboolean | ags_midi_ump_util_is_end_of_clip ()
void | ags_midi_ump_util_put_end_of_clip ()
guint | ags_midi_ump_util_get_end_of_clip ()
gboolean | ags_midi_ump_util_is_noop ()
void | ags_midi_ump_util_put_noop ()
guint | ags_midi_ump_util_get_noop ()
gboolean | ags_midi_ump_util_is_jr_clock ()
void | ags_midi_ump_util_put_jr_clock ()
guint | ags_midi_ump_util_get_jr_clock ()
gboolean | ags_midi_ump_util_is_jr_timestamp ()
void | ags_midi_ump_util_put_jr_timestamp ()
guint | ags_midi_ump_util_get_jr_timestamp ()
gboolean | ags_midi_ump_util_is_delta_clock_ticks_per_quarter_note ()
void | ags_midi_ump_util_put_delta_clock_ticks_per_quarter_note ()
guint | ags_midi_ump_util_get_delta_clock_ticks_per_quarter_note ()
gboolean | ags_midi_ump_util_is_delta_clock_ticks_since_last_event ()
void | ags_midi_ump_util_put_delta_clock_ticks_since_last_event ()
guint | ags_midi_ump_util_get_delta_clock_ticks_since_last_event ()
gboolean | ags_midi_ump_util_is_midi1_channel_voice ()
gboolean | ags_midi_ump_util_is_midi1_note_off ()
void | ags_midi_ump_util_put_midi1_note_off ()
guint | ags_midi_ump_util_get_midi1_note_off ()
gboolean | ags_midi_ump_util_is_midi1_note_on ()
void | ags_midi_ump_util_put_midi1_note_on ()
guint | ags_midi_ump_util_get_midi1_note_on ()
gboolean | ags_midi_ump_util_is_midi1_polyphonic_aftertouch ()
void | ags_midi_ump_util_put_midi1_polyphonic_aftertouch ()
guint | ags_midi_ump_util_get_midi1_polyphonic_aftertouch ()
gboolean | ags_midi_ump_util_is_midi1_control_change ()
void | ags_midi_ump_util_put_midi1_control_change ()
guint | ags_midi_ump_util_get_midi1_control_change ()
gboolean | ags_midi_ump_util_is_midi1_program_change ()
void | ags_midi_ump_util_put_midi1_program_change ()
guint | ags_midi_ump_util_get_midi1_program_change ()
gboolean | ags_midi_ump_util_is_midi1_channel_pressure ()
void | ags_midi_ump_util_put_midi1_channel_pressure ()
guint | ags_midi_ump_util_get_midi1_channel_pressure ()
gboolean | ags_midi_ump_util_is_midi1_pitch_bend ()
void | ags_midi_ump_util_put_midi1_pitch_bend ()
guint | ags_midi_ump_util_get_midi1_pitch_bend ()
gboolean | ags_midi_ump_util_is_midi2_channel_voice ()
gboolean | ags_midi_ump_util_is_midi2_note_off ()
void | ags_midi_ump_util_put_midi2_note_off ()
guint | ags_midi_ump_util_get_midi2_note_off ()
gboolean | ags_midi_ump_util_is_midi2_note_on ()
void | ags_midi_ump_util_put_midi2_note_on ()
guint | ags_midi_ump_util_get_midi2_note_on ()
gboolean | ags_midi_ump_util_is_midi2_polyphonic_aftertouch ()
void | ags_midi_ump_util_put_midi2_polyphonic_aftertouch ()
guint | ags_midi_ump_util_get_midi2_polyphonic_aftertouch ()
gboolean | ags_midi_ump_util_is_midi2_registered_per_note_controller ()
void | ags_midi_ump_util_put_midi2_registered_per_note_controller ()
guint | ags_midi_ump_util_get_midi2_registered_per_note_controller ()
gboolean | ags_midi_ump_util_is_midi2_assignable_per_note_controller ()
void | ags_midi_ump_util_put_midi2_assignable_per_note_controller ()
guint | ags_midi_ump_util_get_midi2_assignable_per_note_controller ()
gboolean | ags_midi_ump_util_is_midi2_per_note_management ()
void | ags_midi_ump_util_put_midi2_per_note_management ()
guint | ags_midi_ump_util_get_midi2_per_note_management ()
gboolean | ags_midi_ump_util_is_midi2_control_change ()
void | ags_midi_ump_util_put_midi2_control_change ()
guint | ags_midi_ump_util_get_midi2_control_change ()
gboolean | ags_midi_ump_util_is_midi2_rpn_pitch_bend_range ()
void | ags_midi_ump_util_put_midi2_rpn_pitch_bend_range ()
guint | ags_midi_ump_util_get_midi2_rpn_pitch_bend_range ()
gboolean | ags_midi_ump_util_is_midi2_rpn_coarse_tuning ()
void | ags_midi_ump_util_put_midi2_rpn_coarse_tuning ()
guint | ags_midi_ump_util_get_midi2_rpn_coarse_tuning ()
gboolean | ags_midi_ump_util_is_midi2_rpn_tuning_program_change ()
void | ags_midi_ump_util_put_midi2_rpn_tuning_program_change ()
guint | ags_midi_ump_util_get_midi2_rpn_tuning_program_change ()
gboolean | ags_midi_ump_util_is_midi2_rpn_tuning_bank_select ()
void | ags_midi_ump_util_put_midi2_rpn_tuning_bank_select ()
guint | ags_midi_ump_util_get_midi2_rpn_tuning_bank_select ()
gboolean | ags_midi_ump_util_is_midi2_rpn_mpe_mcm ()
void | ags_midi_ump_util_put_midi2_rpn_mpe_mcm ()
guint | ags_midi_ump_util_get_midi2_rpn_mpe_mcm ()
gboolean | ags_midi_ump_util_is_midi2_program_change ()
void | ags_midi_ump_util_put_midi2_program_change ()
guint | ags_midi_ump_util_get_midi2_program_change ()
gboolean | ags_midi_ump_util_is_midi2_channel_pressure ()
void | ags_midi_ump_util_put_midi2_channel_pressure ()
guint | ags_midi_ump_util_get_midi2_channel_pressure ()
gboolean | ags_midi_ump_util_is_midi2_pitch_bend ()
void | ags_midi_ump_util_put_midi2_pitch_bend ()
guint | ags_midi_ump_util_get_midi2_pitch_bend ()
gboolean | ags_midi_ump_util_is_midi2_per_note_pitch_bend ()
void | ags_midi_ump_util_put_midi2_per_note_pitch_bend ()
guint | ags_midi_ump_util_get_midi2_per_note_pitch_bend ()
gboolean | ags_midi_ump_util_is_flex_set_tempo ()
void | ags_midi_ump_util_put_flex_set_tempo ()
guint | ags_midi_ump_util_get_flex_set_tempo ()
gboolean | ags_midi_ump_util_is_flex_set_time_signature ()
void | ags_midi_ump_util_put_flex_set_time_signature ()
guint | ags_midi_ump_util_get_flex_set_time_signature ()
gboolean | ags_midi_ump_util_is_flex_set_metronome ()
void | ags_midi_ump_util_put_flex_set_metronome ()
guint | ags_midi_ump_util_get_flex_set_metronome ()
gboolean | ags_midi_ump_util_is_flex_set_key_signature ()
void | ags_midi_ump_util_put_flex_set_key_signature ()
guint | ags_midi_ump_util_get_flex_set_key_signature ()
gboolean | ags_midi_ump_util_is_flex_set_chord_name ()
void | ags_midi_ump_util_put_flex_set_chord_name ()
guint | ags_midi_ump_util_get_flex_set_chord_name ()
gboolean | ags_midi_ump_util_is_flex_set_text ()

## Types and Values

typedef | AgsUmpWord
enum | AgsMidiUmpStreamMessageFormat
enum | AgsMidiUmpEndpointDiscoveryFilterBitmap
enum | AgsMidiProtocol
enum | AgsMidiUmpFunctionBlockDiscoveryFilterBitmap
enum | AgsMidiDirection
enum | AgsMidiAttributeType
enum | AgsMidi1PortMode
enum | AgsMidi2PerNoteManagementOptionsFlags
enum | AgsMidi2CCIndex

## Object Hierarchy

        GBoxed
        ╰── AgsMidiUmpUtil

## Includes

    #include <ags/audio/midi/ags_midi_ump_util.h>

## Description

Utility functions for MIDI UMP messages.

## Functions

### ags_midi_ump_util_alloc ()

    AgsMidiUmpUtil *
    ags_midi_ump_util_alloc ();

Allocate MIDI UMP util.

#### Returns

the newly allocated AgsMidiUmpUtil.

[transfer full]

Since: 5.5.4

### ags_midi_ump_util_free ()

    void
    ags_midi_ump_util_free (AgsMidiUmpUtil *midi_ump_util);

Free MIDI UMP util.

#### Parameters

midi_ump_util | the MIDI UMP util |

Since: 5.5.4

### ags_midi_ump_util_copy ()

    AgsMidiUmpUtil *
    ags_midi_ump_util_copy (AgsMidiUmpUtil *midi_ump_util);

Copy MIDI UMP util.

#### Parameters

midi_ump_util | the MIDI UMP util |

#### Returns

the newly allocated AgsMidiUmpUtil.

[transfer full]

Since: 5.5.4

### ags_midi_ump_util_is_system_common ()

    gboolean
    ags_midi_ump_util_is_system_common (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer);

Test if is system common.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is system common, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_data_message_with_sysex ()

    gboolean
    ags_midi_ump_util_is_data_message_with_sysex
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is data message with SYSEX.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is data message with SYSEX, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_data_message ()

    gboolean
    ags_midi_ump_util_is_data_message (AgsMidiUmpUtil *midi_ump_util,
                                       guchar *buffer);

Test if is data message.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is data message, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_stream_message ()

    gboolean
    ags_midi_ump_util_is_stream_message (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer);

Test if is stream message.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is stream message, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_endpoint_discovery ()

    gboolean
    ags_midi_ump_util_is_endpoint_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is endpoint discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is endpoint discovery, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_endpoint_discovery ()

    void
    ags_midi_ump_util_put_endpoint_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint major,
                                    gint minor,
                                    gint filter,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put endpoint discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
major | the major |
minor | the minor |
filter | the filter |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_endpoint_discovery ()

    guint
    ags_midi_ump_util_get_endpoint_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *major,
                                    gint *minor,
                                    gint *filter,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get endpoint discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
major | the return location of major. | [out]
minor | the return location of minor. | [out]
filter | the return location of filter. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_endpoint_info_notification ()

    gboolean
    ags_midi_ump_util_is_endpoint_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is endpoint info notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is endpoint info notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_endpoint_info_notification ()

    void
    ags_midi_ump_util_put_endpoint_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint major,
                                    gint minor,
                                    gboolean static_function_blocks,
                                    gint function_block_count,
                                    gboolean midi_v2_0_support,
                                    gboolean midi_v1_0_support,
                                    gboolean rx_jitter_reduction,
                                    gboolean tx_jitter_reduction,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

### ags_midi_ump_util_get_endpoint_info_notification ()

    guint
    ags_midi_ump_util_get_endpoint_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *major,
                                    gint *minor,
                                    gboolean *static_function_blocks,
                                    gint *function_block_count,
                                    gboolean *midi_v2_0_support,
                                    gboolean *midi_v1_0_support,
                                    gboolean *rx_jitter_reduction,
                                    gboolean *tx_jitter_reduction,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get endpoint discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
major | the return location of major. | [out]
minor | the return location of minor. | [out]
static_function_blocks | the return location of static function blocks. | [out]
function_block_count | the return location of function block count. | [out]
midi_v2_0_support | the return location of MIDI v2.0 support. | [out]
midi_v1_0_support | the return location of MIDI v1.0 support. | [out]
rx_jitter_reduction | the return location of RX jitter reduction. | [out]
tx_jitter_reduction | the return location of TX jitter reduction. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_device_identity_notification ()

    gboolean
    ags_midi_ump_util_is_device_identity_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is device identity notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is device identity notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_device_identity_notification ()

    void
    ags_midi_ump_util_put_device_identity_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint device_manufacturer,
                                    gint device_family,
                                    gint device_family_model,
                                    gint software_revision,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put device identity notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
device_manufacturer | the device manufacturer |
device_family | the device family |
device_family_model | the device family model |
software_revision | the software revision |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_device_identity_notification ()

    guint
    ags_midi_ump_util_get_device_identity_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *device_manufacturer,
                                    gint *device_family,
                                    gint *device_family_model,
                                    gint *software_revision,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get device identity notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
device_manufacturer | the return location of device manufacturer. | [out]
device_family | the return location of device family. | [out]
device_family_model | the return location of device family model. | [out]
software_revision | the return location of software revision. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_endpoint_name_notification ()

    gboolean
    ags_midi_ump_util_is_endpoint_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is endpoint name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is endpoint name notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_endpoint_name_notification ()

    void
    ags_midi_ump_util_put_endpoint_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gchar *endpoint_name,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put endpoint name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
endpoint_name | the endpoint name |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_endpoint_name_notification ()

    guint
    ags_midi_ump_util_get_endpoint_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gchar **endpoint_name,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get endpoint name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
endpoint_name | the return location of endpoint name. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_product_instance_id_notification ()

    gboolean
    ags_midi_ump_util_is_product_instance_id_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

### ags_midi_ump_util_put_product_instance_id_notification ()

    void
    ags_midi_ump_util_put_product_instance_id_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gchar *product_instance_id,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put product instance ID notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
product_instance_id | the product instance ID |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_product_instance_id_notification ()

    guint
    ags_midi_ump_util_get_product_instance_id_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gchar **product_instance_id,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get product instance ID notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
product_instance_id | the return location of product instance ID notification. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_stream_configuration_request ()

    gboolean
    ags_midi_ump_util_is_stream_configuration_request
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is stream configuration request.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is stream configuration request, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_stream_configuration_request ()

    void
    ags_midi_ump_util_put_stream_configuration_request
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint protocol,
                                    gboolean rx_jitter_reduction,
                                    gboolean tx_jitter_reduction,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put product instance ID request.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
protocol | the protocol |
rx_jitter_reduction | `TRUE` if receiving jitter reduction, otherwise `FALSE` |
tx_jitter_reduction | `TRUE` if transfer jitter reduction, otherwise `FALSE` |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_stream_configuration_request ()

    guint
    ags_midi_ump_util_get_stream_configuration_request
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *protocol,
                                    gboolean *rx_jitter_reduction,
                                    gboolean *tx_jitter_reduction,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get stream configuration request.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
protocol | the return location of protocol. | [out]
rx_jitter_reduction | the return location of RX jitter reduction. | [out]
tx_jitter_reduction | the return location of TX jitter reduction. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_stream_configuration_notification ()

    gboolean
    ags_midi_ump_util_is_stream_configuration_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is stream configuration notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is stream configuration notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_stream_configuration_notification ()

    void
    ags_midi_ump_util_put_stream_configuration_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint protocol,
                                    gboolean rx_jitter_reduction,
                                    gboolean tx_jitter_reduction,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put product instance ID notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
protocol | the protocol |
rx_jitter_reduction | `TRUE` if receiving jitter reduction, otherwise `FALSE` |
tx_jitter_reduction | `TRUE` if transfer jitter reduction, otherwise `FALSE` |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_stream_configuration_notification ()

    guint
    ags_midi_ump_util_get_stream_configuration_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *protocol,
                                    gboolean *rx_jitter_reduction,
                                    gboolean *tx_jitter_reduction,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get stream configuration notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
protocol | the return location of protocol. | [out]
rx_jitter_reduction | the return location of RX jitter reduction. | [out]
tx_jitter_reduction | the return location of TX jitter reduction. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_function_block_discovery ()

    gboolean
    ags_midi_ump_util_is_function_block_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is function block discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is function block discovery, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_function_block_discovery ()

    void
    ags_midi_ump_util_put_function_block_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint function_block,
                                    gint filter,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put function block discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block | the function block through 0x00 - 0x1f or 0xff to request all |
filter | the filter |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_function_block_discovery ()

    guint
    ags_midi_ump_util_get_function_block_discovery
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *function_block,
                                    gint *filter,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get function block discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block | the return location of function block. | [out]
filter | the return location of filter. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_function_block_info_notification ()

    gboolean
    ags_midi_ump_util_is_function_block_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is function block info notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is function block info notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_function_block_info_notification ()

    void
    ags_midi_ump_util_put_function_block_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gboolean function_block_active,
                                    gint function_block,
                                    gint direction,
                                    gint midi1_port,
                                    gint ui_hint,
                                    gint first_group,
                                    gint group_count,
                                    gint message_version,
                                    gint max_sysex8_stream_count,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put function block info notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block_active | the function block active |
function_block | the function block through 0x00 - 0x1f or 0xff to request all |
direction | the direction |
midi1_port | the MIDI v1.0 port |
ui_hint | the UI hint |
first_group | the first group |
group_count | the group count |
message_version | the message version |
max_sysex8_stream_count | the max SYSEX8 stream count |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_function_block_info_notification ()

    guint
    ags_midi_ump_util_get_function_block_info_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gboolean *function_block_active,
                                    gint *function_block,
                                    gint *direction,
                                    gint *midi1_port,
                                    gint *ui_hint,
                                    gint *first_group,
                                    gint *group_count,
                                    gint *message_version,
                                    gint *max_sysex8_stream_count,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get function block discovery.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block_active | the return location of function block active. | [out]
function_block | the return location of function block. | [out]
direction | the return location of direction. | [out]
midi1_port | the return location of MIDI v1.0 port. | [out]
ui_hint | the return location of UI hint. | [out]
first_group | the return location of first group. | [out]
group_count | the return location of group count. | [out]
message_version | the return location of MIDI CI message version. | [out]
max_sysex8_stream_count | the return location of max SYSEX8 stream count. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_function_block_name_notification ()

    gboolean
    ags_midi_ump_util_is_function_block_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is function block name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is function block name notification, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_function_block_name_notification ()

    void
    ags_midi_ump_util_put_function_block_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint function_block,
                                    gchar *function_block_name,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put function block name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block | the function block |
function_block_name | the function block name |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_function_block_name_notification ()

    guint
    ags_midi_ump_util_get_function_block_name_notification
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *function_block,
                                    gchar **function_block_name,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get function block name notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
function_block | the return location of function block. | [out]
function_block_name | the return location of function block name. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_start_of_clip ()

    gboolean
    ags_midi_ump_util_is_start_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer);

Test if is start of clip.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is start of clip, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_start_of_clip ()

    void
    ags_midi_ump_util_put_start_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gchar **extension_name,
                                         GValue *extension_value,
                                         guint extension_count);

Put start of clip.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_start_of_clip ()

    guint
    ags_midi_ump_util_get_start_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gchar ***extension_name,
                                         GValue **extension_value,
                                         guint *extension_count);

### ags_midi_ump_util_is_end_of_clip ()

    gboolean
    ags_midi_ump_util_is_end_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                      guchar *buffer);

Test if is end of clip.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is end of clip, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_end_of_clip ()

    void
    ags_midi_ump_util_put_end_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                       guchar *buffer,
                                       gchar **extension_name,
                                       GValue *extension_value,
                                       guint extension_count);

Put end of clip.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_end_of_clip ()

    guint
    ags_midi_ump_util_get_end_of_clip (AgsMidiUmpUtil *midi_ump_util,
                                       guchar *buffer,
                                       gchar ***extension_name,
                                       GValue **extension_value,
                                       guint *extension_count);

### ags_midi_ump_util_is_noop ()

    gboolean
    ags_midi_ump_util_is_noop (AgsMidiUmpUtil *midi_ump_util,
                               guchar *buffer);

Test if is NOOP.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is NOOP, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_noop ()

    void
    ags_midi_ump_util_put_noop (AgsMidiUmpUtil *midi_ump_util,
                                guchar *buffer,
                                gchar **extension_name,
                                GValue *extension_value,
                                guint extension_count);

Put NOOP.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_noop ()

    guint
    ags_midi_ump_util_get_noop (AgsMidiUmpUtil *midi_ump_util,
                                guchar *buffer,
                                gchar ***extension_name,
                                GValue **extension_value,
                                guint *extension_count);

### ags_midi_ump_util_is_jr_clock ()

    gboolean
    ags_midi_ump_util_is_jr_clock (AgsMidiUmpUtil *midi_ump_util,
                                   guchar *buffer);

Test if is JR clock.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is JR clock, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_jr_clock ()

    void
    ags_midi_ump_util_put_jr_clock (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 sender_clock_time,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put JR clock.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
sender_clock_time | sender clock time as a unsigned 16 bit integer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_jr_clock ()

    guint
    ags_midi_ump_util_get_jr_clock (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 *sender_clock_time,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get jitter reduction clock.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
sender_clock_time | the return location of sender clock time. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_jr_timestamp ()

    gboolean
    ags_midi_ump_util_is_jr_timestamp (AgsMidiUmpUtil *midi_ump_util,
                                       guchar *buffer);

Test if is JR timestamp.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is JR timestamp, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_jr_timestamp ()

    void
    ags_midi_ump_util_put_jr_timestamp (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer,
                                        guint16 sender_clock_timestamp,
                                        gchar **extension_name,
                                        GValue *extension_value,
                                        guint extension_count);

Put JR timestamp.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
sender_clock_timestamp | sender clock timestamp as a unsigned 16 bit integer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_jr_timestamp ()

    guint
    ags_midi_ump_util_get_jr_timestamp (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer,
                                        guint16 *sender_clock_timestamp,
                                        gchar ***extension_name,
                                        GValue **extension_value,
                                        guint *extension_count);

Get jitter reduction timestamp.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
sender_clock_timestamp | the return location of sender clock timestamp. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_delta_clock_ticks_per_quarter_note ()

    gboolean
    ags_midi_ump_util_is_delta_clock_ticks_per_quarter_note
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is delta clock ticks per quarter note.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is delta clock ticks per quarter note, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_delta_clock_ticks_per_quarter_note ()

    void
    ags_midi_ump_util_put_delta_clock_ticks_per_quarter_note
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 ticks_per_quarter_note_count,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put delta clock ticks per quarter note.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
ticks_per_quarter_note_count | ticks per quarter note count as a unsigned 16 bit integer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_delta_clock_ticks_per_quarter_note ()

    guint
    ags_midi_ump_util_get_delta_clock_ticks_per_quarter_note
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 *ticks_per_quarter_note_count,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get product instance ID notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
ticks_per_quarter_note_count | the return location of ticks per quarter note count as a unsigned 16 bit integer. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_delta_clock_ticks_since_last_event ()

    gboolean
    ags_midi_ump_util_is_delta_clock_ticks_since_last_event
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is delta clock ticks since last event.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is delta clock ticks since last event, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_delta_clock_ticks_since_last_event ()

    void
    ags_midi_ump_util_put_delta_clock_ticks_since_last_event
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 ticks_since_last_event_count,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put delta clock ticks per quarter note.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
ticks_since_last_event_count | ticks since last event count as a unsigned 16 bit integer |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_delta_clock_ticks_since_last_event ()

    guint
    ags_midi_ump_util_get_delta_clock_ticks_since_last_event
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    guint16 *ticks_since_last_event_count,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get product instance ID notification.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
ticks_since_last_event_count | the return location of ticks since last event count as a unsigned 16 bit integer. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_channel_voice ()

    gboolean
    ags_midi_ump_util_is_midi1_channel_voice
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 1.0 channel voice.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is delta clock ticks since last event, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_midi1_note_off ()

    gboolean
    ags_midi_ump_util_is_midi1_note_off (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer);

Test if is MIDI version 1.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 note off, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_note_off ()

    void
    ags_midi_ump_util_put_midi1_note_off (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint group,
                                          gint channel,
                                          gint key,
                                          gint velocity,
                                          gchar **extension_name,
                                          GValue *extension_value,
                                          guint extension_count);

Put MIDI version 1.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
velocity | the velocity |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_note_off ()

    guint
    ags_midi_ump_util_get_midi1_note_off (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint *group,
                                          gint *channel,
                                          gint *key,
                                          gint *velocity,
                                          gchar ***extension_name,
                                          GValue **extension_value,
                                          guint *extension_count);

Get MIDI version 1.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of index key. | [out]
velocity | the return location of velocity. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_note_on ()

    gboolean
    ags_midi_ump_util_is_midi1_note_on (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer);

Test if is MIDI version 1.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 note on, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_note_on ()

    void
    ags_midi_ump_util_put_midi1_note_on (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gint group,
                                         gint channel,
                                         gint key,
                                         gint velocity,
                                         gchar **extension_name,
                                         GValue *extension_value,
                                         guint extension_count);

Put MIDI version 1.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
velocity | the velocity |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_note_on ()

    guint
    ags_midi_ump_util_get_midi1_note_on (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gint *group,
                                         gint *channel,
                                         gint *key,
                                         gint *velocity,
                                         gchar ***extension_name,
                                         GValue **extension_value,
                                         guint *extension_count);

Get MIDI version 1.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of index key. | [out]
velocity | the return location of velocity. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_polyphonic_aftertouch ()

    gboolean
    ags_midi_ump_util_is_midi1_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 1.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 polyphonic aftertouch, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_polyphonic_aftertouch ()

    void
    ags_midi_ump_util_put_midi1_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 1.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_polyphonic_aftertouch ()

    guint
    ags_midi_ump_util_get_midi1_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 1.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of index key. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_control_change ()

    gboolean
    ags_midi_ump_util_is_midi1_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 1.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 control change, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_control_change ()

    void
    ags_midi_ump_util_put_midi1_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint index_key,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 1.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
index_key | the index key |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_control_change ()

    guint
    ags_midi_ump_util_get_midi1_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *index_key,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 1.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
index_key | the return location of index key. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_program_change ()

    gboolean
    ags_midi_ump_util_is_midi1_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 1.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 program change, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_program_change ()

    void
    ags_midi_ump_util_put_midi1_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint program,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 1.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
program | the program |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_program_change ()

    guint
    ags_midi_ump_util_get_midi1_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *program,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 1.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
program | the return location of program. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_channel_pressure ()

    gboolean
    ags_midi_ump_util_is_midi1_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 1.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 channel pressure, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_channel_pressure ()

    void
    ags_midi_ump_util_put_midi1_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint pressure,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 1.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
pressure | the pressure |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_channel_pressure ()

    guint
    ags_midi_ump_util_get_midi1_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *pressure,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 1.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
pressure | the return location of pressure. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi1_pitch_bend ()

    gboolean
    ags_midi_ump_util_is_midi1_pitch_bend (AgsMidiUmpUtil *midi_ump_util,
                                           guchar *buffer);

Test if is MIDI version 1.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 1.0 pitch bend, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi1_pitch_bend ()

    void
    ags_midi_ump_util_put_midi1_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 1.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi1_pitch_bend ()

    guint
    ags_midi_ump_util_get_midi1_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 1.0 channel pitch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_channel_voice ()

    gboolean
    ags_midi_ump_util_is_midi2_channel_voice
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 channel voice.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 channel voice, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_is_midi2_note_off ()

    gboolean
    ags_midi_ump_util_is_midi2_note_off (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer);

Test if is MIDI version 2.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 note off, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_note_off ()

    void
    ags_midi_ump_util_put_midi2_note_off (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint group,
                                          gint channel,
                                          gint key,
                                          gint attribute_type,
                                          gint velocity,
                                          gint attribute,
                                          gchar **extension_name,
                                          GValue *extension_value,
                                          guint extension_count);

Put MIDI version 2.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
attribute_type | the attribute type |
velocity | the velocity |
attribute | the attribute |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_note_off ()

    guint
    ags_midi_ump_util_get_midi2_note_off (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint *group,
                                          gint *channel,
                                          gint *key,
                                          gint *attribute_type,
                                          gint *velocity,
                                          gint *attribute,
                                          gchar ***extension_name,
                                          GValue **extension_value,
                                          guint *extension_count);

Get MIDI version 2.0 note off.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
attribute_type | the return location of attribute type. | [out]
velocity | the return location of velocity. | [out]
attribute | the return location of attribute. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_note_on ()

    gboolean
    ags_midi_ump_util_is_midi2_note_on (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer);

Test if is MIDI version 2.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 note on, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_note_on ()

    void
    ags_midi_ump_util_put_midi2_note_on (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gint group,
                                         gint channel,
                                         gint key,
                                         gint attribute_type,
                                         gint velocity,
                                         gint attribute,
                                         gchar **extension_name,
                                         GValue *extension_value,
                                         guint extension_count);

Put MIDI version 2.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
attribute_type | the attribute type |
velocity | the velocity |
attribute | the attribute |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_note_on ()

    guint
    ags_midi_ump_util_get_midi2_note_on (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer,
                                         gint *group,
                                         gint *channel,
                                         gint *key,
                                         gint *attribute_type,
                                         gint *velocity,
                                         gint *attribute,
                                         gchar ***extension_name,
                                         GValue **extension_value,
                                         guint *extension_count);

Get MIDI version 2.0 note on.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
attribute_type | the return location of attribute type. | [out]
velocity | the return location of velocity. | [out]
attribute | the return location of attribute. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_polyphonic_aftertouch ()

    gboolean
    ags_midi_ump_util_is_midi2_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 polyphonic aftertouch, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_polyphonic_aftertouch ()

    void
    ags_midi_ump_util_put_midi2_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_polyphonic_aftertouch ()

    guint
    ags_midi_ump_util_get_midi2_polyphonic_aftertouch
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 polyphonic aftertouch.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_registered_per_note_controller ()

    gboolean
    ags_midi_ump_util_is_midi2_registered_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 registered per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 registered per note controller, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_registered_per_note_controller ()

    void
    ags_midi_ump_util_put_midi2_registered_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint data_index,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 registered per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
data_index | the data index |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_registered_per_note_controller ()

    guint
    ags_midi_ump_util_get_midi2_registered_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *data_index,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 registered per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
data_index | the return location of data index. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_assignable_per_note_controller ()

    gboolean
    ags_midi_ump_util_is_midi2_assignable_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 assignable per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 assignable per note controller, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_assignable_per_note_controller ()

    void
    ags_midi_ump_util_put_midi2_assignable_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint data_index,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 assignable per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
data_index | the data index |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_assignable_per_note_controller ()

    guint
    ags_midi_ump_util_get_midi2_assignable_per_note_controller
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *data_index,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 assignable per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
data_index | the return location of data index. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_per_note_management ()

    gboolean
    ags_midi_ump_util_is_midi2_per_note_management
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 per note management.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 per note management, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_per_note_management ()

    void
    ags_midi_ump_util_put_midi2_per_note_management
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint options_flags,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 registered per note management.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the index key |
options_flags | the options flags |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_per_note_management ()

    guint
    ags_midi_ump_util_get_midi2_per_note_management
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *options_flags,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 assignable per note controller.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
options_flags | the return location of options flags. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_control_change ()

    gboolean
    ags_midi_ump_util_is_midi2_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 control change, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_control_change ()

    void
    ags_midi_ump_util_put_midi2_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint index_key,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
index_key | the index key |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_control_change ()

    guint
    ags_midi_ump_util_get_midi2_control_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *index_key,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 control change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
index_key | the return location of index key. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_rpn_pitch_bend_range ()

    gboolean
    ags_midi_ump_util_is_midi2_rpn_pitch_bend_range
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 RPN pitch bend range.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 RPN pitch bend range, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_rpn_pitch_bend_range ()

    void
    ags_midi_ump_util_put_midi2_rpn_pitch_bend_range
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint semitones,
                                    gint cents,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 RPN pitch bend range.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
semitones | the semi tones |
cents | the cents |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_rpn_pitch_bend_range ()

    guint
    ags_midi_ump_util_get_midi2_rpn_pitch_bend_range
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *semitones,
                                    gint *cents,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 RPN pitch bend range.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
semitones | the return location of semitones. | [out]
cents | the return location of cents. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_rpn_coarse_tuning ()

    gboolean
    ags_midi_ump_util_is_midi2_rpn_coarse_tuning
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 RPN coarse tuning.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 RPN coarse tuning, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_rpn_coarse_tuning ()

    void
    ags_midi_ump_util_put_midi2_rpn_coarse_tuning
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint coarse_tuning,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 RPN coarse tuning.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
coarse_tuning | the coarse tuning |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_rpn_coarse_tuning ()

    guint
    ags_midi_ump_util_get_midi2_rpn_coarse_tuning
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *coarse_tuning,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 RPN coarse tuning.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
coarse_tuning | the return location of coarse tuning. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_rpn_tuning_program_change ()

    gboolean
    ags_midi_ump_util_is_midi2_rpn_tuning_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 RPN tuning program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 RPN tuning program change, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_rpn_tuning_program_change ()

    void
    ags_midi_ump_util_put_midi2_rpn_tuning_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint tuning_program_number,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 RPN tuning program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
tuning_program_number | the tuning program number |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_rpn_tuning_program_change ()

    guint
    ags_midi_ump_util_get_midi2_rpn_tuning_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *tuning_program_number,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 RPN tuning program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
tuning_program_number | the return location of tuning program number. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_rpn_tuning_bank_select ()

    gboolean
    ags_midi_ump_util_is_midi2_rpn_tuning_bank_select
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 RPN tuning bank select.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 RPN tuning bank select, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_rpn_tuning_bank_select ()

    void
    ags_midi_ump_util_put_midi2_rpn_tuning_bank_select
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint tuning_bank_number,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 RPN tuning bank select.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
tuning_bank_number | the tuning bank number |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_rpn_tuning_bank_select ()

    guint
    ags_midi_ump_util_get_midi2_rpn_tuning_bank_select
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *tuning_bank_number,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 RPN tuning bank select.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
tuning_bank_number | the return location of tuning bank number. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_rpn_mpe_mcm ()

    gboolean
    ags_midi_ump_util_is_midi2_rpn_mpe_mcm
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 RPN MPE MCM.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 RPN MPE MCM, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_rpn_mpe_mcm ()

    void
    ags_midi_ump_util_put_midi2_rpn_mpe_mcm
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint channel_count,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 RPN MPE MCM.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
channel_count | the tuning bank number |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_rpn_mpe_mcm ()

    guint
    ags_midi_ump_util_get_midi2_rpn_mpe_mcm
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *channel_count,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 RPN MPE MCM.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
channel_count | the return location of channel count. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_program_change ()

    gboolean
    ags_midi_ump_util_is_midi2_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 program change, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_program_change ()

    void
    ags_midi_ump_util_put_midi2_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint option_flags,
                                    gint program,
                                    gint bank,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
option_flags | the option flags |
program | the program |
bank | the bank |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_program_change ()

    guint
    ags_midi_ump_util_get_midi2_program_change
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *option_flags,
                                    gint *program,
                                    gint *bank,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 program change.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
option_flags | the return location of option flags. | [out]
program | the return location of program. | [out]
bank | the return location of bank. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_channel_pressure ()

    gboolean
    ags_midi_ump_util_is_midi2_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 channel pressure, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_channel_pressure ()

    void
    ags_midi_ump_util_put_midi2_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_channel_pressure ()

    guint
    ags_midi_ump_util_get_midi2_channel_pressure
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 channel pressure.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_pitch_bend ()

    gboolean
    ags_midi_ump_util_is_midi2_pitch_bend (AgsMidiUmpUtil *midi_ump_util,
                                           guchar *buffer);

Test if is MIDI version 2.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 pitch bend, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_pitch_bend ()

    void
    ags_midi_ump_util_put_midi2_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_pitch_bend ()

    guint
    ags_midi_ump_util_get_midi2_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_midi2_per_note_pitch_bend ()

    gboolean
    ags_midi_ump_util_is_midi2_per_note_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 pitch bend, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_midi2_per_note_pitch_bend ()

    void
    ags_midi_ump_util_put_midi2_per_note_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint key,
                                    gint data,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
key | the key |
data | the data |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_midi2_per_note_pitch_bend ()

    guint
    ags_midi_ump_util_get_midi2_per_note_pitch_bend
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *key,
                                    gint *data,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get MIDI version 2.0 per note pitch bend.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
key | the return location of key. | [out]
data | the return location of data. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_tempo ()

    gboolean
    ags_midi_ump_util_is_flex_set_tempo (AgsMidiUmpUtil *midi_ump_util,
                                         guchar *buffer);

Test if is MIDI version 2.0 flex set tempo.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set tempo, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_flex_set_tempo ()

    void
    ags_midi_ump_util_put_flex_set_tempo (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint group,
                                          gint channel,
                                          gint ten_ns_per_quarter_note,
                                          gchar **extension_name,
                                          GValue *extension_value,
                                          guint extension_count);

Put MIDI version 2.0 flex set tempo.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
ten_ns_per_quarter_note | the 10 ns per quarter note |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_flex_set_tempo ()

    guint
    ags_midi_ump_util_get_flex_set_tempo (AgsMidiUmpUtil *midi_ump_util,
                                          guchar *buffer,
                                          gint *group,
                                          gint *channel,
                                          gint *ten_ns_per_quarter_note,
                                          gchar ***extension_name,
                                          GValue **extension_value,
                                          guint *extension_count);

Get flex set tempo.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
ten_ns_per_quarter_note | the return location of 10 ns per quarter note. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_time_signature ()

    gboolean
    ags_midi_ump_util_is_flex_set_time_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 flex set time_signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set time_signature, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_flex_set_time_signature ()

    void
    ags_midi_ump_util_put_flex_set_time_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint numerator,
                                    gint denominator,
                                    gint thirty_two_ticks,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 flex set time_signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
numerator | the numerator |
denominator | the denominator |
thirty_two_ticks | the 1/32 ticks |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_flex_set_time_signature ()

    guint
    ags_midi_ump_util_get_flex_set_time_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *numerator,
                                    gint *denominator,
                                    gint *thirty_two_ticks,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get flex set time signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
numerator | the return location of numerator. | [out]
denominator | the return location of denominator. | [out]
thirty_two_ticks | the return location of 1/32 ticks. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_metronome ()

    gboolean
    ags_midi_ump_util_is_flex_set_metronome
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 flex set metronome.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set metronome, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_flex_set_metronome ()

    void
    ags_midi_ump_util_put_flex_set_metronome
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint clocks_per_primary_click,
                                    gint bar_accent_part_1,
                                    gint bar_accent_part_2,
                                    gint bar_accent_part_3,
                                    gint subdivision_clicks_1,
                                    gint subdivision_clicks_2,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 flex set metronome.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
clocks_per_primary_click | the clocks per primary click |
bar_accent_part_1 | the bar accent part 1 |
bar_accent_part_2 | the bar accent part 2 |
bar_accent_part_3 | the bar accent part 3 |
subdivision_clicks_1 | the subdivision clicks 1 |
subdivision_clicks_2 | the subdivision clicks 2 |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_flex_set_metronome ()

    guint
    ags_midi_ump_util_get_flex_set_metronome
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *clocks_per_primary_click,
                                    gint *bar_accent_part_1,
                                    gint *bar_accent_part_2,
                                    gint *bar_accent_part_3,
                                    gint *subdivision_clicks_1,
                                    gint *subdivision_clicks_2,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get flex set metronome.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
clocks_per_primary_click | the return location of clocks per primary click. | [out]
bar_accent_part_1 | the return location of bar accent part 1. | [out]
bar_accent_part_2 | the return location of bar accent part 2. | [out]
bar_accent_part_3 | the return location of bar accent part 3. | [out]
subdivision_clicks_1 | the return location of subdivision clicks 1. | [out]
subdivision_clicks_2 | the return location of subdivision clicks 2. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_key_signature ()

    gboolean
    ags_midi_ump_util_is_flex_set_key_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 flex set key signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set key signature, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_flex_set_key_signature ()

    void
    ags_midi_ump_util_put_flex_set_key_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint sharp_flats,
                                    gint tonic_note,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 flex set key signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
sharp_flats | the sharp flats count |
tonic_note | the tonic note |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_flex_set_key_signature ()

    guint
    ags_midi_ump_util_get_flex_set_key_signature
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *sharp_flats,
                                    gint *tonic_note,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get flex set time signature.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
sharp_flats | the return location of sharp flats. | [out]
tonic_note | the return location of tonic note. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_chord_name ()

    gboolean
    ags_midi_ump_util_is_flex_set_chord_name
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer);

Test if is MIDI version 2.0 flex set chord name.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set chord name, otherwise `FALSE`

Since: 5.5.4

### ags_midi_ump_util_put_flex_set_chord_name ()

    void
    ags_midi_ump_util_put_flex_set_chord_name
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint group,
                                    gint channel,
                                    gint t_sharp_flats,
                                    gint chord_tonic,
                                    gint chord_type,
                                    gint alter_1_type,
                                    gint alter_1_degree,
                                    gint alter_2_type,
                                    gint alter_2_degree,
                                    gint alter_3_type,
                                    gint alter_3_degree,
                                    gint alter_4_type,
                                    gint alter_4_degree,
                                    gint b_sharp_flats,
                                    gint bass_note,
                                    gint bass_chord_type,
                                    gint b_alter_1_type,
                                    gint b_alter_1_degree,
                                    gint b_alter_2_type,
                                    gint b_alter_2_degree,
                                    gchar **extension_name,
                                    GValue *extension_value,
                                    guint extension_count);

Put MIDI version 2.0 flex set chord name.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the group |
channel | the channel number |
t_sharp_flats | the t sharp flats count |
chord_tonic | the chord tonic |
chord_type | the chord type |
alter_1_type | the alter 1 type |
alter_1_degree | the alter 1 degree |
alter_2_type | the alter 2 type |
alter_2_degree | the alter 2 degree |
alter_3_type | the alter 3 type |
alter_3_degree | the alter 3 degree |
alter_4_type | the alter 4 type |
alter_4_degree | the alter 4 degree |
b_sharp_flats | the b sharp flats count |
bass_note | the bass note |
bass_chord_type | the bass chord type |
b_alter_1_type | the alter 1 type |
b_alter_1_degree | the alter 1 degree |
b_alter_2_type | the alter 2 type |
b_alter_2_degree | the alter 2 degree |
extension_name | the extension name string vector |
extension_value | the extension value array |
extension_count | the extension count |

Since: 5.5.4

### ags_midi_ump_util_get_flex_set_chord_name ()

    guint
    ags_midi_ump_util_get_flex_set_chord_name
                                   (AgsMidiUmpUtil *midi_ump_util,
                                    guchar *buffer,
                                    gint *group,
                                    gint *channel,
                                    gint *t_sharp_flats,
                                    gint *chord_tonic,
                                    gint *chord_type,
                                    gint *alter_1_type,
                                    gint *alter_1_degree,
                                    gint *alter_2_type,
                                    gint *alter_2_degree,
                                    gint *alter_3_type,
                                    gint *alter_3_degree,
                                    gint *alter_4_type,
                                    gint *alter_4_degree,
                                    gint *b_sharp_flats,
                                    gint *bass_note,
                                    gint *bass_chord_type,
                                    gint *b_alter_1_type,
                                    gint *b_alter_1_degree,
                                    gint *b_alter_2_type,
                                    gint *b_alter_2_degree,
                                    gchar ***extension_name,
                                    GValue **extension_value,
                                    guint *extension_count);

Get flex set chord name.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |
group | the return location of group. | [out]
channel | the return location of channel number. | [out]
t_sharp_flats | the return location of t sharp flats. | [out]
chord_tonic | the return location of chord tonic. | [out]
chord_type | the return location of chord type. | [out]
alter_1_type | the return location of alter 1 type. | [out]
alter_1_degree | the return location of alter 1 degree. | [out]
alter_2_type | the return location of alter 2 type. | [out]
alter_2_degree | the return location of alter 2 degree. | [out]
alter_3_type | the return location of alter 3 type. | [out]
alter_3_degree | the return location of alter 3 degree. | [out]
alter_4_type | the return location of alter 4 type. | [out]
alter_4_degree | the return location of alter 4 degree. | [out]
b_sharp_flats | the return location of b sharp flats. | [out]
bass_note | the return location of bass note. | [out]
bass_chord_type | the return location of bass chord type. | [out]
b_alter_1_type | the return location of b alter 1 type. | [out]
b_alter_1_degree | the return location of b alter 1 degree. | [out]
b_alter_2_type | the return location of b alter 2 type. | [out]
b_alter_2_degree | the return location of b alter 2 degree. | [out]
extension_name | the return location of extension name string vector. | [out]
extension_value | the return location of extension value array. | [out]
extension_count | the return location of extension count. | [out]

#### Returns

the number of bytes read

Since: 5.5.4

### ags_midi_ump_util_is_flex_set_text ()

    gboolean
    ags_midi_ump_util_is_flex_set_text (AgsMidiUmpUtil *midi_ump_util,
                                        guchar *buffer);

Test if is MIDI version 2.0 flex set text.

#### Parameters

midi_ump_util | the MIDI UMP util |
buffer | the buffer |

#### Returns

`TRUE` if is MIDI version 2.0 flex set text, otherwise `FALSE`

Since: 5.5.4

## Types and Values

### AgsUmpWord

    typedef guint32 AgsUmpWord;

### enum AgsMidiUmpStreamMessageFormat

#### Members

AGS_MIDI_UMP_STREAM_MESSAGE_COMPLETE |  |
AGS_MIDI_UMP_STREAM_MESSAGE_START |  |
AGS_MIDI_UMP_STREAM_MESSAGE_CONTINUE |  |
AGS_MIDI_UMP_STREAM_MESSAGE_END |  |

### enum AgsMidiUmpEndpointDiscoveryFilterBitmap

#### Members

AGS_MIDI_UMP_ENDPOINT_DISCOVERY_ENDPOINT_INFO |  |
AGS_MIDI_UMP_ENDPOINT_DISCOVERY_DEVICE_IDENTITY |  |
AGS_MIDI_UMP_ENDPOINT_DISCOVERY_ENDPOINT_NAME |  |
AGS_MIDI_UMP_ENDPOINT_DISCOVERY_PRODUCT_INSTANCE_ID |  |
AGS_MIDI_UMP_ENDPOINT_DISCOVERY_STREAM_CONFIGURATION |  |

### enum AgsMidiProtocol

#### Members

AGS_MIDI_V1_0 |  |
AGS_MIDI_V2_0 |  |

### enum AgsMidiUmpFunctionBlockDiscoveryFilterBitmap

#### Members

AGS_MIDI_UMP_FUNCTION_BLOCK_DISCOVERY_INFO_NOTIFICATION |  |
AGS_MIDI_UMP_FUNCTION_BLOCK_DISCOVERY_NAME_NOTIFICATION |  |

### enum AgsMidiDirection

#### Members

AGS_MIDI_INPUT_RX_ONLY |  |
AGS_MIDI_OUTPUT_TX_ONLY |  |
AGS_MIDI_BIDIRECTIONAL_MATCHING_GROUPS |  |

### enum AgsMidiAttributeType

#### Members

AGS_MIDI_ATTRIBUTE_NO_ATTRIBUTE_DATA |  |
AGS_MIDI_ATTRIBUTE_MANUFACTURER_SPECIFIC |  |
AGS_MIDI_ATTRIBUTE_PROFILE_SPECIFIC |  |
AGS_MIDI_ATTRIBUTE_PITCH_7_9 |  |

### enum AgsMidi1PortMode

#### Members

AGS_MIDI1_PORT_NOT_MIDI_1_0 |  |
AGS_MIDI1_PORT_YES_DONT_RESTRICT_BANDWIDTH |  |
AGS_MIDI1_PORT_YES_RESTRICT_BANDWIDTH |  |

### enum AgsMidi2PerNoteManagementOptionsFlags

#### Members

AGS_MIDI2_DETACH_PER_NOTE_CONTROLLERS |  |
AGS_MIDI2_RESET_PER_NOTE_CONTROLLERS |  |

### enum AgsMidi2CCIndex

#### Members

AGS_MIDI2_CC_84_PORTAMENTO |  |
AGS_MIDI2_CC_126_OMNI_OFF |  |