Advanced Gtk+ Sequencer - News
Advanced Gtk+ Sequencer v6.0.0 released
Item posted by Joël Krähemann <jkraehemann> on Mon 21 Aug 2023 11:48:52 AM UTC.
GSequencer version 6.0.0 released. Initial MIDI v2.0 support with utility functions to test, put and get MIDI messages.
Recently, MIDI UMP 1.1 message format was implemented. Here are the new functions located in ags/audio/midi/ags_midi_ump_util.[ch]:
- ags_midi_ump_util_get_type()
- ags_midi_ump_util_alloc()
- ags_midi_ump_util_free()
- ags_midi_ump_util_copy()
- ags_midi_ump_util_is_system_common()
- ags_midi_ump_util_is_data_message_with_sysex()
- ags_midi_ump_util_is_data_message()
- ags_midi_ump_util_is_stream_message()
- ags_midi_ump_util_is_endpoint_discovery()
- ags_midi_ump_util_put_endpoint_discovery()
- ags_midi_ump_util_get_endpoint_discovery()
- ags_midi_ump_util_is_endpoint_info_notification()
- ags_midi_ump_util_put_endpoint_info_notification()
- ags_midi_ump_util_get_endpoint_info_notification()
- ags_midi_ump_util_is_device_identity_notification()
- ags_midi_ump_util_put_device_identity_notification()
- ags_midi_ump_util_get_device_identity_notification()
- ags_midi_ump_util_is_endpoint_name_notification()
- ags_midi_ump_util_put_endpoint_name_notification()
- ags_midi_ump_util_get_endpoint_name_notification()
- ags_midi_ump_util_is_product_instance_id_notification()
- ags_midi_ump_util_put_product_instance_id_notification()
- ags_midi_ump_util_get_product_instance_id_notification()
- ags_midi_ump_util_is_stream_configuration_request()
- ags_midi_ump_util_put_stream_configuration_request()
- ags_midi_ump_util_get_stream_configuration_request()
- ags_midi_ump_util_is_stream_configuration_notification()
- ags_midi_ump_util_put_stream_configuration_notification()
- ags_midi_ump_util_get_stream_configuration_notification()
- ags_midi_ump_util_is_function_block_discovery()
- ags_midi_ump_util_put_function_block_discovery()
- ags_midi_ump_util_get_function_block_discovery()
- ags_midi_ump_util_is_function_block_info_notification()
- ags_midi_ump_util_put_function_block_info_notification()
- ags_midi_ump_util_get_function_block_info_notification()
- ags_midi_ump_util_is_function_block_name_notification()
- ags_midi_ump_util_put_function_block_name_notification()
- ags_midi_ump_util_get_function_block_name_notification()
- ags_midi_ump_util_is_start_of_clip()
- ags_midi_ump_util_put_start_of_clip()
- ags_midi_ump_util_get_start_of_clip()
- ags_midi_ump_util_is_end_of_clip()
- ags_midi_ump_util_put_end_of_clip()
- ags_midi_ump_util_get_end_of_clip()
- ags_midi_ump_util_is_noop()
- ags_midi_ump_util_put_noop()
- ags_midi_ump_util_get_noop()
- ags_midi_ump_util_is_jr_clock()
- ags_midi_ump_util_put_jr_clock()
- ags_midi_ump_util_get_jr_clock()
- ags_midi_ump_util_is_jr_timestamp()
- ags_midi_ump_util_put_jr_timestamp()
- ags_midi_ump_util_get_jr_timestamp()
- ags_midi_ump_util_is_delta_clock_ticks_per_quarter_note()
- ags_midi_ump_util_put_delta_clock_ticks_per_quarter_note()
- ags_midi_ump_util_get_delta_clock_ticks_per_quarter_note()
- ags_midi_ump_util_is_delta_clock_ticks_since_last_event()
- ags_midi_ump_util_put_delta_clock_ticks_since_last_event()
- ags_midi_ump_util_get_delta_clock_ticks_since_last_event()
- ags_midi_ump_util_is_midi1_channel_voice()
- ags_midi_ump_util_is_midi1_note_off()
- ags_midi_ump_util_put_midi1_note_off()
- ags_midi_ump_util_get_midi1_note_off()
- ags_midi_ump_util_is_midi1_note_on()
- ags_midi_ump_util_put_midi1_note_on()
- ags_midi_ump_util_get_midi1_note_on()
- ags_midi_ump_util_is_midi1_polyphonic_aftertouch()
- ags_midi_ump_util_put_midi1_polyphonic_aftertouch()
- ags_midi_ump_util_get_midi1_polyphonic_aftertouch()
- ags_midi_ump_util_is_midi1_control_change()
- ags_midi_ump_util_put_midi1_control_change()
- ags_midi_ump_util_get_midi1_control_change()
- ags_midi_ump_util_is_midi1_program_change()
- ags_midi_ump_util_put_midi1_program_change()
- ags_midi_ump_util_get_midi1_program_change()
- ags_midi_ump_util_is_midi1_channel_pressure()
- ags_midi_ump_util_put_midi1_channel_pressure()
- ags_midi_ump_util_get_midi1_channel_pressure()
- ags_midi_ump_util_is_midi1_pitch_bend()
- ags_midi_ump_util_put_midi1_pitch_bend()
- ags_midi_ump_util_get_midi1_pitch_bend()
- ags_midi_ump_util_is_midi2_channel_voice()
- ags_midi_ump_util_is_midi2_note_off()
- ags_midi_ump_util_put_midi2_note_off()
- ags_midi_ump_util_get_midi2_note_off()
- ags_midi_ump_util_is_midi2_note_on()
- ags_midi_ump_util_put_midi2_note_on()
- ags_midi_ump_util_get_midi2_note_on()
- ags_midi_ump_util_is_midi2_polyphonic_aftertouch()
- ags_midi_ump_util_put_midi2_polyphonic_aftertouch()
- ags_midi_ump_util_get_midi2_polyphonic_aftertouch()
- ags_midi_ump_util_is_midi2_registered_per_note_controller()
- ags_midi_ump_util_put_midi2_registered_per_note_controller()
- ags_midi_ump_util_get_midi2_registered_per_note_controller()
- ags_midi_ump_util_is_midi2_assignable_per_note_controller()
- ags_midi_ump_util_put_midi2_assignable_per_note_controller()
- ags_midi_ump_util_get_midi2_assignable_per_note_controller()
- ags_midi_ump_util_is_midi2_per_note_management()
- ags_midi_ump_util_put_midi2_per_note_management()
- ags_midi_ump_util_get_midi2_per_note_management()
- ags_midi_ump_util_is_midi2_control_change()
- ags_midi_ump_util_put_midi2_control_change()
- ags_midi_ump_util_get_midi2_control_change()
- ags_midi_ump_util_is_midi2_rpn_pitch_bend_range()
- ags_midi_ump_util_put_midi2_rpn_pitch_bend_range()
- ags_midi_ump_util_get_midi2_rpn_pitch_bend_range()
- ags_midi_ump_util_is_midi2_rpn_coarse_tuning()
- ags_midi_ump_util_put_midi2_rpn_coarse_tuning()
- ags_midi_ump_util_get_midi2_rpn_coarse_tuning()
- ags_midi_ump_util_is_midi2_rpn_tuning_program_change()
- ags_midi_ump_util_put_midi2_rpn_tuning_program_change()
- ags_midi_ump_util_get_midi2_rpn_tuning_program_change()
- ags_midi_ump_util_is_midi2_rpn_tuning_bank_select()
- ags_midi_ump_util_put_midi2_rpn_tuning_bank_select()
- ags_midi_ump_util_get_midi2_rpn_tuning_bank_select()
- ags_midi_ump_util_is_midi2_rpn_mpe_mcm()
- ags_midi_ump_util_put_midi2_rpn_mpe_mcm()
- ags_midi_ump_util_get_midi2_rpn_mpe_mcm()
- ags_midi_ump_util_is_midi2_program_change()
- ags_midi_ump_util_put_midi2_program_change()
- ags_midi_ump_util_get_midi2_program_change()
- ags_midi_ump_util_is_midi2_channel_pressure()
- ags_midi_ump_util_put_midi2_channel_pressure()
- ags_midi_ump_util_get_midi2_channel_pressure()
- ags_midi_ump_util_is_midi2_pitch_bend()
- ags_midi_ump_util_put_midi2_pitch_bend()
- ags_midi_ump_util_get_midi2_pitch_bend()
- ags_midi_ump_util_is_midi2_per_note_pitch_bend()
- ags_midi_ump_util_put_midi2_per_note_pitch_bend()
- ags_midi_ump_util_get_midi2_per_note_pitch_bend()
- ags_midi_ump_util_is_flex_set_tempo()
- ags_midi_ump_util_put_flex_set_tempo()
- ags_midi_ump_util_get_flex_set_tempo()
- ags_midi_ump_util_is_flex_set_time_signature()
- ags_midi_ump_util_put_flex_set_time_signature()
- ags_midi_ump_util_get_flex_set_time_signature()
- ags_midi_ump_util_is_flex_set_metronome()
- ags_midi_ump_util_put_flex_set_metronome()
- ags_midi_ump_util_get_flex_set_metronome()
- ags_midi_ump_util_is_flex_set_key_signature()
- ags_midi_ump_util_put_flex_set_key_signature()
- ags_midi_ump_util_get_flex_set_key_signature()
- ags_midi_ump_util_is_flex_set_chord_name()
- ags_midi_ump_util_put_flex_set_chord_name()
- ags_midi_ump_util_get_flex_set_chord_name()
- ags_midi_ump_util_is_flex_set_text()
Refactored AgsMidiBufferUtil to AgsMidiSmfUtil
All functions from ags_midi_buffer_util.[ch] has been moved and renamed to ags_midi_smf_util.[ch].
Refactored AgsAudioThread and AgsChannelThread nested sync flags
The flags of audio and channel threads has been renamed.
Refactored AgsOscBufferUtil
Broken ABI due to additional function parameter, the utility struct is passed, too.
Refactored AgsMidiUtil
Broken ABI due to additional function parameter, the utility struct is passed, too.
by Joël
Powered by Savane 3.14-8aba.
Corresponding source code