ags (3.7.44)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV with AgsPluginBrowser no plugin selected
	* fixed ags_lv2_plugin_atom_sequence_remove_midi()
	* fixed ags_fx_eq10_audio_signal_real_run_inter()
	* fixed ags_eq10_audio_signal_real_run_inter()

ags (3.7.43)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added Polish translation

ags (3.7.42)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unitialized buffer of AgsFxPeakChannel recall

ags (3.7.41)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* updated test artifacts
	* fixed use after free of GList of soundcards in ags_add_soundcard.c task
	* fixed ref-count in AgsAudioApplicationContext and AgsXorgApplicationContext of setters of GList
	* fixed ref-count in AgsOscFrontController
	* fixed ags_osc_connection_read_bytes() might be uninitialized error
	* fixed ags_osc_connection_read_bytes() error might leak
	* fixed ags_osc_client_read_bytes() might be uninitialized error
	* fixed ags_osc_client_read_bytes() use after free

ags (3.7.40)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_audio_open_audio_file_as_channel()
	* fixed missing files in tarball to run valgrind make targets

ags (3.7.39)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed use after free of GList of soundcards in ags_remove_soundcard.c task
	* fixed wrong reference counter in ags_recycling_position()
	* minor improvements

ags (3.7.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_notation_to_raw_midi()
	* implemented ags_notation_from_raw_midi()
	* added ags/test/audio/midi/ags_midi_delta_time.c
	* fixed typo in AgsRecall:automation-port property
	* fixed libags.pc old include of ags/config.h
	* fixed libags_audio.pc missing gstreamer dependencies

ags (3.7.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsServer missing HTTP status code 403 Forbidden and response

ags (3.7.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented vector operations on Apple macOS with Accelerate Framework

ags (3.7.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed use %lf instead of %Lf with string functions affecting envelope restore
	* fixed use %lf instead of %f with string functions
	* added ags_complex_test_serialize()

ags (3.7.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed complex type to double _Complex in many files

ags (3.7.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed functional test util gsequencer_setup_util.c mutex lock/unlock wrong pointer type
	* minor improvements

ags (3.7.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved thread-safety of pulseaudio
	* fixed soundcard won't stop playback after unlink running machine
	* fixed wrong mutex lock count in ags_pulse_port_cached_stream_request_callback()

ags (3.7.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed broken if statement with string corruption of fixup 3.2.7 in ags_simple_file.c
	* updated developer's manual complete example listing and chap12.xml

ags (3.7.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed deprecated code to restore plugins in ags_simple_file.c
	* fixed wrong type cast with interface in ags_xorg_application_context.c

ags (3.7.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsThread fields start_mutex and start_cond wrong type

ags (3.7.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* m4/gettext.m4: Downgrade to gettext-0.19.8.1.
	* m4/iconv.m4: Downgrade to gettext-0.19.8.1.
	* m4/lib-ld.m4: Downgrade to gettext-0.19.8.1.
	* m4/lib-link.m4: Downgrade to gettext-0.19.8.1.
	* m4/lib-prefix.m4: Downgrade to gettext-0.19.8.1.
	* m4/nls.m4: Downgrade to gettext-0.19.8.1.
	* m4/po.m4: Downgrade to gettext-0.19.8.1.
	* m4/progtest.m4: Downgrade to gettext-0.19.8.1.
	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.8.

ags (3.7.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AppStream XML

ags (3.7.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented get_type() functions of AgsFxFactoryCreateFlags, AgsRecallFlags and AgsRecallNotifyDependencyMode
	* fixed missing initialization of ::read() and ::write() of AgsApplicationContextClass
	* fixed missing call to ags_connectable_connect() for AgsOscillator and AgsFMOscillator in ags_simple_file.c
	* fixed missing connect to control-changed for AgsOscillator and AgsFMOscillator in ags_simple_file.c

ags (3.7.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsSimpleFile bank-0 and bank-1 XML attribute of AgsDrum and AgsMatrix
	* fixed AgsSimpleFile lower XML attribute of AgsFMSynth

ags (3.7.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added getters of AgsMidiBuilder and AgsOscBuilder of data field
	* added French language support in libgsequencer

ags (3.7.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* m4/gettext.m4: Upgrade to gettext-0.20.1.
	* m4/host-cpu-c-abi.m4: New file, from gettext-0.20.1.
	* m4/iconv.m4: Upgrade to gettext-0.20.1.
	* m4/intlmacosx.m4: Upgrade to gettext-0.20.1.
	* m4/lib-ld.m4: Upgrade to gettext-0.20.1.
	* m4/lib-link.m4: Upgrade to gettext-0.20.1.
	* m4/lib-prefix.m4: Upgrade to gettext-0.20.1.
	* m4/nls.m4: Upgrade to gettext-0.20.1.
	* m4/po.m4: Upgrade to gettext-0.20.1.
	* m4/progtest.m4: Upgrade to gettext-0.20.1.
	* m4/Makefile.am (EXTRA_DIST): Add the new files.
	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.20.

ags (3.7.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_turtle_read_blank_node() access after free

ags (3.7.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potentially unitialized pointer

ags (3.7.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-fx-envelope be explicite about floating point arithmetic
	* fixed ref count in ags_audio_automate()
	* fixed ref count in ags_channel_automate()
	* fixed ref count in ags_channel_set_link()
	* fixed ref count in ags_channel_recursive_run_stage() and related
	* fixed ref count in ags_input_next_active()
	* fixed ref count in ags_audio_recall_done_callback()
	* fixed ref count in ags_channel_recall_done_callback()
	* added ags_audio_ref_count_test.c
	* added ags_fx_ref_count_test.c
	* added ags_audio_application_context_ref_count_test.c
	* minor improvements

ags (3.7.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing listing of developer manual

ags (3.7.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved developer manual

ags (3.7.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed literal comparision in ags_apply_sound_config.c

ags (3.7.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements

ags (3.7.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added htmlhelp navigation and custom.css

ags (3.7.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed compiler error

ags (3.7.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_playback_domain_insert_playback()
	* improved user's handbook images with default width

ags (3.7.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_pattern_dispose() to unset fields
	* minor code improvements

ags (3.7.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_complex_get_term() and ags_complex_set_term() to query by real and imaginary part
	* improved API reference and fixed namespace and object tree
	* improved API reference and fixed missing sections

ags (3.7.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed broken API Reference Manual of libags_audio.so

ags (3.7.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* updated developer's doc chap10.xml to cover ags_fx_factory_create()
	* deprecated ags/audio/recall
	* deprecated ags/audio/ags_recall_ladspa.h and ags/audio/ags_recall_ladspa_run.h
	* deprecated ags/audio/ags_recall_dssi.h and ags/audio/ags_recall_dssi_run.h
	* deprecated ags/audio/ags_recall_lv2.h and ags/audio/ags_recall_lv2_run.h

ags (3.7.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements

ags (3.7.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed config header mess
	* fixed effect processors on output e.g. in AgsLine

ags (3.7.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed test device

ags (3.7.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed meson optional build

ags (3.7.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed effect processors on output e.g. in AgsLine
	* improved ags_soundcard_util_adjust_delay_and_attack() to correct attack within AGS_SOUNDCARD_DEFAULT_PERIOD
	* improved ags_fx_factory.c to respect chained to output or input

ags (3.7.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* changed base key to lower of AgsPitchSampler and AgsFFPlayer
	* improved SF2 support to select nearest sample
	* improved SFZ support

ags (3.7.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed meson build

ags (3.7.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed libgsequencer gtk-doc

ags (3.7.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_fast_pitch_util.c to do loudness correction
	* minor improvements

ags (3.6.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed gui-scale factor applied to AgsNotationEdit, AgsAutomationEdit and AgsWaveEdit

ags (3.6.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing meson build files

ags (3.6.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing meson build files

ags (3.6.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing meson build files

ags (3.6.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing meson build files

ags (3.6.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing meson build files

ags (3.6.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved meson build

ags (3.6.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed upper of AgsNotationEditor's AgsRuler

ags (3.6.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed gui-scale factor applied to AgsNotationEdit
	* fixed gui-scale factor applied to AgsAutomationEdit
	* fixed gui-scale factor applied to AgsWaveEdit

ags (3.6.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing restore of pattern envelope

ags (3.6.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements

ags (3.6.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_fx_envelope_audio_signal.c

ags (3.6.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags-fx-envelope to query ags-fx-pattern and ags-fx-notation for offset
	* improved ags-fx-envelope to query AgsAudio for pattern mode
	* implemented missing functions of AgsTrack
	* implemented additional getter/setter
	* added unit-tests
	* minor improvements

ags (3.6.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_message_delivery_query_message() accessing GList as instance
	* fixed ags_task_launcher_remove_cyclic_task() wrong parameter to g_list_find() within if condition
	* implemented additional getter/setter
	* added unit-tests
	* minor improvements

ags (3.6.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented property and getter/setter of AgsRuler font-size
	* fixed gui-scale factor applied to AgsRuler
	* refactored gui-scale factor read from ags_ui_provider_get_gui_scale_factor() instead from AgsConfig

ags (3.6.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_playback_dispose()
	* disabled parallel server tests
	* minor improvements

ags (3.6.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed automake

ags (3.6.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented concurrent running tests using gnu parallel

ags (3.6.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added 10 functional integration XML file setup test

ags (3.6.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory corruption in Ags*DssiBridge and Ags*Lv2Bridge

ags (3.6.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented lock-free ags-fx-playback
	* fixed missing call to ags_soundcard_lock() and ags_soundcard_unlock() in ags_devout.c
	* fixed reallocation of AgsAudioSignal stream data while setting samplerate, buffer size and format
	* improved midi2xml_main.c to check valid file stream pointer

ags (3.6.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added some getter of AgsScrolledPiano
	* fixed AgsWindow delete-event callback to use AgsQuitDialog
	* improved ags_gstreamer_file.c to create microsoft windows compatible URI

ags (3.6.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed pthread remains

ags (3.6.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added some getter/setter to AgsPiano
	* minor improvements

ags (3.6.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added gstreamer environment variables for mingw64

ags (3.6.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing return value of ags_window_button_press_event()

ags (3.6.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed pthread remains

ags (3.6.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_fast_pitch_util.[ch]
	* implemented some get type functions of enum values
	* refactored ags_sf2_synth_util.c
	* refactored ags_sfz_synth_util.c

ags (3.6.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed gtk-doc
	* additional audio file formats of AgsExportSoundcard and AgsWaveExportDialog

ags (3.6.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented GStreamer support
	* implemented AgsComplex support in ags_fourier_transform_util.[ch]
	* implemented some get type functions of enum values
	* improved the developer's manual
	* fixed AgsWaveExportDialog missing delete-event callback
	* minor improvements

ags (3.5.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing AgsMutable interface of ags-fx-volume
	* improved thread-safety of AgsServer
	* improved thread-safety of AgsOscServer

ags (3.5.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed NULL pointer of ags_ui_provider_get_navigation()
	* fixed missing update of LV2_Options_Option after configuration changed

ags (3.5.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed initial loop set of AgsDrum, AgsMatrix, AgsFFPlayer, AgsPitchSampler,
	  AgsAudiorec, AgsDssiBridge, AgsLiveDssiBridge, AgsLv2Bridge and AgsLiveLv2Bridge

ags (3.5.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsDssiBridge accessing integer as string

ags (3.5.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing reset of notation edit's horizont scrollbar after zoom changed

ags (3.5.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed shrink audio channels by removing i < pads

ags (3.5.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented fallback path of plugins

ags (3.5.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed tempo issue

ags (3.5.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audiorec_fast_export() current_buffer_size variable

ags (3.5.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed audio fast export

ags (3.5.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing $(docdir)/images/adwaita

ags (3.5.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing call to AgsRecall::done() in ags_fx_notation_audio_signal.c
	* fixed AgsFMSyncsynth missing restore of some fields

ags (3.5.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing Adwaita images in user's handbook

ags (3.5.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed pointer arithmetic type mismatch

ags (3.5.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]

ags (3.5.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented poppler PDF support of AgsOnlineHelpWindow
	* fixed typo in ags_quit_dialog.c
	* added pdf and install-pdf target to Makefile.am
	* minor improvements

ags (3.5.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsOnlineHelpWindow
	* implemented AgsQuitDialog

ags (3.4.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reverted some drawing operations in ags/widget/

ags (3.4.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed prototype of widgets overriding GtkWidget::draw(), missing gboolean return value

ags (3.4.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed issues encountered on Apple Mac OS X

ags (3.4.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsSF2SynthGenerator and AgsSFZSynthGenerator to be faster
	* improved thread-safety of AgsSynthGenerator, AgsSF2SynthGenerator and AgsSFZSynthGenerator
	* minor improvements

ags (3.4.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved thread-safety of ags/audio/file/*.c
	* improved ags_sf2_synth_util.c and ags_sfz_synth_util.c

ags (3.4.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_filter_util.c to use fmod() instead modulo to compute phase

ags (3.4.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed arithmetic exception and improved base note of ags_filter_util.c

ags (3.4.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved pitch to use an octave as immediate frequency in ags_filter_util.c

ags (3.4.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed string length of mute_message in ags_osc_renew_controller_test.c
	* fixed sscanf call with wrong signed integer in ags_sfz_synth_util.c
	* minor improvements

ags (3.4.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_filter_util.c to use projection during 2nd pitch rewrite

ags (3.4.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed prototype of ags_audio_buffer_util_copy_float_to_complex()
	* improved ags_audio_buffer_util.c dealing with AgsComplex

ags (3.4.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing include in ags_xml_authentication.c and minor improvements

ags (3.4.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential division by zero in ags_filter_util.c

ags (3.4.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_audio_signal_clear()
	* fixed missing clear during synth generator compute

ags (3.4.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsSF2Generator
	* implemented AgsSFZGenerator
	* implemented AgsAudioContainerManager and AgsAudioFileManager
	* implemented pingpong copy in ags_audio_buffer_util.c
	* implemented ags_sf2_synth_util.c
	* implemented ags_sfz_synth_util.c
	* extended AgsFFPlayer
	* extended AgsPitchSampler
	* improved ags_filter_util.c
	* improved AgsComplex support
	* added unit-tests

ags (3.3.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-fx-ladspa missing input port connected
	* fixed ags-fx-lv2 wrong copy mode

ags (3.3.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-fx-playback capture wrong offset as clearing while replacing mode

ags (3.3.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added ags-fx-volume to AgsPanel
	* improved automation editor to handle specifier equals NULL

ags (3.3.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing automation ports of ags-fx-volume

ags (3.3.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing include string.h in ags_math_util.c

ags (3.3.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved GLib-2.0 compatibility of AgsServer

ags (3.3.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-fx-playback 2 wrong if conditions

ags (3.3.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsAudiorec's ags-fx-playback memory corruption

ags (3.3.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsSpectrometer plot
	* fixed ags-fx-analyse missing clear of input data
	* added missing gtk-doc of ags-fx recalls
	* removed static storage class from ags-fx global strings

ags (3.3.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed make ags-integration-unit-test wrong LDADD flags

ags (3.3.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV because port-value-length mismatch of ags-fx-analyse

ags (3.3.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* further improved MIDI playback, set AgsAudioSignal length as doing ags_sound_resource_read_audio_signal()

ags (3.3.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing includes
	* fixed AgsSyncsynth and AgsFmSyncsynth missing requested frames
	* fixed MIDI playback
	* improved ags_functional_osc_server_test.c to run non-blocking OSC client

ags (3.3.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed infinite loop in ags/X/ags_line_member_editor_callbacks.c
	* fixed pointer corruption because of wrong cast to get stream mutex

ags (3.3.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential dead-lock related to ags-fx-ladspa and ags-fx-lv2
	* fixed missing return value of ags_fx_factory_create()
	* fixed reverse mapping of DSSI and LV2 plugins

ags (3.3.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing call to ags_fx_lv2_channel_load_plugin() in ags_fx_factory.c
	* fixed restore from AgsSimpleFile
	* fixed g_list_free_full() while transfer none
	* minor bug-fixes

ags (3.3.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented staging program of AgsAudioLoop, AgsAudioThread and AgsChannelThread
	* implemented ags_fx_factory.[ch]
	* implemented AgsFxPlaybackAudio, AgsFxPlaybackAudioProcessor, AgsFxPlaybackChannel,
	  AgsFxPlaybackChannelProcessor, AgsFxPlaybackRecycling and AgsFxPlaybackAudioSignal
	* implemented AgsFxBufferAudio, AgsFxBufferAudioProcessor, AgsFxBufferChannel,
	  AgsFxBufferChannelProcessor, AgsFxBufferRecycling and AgsFxBufferAudioSignal
	* implemented AgsFxNotationAudio, AgsFxNotationAudioProcessor, AgsFxNotationChannel,
	  AgsFxNotationChannelProcessor, AgsFxNotationRecycling and AgsFxNotationAudioSignal
	* implemented AgsFxPatternAudio, AgsFxPatternAudioProcessor, AgsFxPatternChannel,
	  AgsFxPatternChannelProcessor, AgsFxPatternRecycling and AgsFxPatternAudioSignal
	* implemented AgsFxLadspaAudio, AgsFxLadspaAudioProcessor, AgsFxLadspaChannel,
	  AgsFxLadspaChannelProcessor, AgsFxLadspaRecycling and AgsFxLadspaAudioSignal
	* implemented AgsFxDssiAudio, AgsFxDssiAudioProcessor, AgsFxDssiChannel,
	  AgsFxDssiChannelProcessor, AgsFxDssiRecycling and AgsFxDssiAudioSignal
	* implemented AgsFxLv2Audio, AgsFxLv2AudioProcessor, AgsFxLv2Channel,
	  AgsFxLv2ChannelProcessor, AgsFxLv2Recycling and AgsFxLv2AudioSignal
	* implemented AgsFxVolumeAudio, AgsFxVolumeAudioProcessor, AgsFxVolumeChannel,
	  AgsFxVolumeChannelProcessor, AgsFxVolumeRecycling and AgsFxVolumeAudioSignal
	* implemented AgsFxPeakAudio, AgsFxPeakAudioProcessor, AgsFxPeakChannel,
	  AgsFxPeakChannelProcessor, AgsFxPeakRecycling and AgsFxPeakAudioSignal
	* implemented AgsFxAnalyseAudio, AgsFxAnalyseAudioProcessor, AgsFxAnalyseChannel,
	  AgsFxAnalyseChannelProcessor, AgsFxAnalyseRecycling and AgsFxAnalyseAudioSignal
	* implemented AgsFxEnvelopeAudio, AgsFxEnvelopeAudioProcessor, AgsFxEnvelopeChannel,
	  AgsFxEnvelopeChannelProcessor, AgsFxEnvelopeRecycling and AgsFxEnvelopeAudioSignal
	* implemented AgsFxEq10Audio, AgsFxEq10AudioProcessor, AgsFxEq10Channel,
	  AgsFxEq10ChannelProcessor, AgsFxEq10Recycling and AgsFxEq10AudioSignal
	* implemented ags_audio_insert_recall() and ags_channel_insert_recall()
	* implemented AgsResetFxPeak task
	* implemented AgsResetFxAnalyse task
	* implemented ags_audio_loop_get_do_fx_staging() and ags_audio_loop_set_do_fx_staging()
	* implemented ags_audio_loop_get_staging_program() and ags_audio_loop_set_staging_program()
	* implemented ags_audio_thread_get_do_fx_staging() and ags_audio_thread_set_do_fx_staging()
	* implemented ags_audio_thread_get_staging_program() and ags_audio_thread_set_staging_program()
	* implemented ags_audio_thread_scope_data_alloc() and ags_audio_thread_scope_data_free()
	* implemented ags_channel_thread_get_do_fx_staging() and ags_channel_thread_set_do_fx_staging()
	* implemented ags_channel_thread_get_staging_program() and ags_channel_thread_set_staging_program()
	* implemented ags_audio_test_staging_completed(), ags_audio_set_staging_completed() and ags_audio_unset_staging_completed()
	* implemented ags_channel_test_staging_completed(), ags_channel_set_staging_completed() and ags_channel_unset_staging_completed()
	* improved GObject-Introspection API
	* fixed UI bug related to channel number mismatch

ags (3.2.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented test, set and unset flags of AgsSynth, AgsFMSynth, AgsSyncsynth and AgsFMSyncsynth
	* improved AgsDial to use page-up and page-down keys
	* improved AgsDial to increment page as clicking buttons
	* improved AgsEffectBulk, AgsEffecLine and AgsLine to apply page-size of adjustments
	* improved AgsTurtle to check unichar range instead of UTF-8 sequences
	* improved AgsNotationEditor to queue resize piano
	* improved AgsFMSynth to have 2 digits of lower
	* improved AgsOscillator and AgsFMOscillator do sync to emit oscillator changed

ags (3.2.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential NULL pointer dereference of LADSPA, DSSI and LV2
	* fixed wrong midi-end-mapping persistence of AgsSimpleFile

ags (3.2.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed greedy ags-lv2 and ags-dssi

ags (3.2.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsTurtle match functions
	* refactored AgsTurtle read functions
	* refactored AgsLv2TurtleScanner to use match functions
	* fixed AgsFFPlayer restore

ags (3.2.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_lv2_cache_turtle_find()

ags (3.2.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved instantiate AgsPluginBrowser only as needed in AgsLineMemberEditor

ags (3.2.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AppStream XML

ags (3.2.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* updated API Reference Manuals
	* minor improvements

ags (3.2.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsLv2TurtleScanner quick scan
	* added AgsSimpleFile fixup to deal with LV2 quotes
	* fixed LV2 quotes in effect and specifier
	* minor bug-fixes

ags (3.2.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-play-lv2 to handle note-on correctly
	* fixed ags-play-dssi to handle note-on correctly

ags (3.2.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented LV2_OPTIONS__options
	* fixed LV2_OPTIONS__interface URI
	* fixed ags_math_util_test.c to use ags_strv_equal()

ags (3.2.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* exported missing symbols

ags (3.2.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reverted GLib dependency to version 2.56.0
	* refactored AgsAudio, AgsChannel, AgsRecycling and AgsAudioSignal to use property for some setter functions
	* minor improvements

ags (3.2.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved introspection annotations of AgsGui

ags (3.2.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_strv_equal() comparing unsorted string vectors
	* disabled GMainLoop integration of AgsTaskLauncher in AgsAudioApplicationContext

ags (3.2.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented some getter and setter functions
	* disabled GMainLoop integration of AgsTaskLauncher in AgsXorgApplicationContext
	* updated developer manual
	* improved API of AgsMidiBuilder and AgsMidiParser
	* minor improvements

ags (3.1.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential integer overflow in ags_osc_front_controller_do_request()
	* minor improvements

ags (3.1.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_automation_meta.c channel_type variable to use proper GType

ags (3.1.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* updated user manual

ags (3.1.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* work-in-progress implemented getter and setter functions of properties
	* implemented meta widget of AgsNotationEditor
	* implemented meta widget of AgsAutomationEditor
	* implemented meta widget of AgsWaveEditor
	* implemented acoustic feedback of ags-recall-dssi
	* implemented acoustic feedback of ags-recall-lv2
	* fixed ref-count of AgsRecallDssi:count-beats-audio-run
	* fixed AgsAutomationEdit not shown again
	* fixed AgsAutomationEdit cursor x-position
	* added missing gtk-doc to ags_audio_buffer_util.c

ags (3.0.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* replaced UTF-8 character sequence from build files
	* added missing parantheses in configure.ac
	* wiped m4 directory and recreated it

ags (3.0.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved unit-tests to call ags_priority_load_defaults()

ags (3.0.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed broken WebKit2Gtk-4.0 configure

ags (3.0.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented disable realtime priorities by AgsPriority

ags (3.0.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added --enable-single-docdir configure option to meet FreeBSD demands

ags (3.0.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added GObject-Introspection annotations for GList type properties
	* improved online help browser to respect --docdir configure parameter
	* fixes to WASAPI backend
	* fixes to CoreAudio backend

ags (3.0.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Makefile.am missing DESTDIR

ags (3.0.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Makefile.am wrong destination directory variables of gtk-doc

ags (3.0.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed 64 bit portability issue with ags_functional_pitch_test.c
	* fixed 64 bit portability issue with ags_functional_fourier_transform_test.c
	* fixed ags_start_audio_test.c to run task within thread tree
	* fixed ags_start_channel_test.c to run task within thread tree
	* improved pulseaudio connect timeout
	* improved Makefile.am to deal with different gtk-doc locations

ags (3.0.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_audio_start() and ags_channel_start() to have sync timeout
	* fixed some issues from build log
	* fixed potential SIGSEGV by flaging AgsRecallID terminating state
	* fixed potential data-race related to AgsTaskLauncher

ags (3.0.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing prefix in autoconf option

ags (3.0.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved Makefile.am to be more portable
	* updated libags.pc, libags_audio.pc, libags_gui.pc and libgsequencer.pc

ags (3.0.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential recursive callback call
	* fixed potential data-race in ags_audio_stop() by stop thread first
	* fixed potential data-race in ags_channel_stop() by stop thread first

ags (3.0.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* migrated to Gtk3
	* migrated AgsOscServer and AgsOscClient to GIO sockets
	* migrated AgsServer to Libsoup XMLRPC
	* migrated AgsThread to GThread API
	* implemented introspection support
	* added G_BEGIN_DECLS and G_END_DECLS to header files
	* moved ags_thread-posix.[ch] to ags_thread.[ch]
	* removed ags_thread_file_xml.[ch], ags_audio_file_xml.[ch] and ags_gui_file_xml.[ch]
	* removed AgsTaskThread
	* removed AgsPollingThread
	* removed AgsPollFD
	* removed AgsAsyncQueue
	* removed AgsSingleThread
	* removed AgsNotifySoundcard
	* removed barriers of AgsThread
	* replaced nested functions
	* stripped AgsPlugin from machines

ags (2.4.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved performance by omitting determinism

ags (2.4.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed appdata.xml

ags (2.4.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_audio_buffer_util_resample_with_buffer() and related
	* fixed potential buffer-overflow in ags_sfz_sample.c
	* fixed potential SIGSEGV in ags_sound_resource.c doing resample

ags (2.4.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved alphabetically sorted plugin filenames in AgsLadspaBrowser and AgsLv2Browser
	* improved AgsEffectBridge removing effects

ags (2.4.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV related to AgsFFPlayer's effect bulk
	* fixed accessing freed memory of AgsBulkMember

ags (2.4.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potentially freed env pointer

ags (2.4.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsPriority to configure RT threads

ags (2.4.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved idle CPU usage
	* implemented ags_cell_pattern_play()
	* fixed AgsNotationEdit position cursor by using left or right key

ags (2.4.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented playback as clicking AgsPiano of AgsNotationEditor
	* implemented missing feedback of AgsNotationEditor
	* implemented ags_machine_playback_set_active()
	* implemented AgsResetNote
	* implemented AgsSF2Loader
	* implemented ags_audio_loop_test_flags(), ags_audio_loop_set_flags() and ags_audio_loop_unset_flags()
	* refactored ags_pad_play() to use ags_machine_playback_set_active()
	* refactored AgsStartAudio task to use ags_audio_start()
	* refactored AgsStartChannel task to use ags_channel_start()
	* refactored AgsCancelAudio task to use ags_audio_stop()
	* refactored AgsCancelChannel task to use ags_channel_stop()
	* improved AgsFFPlayer to use AgsSF2Loader
	* improved AgsPiano missing event mask
	* improved ags_audio_start() to start audio and channel thread
	* improved ags_channel_start() to start audio and channel thread
	* updated the API reference manual
	* fixed ags_piano_key_code_to_note() static const array note_map
	* fixed ref count in ags_notation_editor_do_feedback()
	* fixed ags_recycling_get_property() missing break
	* minor improvements
	* m4/lib-ld.m4: Upgrade to gettext-0.19.8.1.
	* m4/lib-link.m4: Upgrade to gettext-0.19.8.1.
	* m4/lib-prefix.m4: Upgrade to gettext-0.19.8.1.

ags (2.3.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_strv_contains() to compare strings
	* fixed AgsApplySoundConfig task to setup AgsWasapiDevout's AgsNotifySoundcard and AgsExportThread
	* fixed ags_sound_resource_read_wave() to deal with different samplerates
	* minor improvements

ags (2.3.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsAudioUnitDevout and AgsAudioUnitDevin
	* improved AgsScrolledPiano to draw properly on Win64

ags (2.3.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed WASAPI audio export in ags_export_thread.c

ags (2.3.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsPitchSampler missing filename after restore from XML

ags (2.3.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsPitchSampler to save filename in XML
	* fixed open project file on win64
	* minor improvements

ags (2.3.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing WASAPI export backend
	* fixed AgsApplySoundConfig accessing invalid pointer

ags (2.3.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed WASAPI size of buffer request
	* fixed AgsPreferences missing delete-event callback

ags (2.3.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed libags-audio API reference manual

ags (2.3.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed WASAPI friendly name
	* fixed don't initialize device if its already playing/recording

ags (2.3.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved hide WASAPI related configuration controls if not needed

ags (2.3.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented WASAPI configuration options to adjust system buffer size and share mode
	* improved WASAPI IO

ags (2.3.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsWasapiDevout and AgsWasapiDevin
	* improved AgsDial invalid range
	* fixed memory leaks related to g_strdup_printf() in ags_simple_file.c

ags (2.3.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing includes

ags (2.3.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_fourier_transform_util_test.c

ags (2.3.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed don't rebuild types while make html

ags (2.3.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsFMSynth
	* implemented AgsFMSyncSynth
	* implemented AgsFMOscillator
	* implemented AgsPitchSampler and AgsPitchSamplerFile
	* implemented AgsSFZFile, AgsSFZGroup, AgsSFZRegion and AgsSFZSample
	* implemented AgsSFZLoader
	* implemented ags-lfo recall
	* implemented AgsComplex buffer type
	* implemented AgsFrequencyMapManager
	* implemented AgsFrequencyMap to compute max likelihood
	* implemented ags_fm_synth_util.h supporting FM synthesis
	* implemented ags_lfo_synth_util.h supporting LFO amplification
	* implemented ags_fourier_transform_util.c
	* implemented ags_filter_util.c
	* extended ags_simple_file.c
	* extended ags_audio_buffer_util.h to support complex data type
	* extended ags_synth_util.h to support complex data type
	* extended ags_synth_util.h to support impulse oscillator
	* added ags_fourier_transform_util_test.c
	* added ags_fm_synth_util_test.c
	* added ags_filter_util_test.c

ags (2.2.39)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* extended ags_audio_buffer_util.h prototype to complete Float32 support

ags (2.2.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved iterating buffer in ags_audio_buffer_util.c
	* fixed unitialized values related to FreeBSD

ags (2.2.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed more unitialized values

ags (2.2.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved iterating buffer in ags_audio_buffer_util.c
	* work-around for broken lock-free audio buffer, reverted see below
	* reverted ags_devout.c to 2.2.25
	* reverted ags_play_audio_signal.c to 2.2.25

ags (2.2.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* replaced regular expression by while loop in ags_turtle_read_pn_chars_base()

ags (2.2.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored scheduling tasks to be done by AgsXorgApplicationContext
	* improved AgsAnimationWindow draw only as needed
	* improved AgsSoundcardEditor set sensitive
	* improved ref-count of AgsReturnableThread
	* improved resetting AgsReturnableThread

ags (2.2.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsAnimationWindow
	* fixed memory-leaks in ags_turtle.c
	* fixed memory-leaks in ags_lv2_turtle_parser.c
	* fixed memory-leaks in ags_simple_file.c

ags (2.2.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed uninitialized values for FreeBSD

ags (2.2.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed uninitialized values

ags (2.2.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsMainLoop ::sync-counter-inc() and ::sync-counter-dec() no return type

ags (2.2.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsThreadPool make AgsReturnableThread returning
	* minor improvements added -Werror=return-type

ags (2.2.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audio_buffer_util_peak_*() to handle 0.0 correct
	* fixed dead-lock AgsPulseDevout provide for each buffer sub-block lock
	* fixed dead-lock AgsCoreAudioDevout provide for each buffer sub-block lock
	* fixed AgsSimpleFile audio loop start/end of AgsSyncsynth to round

ags (2.2.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored get object mutex

ags (2.2.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented lock-free soundcard buffer in ags-play recall
	* implemented ags_soundcard_get_sub_block_count()
	* implemented ags_soundcard_trylock_sub_block()
	* implemented ags_soundcard_unlock_sub_block()
	* improved AgsDevout, AgsPulseDevout, AgsJackDevout and AgsCoreAudioDevout

ags (2.2.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored ags_audio_buffer_util.c to support builtin vector functions
	* fixed ags_char_buffer_util.c

ags (2.2.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed SIGSEGV as open file

ags (2.2.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed relative counters and time fraction issues
	* improved replacing hard-coded font
	* refactored AgsDial to use PangoLayout
	* refactored AgsLevel to use PangoLayout
	* refactored AgsScale to use PangoLayout
	* refactored AgsRuler to use PangoLayout
	* refactored AgsCartesian to use PangoLayout

ags (2.2.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsNotationEditor to use GUI scale factor
	* implemented AgsWaveEditor to use GUI scale factor
	* implemented AgsAutomationEditor to use GUI scale factor
	* implemented AgsRuler properties
	* implemented AgsFFPlayer to use GUI scale factor
	* improved AgsCellPattern to use GUI scale factor

ags (2.2.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsCellPattern and AgsPatternBox to use GUI scale factor
	* implemented GtkVScrollbar and GtkHScrollbar to GUI scale using slider-width and stepper-size
	* implemented GtkVScale and GtkHScale to GUI scale using slider-width

ags (2.2.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented GUI scale factor
	* implemented AgsIndicator properties
	* implemented AgsDial properties
	* improved ags_vindicator_draw() and ags_hindicator_draw() to use properties
	* improved ags_dial_draw() properties

ags (2.2.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented instance access from LV2UI
	* minor improvements

ags (2.2.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_lv2ui_plugin_test_flags(), ags_lv2ui_plugin_set_flags() and ags_lv2ui_plugin_get_flags()
	* implemented ags_base_plugin_instantiate_with_params()
	* implemented ags_lv2ui_plugin_instantiate_with_params()
	* refactored AgsLv2Bridge and AgsLiveLv2Bridge
	* improved AgsAudioApplicationContext and AgsXorgApplicationContext
	* improved lv2 plugin set flag AGS_LV2_PLUGIN_IS_SYNTHESIZER as parsing names

gs (2.2.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reenabled sync counter increment before decrement fixes a race condition

ags (2.2.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reverted sync counter by using conditional build

ags (2.2.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_main_loop_set_sync_tic() and ags_main_loop_get_sync_tic()

ags (2.2.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential dead-lock, it is some procedural code that makes paralellism work
	* reverted previous tree lock change

ags (2.2.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsAudioLoop and AgsGenericMainLoop to use :obj-mutex as tree lock

ags (2.2.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential dead-lock

gs (2.2.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_simple_file.c to apply logarithmic port fixup
	* improved developer's book
	* fixed spelling errors
	* fixed ags_functional_notation_editor_workflow_test_edit_all() in order to pass again

ags (2.2.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_thread_global_get_use_sync_counter() synchronize threads with reduced overhead
	* implemented ags_main_loop_sync_counter_inc()
	* implemented ags_main_loop_sync_counter_dec()
	* implemented ags_main_loop_sync_counter_test()
	* fixed memory-leak in ags_message_envelope_free()

ags (2.2.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved Lv2 program and preset logarithmic conversion

ags (2.2.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsEffectBulk and AgsBulkMember to support logarithmic ports
	* improved AgsLine, AgsEffectLine and AgsLineMember to support logarithmic ports
	* improved AgsAutomationArea to support logarithmic ports
	* improved AgsLine to properly support GtkRange and GtkSpinButton
	* fixed synced Lv2ui controls

ags (2.2.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved check if plugin port already exists

ags (2.2.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_lv2_turtle_parser_parse_names()
	* implemented partial parse of lv2 plugins
	* fixed some memory-leaks in ags_turtle_finalize()

ags (2.2.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed port index of audio port for ags-play-lv2 recall
	* fixed load of plugin for ags-play-lv2 recall

ags (2.2.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved LV2 RDF Turtle parser to handle applies to

ags (2.2.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed check NULL of filename and effect in ags_lv2_manager_find_lv2_plugin()
	* fixed check NULL of filename in ags_base_plugin_find_filename()
	* improved LV2 RDF Turtle parser to handle prefixed names

ags (2.2.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AppStream metadata license
	* fixed ags/test/X/libgsequencer.h removed include

ags (2.2.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed API Reference manual

ags (2.2.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsLv2TurtleParser
	* implemented AgsCursor interface
	* implemented AgsOscExportController
	* fixed potential SIGSEGV as reading malformed RDF Turtle
	* improved license and copyright notices for various files
	* minor improvements and fixes
	* added NEWS entry

ags (2.1.78)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented prefix id hash table of AgsTurtle

ags (2.1.77)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV in ags_simple_file.c

ags (2.1.76)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved running integration tests using automake conditional
	* improved mutexes with AgsUiProvider in ags_xorg_application_context.c
	* improved mutex in ags_playback_domain_get_audio_thread()
	* improved mutexes in ags_recall_set_staging_flags()

ags (2.1.75)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed developer's handbook deprecated use of AgsGroupId, replaced by AgsRecallID
	* fixed developer's handbook deprecated use of AgsRecall ::resolve-dependencies(), it is now ::resolve-dependency()
	* improved ags_sound_card_editor_reset() to apply backend properly

ags (2.1.74)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-copy-pattern recall to proper free GError
	* fixed ags_recycling_finalize() to free AgsUUID
	* fixed ags_thread_finalize() to free AgsUUID and other memory-leaks
	* fixed potential SIGSEGV in ags_simple_file.c

ags (2.1.73)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented use g_error_free()
	* improved ref-count of AgsInput:file-link in ags_audio_open_file_as_channel()
	* improved ref-count of AgsInput:file-link in ags_open_sf2_instrument.c
	* improved ref-count of AgsInput:file-link in ags_open_sf2_sample.c
	* improved ref-count of AgsInput:file-link in ags_open_single_file.c
	* fixed potential SIGSEGV cause by attack larger than buffer size in ags_synth_generator.c

ags (2.1.72)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented OSC meter refresh rate option

ags (2.1.71)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed OSC server meter controller type tag boundaries
	* fixed potential SIGSEGV as expanding OSC meter path

ags (2.1.70)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing ags_sound_enums.h in API reference manual
	* fixed OSC server path in docs/oscBook/chap6.xml

ags (2.1.69)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.8.
	* fixed non thread-safe ags_audio_loop_get_type()
	* fixed non thread-safe ags_audio_thread_get_type()
	* fixed non thread-safe ags_channel_thread_get_type()
	* fixed non thread-safe ags_soundcard_thread_get_type()
	* fixed non thread-safe ags_sequencer_thread_get_type()
	* fixed non thread-safe ags_export_thread_get_type()
	* fixed missing apply of AgsFileLink for create_channels in ags_audio_open_audio_file_as_channel()
	* fixed type float for modifying pattern bank index of AgsDrum and AgsMatrix

ags (2.1.68)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* disabled defaulted AGS_SOUND_BEHAVIOUR_REVERSE_MAPPING of AgsDrum
	* fixed missing unset of AGS_SOUND_BEHAVIOUR_REVERSE_MAPPING in ags_simple_file.c

ags (2.1.67)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong argument to g_object_unref() in ags_start_sequencer.c
	* fixed 64 bit issue in ags_copy_pattern_channel_run.c
	* fixed 64 bit issue in ags_play_notation_audio_run.c

ags (2.1.66)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong tag in OSC server manual chap6.xml
	* improved API reference manual

ags (2.1.65)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_mutex_manager_remove() to not destroy data at all
	* fixed dead-lock on kfreebsd as ags_cond_manager_remove() destroys data twice
	* improved API reference manual structure of libags_audio.xml
	* improved API reference manual structure of libgsequencer.xml

ags (2.1.64)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed accessing using wrong property name in ags_channel_get_level()
	* minor improvements and fixed memory-leaks

ags (2.1.63)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ref count of return value and calls from/to ags_audio_collect_all_audio_ports()
	* fixed ref count of return value and calls from/to ags_audio_collect_all_audio_ports_by_specifier_and_context()
	* fixed ref count of return value and calls from/to ags_channel_collect_all_channel_ports()
	* fixed ref count of return value and calls from/to ags_channel_collect_all_channel_ports_by_specifier_and_context()
	* fixed ref count of return value and calls from/to ags_channel_get_level()
	* fixed ref count of return value from ags_recycling_find_next_channel()
	* fixed ref count of return value and calls from/to ags_audio_signal_get_template()
	* fixed ref count of return value and calls from/to ags_audio_signal_get_rt_template()
	* fixed ref count of return value and calls from/to ags_recall_get_by_effect()
	* fixed memory-leak in ags_recycling_set_samplerate(), ags_recycling_set_buffer_size() and ags_recycling_set_format()

ags (2.1.62)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential unitialized pointer passing to g_object_unref()

ags (2.1.61)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_channel_next() and ags_channel_prev()
	* implemented ags_channel_next_pad() and ags_channel_prev_pad()
	* implemented ags_recycling_next() and ags_recycling_prev()
	* improved ags_channel_first() and alike to return referenced AgsChannel
	* improved many ref counts related to iterating AgsChannel
	* fixed memory-leak in ags_channel_recursive_setup_run_stage_down()

ags (2.1.60)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented reposition AgsAudio in AgsSoundProvider within UI
	* improved ags_simple_file_read_machine() to use g_list_append() to add AgsAudio
	* improved ags_add_audio_launch() to use g_list_append() to add AgsAudio
	* fixed missing mutex locks of AgsThreadApplicationContext
	* fixed missing ref count of AgsSoundProvider's getter functions
	* fixed missing ref count of AgsConcurrencyProvider's getter functions
	* minor improvements

ags (2.1.59)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing AUTHORS files
	* fixed ChangeLog missing mention of patch author
	* fixed missing contribution description in ags_eq10_audio_signal.c
	* fixed ags_parameter.c license header

ags (2.1.58)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_automation_get_value()
	* fixed missing flags during resize audio channels and pads of AgsEffectBridge

ags (2.1.57)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_effect_bulk_indicator_queue_draw_timeout() updating bulk member
	* disabled ladspa, dssi and lv2 for unit-tests by setting appropriate path
	* improved ags_devin.c to use ALSA hints
	* improved AgsAudioSignal access in ags_recycling.c
	* improved usage of g_value_unset()
	* improved removing threads in ags_apply_sound_config.c
	* fixed memory leak in ags_recycling.c as retrieving audio signal template
	* fixed accessing AgsConnectable::connect() of AgsOutputListingEditor and AgsInputListingEditor during disconnect
	* fixed missing object unref in ags_buffer_audio_signal_run_init_pre()

ags (2.1.56)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_devout.c and ags_midiin.c to use ALSA hints
	* enabled third mode of ags-envelope by audio signal length
	* enabled ags-envelope mode use-note-length of AgsSyncsynth and AgsFFPlayer
	* fixed potential SIGSEGV of LV2 presets in AgsLv2Bridge and AgsLiveLv2Bridge callbacks

ags (2.1.55)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_lv2_plugin.c to check UI iriref
	* improved LV2 presets to check iri

ags (2.1.54)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_simple_file_read_config() to modify AgsThread:max-precision and main loops frequency
	* fixed AgsThread:max-precision property specification
	* fixed wrong warning during ags_recall_dependency_resolve()
	* improved MIDI playback of ags-play-lv2 and ags-play-dssi recall to check AGS_NOTE_FEED
	* improved ags_audio_signal_feed() to use new loop algorithm

ags (2.1.53)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsSequencer::lock-buffer() and AgsSequencer::unlock-buffer()
	* added plugin property to AgsRecallLadspa, AgsRecallDssi and AgsRecallLv2
	* fixed ags_recall_lv2_run_run_inter() to test if instrument by AGS_LV2_PLUGIN_IS_SYNTHESIZER flag
	* fixed double free in ags_jack_port_finalize() and ags_pulse_port_finalize()
	* 2019-02-12 Yuri Victorovich <yuri@FreeBSD.org> (tiny change)
		- applied patches for FreeBSD
	* replaced shell expansion of directory lists in Makefile.am

ags (2.1.52)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed accessing uninitialized pointer in ags_recall_lv2_run.c
	* fixed accessing uninitialized pointer in ags_recall_ladspa_run.c
	* fixed XPath accessor to read LV2 UIs

ags (2.1.51)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed bisect algorithm of AgsNotation, AgsAutomation and AgsWave
	* fixed wrong ref-count in ags-eq10 recall

ags (2.1.50)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unit-test ags_notation_test.c

ags (2.1.49)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved bisection of AgsNotation, AgsAutomation and AgsWave
	* fixed use ags_notation_add() in ags_simple_file.c
	* fixed use ags_automation_add() in ags_simple_file.c

ags (2.1.48)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reworked object properties and accessors
	* implemented object mutex of AgsTurtle
	* fixed missing clear during set samplerate and buffer size of AgsAudioSignal
	* fixed missing clear during set samplerate and buffer size of AgsWave

ags (2.1.47)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved read machines in AgsSimpleFile before editors
	* improved hihgly inneficient ags_notation_find_offset()
	* improved bisection code
	* work-around fix default XML namespace with XPath

ags (2.1.46)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_notation_find_offset() bisection x offset of notes
	* improved ags-play-notation recall to use ags_notation_find_offset()
	* refactored ags_automation_get_value() to bisection x offset of accelerations
	* fixed AgsApplySoundConfig task to run dispose after replacing soundcard/sequencer
	* fixed set property default-output-soundcard thread of AgsChannelThread in ags_channel.c
	* fixed ags offset of timestamp during paste in AgsNotationEditor, AgsAutomationEditor and AgsWaveEditor

ags (2.1.45)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory-leak during monitor by osc server

ags (2.1.44)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed SIGSEGV introduced in 2.1.42 related to ags_functional_osc_server_test_meter_controller()
	* fixed project_license in gsequencer.appdata.xml

ags (2.1.43)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ref-count in ags_xorg_application_context_test.c
	* fixed project_license in gsequencer.appdata.xml

ags (2.1.42)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV during grow buffer size in ags_audio_signal_set_buffer_size()
	* fixed potential SIGSEGV during grow buffer size in ags_wave_set_buffer_size()
	* fixed potential SIGSEGV during grow samplerate in ags_audio_signal_set_samplerate()
	* fixed potential SIGSEGV during grow samplerate in ags_wave_set_samplerate()
	* improved ags_functional_osc_server_test_meter_controller() to free data
	* added ags_functional_audio_config_test.c

ags (2.1.41)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsCellPattern get sequencer counter and set active led
	* improved AgsPatternBox get sequencer counter and set active led
	* improved ags_recall_find_type() and ags_recall_template_find_type() to use g_type_is_a()
	* improved CoreAudio output to use cache
	* removed calls to pango_fc_font_map_cache_clear()
	* fixed ags_pulse_audio_get_next_buffer() index excess
	* fixed AgsOscConnection and AgsOscClient missing variable on apple

ags (2.1.40)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed resample of AgsAudioSignal and AgsWave only as needed
	* fixed realloc buffer size of AgsAudioSignal and AgsWave only as needed

ags (2.1.39)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed typo in functional-system-tests.mk.am

ags (2.1.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored ags_wave_find_point() to do bisect
	* added  unit-system-tests.mk.am

ags (2.1.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed remove message monitor on AgsMachine implementation finalize

ags (2.1.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing seekable interface to AgsCaptureWaveChannelRun
	* fixed initial seek in AgsAudiorec
	* fixed wrong format during resample in ags_audio_signal.c
	* fixed wrong format during resample in ags_wave.c
	* fixed desktop-id in gsequencer.appdata.xml

ags (2.1.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsMachine signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented AgsPad signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented AgsLine signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented AgsEffectBridge signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented AgsEffectPad signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented AgsEffectLine signals ::samplerate-changed, ::buffer-size-changed and ::format-changed
	* implemented emitting message of AgsAudio's samplerate, buffer-size and format change
	* implemented emitting message of AgsChannel's samplerate, buffer-size and format change
	* implemented proper resample of AgsAudioSignal as adjusting buffer size and samplerate
	* implemented proper resample of AgsWave as adjusting buffer size and samplerate
	* fixed applying samplerate, buffer size and format to AgsSynthGenerator
	* fixed update AgsSynth and AgsSyncsynth after modifying samplerate
	* fixed adjust loop information to samplerate
	* fixed check if EBADFD available in ags_osc_client.c and ags_osc_connection.c

ags (2.1.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing integration test ags_check_system_functional_osc_server_test
	* improved AgsSoundcardEditor use cache option
	* improved AgsXorgApplicationContext to set cache buffer size as a multiple of buffer size
	* improved AgsApplySoundConfig to set cache buffer size as a multiple of buffer size

ags (2.1.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented cache options of AgsSoundcardEditor
	* implemented pulseaudio cache

ags (2.1.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved gsequencer.desktop
	* improved ags_xorg_application_context_prepare() open file
	* added gsequencer.appdata.xml

ags (2.1.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed compiler error

ags (2.1.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (2.1.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing datadir prefix in Makefile.am

ags (2.1.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented write xmlns to files
	* improved gsequencer.destkop.in
	* added application-x-gsequencer.xml to specify MIME handler

ags (2.1.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added gsequencer.png icons for hicolor icon theme

ags (2.1.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added OSC server documentation

ags (2.1.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed typo in prototype declaration

ags (2.1.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_soundcard_set_start_note_offset()
	* implemented ags_soundcard_get_start_note_offset()
	* implemented ags_sequencer_set_start_note_offset()
	* implemented ags_sequencer_get_start_note_offset()
	* implemented AgsSeekable of ags-play-wave recall
	* implemented AgsSeekable of ags-capture-wave recall
	* improved apply min/max audio channels and pads to instruments
	* improved AgsResizeEditor to respect min/max channel alignment
	* improved AgsResizeAudio task to resize audio channels prior to pads
	* fixed missing initial loop position of instruments

ags (2.1.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing initial loop of notation as adding AgsDssiBridge and AgsLiveDssiBridge
	* fixed missing initial loop of notation as adding AgsLv2Bridge and AgsLiveLv2Bridge
	* fixed ags_recycling_create_audio_signal_with_frame_count()

ags (2.1.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements and 2nd attempt of targeting compiler warnings

ags (2.1.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_start_audio_test.c and ags_start_channel_test.c

ags (2.1.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements and targeting compiler warnings
	* increased pulseaudio default buffer size
	* disabled pulseaudio empty buffer compensation on underflow
	* fixed potential dead-lock in ags_recall_set_property()
	* fixed potential dead-lock in ags_recall_dssi_run_set_property()
	* fixed potential dead-lock in ags_recall_lv2_run_set_property()
	* fixed potential dead-lock in ags_eq10_channel_get_property()

ags (2.1.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor improvements and targeting compiler warnings
	* added ags_start_audio_test.c
	* added ags_start_channel_test.c

ags (2.1.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved code of AgsSetBufferSize task
	* improved code of AgsSetSamplerate task
	* fixed AgsSeekSoundcard:offset set/get property
	* fixed AgsSetDevice:device set property
	* added ags_resize_audio_test.c
	* added ags_seek_soundcard_test.c
	* added ags_set_audio_channels_test.c
	* added ags_set_buffer_size_test.c
	* added ags_set_device_test.c
	* added ags_set_format_test.c
	* added ags_set_muted_test.c
	* added ags_set_samplerate_test.c

ags (2.1.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsMessageEnvelope missing struct for API comments
	* fixed potential string read boundary excess in ags_simple_file_read_oscillator()
	* improved ref count of ags_message_delivery_add_queue() and ags_message_delivery_remove_queue()

ags (2.1.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved always show add/remove port of AgsSoundcardEditor
	* fixed reading/writing AgsOscillator sync-point
	* fixed division by zero in ags_synth_util.c

ags (2.1.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* decoupled AgsJackClient for input from JACK

ags (2.1.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented reset soundcard property of AgsWindow
	* fixed AgsXorgApplicationContext ref counting
	* fixed AgsAudioApplicationContext ref counting
	* fixed add/remove pulseaudio soundcard by configuration
	* fixed add/remove JACK soundcard by configuration

ags (2.1.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsFunctionalDrumTest and AgsFunctionalFFPlayerTest to assert if directory exists
	* completed ags_functional_osc_server_test.c
	* fixed missing include in ags_play_wave_channel_run.c
	* fixed memory leaks of AgsOscFrontController
	* fixed memory leaks of AgsOscActionController
	* fixed memory leaks of AgsOscConfigController
	* fixed memory leaks of AgsOscMeterController
	* fixed memory leaks of AgsOscNodeController
	* fixed memory leaks of AgsOscRenewController
	* fixed memory leaks of AgsOscStatusController

ags (2.1.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_osc_util_decode() to return correct size

ags (2.1.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsOscServerPreferences
	* implemented parse OSC server config in ags_xorg_application_context_setup()
	* implemented data cache of OSC connection and client
	* implemented missing persistence of AgsAudio:audio-name property
	* improved read bytes of OSC connection and client

ags (2.1.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added ags_osc_client_test.c
	* added ags_osc_connection_test.c
	* added ags_functional_osc_server_test.c

ags (2.1.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing include of signal.h in ags_audio_application_context.c
	* fixed ags_thread_add_start_queue() and ags_thread_add_start_queue_all() to use correct mutex
	* fixed ags_functional_audio_test.c removed wrong code starting threads twice

ags (2.1.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_osc_server_add_default_controller()
	* improved AgsOscServer ::start() and ::stop()
	* fixed timeout of ags_osc_front_controller_delegate_thread()
	* fixed ags_play_channel_run_master_remap_dependencies() to check if AgsRecallID present
	* added ags_osc_status_controller_test.c
	* added ags_osc_front_controller_test.c
	* added ags_osc_server_test.c

ags (2.1.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsMidiin, AgsJackMidiin and AgsCoreMidiing unitialized pointer
	* added ags_osc_config_controller_test.c
	* added ags_osc_info_controller_test.c

ags (2.1.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored AgsOscRenewController allowing you to use ranges and wildcards
	* refactored AgsOscNodeController allowing you to use ranges and wildcards
	* refactored AgsOscMeterController allowing you to use ranges and wildcards
	* fixed OSC controllers missing path matching recall
	* fixed ags_osc_buffer_util.c to do shift operator using guint64
	* fixed ags_osc_buffer_util_get_rgba() to access using correct index
	* fixed ags_osc_buffer_util_get_midi() to access using correct index
	* fixed ags_osc_buffer_util_get_packet() to read packet size
	* added ags_osc_buffer_util_test.c
	* added ags_osc_renew_controller_test.c
	* added ags_osc_node_controller_test.c
	* added ags_osc_meter_controller_test.c
	* added ags_osc_action_controller_test.c

ags (2.1.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (2.1.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (2.1.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented rename audio in context menu
	* fixed ags-delay recall to listen to AgsSoundcard::tic() event
	* minor improvements

ags (2.1.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing symbol export

ags (2.1.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing symbol

ags (2.1.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsAudio:audio-name property
	* implemented AgsSetDevice task
	* implemented AgsStopSoundcard task
	* implemented AgsStopSequencer task
	* implemented AgsApplySoundConfig task
	* implemented ags_osc_util.c
	* implemented ags_osc_buffer_util.c
	* implemented ags_osc_parser.c
	* implemented ags_osc_builder.c
	* implemented ags_osc_client.c
	* implemented ags_osc_server.c
	* implemented ags_osc_connection.c
	* implemented ags_osc_response.c
	* implemented ags_osc_front_controller.c
	* implemented ags_osc_info_controller.c
	* implemented ags_osc_status_controller.c
	* implemented ags_osc_config_controller.c
	* implemented ags_osc_action_controller.c
	* implemented ags_osc_meter_controller.c
	* implemented ags_osc_node_controller.c
	* implemented ags_osc_renew_controller.c
	* fixed ags_front_controller_do_request() prototype declaration
	* fixed ags_local_factory_controller_create_instance() prototype declaration

ags (2.0.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed configure argument enable_run_functional_tests

ags (2.0.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing symbols

ags (2.0.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* install ags/config.h in include directory
	* implemented AgsIpatchDLS2Reader and AgsIpatchGigReader
	* implemented AgsConnectable interface of AgsAudioContainer and AgsAudioFile
	* implemented AgsConnectable interface of AgsIpatch and AgsSndfile
	* implemented AgsConnectable interface of AgsIpatchDLS2Reader, AgsIpatchGigReader and AgsIpatchSF2Reader
	* implemented thread-safety of AgsAudioContainer and AgsAudioFile
	* implemented thread-safety of AgsIpatch and AgsSndfile
	* implemented thread-safety of AgsIpatchDLS2Reader, AgsIpatchGigReader and AgsIpatchSF2Reader
	* implemented ags_char_buffer_util.c
	* improved conditional compilation with libinstpatch and exclude AgsFFPlayer
	* added configure option to enable functional tests
	* added ags_connectable_test.c
	* added ags_soundcard_test.c
	* added ags_reset_peak_test.c
	* added ags_reset_amplitude_test.c

ags (2.0.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_apply_bpm_recall() wrong parameter order
	* fixed AgsRemoveNote task
	* modified default buffer size in config
	* modified default buffer size in ags_soundcard.h
	* added ags_add_audio_test.c
	* added ags_add_audio_signal_test.c
	* added ags_add_effect_test.c
	* added ags_add_note_test.c
	* added ags_add_soundcard_test.c
	* added ags_apply_bpm_test.c
	* added ags_apply_presets_test.c
	* added ags_apply_sequencer_length_test.c
	* added ags_apply_synth_test.c
	* added ags_apply_tact_test.c
	* added ags_cancel_audio_test.c
	* added ags_cancel_channel_test.c
	* added ags_clear_audio_signal_test.c
	* added ags_clear_buffer_test.c
	* added ags_crop_note_test.c
	* added ags_export_output_test.c
	* added ags_free_selection_test.c
	* added ags_link_channel_test.c
	* added ags_move_note_test.c
	* added ags_notify_soundcard_test.c
	* added ags_remove_audio_test.c
	* added ags_remove_audio_signal_test.c
	* added ags_remove_note_test.c
	* added ags_remove_soundcard_test.c

ags (2.0.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing ags-feed recall in factory
	* fixed missing property AgsAnalyseChannel:buffer-cleared
	* fixed ags_copy_channel_new() to use correct property AgsRecallChannel:source
	* fixed ags_copy_pattern_audio_new() to use correct type to set bank-index-0 and bank-index-1
	* fixed ags_peak_channel_new() to use correct property AgsRecallChannel:source
	* added ags_recall_recycling_test.c
	* added ags_envelope_audio_signal_test.c
	* added ags_eq10_audio_signal_test.c
	* added ags_feed_audio_signal_test.c
	* added ags_mute_audio_signal_test.c
	* added ags_peak_audio_signal_test.c
	* added ags_play_audio_signal_test.c
	* added ags_prepare_audio_signal_test.c
	* added ags_stream_audio_signal_test.c
	* added ags_volume_audio_signal_test.c
	* added ags_analyse_channel_test.c
	* added ags_buffer_channel_test.c
	* added ags_capture_wave_audio_test.c
	* added ags_capture_wave_channel_test.c
	* added ags_copy_channel_test.c
	* added ags_copy_pattern_audio_test.c
	* added ags_copy_pattern_channel_test.c
	* added ags_count_beats_audio_test.c
	* added ags_delay_audio_test.c
	* added ags_envelope_channel_test.c
	* added ags_eq10_channel_test.c
	* added ags_mute_audio_test.c
	* added ags_mute_channel_test.c
	* added ags_peak_channel_test.c
	* added ags_play_audio_test.c
	* added ags_play_channel_test.c
	* added ags_play_wave_audio_test.c
	* added ags_play_wave_channel_test.c
	* added ags_record_midi_audio_test.c
	* added ags_route_dssi_audio_test.c
	* added ags_route_lv2_audio_test.c
	* added ags_volume_channel_test.c

ags (2.0.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed 32/64 bit issues in ags_recycling_context.c
	* fixed ags-copy recall
	* added ags_buffer_audio_signal_test.c
	* added ags_copy_audio_signal_test.c

ags (2.0.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsSpectrometer and AgsEqualizer10 missing recall factory effects
	* fixed possible infinite loop in ags_recycling_context.c
	* fixed possible floating point exception in ags_synth_generator.c
	* completed ags_recycling_context_test.c
	* renamed ags_functional_editor_workflow_test.c to ags_functional_notation_editor_workflow_test.c
	* added ags_functional_automation_editor_workflow_test.c
	* added ags_synth_generator_test.c
	* added ags_analyse_audio_signal_test.c

ags (2.0.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented missing properties AgsAudio:min-audio-channels, AgsAudio:min-output-pads and AgsAudio:min-input-pads
	* fixed ags_recycling_context_remove() potential memory corruption
	* populated ags_audio_buffer_util_test.c
	* added ags_char_buffer_util_test.c skelleton
	* added ags_devin_test.c
	* added ags_fifoout_test.c
	* added ags_midi_test.c
	* added ags_track_test.c
	* added ags_recall_id_test.c
	* added ags_recycling_context_test.c

ags (2.0.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed compiler error

ags (2.0.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_buffer_test_duplicate() to pass on x86 systems

ags (2.0.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong types in ags_buffer.c
	* fixed wrong types in ags_jack_client.c
	* populated partially ags_audio_buffer_util_test.c

ags (2.0.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_ladspa_browser_callbacks.c to obtain GtkComboBox model
	* fixed missing property AgsLadspaConversion:samplerate
	* fixed prototypes in ags_synth_util.h
	* added ags_buffer_util_test.c
	* added ags_ladspa_conversion_test.c
	* added ags_lv2_conversion_test.c
	* added ags_plugin_port_test.c

ags (2.0.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added ags_conversion_test.c
	* added ags_wave_test.c
	* added ags_buffer_test.c

ags (2.0.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added shortcuts to fluid soundfonts and hydrogen drumkits
	* improved default size of AgsConnectionEditor
	* improved all labels upper-case of AgsNotationToolbar, AgsAutomationToolbar and AgsWaveToolbar
	* fixed check child == NULL in ags_output_listing_editor.c and ags_input_listing_editor.c
	* fixed missing include in gsequencer_main.c

ags (2.0.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed compiler errors

ags (2.0.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* disabled gtk fatal mask
	* improved AgsRampAccelerationDialog to use proper step count

ags (2.0.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing includes
	* fixed missing thread-safe properties of AgsTask

ags (2.0.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing chapter
	* added missing image wave toolbar of user's handbook
	* minor improvements

ags (2.0.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* updated the docs user's and developer's handbook
	* added new AgsSpectrometer, AgsEqualizer10 and AgsAudiorec machines to the user's handbook
	* replaced most of the screenshot for the user's handbook
	* fixed missing gtkrc entry of AgsSelectBufferDialog and AgsPositionWaveCursorDialog
	* fixed ags_pattern_envelope_set_preset_property()
	* fixed AgsRampAccelerationDialog

ags (2.0.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed notation editor missing segments as zoom bigger than 1:1
	* fixed timestamp issue in notation eidtor

ags (2.0.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed audio export's bad behaviour on sequencer termination after

ags (2.0.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unsafe child access in ags_recall.c
	* fixed ags-route-lv2 recall no playback
	* fixed ags-dssi recall no playback for note length 1
	* fixed ags-lv2 recall no playback for note length 1

ags (2.0.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audio_buffer_util_envelope_*() to compute correct current volume
	* fixed ags-envelope recall read missing ratio value
	* fixed AgsEnvelopeDialog initial values

ags (2.0.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong one more offset calculation problem in ags-capture-wave and ags-play-wave

ags (2.0.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-capture-wave and ags-play-wave recall to use correct offset

ags (2.0.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsWaveLoader
	* implemented AgsAudiorec file loading animation
	* fixed set property of AgsLv2Worker:returnable-thread

ags (2.0.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* enabled recursive property reset during ags_channel_set_link() and fixed apply on output

ags (2.0.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing AGS_SOUND_ABILITY_PLAYBACK of plugin bridge's AgsAudio
	* partial rewrite of ags_envelope_audio_signal_run_inter()
	* fixed to many calls to the dispatcher
	* disable recursive property reset during ags_channel_set_link()

ags (2.0.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsMidiDialog non existing property use correct one "input-sequencer"
	* fixed free of unitialized GList in ags_effect_bridge.c
	* fixed DSSI and LV2 machines to use correct recall context
	* fixed dead-lock in ags_lv2_urid_manager.c
	* implemented missing properties AgsPlayDssi:bank and AgsPlayDssi:program
	* added missing AGS_SOUND_ABILITY_PLAYBACK of instrument's AgsAudio

ags (2.0.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reverted previously introduced but in ags-capture-wave
	* fixed ags-play-wave wrong offset calculation
	* fixed output/input soundcard editor to reset audio channel to -1 if no soundcard
	* fixed automation editor SIGSEGV due to NULL pointer dereference
	* fixed missing port in automation editor
	* fixed all sorts of automation related issues

ags (2.0.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing ability flags in sound generator machines related to channel scope

ags (2.0.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed some properties of AgsJackServer and AgsJackClient
	* fixed some properties of AgsPulseServer and AgsJackClient
	* fixed some properties of AgsCoreAudioServer
	* work-around for jack_port_set_name() resulting conflict as ags_soundcard_set_device()

ags (2.0.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed not thread-safe access to recall in ags_lv2_bridge.c
	* fixed freed not duplicated string
	* fixed double free in ags_bulk_member_finalize()

ags (2.0.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing audio data after capture default duration

ags (2.0.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing trailing audio after open wave

ags (2.0.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong recall access in AgsDssiBridge, AgsLv2Bridge, AgsLiveDssiBridge and AgsLiveLv2Bridge

ags (2.0.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_note_new_with_offset() prototype
	* fixed ags_recall_factory_create_buffer() to do safe iteration
	* fixed ags_functional_ffplayer_test to use correct parameter for pthread_join()
	* fixed ags_functional_test_util.c to check if realized
	* fixed use of unitialized value in ags_effect_bulk_real_resize_pads()
	* fixed NULL pointer dereference of AgsApplicationClass in ags_xorg_application_context.c
	* implemented ags_functional_test_util_idle_test_widget_realized()

ags (2.0.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor bug-fixes

ags (2.0.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsChannel to listen to AgsRecall::child-done()
	* implemented AgsInputCollectionEditor, AgsInputListingEditor and AgsInputEditor
	* implemented ags_soundcard_lock_buffer() and ags_soundcard_unlock_buffer()
	* implemented audio input properties
	* implemented AgsWaveWindow, AgsWaveEditor, AgsWaveToolbar and AgsWaveEdit
	* implemented AgsSelectBuffer and AgsPositionWaveCursor
	* implemented AgsWave and AgsBuffer
	* implemented ags-play-wave recall
	* implemented ags-capture-wave recall
	* implemented ags-copy-pattern recall plugin port for automation
	* implemented AgsAudiorec
	* new ags_globals.[ch]
	* new ags_uuid.[ch]
	* new ags_midi.[ch]
	* new ags_track.[ch]
	* new ags_char_buffer_util.[ch]
	* new ags_sound_container.[ch]
	* new ags_sound_resource.[ch]
	* new ags_wav_file.[ch]
	* new ags_soundcard_util.[ch]
	* new ags_plugin_port.[ch]
	* incompatible AgsBasePlugin::instantiate() function prototype
	* added ags_connectable_has_resource()
	* added ags_audio_done_recall()
	* replaced AgsDistributedManager by AgsSoundServer
	* added propertiy :output-soundcard to AgsAudio, AgsChannel, AgsRecycling, AgsAudioSignal and AgsRecall
	* added propertiy :input-soundcard to AgsAudio, AgsChannel, AgsRecycling, AgsAudioSignal and AgsRecall
	* replaced use of GParameter by string vector and value array of AgsMessageEnvelope
	* replaced use of GParameter by string vector and value array of AgsPreset
	* replaced AgsPortDescriptor struct by AgsPluginPort object
	* modified prototype of ags_audio_collect_all_audio_ports_by_specifier_and_context()
	* modified prototype of ags_midi_file_read_*()
	* modified prototype of ags_synth_generator_compute()
	* modified return type of ags_channel_add_effect() to AgsRecall
	* renamed g_cclosure_user_marshal_* to ags_cclosure_marshal_*
	* renamed ags_connectable_connect_scope() to ags_connectable_connect_connection()
	* renamed ags_connectable_disconnect_scope() to ags_connectable_disconnect_connection()
	* renamed AgsRecallChannelDummyRun to AgsGenericRecallChannelRun
	* renamed AgsRecallRecyclingDummy to AgsGenericRecallRecycling
	* renamed ags_audio_play_recall()
	* renamed ags_audio_cancel_recall()
	* renamed ags_audio_signal_find_by_recall_id()
	* renamed ags_audio_signal_find_stream_current()
	* removed ags_connection_manager.[ch]
	* removed ags_connection.[ch]
	* removed ags_packable.[ch]
	* removed ags_recall_load_automation() and ags_recall_unload_automation()
	* removed property :soundcard from AgsAudio, AgsChannel, AgsRecycling, AgsAudioSignal and AgsRecall
	* removed ags_audio_connection.[ch]
	* removed ags_message.[ch]
	* removed ags_playable.[ch]
	* removed ags_audio_remove()
	* removed ags_channel_safe_resize_audio_signal()
	* removed ags_channel_recursive_play_init()
	* removed ags_channel_tillrecycling_cancel()
	* removed ags_channel_recursive_reset_recall_ids()
	* removed ags_channel_recursive_reset_recycling_context
	* removed ags_channel_recursive_reset_recall_id
	* removed ags_channel_recursive_init
	* removed ags_channel_recursive_run
	* removed ags_channel_recursive_cancel
	* removed ags_channel_recursive_play_threaded
	* removed ags_channel_recursive_play
	* removed ags_audio_signal_realloc_buffer_size()
	* removed ags_audio_signal_tile()
	* removed ags_audio_signal_scale()
	* removed ags_synth_generator_compute_extended()
	* removed ags_synth_generator_compute_with_audio_signal()
	* removed ags_play_note.[ch]
	* removed ags_play_audio_file.[ch]

ags (1.4.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* work-around reverted pulseaudio GMainLoop integration
	* implemented property AgsBasePlugin:id
	* improved ags_lv2_manager.c to be faster

ags (1.4.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_functional_audio_test.c to create notation as needed
	* defaulted to disable OSS4 dependency

ags (1.4.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audio_set_audio_channels() to remove unneeded notation, automation and wave objects

ags (1.4.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed copy to clipboard in AgsMatrix and AgsDrum

ags (1.4.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed playback scope
	* fixed wrong count of runs and init code in ags_channel.c
	* minor-fixes

ags (1.4.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV during ags_recall_dssi_run_finalize()
	* fixed potential SIGSEGV during ags_recall_lv2_run_finalize()
	* removed redundant code in ags_simple_file.c

ags (1.4.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* replaced pa_mainloop_new() by pa_glib_main_loop_new()
	* minor changes

ags (1.4.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsLiveDssiBridge and AgsLiveLv2Bridge notation editor channel mapping

ags (1.4.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restore of AgsPattern
	* fixed ags_open_file.c to use correct file link
	* fixed async-safe ags_simple_file_read_machine()

ags (1.4.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_apply_synth.c to update rt-template
	* improved ags_clear_audio_signal.c to update rt-template

ags (1.4.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsRecallID:recycling property
	* improved mutex lookup of rt-safe functions

gs (1.4.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor-fixes to updating AGS_AUDIO_SIGNAL_RT_TEMPLATE

ags (1.4.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AGS_AUDIO_SIGNAL_RT_TEMPLATE
	* implemented AgsAudioSignal::rt-template property
	* improved rt-safe option

ags (1.4.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing rt-safe configuration option

ags (1.4.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented configuration of AgsThreadPool:max-unused-threads and AgsThreadPool:max-threads
	* improved ags_performance_preferences_reset() to reset super-threaded scope

ags (1.4.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsPreferences to apply conservative default configuration

ags (1.4.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* conservative default configuration
	* fixed SIGSEGV as configuring super-threaded scope audio
	* fixed SIGSEGV during ags_channel_recursive_cancel()

ags (1.4.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed mutex access in ags_apply_bpm.c
	* fixed crash during ags_recycling_context_reset() and ags_channel_recursive_play_down()
	* updated gtk-doc related files

ags (1.4.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed looped audio signal

ags (1.4.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* more-fixes to return from unneeded processing

ags (1.4.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed return from unneeded processing

ags (1.4.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented rt-safe mode
	* implemented ags-rt-stream recall
	* implemented AgsLevel, AgsLevelBox, AgsVLevelBox, AgsHScaleBox and AgsScrolledScaleBox in libags-gui
	* fixed potential SIGSEGV in ags_devout_pcm_info()

ags (1.3.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved use of paned widgets to use GtkViewport

ags (1.3.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_notation.c and ags_automation.c to always match timestamp
	* increased timeouts of functional tests because build environment might have not much power

ags (1.3.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed paste only as within defined offset of AgsNotation and AgsAutomation
	* fixed ags_notation_edit_draw_selection() to use vscrollbar to determine y offset
	* improved selection to select only within area

ags (1.3.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed buffer-overflow in ags_synth_generator.c
	* improved ags.rc

ags (1.3.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible unitialized AgsAudioSignal in AgsApplySynth
	* fixed all wrong string vector static initializers from char **strv to char *strv[]
	* fixed arbritary return in drawing functions without destroying cairo_t

ags (1.3.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed accessing uninitialized pointer in ags_simple_file.c
	* fixed cursor positioning in AgsAutomationEditor
	* improved position labels of AgsNotationToolbar and AgsAutomationToolbar
	* updated ags_notation_test_find_near_timestamp() and ags_automation_test_find_near_timestamp()
	* minor-fixes in ags.rc

ags (1.3.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented 4 paste modes of notation and automation editor
	* implemented AgsScale, AgsScaleBox, AgsVScaleBox, AgsHScaleBox and AgsScrolledScaleBox in libags-gui
	* implemented segmented automation
	* refactored AgsAutomationEditor
	* extended chap1.xml added sections about AgsMainLoop and common interfaces
	* extended all chapters to provide code tag to functions and added parameter types
	* fixed direct callback connect from libags-audio in ags_notation_editor.c
	* fixed missing callback AgsMachine::resize-audio-channels connect in ags_notation_editor.c

ags (1.2.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_channel_get_level()
	* implemented ags_channel_recursive_reset_recall_id()
	* implemented ags_channel_recursive_init()
	* implemented ags_channel_recursive_run()
	* implemented ags_channel_recursive_cancel()
	* refactored ags_channel_recursive_play_init()
	* refactored ags_channel_recursive_play()
	* refactored ags_channel_recursive_play_threaded()
	* refactored ags_channel_recursive_reset_recall_ids()
	* improved ags_channel_set_recycling()
	* improved ags_channel_recursive_reset_recycling_context()

ags (1.2.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* disable fatal mask
	* minor fixes

ags (1.2.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential SIGSEGV due to NULL pointer dereference in ags_append_audio.c task

ags (1.2.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor-fixes

ags (1.2.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed SIGSEGV in ags_channel_set_recycling() and make ags_functional_machine_link_test pass
	* rollback ags_channel_recursive_play_init(), ags_channel_recursive_play() and ags_channel_tillrecycling_cancel()

ags (1.2.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented async message AgsConnection:data-object and AgsAudioConnection:mapped-line
	* implemented ags_audio_disconnect()
	* improved thread-safety to AgsLine:channel and AgsEffectLine:channel properties
	* improved thread-safety AgsPatternBox and AgsCellPattern
	* improved thread-safety all audio tasks
	* improved thread-safety during ags_channel_set_link() and related
	* improved thread-safety during ags_channel_recursive_play_init() and related
	* improved thread-safety during ags_channel_recursive_cancel()
	* improved tasks which need to lock audio especially using AgsCropNote and AgsMoveNote
	* fixed change soundcard task since data-object was resetted for all connections
	* fixed AgsMoveNote and AgsCropNote to support segmented notation
	* fixed various NULL pointer dereference of mutices
	* minor-fixes

ags (1.2.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed remaining launch callback of AgsTask while destroy AgsMachine
	* minor-fixes

ags (1.2.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsNotationEditor and AgsNotationEdit
	* replaced AgsEditor by AgsNotationEditor and supporting segmented notation
	* replaced AgsNoteEdit and AgsPatternEdit by AgsNotationEdit
	* implemented AgsMessageDelivery and AgsMessageQueue
	* implemented messages of AgsAudio ::set-audio-channels, ::set-pads and ::done
	* implemented messages of AgsChannel ::add-effect, ::remove-effect and ::done
	* implemented AgsPiano and AgsScrolledPiano
	* implemented AgsDevin
	* implemented AgsJackDevin
	* implemented AgsPulseDevin
	* refactored direct callbacks to UI by replacing with messages
	* refactored ::set-audio-channels and ::set-pads of AgsAudio callbacks to be thread-safe
	* disabled AgsGuiThread synchronization with AgsTaskThread
	* extended AgsJackServer and AgsJackClient to support AgsJackDevin
	* extended AgsPulseServer, AgsPulseClient and AgsPulsePort to support AgsPulseDevin
	* extended AgsSwitchBufferFlag and AgsClearBuffer to support AgsDevin, AgsJackDevin and AgsPulseDevin
	* refactored AgsNotebook to be generic and move to libags-gui
	* improved ags-play-notation to support segmented notation
	* improved ags-record-midi to support segmented notation
	* improved ags-route-dssi to support segmented notation
	* improved ags-route-lv2 to support segmented notation
	* improved AgsSimpleFile to support segmented notation
	* fixed missing any_signal:: prefix of strings passing as pspec to g_object_disconnect()
	* use $(docdir) in Makefile.am

ags (1.1.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* moved GtkStyle allocation to GtkWidget::realize()
	* fixed potential infinite loop during audio port related automation
	* fixed ags.rc
	* increased AGS_THREAD_POOL_DEFAULT_MAX_UNUSED_THREADS

ags (1.1.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing style initializer of some widgets

ags (1.1.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added support for ALSA default device
	* modified functional tests to use default device
	* modified ags_devout.c to apply device identifier fixup
	* minor bug-fixes

ags (1.1.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_synth_generator_compute_extended() to deal with x <= 0.0 using floor()
	* fixed if-statements in ags_synth_generator_compute_extended() not to do array index excess

ags (1.1.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_synth_generator_compute_extended() to deal with x <= 0.0

ags (1.1.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_cancel_audio_new() to use properties
	* fixed ags_set_samplerate_new() to use properties

ags (1.1.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed SIGSEGV in ags_synth_generator_compute_extended() because NULL pointer dereference
	* fixed SIGSEGV in ags_oscillator.c caused by wrong assigned array index

ags (1.1.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_synth_generator_compute_extended()
	* implemented AgsSynthGenerator:delay property
	* implemented needed properties of AgsApplySynth in order to use ags_synth_generator_compute_extended()
	* implemented AgsPositionNotationCursor
	* implemented AgsPositionAutomationCursor
	* refactored AgsApplySynth to use ags_synth_generator_compute_extended()
	* refactored ags_syncsynth_update() and ags_synth_update() to apply triple sync
	* refactored AgsOscillator to have triple sync
	* refactored AgsOscillator persistence in ags_simple_file.c
	* refactored ags_oscillator_disconnect() to use g_object_disconnect()
	* fixed possible SIGSEGV due to AgsXorgApplicationContext::dispose() as not using property in ags_start_soundcard_new()

ags (1.0.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* extended documentation of libags and libags-audio to have comments for enums
	* fixed missing xinclude

ags (1.0.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing ags-prepare recall related gtk-doc
	* fixed all interfaces to name inherited type field ginterface instead of interface
	* fixed gtk-doc fixup to do sed using globbing
	* fixed following additional / by gtk-doc fixup

ags (1.0.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible SIGSEGV in ags_synth_generator_compute_with_audio_signal()
	* fixed missing includes of stdlib.h
	* fixed user's handbook removed unneeded column in tables

ags (1.0.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added missing screenshots to tarball

ags (1.0.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved max-precision configuration preferences to proper reset
	* improved ags_notebook_size_request() to always use -1 as requisition width
	* improved AgsRampAccelerationDialog to use 2 digits after decimal point
	* improved AgsSelectAccelerationDialog to use 2 digits after decimal point
	* extended user's manual and replaced all screenshots
	* added section "Envelope editor" to chapter 2
	* added section "Envelope info" to chapter 2
	* added section "Envelope pattern" to chapter 2
	* added section "Move notes" to chapter 3
	* added section "Crop notes" to chapter 3
	* added section "Select notes" to chapter 3
	* added section "Select acceleration" to chapter 5
	* added section "Ramp acceleration" to chapter 5
	* updated gtk-doc related Since field to have value 1.0.0
	* fixed missing ags.rc entries of AgsSelectNoteDialog, AgsMoveAccelerationDialog, AgsSelectAccelerationDialog and AgsRampAccelerationDialog

ags (1.0.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented :thread-pool property of AgsReturnableThread
	* implemented :max-precision of AgsThread
	* implemented configuration option of thread's max-precision property
	* implemented sticky controls
	* improved LV2UI plugin support to set controls value
	* fixed wrecked widget allocation of AgsEditor and AgsAutomationEditor

ags (1.0.0-beta)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsPasswordStore and AgsAuthentication interfaces
	* TODO:JK: implemented destroy functions
	* TODO:JK: implemented iterator and recycling thread
	* TODO:JK: implemented AgsAbstractBasePluginManager
	* TODO:JK: implemented AgsPluginFactory
	* TODO:JK: implemented missing interface functions of AgsConnectable, ...
	* TODO:JK: implemented MIDI and sequencer API
	* TODO:JK: refactored AgsLadspaManager, AgsDssiManager, AgsLv2Manager and AgsLv2uiManager to inherit of AgsAbstractBasePluginManager
	* TODO:JK: extended AgsSoundProvider interface to provide plugin managers
	* extended AgsServiceProvider interface to provide managers

ags (0.9.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsRampAccelerationDialog
	* implemented AgsSelectAccelerationDialog
	* implemented AgsSelectNoteDialog
	* improved functional-tests.mk to solve linker issue with circular dependency
	* improved unit-tests.mk to linker issue with circular dependency
	* added AGS_RECALL_RUN_FIRST and AGS_RECALL_RUN_LAST flags
	* fixed ags_turtle_load() buffer index excess
	* fixed ags_functional_note_edit_test.c array index excess in main()
	* fixed double free of string in ags_lv2_browser_plugin_uri_callback()

ags (0.9.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsGuiThread minimum sync count with AgsTaskThread

ags (0.9.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved conversion to floating point numbers by division instead of multiplication

ags (0.9.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* non-destructive soundcard/sequencer preferences notify about restart GSequencer
	* removed all calls to gdk_threads_enter() and gdk_threads_leave() because the
	  GSource it is synced with owns the lock.
	* full gtk_main() support by calling ags_gui_thread_do_run()
	* refactored ags_gui_thread.[ch]
	* refactored functional tests to run with gtk_main()

ags (0.9.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved JACK latency but may cause bigger load

ags (0.9.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented core-audio related code but without MIDI instrument support
	* refactored UI to schedule tasks by AgsGuiThread
	* fixed memory-leaks related to cairo_t
	* improved plugins search path you may now specify by environment variable

ags (0.9.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible SIGSEGV as accessing removed soundcard or midi sequencer

ags (0.9.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* trick pulseaudio pass to pa_stream_begin_write() n_bytes 0

ags (0.9.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved pulseaudio restart stream

ags (0.9.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved pulseaudio eliminate feedback

ags (0.9.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* provide quadratic and practical icon size
	* improved pulseaudio underflow detection
	* fixed pulseaudio non-initialized value might be a buffer-overflow

ags (0.9.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-oscillator-list restore failed due to typo

ags (0.9.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed read of not finished write buffer during export audio file
	* fixed AgsExportWindow file exists response
	* fixed AgsExportWindow dead-lock during cancel of not existing playback
	* improved gsequencer.desktop to provide png file

ags (0.9.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* provide context menu

ags (0.9.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved gtk-doc installation and introduced fix-local-html and fix-online-html target
	* fixed missing check for NULL of gtk_combo_box_text_append_text() parameter in all source code
	* fixed missing LV2_UI cleanup handling
	* fixed missing pulseaudio backend in AgsExportSoundcard

ags (0.9.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_pulse_port_get_latency()
	* improved throughput of pulseaudio by timed cond on stream request callback
	* fixed possible SIGSEGV as ags_channel_reset_recall_id()

ags (0.9.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags_devout_adjust_delay_and_attack() and related
	* improved AgsPulsePort to omit polling thread twice
	* fixed missing volatile of AgsPollingThread's flags
	* fixed destroy machine crash during playback

ags (0.9.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added mutices to AgsJackServer and AgsPulseServer
	* fixed memory leaks of mutices in AgsPulseClient, AgsJackClient, AgsPulsePort and AgsJackPort
	* fixed wrong parent class of dispose in ags_pulse_server.c and ags_jack_server.c
	* fixed data-race during playback termination in ags_pulse_devout_port_free()
	* fixed ags_application_context initialization if NULL (note might be reverted, soon)

ags (0.9.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing initial configuration of pulseaudio
	* improved throughput of pulseaudio by using maxlength of stream -1
	* improved clear buffer task to let ring-buffer being valid longer

ags (0.9.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_pulse_server.c, ags_pulse_client.c and ags_pulse_port.c
	* implemented ags_pulse_devout.c
	* refactored AgsSoundcardEditor to work with pulseaudio, too
	* fixed memory leak related to mutex and its attributes for AgsDevout, AgsMidiin, AgsJackDevout and AgsJackMidiin
	* fixed missing paranthesis to check flags in ags_devout.c, ags_midiin.c, ags_jack_devout.c and ags_clear_buffer.c

ags (0.9.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_input_apply_synth() and ags_input_apply_synth_extended()
	* fixed ags_syncsynth_reset_loop() to use attack to calculate loop upper
	* fixed ags_recall_container_find() and its flags to enumerate correctly
	* fixed ags_thread_pool_creation_thread() to check parent for NULL
	* enabled unit-test ags_input_test.c because not tested
	* new unit-test ags_midiin_test.c
	* new unit-test ags_output_test.c
	* new unit-test ags_playback_domain_test.c
	* new unit-test ags_playback_test.c
	* new unit-test ags_preset_test.c
	* new unit-test ags_recall_channel_test.c
	* new unit-test ags_recall_channel_run_test.c
	* new unit-test ags_recall_container_test.c
	* new unit-test ags_recall_dependency_test.c

ags (0.9.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented pass base-note to AgsApplySynth
	* fixed missing base-note, audio-loop-start and audio-loop-end while read/write XML
	* fixed missing attack as calculating stream size
	* fixed ags_synth_util_get_xcross_count() and related functions

ags (0.9.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_lv2_option_manager_lookup_extended()
	* implemented ags_lv2_plugin_event_buffer_alloc()
	* implemented ags_lv2_plugin_event_buffer_realloc_data()
	* implemented ags_lv2_plugin_event_buffer_concat()
	* implemented ags_synth_util_get_xcross_count() and related type specific implementations
	* implemented ags_synth_generator_compute()
	* implemented ags_synth_generator_compute_with_audio_signal()
	* deprecated ags_lv2_plugin_alloc_event_buffer()
	* deprecated ags_lv2_plugin_concat_event_buffer()
	* implemented ags_lv2_urid_manager_unmap()
	* implemented AgsSyncsynth in order to have true notation available to a synth
	* implemented ags_synth_generator_compute()
	* implemented ags_synth_generator_compute_with_audio_signal()
	* refactored AgsOscillator in order to be reusable
	* refactored AgsApplySynth task to use new synth generator functions
	* completed missing gtk-doc comments in ags_input.c and other files
	* fixed AgsExportSoundcard to don't add device as being NULL
	* fixed ags_lv2_option_manager_get_option() to lookup correctly
	* fixed ags_lv2_option_manager_set_option() to lookup correctly
	* new unit-test ags_lv2_option_manager_test.c
	* new unit-test ags_lv2_plugin_test.c
	* new unit-test ags_lv2_preset_test.c
	* new unit-test ags_lv2_uri_map_manager_test.c
	* new unit-test ags_lv2_urid_manager_test.c
	* new unit-test ags_lv2_worker_manager_test.c
	* new unit-test ags_lv2ui_manager_test.c
	* new unit-test ags_lv2ui_plugin_test.c
	* new unit-test ags_audio_connection_test.c
	* disabled new unit-test ags_input_test.c because not tested

ags (0.9.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented new task AgsResetPeak
	* implemented ags_audio_buffer_util_peak() and related
	* refactored ags-peak recall to use above and compute only as needed

ags (0.9.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory leak related to mutex attributes
	* fixed deny multi-start of AgsChannelThread or AgsAudioThread
	* fixed deny multi-stop of AgsChannelThread or AgsAudioThread
	* minor code improvements

ags (0.9.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed many missing return values
	* fixed some unitialized pointers
	* fixed 64 bit portability issue in ags_recall_template_find_all_type()

ags (0.9.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unitialized pointer in AgsCellPattern and AgsPatternBox animation

ags (0.9.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible concurrent access in ags-peak related code
	* fixed led array related bug that didn't show animation of AgsCellPattern and AgsPatternBox

ags (0.9.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash after drum restore and doing sequencer playback

ags (0.9.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible concurrent access in ags_cell_pattern.c
	* fixed finalize to call parent class of managers
	* fixed finalize to reset global variable after finalize of managers
	* fixed g_list_position() call to have nested g_list_find() in ags_polling_thread.c
	* fixed missing return in ags_destroy_entry_alloc()
	* fixed AGS_TASK_GET_CLASS() macro to remove not opened paranthesis
	* fixed ags_thread_init() to correct assign condition manager
	* fixed AGS_FILE_CHECKSUM_LENGTH macro to use string representation length
	* fixed missing serialization of thread frequency
	* fixed missing return of ags_file_write_thread()
	* extended chap3.xml to include documentation about workers
	* extended chap3.xml to include documentation about poll fds
	* extended chap3.xml to include documentation about mutex and condition manager
	* provide new prototypes in ags_notation.c and ags_note.c to work with SMF
	* new unit-test ags_complex_test.c
	* new unit-test ags_turtle_manager_test.c
	* new unit-test ags_log_test.c
	* new unit-test ags_application_context_test.c
	* new unit-test ags_connection_manager_test.c
	* new unit-test ags_config_test.c
	* new unit-test ags_condition_manager_test.c
	* new unit-test ags_mutex_manager_test.c
	* new unit-test ags_destroy_worker_test.c
	* new unit-test ags_polling_thread_test.c
	* new unit-test ags_poll_fd_test.c
	* new unit-test ags_returnable_thread_test.c
	* new unit-test ags_task_test.c
	* new unit-test ags_thread_pool_test
	* new unit-test ags_worker_thread_test
	* new unit-test ags_file_test
	* new unit-test ags_file_id_ref_test
	* new unit-test ags_file_launch_test
	* new unit-test ags_base_plugin_test.c
	* new unit-test ags_dssi_plugin_test.c
	* new unit-test ags_dssi_manager_test.c
	* new unit-test ags_ladspa_manager_test.c
	* new unit-test ags_lv2_manager_test.c
	* new unit-test ags_note_test.c
	* new unit-test ags_acceleration_test.c

ags (0.8.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed orphaned AgsAudio after removing all soundcards to add again

ags (0.8.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented move note task
	* implmeneted crop note task
	* implemented all task's finalize function
	* improved all task's to use properties to instantiate

ags (0.8.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsMoveNoteDialog as additional editing tool
	* implemented AgsCropNoteDialog as additional editing tool
	* implmeneted missing ags_toolbar_disconnect() function

ags (0.8.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsEnvelopeInfo plot
	* enable grid lines of tree view
	* added property AgsMachine:machine-name and thus did a small refactoring

ags (0.8.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-envelope to apply ratio
	* fixed various issues related to AgsEnvelopeDialog

ags (0.8.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsPreset applicable to line ranges and store parameters
	* implemented to persist AgsLiveDssiBridge and AgsLiveLv2Bridge
	* implemented to store presets in AgsSimpleFile
	* extended ags-copy-pattern to use preset scope ags-envelope
	* extended AgsEnvelopeDialog to support presets and apply to pattern
	* improved ags-envelope to read frame count once

ags (0.8.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsAddSoundcardEditor and AgsAddSequencerEditor dereference to wrong type
	* fixed not showing AgsPad as resize from 0
	* fixed crash in AgsMeter as resize to 0
	* fixed resize of AgsNotebook in AgsPatternEdit and AgsNoteEdit related resize to/from 0
	* fixed shrink of AgsNotebook in AgsAutomationEdit

ags (0.8.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsMidiParser to don't skip length of status messages
	* fixed libags-audio.h to not include removed header
	* fixed Makefile.am to use correct symlink of gtk-doc

ags (0.8.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved ags.rc to support AgsMidiExportWizard and AgsMidiImportWizard
	* improved ags.rc to provide better color of active text
	* improved Makefile.am
	* added gettext support

ags (0.8.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* optional libinstpatch dependency
	* implemented AgsEnvelopeDialog
	* refactored ags-envelope recall to use AgsComplex fields of AgsNote
	* added AgsEnvelopeDialog to AgsDrum, AgsMatrix, AgsDssiBridge and AgsLv2Bridge
	* added ags-envelope recall to ags_recall_factory.c
	* fixed unavailable AgsMidiDialog as doing delete-event
	* fixed functional test timed access to widget

ags (0.8.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented MIDI import tracks
	* implemented MIDI export tracks
	* fixed AgsMidiBuilder serious problems
	* fixed ags_midi_buffer_util_seek()
	* fixed AgsMidiParser using wrong tempo and time signature allocation
	* fixed ags_midi_buffer_util.c same issue as above with tempo and time signature

ags (0.7.136)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved performance of AgsGuiThread to consume less power
	* improved AgsMidiin to don't poll anymore in dedicated thread
	* improved AgsLog to have a mutex and use it during splash-screen

ags (0.7.135)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented Lv2 program interface
	* implemented ags-play-dssi and ags-play-lv2 recall
	* implemented AgsLiveDssiBridge and AgsLiveLv2Bridge
	* fixed non-interleave lv2 audio data processing
	* support NULL input

ags (0.7.134)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* merge stable
	* ?

ags (0.7.133)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing reset of connection editor field of machine
	* fixed wrong subtract one of audio channels in bulk connection
	* fixed configuration to clear old config
	* fixed soundcard editor pcm info fails if soundcard busy, use default values

ags (0.7.132)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented seperator within AgsLine and AgsEffectLine
	* implemented seemless mode of AgsDial
	* improved theme, dial style to have dark background

ags (0.7.131)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented output listing editor to assign soundcard
	* improved theme and disable option

ags (0.7.130)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved stability

ags (0.7.129)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags-simple.xsl
	* improved mutices in ags_pad_play() and ags_line_channel_done_callback()
	* fixed missing persisting of machine name

ags (0.7.128)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsLv2OptionManager
	* implemented passing options for AgsRecallLv2Run
	* modified UI to show visualization widgets for plugin output ports
	* modified ags-peak, ags-volume and ags-mute recalls to use float ports
	* disabled loading automation of output ports
	* fixed buggy code in ags_machine_selector_remove_index() by a work-around has a need for refactoring

ags (0.7.127)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented LV2UI related code to do idle and show interface
	* improved splash picture to refresh frequently

ags (0.7.126)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved mutices for recalls
	* improved AGS_THREAD_INTERMEDIATE_POST_SYNC
	* disabled ags_main_loop_interrupt() in ags_jack_client_process_callback()

ags (0.7.125)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash in ags_jack_midiin_port_free() NULL pointer access
	* improved mutices doing playback

ags (0.7.124)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed asynchronous ALSA output by incrementing ring-buffer size
	* fixed proper use of ppoll() with AgsDevout prior events wasn't set
	* implemented wait playback until device is available with AgsDevout
	* implemented AgsClearBuffer task
	* refactored AgsDevout and AgsJackDevout to use AgsClearBuffer task

ags (0.7.123)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed distorted sound by clearing buffer that just was memcpy to ring buffer

ags (0.7.122.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed NULL input
	* fixed non-interleaved Lv2 audio data

ags (0.7.122.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented missing ags_route_lv2_audio_run_dispose()
	* fixed in ags-route-dssi use of parent ::finalize() during ::dispose()
	* fixed switch buffer flag to be done during poll MIDI device

ags (0.7.122.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed LIBADD nad LDADD of GSequencer system check automake file

ags (0.7.122.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing length of pattern

ags (0.7.122.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed automation to use previous value if range doesn't match
	* added functional test to check editor workflow

ags (0.7.122.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsEffectSeparator for AgsLine and AgsEffectLine
	* removed gtk separator in AgsLine and AgsEffectLine
	* disabled AgsDestroyWorker

ags (0.7.122.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dead-lock as removing line member
	* improved plugin browser to reset plugin type
	* improved the speed of functional tests
	* added functional test to check line member sanity

ags (0.7.122.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsClearAudioSignal task
	* fixed ags_synth_update() it didn't clear the buffers correctly
	* added functional test to check link sanity

ags (0.7.122.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory corruption of AgsFFPlayer destruction
	* fixed some AgsConnectable::disconnect() of machines
	* fixed potential infinite loop in ags_machine_resize_audio_channels()
	* added functional test add and destroy machine
	* added functional tests resize pads and audio channels

ags (0.7.122.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing connect of AgsOscillator
	* fixed noise creation in AgsSynth
	* fixed SIGSEGV as adding plugin to AgsLine

ags (0.7.122.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented notebook resize in automation editor
	* fixed NULL pointer dereference in ags_matrix.c
	* fixed resize pad to distinguish between input and output

ags (0.7.122.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* stability improvements

ags (0.7.122.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* decoupled gui thread

ags (0.7.122.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixes to configuration in place
	* fixes to audio connection editor

ags (0.7.122.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* TODO:JK: implemented ags-play-pattern recall
	* fixed broken optical feedback of peak
	* removed auto-scroll feature because it costs too much performance

ags (0.7.122.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented non-deterministic mode i.e. performance mode
	* implemented ags_input_next_active() and ags_input_is_active()
	* implemented restore and persist of AgsLv2Bridge preset
	* disabled lv2 worker feature if not requested by plugin
	* fixed memory leak related to AgsReturnableThread
	* fixed crash related to notation offset cached
	* note disabled some signals

ags (0.7.122.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored ags-copy recall to instantiate like ags-buffer
	* implemented LV2 presets
	* implemented presets in AgsLv2Bridge
	* implemented ags-prepare recall
	* implemented AgsConditionManager to use with AgsThread tree lock functions
	* implemented worker threads
	* implemented destroy worker
	* improved AgsDelayAudio port instantiation to use default values
	* fixed using default values as no soundcard available
	* fixed crash as no soundcard configured within GUI
	* fixed AgsThread tree lock functions
	* added more unit tests in ags_thread_test.c

ags (0.7.122.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsHLedArray and AgsVLedArray
	* implemented missing properties of AgsPlaybackDomain and AgsPlayback
	* implemented GObject::dispose()
	* refactored AgsCellPattern and AgsPatternBox to use AgsHLedArray
	* fixed reference counting of libags, libags_audio
	* fixed division by zero caused by AgsOscillator
	* fixed serious memory corruption in ags_pattern_set_dim()
	* fixed segmentation fault of AgsFFPlayer restore
	* fixed missing connection menu of AgsLv2Bridge after restore
	* extended unit tests

ags (0.7.122.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* back-ported seemless mode of AgsDial
	* back-ported Lv2ui support
	* improved default theme
	* fixed configuration to use default values as soundcard busy
	* fixed clear configuration and provide default values as applying

ags (0.7.122.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* providing default theme
	* fixed ags.rc support
	* fixed cell pattern painting
	* minor fixes

ags (0.7.122.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (0.7.122.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (0.7.122.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* back-ported enable output ports to plugins
	* back-ported disable output ports on automation
	* back-ported enable built-in effects to do automation
	* fixed configuration in-place to reset frequency of appropriate thread
	* minor fixes

ags (0.7.122.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes

ags (0.7.122)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented intermediate pre and post sync
	* refactored interfacing soundcard to do intermediate post sync
	* refactored interfacing sequencer to do intermediate pre sync
	* refactored ags_devout.c tightened the code and intermediate post sync
	* refactored ags_midiin.c intermediate pre sync
	* improved XPath doing lv2 turtle
	* fixed stop export and sequencer thread during soundcard stop
	* fixed ags_start_soundcard_finalize() without configured sequencer crashing
	* fixed potential dead-lock in ags_midiin_oss_poll() and ags_midiin_alsa_poll()
	* fixed proper termination of OSS and ALSA poll

ags (0.7.121)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Makefile.am to use -p and -m 644 parameter

ags (0.7.120)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved Makefile.am use install instead of cp

ags (0.7.119)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_export_window_reload_soundcard_editor()
	* implemented AgsExportSoundcard UI
	* refactored AgsExportWindow to allow export multiple soundcards
	* improved mutices in ags_record_midi_audio_run.c
	* improved mutices in ags_route_dssi_audio_run.c
	* improved mutices in ags_route_lv2_audio_run.c
	* fixed ags-audio.h to remove unused headers
	* fixed AgsSoundcardEditor and AgsSequencerEditor to remove JACK device

ags (0.7.118)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed API reference removed unused objects
	* added COPYING.docs

ags (0.7.117)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsAudio:midi-channel
	* implemented midi channel in AgsMidiDialog
	* implemented using midi channel in ags-record-midi
	* back-ported properties of tasks of branch 1.0
	* fixed ags-record-midi recall to proper key-on and key-off

ags (0.7.116)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_midiin_alsa_poll() and ags_midiin_oss_poll()
	* fixed possible NULL pointer access in ags_midiin_list_cards()
	* fixed AgsMidiin to always set nth_buffer during record
	* fixed in ags_midiin_set_device() to duplicate string and handle OSS4
>>>>>>> master

ags (0.7.115)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed copyright statements replaced deprecated
	* fixed exclude OSS in GUI if not provided

ags (0.7.114)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* disabled unused buttons yet
	* improved ags-record-midi recall

ags (0.7.113)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed API docs and updated sections

gs (0.7.112)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* providing headers libags.h, libags-audio.h and libags-gui.h
	* improved API reference

ags (0.7.111)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented experimental MIDI support for ALSA, OSS4 and JACK

ags (0.7.110)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* critical bug-fix data-race in ags_thread-posix.c resume interrupted threads after AgsAsyncQueue run
	* implemented ags_thread_reset_all() see above

ags (0.7.109)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed data-race of AgsCellPattern and AgsMatrix callbacks

ags (0.7.108)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented blacklist of plugins for AgsLadspaManager, AgsDssiManager, AgsLv2Manager and AgsLv2uiManager

ags (0.7.107)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_base_plugin_sort() alphabetically plugins by effect name
	* improved AgsMenuBar to have sorted plugins by effect name see above

ags (0.7.106)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsCartesian
	* fixed case-sensitive iriref in ags_turtle.c
	* added additional parameter to ags_lv2_manager_load_file() and ags_lv2ui_manager_load_file() in order to provide manifest

ags (0.7.105)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsTicSoundcard task and fixed thereby data-race

ags (0.7.104)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented splash-screen

ags (0.7.103)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_soundcard_get_note_offset_absolute()
	* improved mutices in ags_navigation.c
	* fixed possible access of uninitialized memory in ags_cell_pattern_led_queue_draw_timeout()
	* fixed possible access of uninitialized memory in ags_pattern_box_led_queue_draw_timeout()
	* simplified seeking

ags (0.7.102)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed use AgsSwitchBufferFlag task in ags_jack_client.c

ags (0.7.101)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed rounding fault in ags_devout.c and ags_jack_devout.c

ags (0.7.100)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed devhelp link to docs use underscore instead of minus
	* fixed in ags_lv2_plugin.c XPath no .// rather // as expression
	* improved timing issue as exporting audio data

ags (0.7.99)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_turtle_read_langtag() for not being greedy.

ags (0.7.98)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixes to ags_turtle.c UTF-8 ranges and other issues
	* added ags_turtle_test unit test

ags (0.7.97)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_midi_buffer_util_test.c using wrong variable
	* improved test suite to have LC_ALL and LANG set to C

ags (0.7.96)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed in ags_midi_buffer_util.c some missing return values and other issues
	* improved test coverage of ags_midi_buffer_util.c to almost completed

ags (0.7.95)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unit test ags_midi_buffer_util_get_song_select()

ags (0.7.94)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unit test ags_recall_test_duplicate() to have proper type in callback
	* extended ags_midi_test.c to provide more unit tests

ags (0.7.93)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed automation edit restore from simple file

ags (0.7.92)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added unit tests of ags_midi_buffer_util.c
	* fixed ags_midi_buffer_put_varlength(), it was defunctional
	* fixed missing check of AgsRecallDssi in ags_channel.c

ags (0.7.91)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added unit tests in ags_automation_test.c and ags_recall_test.c
	* fixed automation toolbar to toggle port correctly and added empty port
	* fixed ags_midi_buffer_util.c, ags_midi_builder.c and ags_midi_parser.c to conform MIDI specs
	* NOTE arguments are shifted for MIDI SMTPE related functions

ags (0.7.90)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed handle NULL pointer client don't pass it to JACK
	* back-ported ags_midi_buffer_util.[ch] from 1.0
	* back-ported ags_midi_builder.[ch] from 1.0

ags (0.7.89)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash after opening file with unavailable audio file link
	* improved mutices in ags_editor_tic_callback()

ags (0.7.88)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing usage of attack affects BPM
	* fixed code performance issue in ags-play-notation recall
	* removed free-wheel within jack client because not supported
	* modified default buffer size to 1024

ags (0.7.87)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsSoundcardEditor not allowed free of string
	* fixed ags_soundcard_editor_add_soundcard() ignore AgsJackDevout
	* fixed ags_soundcard_editor_remove_soundcard() ignore AgsJackDevout

ags (0.7.86)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsNotifySoundcard to fast lock AgsSoundcard
	* implemented cyclic tasks in ags_task_thread_run()
	* implemented ags_task_thread_append_cyclic_task()
	* implemented ags_task_thread_remove_cyclic_task()
	* refactored ags_thread-posix.c to set AgsThread->tic_delay to be reset synced

ags (0.7.85)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsThread detach thread if not running while finalize
	* fixed AgsReturnableThread is not detached by default
	* fixed detach thread as calling AgsThread::stop()

ags (0.7.84)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong type of ags_recycling_context_new()'s function argument
	* fixed integer overflow in ags_channel.c while allocating AgsRecyclingContext

ags (0.7.83)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential infinite-loop
	* fixed race-condition as resizing audio channels and pads within gui thread

ags (0.7.82)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_playable_read_audio_signal() without resampling frame count

ags (0.7.81)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed not negated if condition in ags_ladspa_manager_get_filenames()
	* fixed non-synth lv2 plugins accessing NULL pointer ags-count-beats recall
	* fixed potential NULL pointer access in ags_recall_lv2_run_finalize()
	* fixed AgsRecallLv2Run to have :run-inter() for non-synths
	* fixed AgsRecallLadpsaRun, AgsRecallDssiRun and AgsRecallLv2Run to use correct copy mode
	* implemented ags_audio_buffer_util_clear_buffer()

ags (0.7.80)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restore of AgsBulkMember toggle button

ags (0.7.79)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed potential NULL pointer access in ags_recycling_create_audio_signal_with_frame_count()

ags (0.7.78)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audio_file_write() to have additional format parameter
	* fixed potential NULL pointer in ags_audio_file_write()

ags (0.7.77)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsCellPattern to shrink vertical scrollbar in AgsMatrix
	* fixed AgsMidiDialog reset
	* improved clear JACK buffer during no playback

ags (0.7.76)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed sample selection of AgsIpatch
	* improved open multi-channel samples in ags_ffplayer_callbacks.c

ags (0.7.75)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed synth generator
	* fixed ags_recall_find_all_type()

ags (0.7.74)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_midi_buffer_util_put_varlength() to encode multi-byte properly
	* reverted AgsThread frequency
	* added additional parameter to ags_ladspa_manager.c to pass instance
	* added additional parameter to ags_dssi_manager.c to pass instance
	* added additional parameter to ags_lv2_manager.c to pass instance
	* added additional parameter to ags_lv2ui_manager.c to pass instance
	* improved AgsFFPlayer to resize audio channels
	* fixed relevant clang scan-build errors

ags (0.7.73)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed removed types of libags_gui.types of gtkdoc
	* fixed return value to be void * of ags_stream_alloc()
	* fixed ags_audio_set_pads() to shrink correctly
	* improved ags_recycling_create_audio_signal_with_frame_count() to reduce overhead
	* improved JACK synchronization

ags (0.7.72)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed configuration

ags (0.7.71)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restore JACK from file

ags (0.7.70)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed most compiler warnings

ags (0.7.69)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor fixes to API removed non-existing symbols and alike
	* added symbols file libags.sym, libags_audio.sym and libags_gui.sym

ags (0.7.69)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed stop all soundcard threads because only one was stopped

ags (0.7.68)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed close JACK client while ags_application_context_quit()
	* fixed configure.ac to check for atk-1.0 with AC_CHECK_LIB
	* fixed add/remove soundcards using AgsAudioPreferences
	* modified on file open failure to call ags_application_context_quit() instead of exit(-1) because JACK needs clean-up
	* improved configure.ac to give hint that ALSA and OSS is enabled
	* added --enable-oss argument to configure.ac

ags (0.7.67)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing soundcard info of ags-sf-line
	* updated ags_simple_file.dtd

ags (0.7.66)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed chrash while reading configuration with AgsSimpleFile
	* fixed persisting/restore of AgsSoundcard from configuration with AgsSimpleFile

ags (0.7.65)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented JACK audio output support
	* implemented configuration of multiple soundcard support
	* implemented AgsAudioSettings to configure your soundcards
	* implemented AgsConnectionEditor to assign your soundcards
	* implemented ags_jack_devout.c missing functions ags_jack_devout_list_cards() and ags_jack_devout_pcm_info()
	* implemented ags_jack_devout.c adjusting pcm channels
	* implemented ags_time_get_uptime_from_offset()
	* implemented AgsConnectionManager and AgsConnection
	* implemented AgsAudioConnection to assign ressources to channels
	* implemented ags_jack_server_connect_client() to connect at an arbitrary time
	* implemented AgsChangeSoundcard task to reset AgsAudioConnection
	* implemented AgsAddSoundcard and AgsRemoveSoundcard task
	* implemented resampling in ags-buffer, ags-copy and ags-play recalls
	* refactored configuration access and minor fixes to it
	* refactored AgsAudioPreferences to use AgsAudioSettings
	* refactored AgsAudioApplicationContext and AgsXorgApplicationContext to load multiple soundcards
	* extended AgsAudio to use AgsAudioConnection
	* extended AgsChannel to use AgsRemoteChannel
	* minor-fixes caused accessing NULL pointers

ags (0.7.64)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented OSS support ags_devout_oss_init(), ags_devout_oss_play() and ags_devout_oss_stop()
	* implemented OSS part of ags_devout_get_poll_fd() and ags_devout_get_pcm_info()
	* fixed potential dead-locks in ags_devout.c
	* fixed string format in ags_devout.c
	* replaced ALSA MIDI decoder with ags_midi_buffer_util_decode()
	* added library completion routines ags_strv_contains() and ags_strv_length()
	* improvded configure.ac to partially disable ALSA support

ags (0.7.63)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible NULL pointer access caused by ags_audio_application_context.c and ags_xorg_application_context.c
	* fixed possible dead-lock in ags_play_audio_signal.c
	* fixed format configuration issues in ags_audio_signal.c
	* fixed ags_functional_audio_test.c
	* fixed ags_audio_test.c
	* fixed ags_channel_test.c
	* fixed ags_notation_test.c
	* fixed ags_pattern_test.c
	* fixed ags_recycling_test.c
	* fixed ags_thread_test.c
	* improved ags_devout.c to not allow set non-existing soundcard except default hw:0

ags (0.7.62)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved build system
	* improved ags_functional_audio_test.c to provide configuration

ags (0.7.61)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed build system

ags (0.7.60)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed spelling error unknow to unknown
	* fixed underscore to score of installation directories
	* modified libgsequencer to be private

ags (0.7.59)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed package name in .pc files

ags (0.7.58)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* split API reference

ags (0.7.57)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* relicensed docs to be GFDL+3 without invariant sections

ags (0.7.56)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Makefile.am to install libags-1.0.pc
	* improved developer manual
	* improved set AgsApplicationContext's instance in gsequencer_main.c
	* implemented timestamp property of AgsAutomation
	* implemented ags_thread_add_start_queue() and ags_thread_add_start_queue_all()

ags (0.7.55)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash on missing poll descriptor
	* fixed first connect and then reset AgsPreferences in order to get valid configuration
	* improved error setting and handling in ags_devout_alsa_init() handling now wrong configuration
	* disabled Lv2 context menu of AgsMachine
	* added libags.pc.in file

ags (0.7.54)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing addition of overclock value of soundcard in ags_simple_file.c
	* fixed wrong sequencer duration calculated by wrong delay now it gets it of AgsSoundcard
	* fixed use of uninitialized value in ags_cell_pattern.c and ags_pattern_box.c
	* fixed persist virtual audio and midi mapping
	* fixed reset buffer-size and samplerate of AgsAudio as setting AgsSoundcard
	* fixed default frequency of AgsAudioThread and AgsChannelThread
	* implemented character ring-buffer in ags_devout.c
	* implemented to interrupt AgsLv2Worker thread
	* implemented time_late field of AgsThread and thereby reduced distortion
	* updated ags_simple_file.dtd in order to enable midi mapping

ags (0.7.53)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed readjust delay as modify buffer size or samplerate of soundcard
	* fixed tempo divide delay by 16.0 and corrected bpm calculation
	* implemented ags_soundcard_get_uptime()
	* implemented ags_cell_pattern_led_queue_draw_timeout() and ags_pattern_box_led_queue_draw_timeout()

ags (0.7.52)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed resetting buffer size and samplerate because threads might not have been added to the tree, yet
	* implemented midi mapping of DSSI and Lv2 synths

ags (0.7.51)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed freed overwritten temporary string in ags_set_output_device.c
	* fixed reset frequency of main loop in ags_apply_presets.c

ags (0.7.50)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_polling_thread.[ch] and ags_poll_fd.[ch]
	* implemented ags_soundcard_get_poll_fd() and ags_soundcard_is_avialable()
	* using AgsPollingThread in ags_soundcard_thread.c and ags_gui_thread.c
	* fixed use of freed string in ags_audio_preferences.c as apply soundcard
	* improved priorities

ags (0.7.49)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed data-race of resetting soundcard device and apply presets
	* improved API reference manual
	* deleted ags_perform_automation_audio.[ch] and ags_perform_automation_audio_run.[ch] because it is not needed, see AgsRecall::automate

ags (0.7.48)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restart soundcard playback as doing ags_apply_presets_launch()
	* implemented AgsNote in AgsAudioSignal
	* improved gtk-doc related files

ags (0.7.47)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* modified Makefile.am to use -Wformat and -Werror=format-security
	* modified Makefile.am to include docs/images/ags_automation_window_dssi_xsynth.png
	* fixed format security errors

ags (0.7.46)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsMainLoop::interrupt and AgsMainLoop::monitor
	* implemented AgsThread::interrupted and use it in ags_gui_thread.c
	* implemented ags_audio_loop_timing_thread() to emit AgsMainLoop::interrupt
	* fixed configuration in place of AgsSynth and AgsFFPlayer by using AgsSynthGenerator repectively AgsAudioFileLink
	* fixed AgsTactable signals to be emitted
	* fixed configuration in place to reset thread frequency
	* added thread posix signals to AgsGuiThread

ags (0.7.45)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented resetting samplerate, buffer size and format. Thus added properties to AgsAudio and AgsChannel.
	* implemented ags_audio_file_check_suffix() and ags_ipatch_check_suffix()
	* implemented ags_input_open_file()
	* implemented soundcard property of AgsIpatch
	* implemented preset, instrument and sample property of AgsAudioFileLink
	* implemented AgsSynthGenerator and ags_synth_util.c
	* implemented copy functions in ags_audio_buffer_util.c
	* implemented AgsApplyPresets recall
	* refactored replacing template AgsAudioSignal as adding new template
	* improved mutices in ags_audio_open_files()
	* fixed ags_devout_realloc_buffer() to use pcm_channels instead of dsp_channels

ags (0.7.44)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing parsing of alsa-handle key of configuration within AGS simple file
	* fixed AgsExportThread JIFFIE and AGS_THREAD_START_SYNCED_FREQ flag
	* fine-tuned performance and thus providing some fixes

ags (0.7.43)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags-count-beats recall to ommit tics
	* fixed timing issue of toplevel AgsThread limit nanosleep() to band
	* fixed missing read of config values in ags_soundcard_thread() to calculate its frequency
	* improved ref/unref AgsAudioSignal because it wasn't properly done
	* modified ags_recall_recycling.c to not cache AgsAudioSignal
	* modified default frequency to 1000 Hz and buffer size of 512

ags (0.7.42)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dead-lock caused by adjusting buffer size or samplerate as reading config from file
	* fixed really bad memory leak during playback of audio signal on AgsInput because of missing g_object_unref()
	* fixed ags_notation_test.c - it crashed because of wrong data type for ags_note_new_with_offset()
	* implemented properties of AgsNote

ags (0.7.41)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ommiting delayed playback in ags_play_notation_audio_run.c
	* fixed crash during load of lv2 directories without manifest.ttl
	* fixed don't queue draw destroyed widgets
	* fixed remove audio from soundcard as destroying AgsMachine
	* fixed crash during playback after destroy of AgsMachine NOTE: see below
	* NOTE: you have to do proper clean the audio tree

ags (0.7.40)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed zero-length notes in ags_note_duplicate() and return NULL
	* fixed negative-length notes in ags_note_duplicate() by swapping x values
	* fixed encoding special char of strings in ags_turtle.c
	* fixed AgsNotebook fixed width to resizeable
	* fixed use of previous value on reenter loop in automation
	* improved regexp to read string literals in ags_turtle.c
	* improved AgsLineMember and AgsBulkMember to escape their strings
	* implemented resize of AgsNotebook previously it was fixed size
	* implemented abort on not present plugin during file open since you will damage your file

ags (0.7.39)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsLv2Worker to return from AgsReturnableThread
	* fixed some memory leaks in ags_recall_lv2_run.c
	* fixed annoying painting mistake in ags_meter.c missing padding caused ugly effect on top
	* fixed AGS_MACHINE_SELECTOR_SHOW_REVERSE_MAPPING and AGS_MACHINE_SELECTOR_SHOW_SHIFT_PIANO are removed from ags_automation_editor.c because it is not supported
	* improved AgsThreadPool to take from the end of the list because previously it took the ones just instantiated

ags (0.7.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed remove of effects because refactoring broke it
	* fixed remove of automation as removing effect because before it was left there
	* fixed remove automation as shrink audio channels or pads
	* fixed XPath and xmlNode names of turtles to lower-case
	* fixed XPath expressions in ags_lv2_plugin.c to access plugin correctly because it returned all plugins instead of one
	* implemented update automation editor on add/remove effect look at ags_automation_editor_reset_port(), it is new
	* implemented prefix of AgsNotebook now for automation line and notation channel
	* added mutices to ags_toolbar.c

ags (0.7.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed infinite loop in ags_automation_editor.c - line = line++
	* fixed restore of controls
	* fixed AgsNavigation set bpm
	* fixed missing length of AgsDrum and AgsMatrix
	* optimized XML file output

ags (0.7.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash in ags_recycling_create_audio_signal_with_frame_count() because premature end wasn't handled
	* fixed dead-lock caused by AgsNavigation callbacks
	* fixed missing AgsThreadPool for AgsLv2WorkerManager in ags_setup()
	* fixed unlock libinstpatch mutices in ags_ipatch.c because else ending in dead-lock
	* fixed looped AgsRecallDssiRun and AgsRecallLv2Run
	* improved AgsLadspaBrowser and AgsLv2Browser to not load default directory every time

ags (0.7.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed clip-board by merging values since automation ports can occur multiple times
	* fixed map width of automation editor
	* fixed clipped selection
	* fixed reset automation editor position
	* fixed ruler widget because the previous code obviously did wrong use of ceil()
	* fixed translate values in automation editor
	* fixed line member editor hide bulk
	* fixed not available line member port it was broke because of refactoring
	* implemented Atk interfaces in ags_automation_edit.c
	* implemented selection of automation editor
	* implemented ags_soundcard_get_loop(), ags_soundcard_set_loop() and ags_soundcard_get_loop_offset()
	* improved loop mode
	* improved AgsPad mutices in ags_pad_init_channel_launch_callback()
	* improved remove line effect and effect line effect
	* improved remove effect bulk effect
	* improved ags_channel_remove_effect() to work with LADSPA and Lv2 because it was only usable with LADSPA
	* added mutices automation editor
	* added missing mutices to ags_navigation_callbacks.c
	* added mutices in ags_effect_bulk.c
	* added mutices in ags_line.c and ags_effect_line.c

ags (0.7.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed disapearing automation caused by missing tact factor appliance
	* fixed y value in ags_automation.c to gdouble because it was y previously
	* fixed missing souncard identifier in audio preferences
	* improved remove of notes by specify number of attempts until giving up
	* implemented cursor in automation editor
	* implemented copy, cut and paste in AgsAutomationEditor
	* implemented key-strokes in ags_automation_edit_callbacks.c
	* introduced new config key disable-feature because you don't want experimental code in production

ags (0.7.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* using AgsConversion in ags_line_member.c and ags_bulk_member.c if available
	* using bypass flag in ags_recall_audio_automate() and ags_recall_channel_automate()
	* using AgsConversion in automation editor
	* implemented reset of AGS_AUTOMATION_BYPASS in automation toolbar

ags (0.7.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed remove of menu after rename of AgsMachine
	* fixed update editor and automation editor after rename
	* fixed automation data
	* fixed missing XPath preamble of automation editor's machine radio button
	* fixed NULL pointer access in ags_automation_toolbar_apply_port()
	* implemented save/restore of ports within automation editor

ags (0.7.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed automation editor drawing while setting value with a different lower bound than 0.0
	* fixed setting value on AgsAcceleration likewise above
	* fixed freed name string of AgsMachine
	* optimized drawing of values by ommiting already drawn values within AgsAutomationArea

ags (0.7.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented loading automation ports of LADSPA, DSSI and Lv2 plugins
	* implemented adding automation data
	* implemented removing automation data

ags (0.7.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_audio_set_audio_channels() to do proper setup
	* fixed ags_lv2_bridge_set_audio_channels() and ags_dssi_bridge_set_audio_channels() to iterate correctly
	* fixed show of newly created AgsLine as calling ags_machine_resize_audio_channels()
	* fixed scroll of AgsNotebook

ags (0.7.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed worst memory leaks
	* refactored gsequencer_main.c because it was a mess
	* refactored peak callback to use g_timeout_add() giving better performance
	* improved timer support
	* provided example file

ags (0.7.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed format string

ags (0.7.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* removed wrong envelop information from notation in ags_simple_file.c
	* fixed Makefile.am to include aclocal.m4

ags (0.7.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsLadspaBridge, AgsDssiBridge and AgsLv2Bridge restore from XML
	* implemented AgsSimpleFile which is much faster than AgsFile
	* implemented AgsSimpleFileRead task for reading files using simple API
	* implemented AgsSimpleFileWrite task for writing files using simple API
	* implemented AgsSimpleAutosaveThread that makes use of AgsSimpleFile to save its files
	* implemented :control_type_name parameter of ags_line_add_effect()
	* fixed duplicated entries in plugins manager: AgsLadspaManager, AgsDssiManager and AgsLv2Manager

ags (0.7.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Makefile.am to include entire documentation and having a build
	* fixed ags_config.c to use working default values

ags (0.7.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed proper license information and notes in README
	* included ags_marshallers.list in tarball

ags (0.7.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_update_bulk_member.c to work with DSSI and improved the code
	* fixed Lv2 playback
	* fixed Lv2 atom sequence type and Lv2 atom body access in ags_lv2_plugin.c

ags (0.7.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented support for integer adjustments of LADSPA, DSSI and Lv2
	* improved configure.ac
	* fixed DSSI playback and bank selection
	* fixed finding AgsBulkMember ports

ags (0.7.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed proper version information of *.so, *.a and *.la
	* fixed version information in --version to use AGS_VERSION macro
	* improved ags_dial.c by clearing background

ags (0.7.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dead-lock in ags_thread_loop()
	* fixed inresponsive AgsDrumInputPad
	* fixed unset AGS_DEVOUT_INITIALIZED flag as stopping the device

ags (0.7.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed not nul-terminated string in ags_export_window.c
	* fixed missing include in ags_export_window.c
	* fixed initialization and reference count of async_queue in AgsAudioLoop
	* set environment variables LANG and LC_ALL programmatically to C

ags (0.7.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong reference count in ags_recycling_real_add_audio_signal()
	* refactored ags_thread_pool.c due to performance impact of new code
	* refactored AgsThread flags
	* implemented threads to start synced
	* implemented AgsSwitchBufferFlag task because of data-race
	* implemented ags_thread_chaos_tree()

ags (0.7.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed uninitialized values in ags_ipatch_sf2_reader.c
	* fixed Soundfont2 playback

ags (0.7.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Soundfont2 support
	* fixed dead-lock while stop multi-channel playback
	* fixed open WAV files within AgsDrum
	* implemented ags_open_sf2_sample.c

ags (0.7.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented AgsConcurrentTree in ags_devout.c and using it in ags_channel.c
	* added task_completion_mutex to AgsGuiThread
	* fixed memory-leak in ags_thread_pool.c

ags (0.7.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* reverted changes of AgsTaskThread and AgsThreadPool
	* extended developers book
	* fixed dead-lock with AgsTaskThread

ags (0.7.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed all unit tests
	* fixed ags_recycling_create_audio_signal_with_frame_count()
	* implemented timestamp property of AgsPattern and AgsNotation

ags (0.7.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unit tests
	* fixed editor bug
	* refactored ags_recycling_create_audio_signal_with_frame_count()
	* implemented AgsGenericMainLoop
	* added many unit tests in ags_thread_test.c

ags (0.7.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed XML IO
	* implemented read and write functions of AgsLadspaBridge, AgsDssiBridge and AgsLv2Bridge
	* fixed lock AgsPort as running recall

ags (0.7.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented conversion objects AgsLadspaConversion and AgsLv2Conversion
	* implemended lv2 feature AgsLv2UridManager
	* improved AgsLadspaPlugin, AgsDssiPlugin and AgsLv2Plugin to relay on conversion objects
	* removed JACK server functions because of duplicated symbols
	* fixed integer support of plugins in ags_line_member.c and ags_bulk_member.c
	* fixed editing notation especially ags_notation_add_note() that was broken

ags (0.7.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed lv2 event buffer functions
	* fixed wrong property mapping in ags_recall_lv2.c
	* implemented ags_lv2_uri_map_manager.c
	* implemented ags_lv2_log_manager.c
	* implemented ags_lv2_worker_manager.c
	* implemented ags_lv2_event_manager.c
	* implemented ::find-port in ags_machine.c, ags_pad.c ags_line.c, ags_line_member.c, ags_effect_bridge.c, ags_effect_bulk.c, ags_bulk_member.c, ags_effect_pad.c and ags_effect_line.c
	* refactored ags_machine_set_audio_channels() to ags_machine_set_audio_channels_callback() and added ags_machine_resize_audio_channels() in order to have a straight forward API
	* refactored ags_machine_set_pads() to ags_machine_set_pads_callback() and added ags_machine_resize_pads() in order to have a straight forward API
	* implemented XML IO of ags_effect_bridge.c and related
	* implemented XML IO of ags_automation_window.c and related
	* added AgsConversion prototype

ags (0.7.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed XML IO
	* implemented ags_route_lv2_audio.c and ags_route_lv2_audio_run.c

ags (0.7.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed Lv2 XPath and thus refactored code
	* implemented ags_base_plugin.c, ags_ladpsa_plugin.c, ags_dssi_plugin.c and ags_lv2_plugin.c to reduce over-head
	* implemented contextual XPath lookup in ags_turtle.c
	* refactored ags_recall_ladspa{,_run}.c, ags_recall_dssi{,_run}.c and ags_recall_lv2{,_run}.c to use the new plugins API
	* refactored ags_effect_bulk.c, ags_effect_line.c and ags_line.c to use the new plugins API
	* added ags_string_util.c

ags (0.7.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed DSSI support

ags (0.7.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* forwarded changes since 0.6.18
	* fixed dead-lock, initial run of thread won't skipped anymore
	* migrated lv2 related XPath queries to new DTD
	* implemented adding dssi plugin to effect bulk within the effect bridge
	* implemented effect bridge menus of ladspa, dssi and lv2
	* implemented ags_thread_clock() as signal
	* implemented ags_dssi_bridge.c

ags (0.7.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved AgsMidiDialog
	* implemented many properties get and set functionality
	* implemented JACK support
	* refactored ags_turtle.c
	* added AgsFunction prototype

ags (0.7.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags_midi_file.c
	* implemented ags-route-dssi recall to route MIDI events to DSSI
	* implemented ags_midi_dialog{,_callbacks}.[ch] to select MIDI input device
	* fixed some of the API Documentation

ags (0.7.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added AgsComplex boxed type
	* added skelletons to interface with JACK
	* implemented DSSI support
	* added AgsMidiBuilder prototype
	* improved AgsMachineSelector

ags (0.7.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* refactored renaming AgsRecyclingContainer to AgsRecyclingContext
	* refactored implenting AgsApplicationContext to superseed AgsMain
	* implemented providing library support

ags (0.6.56)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed do proper unlink channel as destroying it

ags (0.6.55)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed don't do pthread_yield() at the end of last tic per cycle
	* fixed removed struct in struct of AgsThread
	* fixed ags_config_get() non-static mutex with static initializer

ags (0.6.54)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed optimal through-put strategy to achieve better performance, by skipping very first cycle's nanosleep() call

ags (0.6.53)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed distortion because of false recycling context allocation
	* fixed restore from XML removed inverted audio channel

ags (0.6.52)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing call to gdk_threads_enter() and gdk_threads_leave() in main.c

ags (0.6.51)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed NULL pointer access during main() by waiting gui thread to be started
	* fixed two race-conditions by editing ags_thread_pool.c

ags (0.6.50)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* grained timing in ags_thread_clock()
	* fixed dead-lock during initial thread run of AgsAsyncQueue see ags_task_thread.c and ags_thread-posix.c

ags (0.6.49)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed find child recall in ags_play_notation_audio_run.c

ags (0.6.48)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong parameter to nanosleep() in ags_thread_real_clock()

ags (0.6.47)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* definitely-fixed wrong parameter to nanosleep() in ags_thread_real_clock()
	* fixed data-race in ::tact callback of AgsDrum and AgsMatrix and possible NULL pointer access

ags (0.6.46)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong parameter to nanosleep() in ags_thread_real_clock()

ags (0.6.45)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed recently introduced bug that caused AgsMixer to be muted

ags (0.6.44)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed call to nanosleep() to use correct tact information

ags (0.6.43)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed seeking playable after read in order to work with libsndfile
	* fixed usage of gdk_threads_enter() and gdk_threads_leave() because some were missing

ags (0.6.42)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved performance by optimizing computing time

ags (0.6.41)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed proper restore of GtkVScale digits
	* fixed proper restore of edit button of AgsDrum

ags (0.6.40)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory leak in ags_generic_preferences.c but wasn't that bad
	* fixed using prefered gtk_main_iteration_do() what gives you better program stability

ags (0.6.39)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed stack-corruption caused by integer overflow while doing variable typo

ags (0.6.38)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* work-around dead-lock as doing ipatch_file_identify_open() from different threads

ags (0.6.37)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing GMainContext acquire in ags_gui_thread.c
	* fixed NULL pointer accessing by moving code
	* fixed buffer-overflow because of swapped indices in ags_recycling.c

ags (0.6.36)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed introduced bug in ags_ffplayer.c because of missing mapping recalls

ags (0.6.35)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed SIGINT while accessing recycling_container being NULL in ags_channel_init_recall()

ags (0.6.34)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed wrong acquisition of AgsAudioSignal in ags_recall_recycling.c

ags (0.6.33)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restore of AgsFFPlayer
	* implemented AgsStartReadFile task
	* modified startup of thread and file launch as reading from files

ags (0.6.32)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing offset of loop audio data with lower frame count

ags (0.6.31)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed loop audio data with lower frame count than buffer size
	* fixed memory corruption with freed list in ags_notation_cut_selection()
	* fixed toggling toolbar editing tool after restoring from XML file
	* work-around deleting GList notes of AgsNotation

ags (0.6.30)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsFFPlayer loading Soundfont2

ags (0.6.29)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dead-lock while selecting notes within note edit
	* fixed integer-overflow in ags_delay_audio_run_notation_alloc_output(), ags_delay_audio_run_notation_alloc_input() and ags_delay_audio_run_notation_count()
	* fixed wrong-lock order in ags_play_notation_audio_run.c
	* fixed buffer-overflow in ags_audio_signal_create_audio_signal_with_frame_count()

ags (0.6.28)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed non-atomic access to atomic flags of AgsThread in ags_start_devout.c
	* reverted ags_gui_thread_run() functionality
	* fixed initial value of LADSPA plugin as reading from file

ags (0.6.27)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* work-around in ags_notation_remove_note_at_position() to fix memory corruption

ags (0.6.26)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed NULL pointer during key editing in editor
	* fixed race conditions in pattern and note edit
	* fixed missing reset link in ags_notation_add_note()
	* fixed access to invalidated pointer in ags_notation_remove_note_at_position()

ags (0.6.25)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_thread_find_type() and ::run of all thread implementations to be safer
	* fixed dead-lock while pasting notes that caused application to crash

ags (0.6.24)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dead-lock while open XML files
	* fixed misconfigured port

ags (0.6.23)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed REVERSE_TAB to escape focus of AgsDial by forward control keys
	* fixed _File mnemonic in menubar

ags (0.6.22)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed relative path to gsequencer while applying properties

ags (0.6.21)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed restoring and allocation of AgsLineMember dimensions
	* fixed SIGINT while reading XML files including AgsRecallLadspa

ags (0.6.20)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed unrolled functions to have correct stop
	* fixed selection in ags_pattern_edit_callbacks.c and ags_note_edit_callbacks.c because it used wrong context
	* fixed ags_recall_real_cancel() because children field might have changed

ags (0.6.19)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed accessing NULL pointer in ags_synth.c
	* fixed accessing NULL pointer in ags_ipatch.c
	* fixed accessing NULL pointer in ags_ffplayer_callbacks.c
	* fixed missing lock of mutex in ags_playable.c

ags (0.6.18)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed volatile thread tree accessors
	* refactored by removing AgsAudioLoop fields and replacing with ags_thread_find_type()
	* work-around for resetting link and causing crash

ags (0.6.17)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* enrolled built-in functions

ags (0.6.16)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed refactored code of ags_channel.c because of bugs

ags (0.6.15)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash while unlink channel and then do playback because recycling wasn't updated properly
	* fixed dead-lock while muting pad
	* enhaced AgsMachineEditor to be thread-safe
	* modified ags_audio_loop.c and ags_gui_thread.c to process in parallel

ags (0.6.14)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed NULL pointer in ags_line.c as accessing mutex manager
	* fixed NULL pointer in ags_drum_output_line.c as accessing machine while setting channel

ags (0.6.13)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added even more mutices to guarantee thread-safety

ags (0.6.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added more mutices to guarantee thread-safety

ags (0.6.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed race condition caused as stopping the engine ended in a dead-lock

ags (0.6.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed startup dead-lock
	* implemented ags_main_loop_get_tree_lock()

ags (0.6.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed missing notation due to refactoring of 0.6.8

ags (0.6.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed super-threaded scope audio and channel to be thread-safe
	* refactored ags_audio_set_audio_channels() and ags_audio_set_pads()
	* improved ags_channel_set_recycling() to instantiate AgsRecallID
	* enhanced super-threaded scope recycling but is probably not yet ready
	* enhanced ags_recycling.c to use mutices in view of super-threaded computing
	* enhanced ags_audio.c and ags_channel.c the use of mutices

ags (0.6.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash related to XML IO of AgsFileLink
	* implemented ags-envelope recall but it's not tested, yet

ags (0.6.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed modified default thread model in ags_config.c what caused certain crashes without ECC
	* extended AgsFileLink with field audio_channel see next
	* improved link editor file chooser to let you select audio channel

ags (0.6.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_pad_play() to contain cancel code instead of playing again on toggle
	* modified default thread model in ags_config.c what caused certain crashes without ECC
	* implemented loading GTKRC from $(HOME)/.gsequencer/ags.rc

ags (0.6.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed audible feedback of note edit to play actual length of note
	* fixed not connected line member
	* fixed missing value_changed event in ags_dial.c
	* removed built-in styles

ags (0.6.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed to shrink of notes by keyboard to enable initial size
	* improved user's manual docbook XML documentation
	* implemented AtkAction interface in ags_dial.c and key-bindings

ags (0.6.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed buffer attack in ags_buffer_audio_signal_run_inter()
	* fixed NULL link within link editor to be shown correctly
	* fixed playback of linked input
	* implemented file link in link editor
	* implemented audible feedback of AgsPatternBox, AgsCellPattern, AgsPatternEdit and AgsNoteEdit

ags (0.6.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash while clicking AgsPatternBox pad
	* fixed toggling all selected pads of AgsPatternBox pattern
	* enhanced prelight of focused AgsPatternBox pad

ags (0.6.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* Implemented basic accessibility thus refactored AgsDrum and AgsMatrix. Further enhanced AgsPatternEdit and AgsNoteEdit.

ags (0.5.12)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags_channel_set_link() and ags_channel_set_recycling()
	* fixed unlink while ags_audio_set_pads() and ags_audio_set_audio_channels()

ags (0.5.11)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed time calculation using absolute position for AgsExportWindow and AgsNavigation
	* fixed fundamental timing issue which caused the engine to be delayed

ags (0.5.10)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed grained control range
	* fixed more precise time calculation
	* fixed AgsDial wrong arithmetic expression
	* fixed time calculation
	* fixed crash while open unsupported files
	* implemented AgsAsyncQueue interface in ags_task_thread.c to avoid race-conditions
	* fixed AgsDrumInputPad playback

ags (0.5.9)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed cliped LADSPA data

ags (0.5.8)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed auto-scroll
	* fixed time calculation
	* fixed copy & paste
	* fixed ruler
	* fixed crash during extensive scrolling
	* fixed export duration and difference to playback time

ags (0.5.7)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash during unavailable audio file
	* fixed buffer size preference for thread frequencies

ags (0.5.6)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory leaks related to GValue in recalls
	* fixed memory leaks in ags_display_tact_launch() as well for ags_toggle_led_launch() and in some GUI callbacks of them
	* fixed memory leak AgsReturnableThread to clean disconnect handler
	* fixed thread frequencies and delays
	* implemented code alter macro AGS_USE_TIMER

ags (0.5.5)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* enhanced thread-safety
	* fixed ags.conf per file base
	* reducing thread-cycles per second in order to target performance problems
	* fixed allocation of ags-buffer

ags (0.5.4)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented ags.conf per file base
	* cleaned-up recalls allocation

ags (0.5.3)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed export duration
	* fixed improved AgsDial
	* fixed dead-lock for to many calls to AgsChannelThread

ags (0.5.2)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed memory leaks accessing AgsConfig
	* fixed dead-lock while stop playback
	* improved drawing of animations

ags (0.5.1)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed ags.xsl removed wrong division, note use segmentation to adjust appropriate playback rate
	* fixed file open dialog callback
	* fxied calculate time by segmentation
	* fixed pattern mode hint for notation
	* fixed reading bpm setting from ags.xsl generated files

ags (0.5.0)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemnted first super-threaded context for AgsAudio and AgsChannel
	* fixed replace deprecated GtkFileSelector for opening files

ags (0.4.2.92)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed crash while hot-link matrix and synth with multi-output
	* implemnted segmentation

ags (0.4.2.91)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed multiple occurence of recalls
	* fixed potential infinite loop while reset recall ids
	* migrated away from hide references to recall id status
	* fixed proper unlink as adjusting channels
	* fixed allocation of ags-buffer
	* fixed selective creation of recalls in ags_recall_recycling.c
	* fixed remap of recycling recalls for available destination in ags_recall_channel_run.c
	* minor bug-fixes
	* note speed may differ for now

ags (0.4.2.90)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed led in sequencers
	* fixed missing mutex in matrix tact callback
	* fixed cut to nowhere
	* fixed ags.xsl notation translate
	* fixed redraw of piano
	* fixed redraw of matrix
	* fixed deny output pads to be resize for mixer

ags (0.4.2.89)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed bug in ags_recall_channel_run.c that caused destination not being mapped

ags (0.4.2.88)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* improved auto-scroll to be loop aware

ags (0.4.2.87)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed auto-scroll

ags (0.4.2.86)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed version string from autoconf
	* fixed chrash during removing not existing machine selector
	* added experimental auto-scroll capabilities

ags (0.4.2.85)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed allocation of piano
	* fixed grained mutices for accessing notation
	* fixed cursor in edit widgets

ags (0.4.2.84)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed dialog owned by machines to destroy
	* fixed make machine selection dialog modal

ags (0.4.2.83)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed playback within AgsDrumInputPad
	* fixed thread-safety of editor with AgsMutexManager
	* hided playback button of AgsDrumInputPad open dialog
	* fixed spin button in AgsDrumInputPad open dialog

ags (0.4.2.82)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed default device as reading XML files
	* fixed floor to round in XSL for reading MIDI notes
	* fixed unlink AgsAudio on remove
	* fixed termination of sequencer in ags_machine_play_callback()
	* fixed crash during channel resize if not shown in editor, hide widgets instead of remove
	* fixed destroying of machines removing editor widget
	* fixed paste notes
	* added flag to AgsDevout to fix unavailable soundcard

ags (0.4.2.81)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* removed useless controls add/remove in machine property editor
	* fixed navigation duration
	* fixed seeking
	* fixed crash according not properbly cleaning up after playing

ags (0.4.2.80)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed renaming
	* fixed audio channel bug in notation recall

ags (0.4.2.79)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* renamed binary and project
	* added missing copyright notice

ags (0.4.2-78)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented distinct between sequencer and notation loop
	* fixed unnecessary return if notation reaches notation-loop-end
	* fixed selection for pattern and notation editor
	* refactored fix auto-scroll
	* added exclude sequencer for export dialog

ags (0.4.2-77)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed possible NULL pointer in ags_play_notation.c
	* fixed editor crash and missing notebook
	* implemented AGS_AUDIO_REVERSE_MAPPING flag, it indicates channel mapping should be interpreted in reverse order
	* implemented invert tool for notation editor

ags (0.4.2-76)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed boundary for matrix clipboard
	* fixed paste to mono or different audio allocation
	* fixed piano shift to correct direction
	* fixed reset vscrollbar in editor widgets
	* refactored ags_editor.c
	* fixed already selected machines in editor not to add again
	* fixed audio channel resize for mono machines, disabled it in machine properties dialog
	* enhanced LADSPA browser refresh

ags (0.4.2-75)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed deactivate led in AgsDrum and AgsMatrix
	* fixed multi-output
	* fixed adjusting audio channels for tabs of editor
	* implemented shift piano thereby fixed piano allocation

ags (0.4.2-74)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* fixed AgsPatternEdit focus, selection, coloring of selected notes and a crash related to wrong function call
	* added exclusion for sequencers by using "exclude sequencers" checkbutton in navigation
	* added copy & paste pattern context menu items to drum and matrix
	* fixed AgsMatrix input
	* fixed NULL pointer error in ags_count_beats_audio_run.c

ags (0.4.2-73)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* back-ported AgsPatternEdit
	* implemented basic editing key strokes like Ctrl-c, Ctrl-v and Ctrl-x for AgsPatternEdit

ags (0.4.2-72)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* implemented basic editing key strokes like Ctrl-c, Ctrl-v and Ctrl-x
	* implemented seeking for paste if position tool is selected
	* updated clipboard version to 0.4.2

ags (0.4.2-71)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* commented-out two unimplemented menu entries in editor's machine selector. Add and remove tab you may do so by using resize tab of machine properties dialog.
	* implemented select-all in editor
	* fixed multi-channel editing mode
	* fixed refresh of GUI after cut or paste
	* fixed crash related to XML IO

ags (0.4.2-70)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* minor bug-fixes

ags (0.4.2-69)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added XSL file to transform output of `midi2xml` using `xsltproc`

ags (0.4.2-68)

	[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
	* added `midi2xml` the MIDI file to XML parser


Copyright (C) 2005-2021 Joël Krähemann

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
