AgsMidiParser

AgsMidiParser — the MIDI parser

Stability Level

Stable, unless otherwise indicated

Functions

#define AGS_MIDI_PARSER_GET_OBJ_MUTEX()
gint16 ags_midi_parser_read_gint16 ()
gint32 ags_midi_parser_read_gint24 ()
gint32 ags_midi_parser_read_gint32 ()
long ags_midi_parser_read_varlength ()
gchar * ags_midi_parser_read_text ()
gdouble ags_midi_parser_ticks_to_sec ()
int ags_midi_parser_midi_getc ()
void ags_midi_parser_on_error ()
xmlDoc * ags_midi_parser_parse_full ()
xmlNode * ags_midi_parser_parse_bytes ()
xmlNode * ags_midi_parser_parse_header ()
xmlNode * ags_midi_parser_parse_track ()
xmlNode * ags_midi_parser_channel_message ()
xmlNode * ags_midi_parser_key_on ()
xmlNode * ags_midi_parser_key_off ()
xmlNode * ags_midi_parser_key_pressure ()
xmlNode * ags_midi_parser_change_parameter ()
xmlNode * ags_midi_parser_change_pitch_bend ()
xmlNode * ags_midi_parser_change_program ()
xmlNode * ags_midi_parser_change_channel_pressure ()
xmlNode * ags_midi_parser_not_defined ()
xmlNode * ags_midi_parser_sysex ()
xmlNode * ags_midi_parser_system_common ()
xmlNode * ags_midi_parser_meta_event ()
xmlNode * ags_midi_parser_sequence_number ()
xmlNode * ags_midi_parser_end_of_track ()
xmlNode * ags_midi_parser_smtpe ()
xmlNode * ags_midi_parser_tempo ()
xmlNode * ags_midi_parser_time_signature ()
xmlNode * ags_midi_parser_key_signature ()
xmlNode * ags_midi_parser_sequencer_meta_event ()
xmlNode * ags_midi_parser_meta_misc ()
xmlNode * ags_midi_parser_text_event ()
void ags_midi_parser_open_filename ()
void ags_midi_parser_set_buffer ()
void ags_midi_parser_set_file_length ()
AgsMidiParser * ags_midi_parser_new ()
AgsMidiParser * ags_midi_parser_new_from_filename ()

Types and Values

Includes

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

Description

AgsMidiParser parses your midi.

Functions

AGS_MIDI_PARSER_GET_OBJ_MUTEX()

#define AGS_MIDI_PARSER_GET_OBJ_MUTEX(obj) (&(((AgsMidiParser *) obj)->obj_mutex))

ags_midi_parser_read_gint16 ()

gint16
ags_midi_parser_read_gint16 (AgsMidiParser *midi_parser);

Read gint16.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the read gint16

Since: 3.0.0


ags_midi_parser_read_gint24 ()

gint32
ags_midi_parser_read_gint24 (AgsMidiParser *midi_parser);

Read gint32.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the read gint32

Since: 3.0.0


ags_midi_parser_read_gint32 ()

gint32
ags_midi_parser_read_gint32 (AgsMidiParser *midi_parser);

Read gint32.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the read gint32

Since: 3.0.0


ags_midi_parser_read_varlength ()

long
ags_midi_parser_read_varlength (AgsMidiParser *midi_parser);

Read varlength as long.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the read varlength

Since: 3.0.0


ags_midi_parser_read_text ()

gchar *
ags_midi_parser_read_text (AgsMidiParser *midi_parser,
                           gint length);

Read text.

Parameters

midi_parser

the AgsMidiParser

 

length

the length

 

Returns

the text read as string

Since: 3.0.0


ags_midi_parser_ticks_to_sec ()

gdouble
ags_midi_parser_ticks_to_sec (AgsMidiParser *midi_parser,
                              guint ticks,
                              gint division,
                              guint tempo);

Convert ticks to seconds.

Parameters

midi_parser

the AgsMidiParser

 

ticks

the ticks count

 

division

the division

 

tempo

the tempo

 

Returns

the seconds read from ticks

Since: 3.0.0


ags_midi_parser_midi_getc ()

int
ags_midi_parser_midi_getc (AgsMidiParser *midi_parser);

Read one byte.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the byte read

Since: 3.0.0


ags_midi_parser_on_error ()

void
ags_midi_parser_on_error (AgsMidiParser *midi_parser,
                          GError **error);

Error reporting.

Parameters

midi_parser

the AgsMidiParser

 

error

the return location of GError

 

Since: 3.0.0


ags_midi_parser_parse_full ()

xmlDoc *
ags_midi_parser_parse_full (AgsMidiParser *midi_parser);

Parse all data of “file”.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the xmlDoc representing your MIDI file.

[transfer none]

Since: 3.0.0


ags_midi_parser_parse_bytes ()

xmlNode *
ags_midi_parser_parse_bytes (AgsMidiParser *midi_parser,
                             guchar *midi_buffer,
                             guint buffer_length);

ags_midi_parser_parse_header ()

xmlNode *
ags_midi_parser_parse_header (AgsMidiParser *midi_parser);

Parse MIDI header

Parameters

midi_parser

the AgsMidiParser

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_parse_track ()

xmlNode *
ags_midi_parser_parse_track (AgsMidiParser *midi_parser);

Parse MIDI track.

Parameters

midi_parser

the AgsMidiParser

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_channel_message ()

xmlNode *
ags_midi_parser_channel_message (AgsMidiParser *midi_parser,
                                 guint status);

Parse channel message.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_key_on ()

xmlNode *
ags_midi_parser_key_on (AgsMidiParser *midi_parser,
                        guint status);

Parse key on.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_key_off ()

xmlNode *
ags_midi_parser_key_off (AgsMidiParser *midi_parser,
                         guint status);

Parse key off.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_key_pressure ()

xmlNode *
ags_midi_parser_key_pressure (AgsMidiParser *midi_parser,
                              guint status);

Parse key pressure.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_change_parameter ()

xmlNode *
ags_midi_parser_change_parameter (AgsMidiParser *midi_parser,
                                  guint status);

Parse change parameter.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_change_pitch_bend ()

xmlNode *
ags_midi_parser_change_pitch_bend (AgsMidiParser *midi_parser,
                                   guint status);

Parse change pitch bend.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_change_program ()

xmlNode *
ags_midi_parser_change_program (AgsMidiParser *midi_parser,
                                guint status);

Parse change program.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_change_channel_pressure ()

xmlNode *
ags_midi_parser_change_channel_pressure
                               (AgsMidiParser *midi_parser,
                                guint status);

Parse change channel pressure.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_not_defined ()

xmlNode *
ags_midi_parser_not_defined (AgsMidiParser *midi_parser,
                             guint status);

Parse not defined.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_sysex ()

xmlNode *
ags_midi_parser_sysex (AgsMidiParser *midi_parser,
                       guint status);

Parse sysex.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_system_common ()

xmlNode *
ags_midi_parser_system_common (AgsMidiParser *midi_parser,
                               guint status);

Parse system common.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_meta_event ()

xmlNode *
ags_midi_parser_meta_event (AgsMidiParser *midi_parser,
                            guint status);

Parse meta event.

Parameters

midi_parser

the AgsMidiParser

 

status

the status byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_sequence_number ()

xmlNode *
ags_midi_parser_sequence_number (AgsMidiParser *midi_parser,
                                 guint meta_type);

Parse sequence number.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_end_of_track ()

xmlNode *
ags_midi_parser_end_of_track (AgsMidiParser *midi_parser,
                              guint meta_type);

Parse end of track.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_smtpe ()

xmlNode *
ags_midi_parser_smtpe (AgsMidiParser *midi_parser,
                       guint meta_type);

Parse smtpe.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_tempo ()

xmlNode *
ags_midi_parser_tempo (AgsMidiParser *midi_parser,
                       guint meta_type);

Parse tempo.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_time_signature ()

xmlNode *
ags_midi_parser_time_signature (AgsMidiParser *midi_parser,
                                guint meta_type);

Parse time signature.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_key_signature ()

xmlNode *
ags_midi_parser_key_signature (AgsMidiParser *midi_parser,
                               guint meta_type);

Parse key signature.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_sequencer_meta_event ()

xmlNode *
ags_midi_parser_sequencer_meta_event (AgsMidiParser *midi_parser,
                                      guint meta_type);

ags_midi_parser_meta_misc ()

xmlNode *
ags_midi_parser_meta_misc (AgsMidiParser *midi_parser,
                           guint meta_type);

ags_midi_parser_text_event ()

xmlNode *
ags_midi_parser_text_event (AgsMidiParser *midi_parser,
                            guint meta_type);

Parse text event.

Parameters

midi_parser

the AgsMidiParser

 

meta_type

the meta type byte

 

Returns

the xmlNode containing parsed data.

[transfer none]

Since: 3.0.0


ags_midi_parser_open_filename ()

void
ags_midi_parser_open_filename (AgsMidiParser *midi_parser,
                               gchar *filename);

Open filename and assign FILE stream to midi_parser .

Parameters

midi_parser

the AgsMidiParser

 

filename

the filename

 

Since: 3.2.0


ags_midi_parser_set_buffer ()

void
ags_midi_parser_set_buffer (AgsMidiParser *midi_parser,
                            guchar *buffer);

Set buffer of midi_parser

Parameters

midi_parser

the AgsMidiParser

 

buffer

the buffer

 

Since: 3.2.0


ags_midi_parser_set_file_length ()

void
ags_midi_parser_set_file_length (AgsMidiParser *midi_parser,
                                 size_t file_length);

Set file length of midi_parser

Parameters

midi_parser

the AgsMidiParser

 

file_length

the file length

 

Since: 3.7.38


ags_midi_parser_new ()

AgsMidiParser *
ags_midi_parser_new (FILE *file);

Creates a new instance of AgsMidiParser

Parameters

file

the FILE handle.

[nullable]

Returns

the new AgsMidiParser

Since: 3.0.0


ags_midi_parser_new_from_filename ()

AgsMidiParser *
ags_midi_parser_new_from_filename (gchar *filename);

Creates a new instance of AgsMidiParser

Parameters

filename

the filename.

[nullable]

Returns

the new AgsMidiParser

Since: 3.2.0

Types and Values

AGS_MIDI_PARSER_MAX_TEXT_LENGTH

#define AGS_MIDI_PARSER_MAX_TEXT_LENGTH (4096)

AGS_MIDI_PARSER_MTHD

#define AGS_MIDI_PARSER_MTHD "MThd"

AGS_MIDI_PARSER_MTCK

#define AGS_MIDI_PARSER_MTCK "MTrk"

AGS_MIDI_EVENT

#define AGS_MIDI_EVENT "event"

enum AgsMidiParserFlags

Members

AGS_MIDI_PARSER_EOF

   

AGS_MIDI_PARSER_EOT

   

enum AgsMidiChunkFlags

Members

AGS_MIDI_CHUNK_HEADER

   

AGS_MIDI_CHUNK_TRACK

   

AGS_MIDI_CHUNK_UNKNOWN