[SCM] gsequencer/upstream: audio layer refactored

jkraehemann-guest at users.alioth.debian.org jkraehemann-guest at users.alioth.debian.org
Sun Jun 14 16:06:54 UTC 2015


The following commit has been merged in the upstream branch:
commit cae43097624e447e3408d347107010182abbc180
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Mon Apr 6 22:33:24 2015 +0000

    audio layer refactored

diff --git a/.deps/libags_audio_a-ags_apply_bpm.Po b/.deps/libags_audio_a-ags_apply_bpm.Po
index caf60da..a95e7d4 100644
--- a/.deps/libags_audio_a-ags_apply_bpm.Po
+++ b/.deps/libags_audio_a-ags_apply_bpm.Po
@@ -162,6 +162,8 @@ libags_audio_a-ags_apply_bpm.o: src/ags/audio/task/recall/ags_apply_bpm.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1084,6 +1086,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_apply_sequencer_length.Po b/.deps/libags_audio_a-ags_apply_sequencer_length.Po
index 4893631..c4d5e3d 100644
--- a/.deps/libags_audio_a-ags_apply_sequencer_length.Po
+++ b/.deps/libags_audio_a-ags_apply_sequencer_length.Po
@@ -164,6 +164,8 @@ libags_audio_a-ags_apply_sequencer_length.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1086,6 +1088,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_apply_tact.Po b/.deps/libags_audio_a-ags_apply_tact.Po
index 9fc104c..82d700d 100644
--- a/.deps/libags_audio_a-ags_apply_tact.Po
+++ b/.deps/libags_audio_a-ags_apply_tact.Po
@@ -162,6 +162,8 @@ libags_audio_a-ags_apply_tact.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1084,6 +1086,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_buffer_audio_signal.Po b/.deps/libags_audio_a-ags_buffer_audio_signal.Po
index bc21fe9..d40e8a3 100644
--- a/.deps/libags_audio_a-ags_buffer_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_buffer_audio_signal.Po
@@ -150,6 +150,26 @@ libags_audio_a-ags_buffer_audio_signal.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -571,31 +591,12 @@ libags_audio_a-ags_buffer_audio_signal.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_buffer_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags/audio/recall/ags_buffer_channel.h \
- src/ags/audio/ags_recall_channel.h src/ags/object/ags_config.h \
- src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_dynamic_connectable.h \
+ src/ags/audio/ags_recall_channel.h src/ags-lib/object/ags_connectable.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_soundcard.h \
  src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h
@@ -1062,6 +1063,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1984,50 +2037,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2042,12 +2051,12 @@ src/ags/audio/recall/ags_buffer_channel.h:
 
 src/ags/audio/ags_recall_channel.h:
 
-src/ags/object/ags_config.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/audio/ags_recall_channel_run.h:
 
 src/ags/audio/ags_recall_audio_run.h:
diff --git a/.deps/libags_audio_a-ags_buffer_channel.Po b/.deps/libags_audio_a-ags_buffer_channel.Po
index d3dcd53..d9df552 100644
--- a/.deps/libags_audio_a-ags_buffer_channel.Po
+++ b/.deps/libags_audio_a-ags_buffer_channel.Po
@@ -557,15 +557,7 @@ libags_audio_a-ags_buffer_channel.o: \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_mutable.h src/ags/audio/ags_devout.h \
  /usr/include/alsa/asoundlib.h /usr/include/string.h \
  /usr/include/bits/string.h /usr/include/bits/string2.h \
@@ -588,8 +580,16 @@ libags_audio_a-ags_buffer_channel.o: \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/object/ags_plugin.h
 
@@ -1905,38 +1905,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_mutable.h:
@@ -2031,10 +1999,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_buffer_channel_run.Po b/.deps/libags_audio_a-ags_buffer_channel_run.Po
index 0d67b88..0f75458 100644
--- a/.deps/libags_audio_a-ags_buffer_channel_run.Po
+++ b/.deps/libags_audio_a-ags_buffer_channel_run.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_buffer_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,24 +590,6 @@ libags_audio_a-ags_buffer_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -596,8 +598,6 @@ libags_audio_a-ags_buffer_channel_run.o: \
  src/ags/audio/recall/ags_buffer_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
  src/ags/audio/task/ags_cancel_recall.h
 
@@ -1063,6 +1063,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1985,50 +2037,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2053,14 +2061,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_buffer_recycling.Po b/.deps/libags_audio_a-ags_buffer_recycling.Po
index 7f4ac77..d04e060 100644
--- a/.deps/libags_audio_a-ags_buffer_recycling.Po
+++ b/.deps/libags_audio_a-ags_buffer_recycling.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_buffer_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,29 +589,9 @@ libags_audio_a-ags_buffer_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_buffer_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/task/ags_remove_audio_signal.h
@@ -1058,6 +1058,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1980,50 +2032,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2036,14 +2044,6 @@ src/ags/audio/ags_recall_audio_signal.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
diff --git a/.deps/libags_audio_a-ags_clone_channel.Po b/.deps/libags_audio_a-ags_clone_channel.Po
index 7011cd8..ca7fb0d 100644
--- a/.deps/libags_audio_a-ags_clone_channel.Po
+++ b/.deps/libags_audio_a-ags_clone_channel.Po
@@ -143,6 +143,26 @@ libags_audio_a-ags_clone_channel.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -568,28 +588,10 @@ libags_audio_a-ags_clone_channel.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_channel.h \
  src/ags-lib/object/ags_connectable.h src/ags/object/ags_plugin.h \
- src/ags/file/ags_file.h src/ags/audio/ags_audio.h
+ src/ags/audio/ags_audio.h
 
 /usr/include/stdc-predef.h:
 
@@ -1035,6 +1037,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1973,50 +2027,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2029,6 +2039,4 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
-src/ags/file/ags_file.h:
-
 src/ags/audio/ags_audio.h:
diff --git a/.deps/libags_audio_a-ags_clone_channel_run.Po b/.deps/libags_audio_a-ags_clone_channel_run.Po
index 33de6a5..6188996 100644
--- a/.deps/libags_audio_a-ags_clone_channel_run.Po
+++ b/.deps/libags_audio_a-ags_clone_channel_run.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_clone_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,31 +589,13 @@ libags_audio_a-ags_clone_channel_run.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h src/ags/audio/ags_recall_channel.h \
  src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
- src/ags/file/ags_file.h src/ags/audio/ags_recall_container.h \
+ src/ags/audio/ags_recall_container.h \
  src/ags/audio/task/ags_cancel_recall.h \
  src/ags/audio/recall/ags_clone_channel.h
 
@@ -1041,6 +1043,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1979,50 +2033,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2045,8 +2055,6 @@ src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
-src/ags/file/ags_file.h:
-
 src/ags/audio/ags_recall_container.h:
 
 src/ags/audio/task/ags_cancel_recall.h:
diff --git a/.deps/libags_audio_a-ags_copy_audio_signal.Po b/.deps/libags_audio_a-ags_copy_audio_signal.Po
index 4db48dd..14e55f4 100644
--- a/.deps/libags_audio_a-ags_copy_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_copy_audio_signal.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_copy_audio_signal.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,29 +590,9 @@ libags_audio_a-ags_copy_audio_signal.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/object/ags_dynamic_connectable.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_soundcard.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
@@ -1060,6 +1060,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1982,50 +2034,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2034,18 +2042,10 @@ src/ags/audio/ags_note.h:
 
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/main.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/audio/ags_recall_channel.h:
 
 src/ags/audio/ags_recall_channel_run.h:
diff --git a/.deps/libags_audio_a-ags_copy_channel.Po b/.deps/libags_audio_a-ags_copy_channel.Po
index e668fd3..e47dd22 100644
--- a/.deps/libags_audio_a-ags_copy_channel.Po
+++ b/.deps/libags_audio_a-ags_copy_channel.Po
@@ -557,15 +557,7 @@ libags_audio_a-ags_copy_channel.o: \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_mutable.h src/ags/audio/ags_devout.h \
  /usr/include/alsa/asoundlib.h /usr/include/string.h \
  /usr/include/bits/string.h /usr/include/bits/string2.h \
@@ -588,8 +580,16 @@ libags_audio_a-ags_copy_channel.o: \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/object/ags_plugin.h
 
@@ -1905,38 +1905,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_mutable.h:
@@ -2031,10 +1999,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_copy_channel_run.Po b/.deps/libags_audio_a-ags_copy_channel_run.Po
index 2433514..41a59c0 100644
--- a/.deps/libags_audio_a-ags_copy_channel_run.Po
+++ b/.deps/libags_audio_a-ags_copy_channel_run.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_copy_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_copy_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -594,8 +596,6 @@ libags_audio_a-ags_copy_channel_run.o: \
  src/ags/audio/recall/ags_copy_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -1060,6 +1060,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1982,50 +2034,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2048,14 +2056,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_copy_notation_audio.Po b/.deps/libags_audio_a-ags_copy_notation_audio.Po
index ace09da..bbe1643 100644
--- a/.deps/libags_audio_a-ags_copy_notation_audio.Po
+++ b/.deps/libags_audio_a-ags_copy_notation_audio.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_copy_notation_audio.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_copy_notation_audio.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h
@@ -1035,6 +1037,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1973,50 +2027,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_copy_notation_audio_run.Po b/.deps/libags_audio_a-ags_copy_notation_audio_run.Po
index 3b64ad4..69347b6 100644
--- a/.deps/libags_audio_a-ags_copy_notation_audio_run.Po
+++ b/.deps/libags_audio_a-ags_copy_notation_audio_run.Po
@@ -594,7 +594,9 @@ libags_audio_a-ags_copy_notation_audio_run.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h
 
 /usr/include/stdc-predef.h:
@@ -2041,6 +2043,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_copy_pattern_audio.Po b/.deps/libags_audio_a-ags_copy_pattern_audio.Po
index dd3fa39..67b44c9 100644
--- a/.deps/libags_audio_a-ags_copy_pattern_audio.Po
+++ b/.deps/libags_audio_a-ags_copy_pattern_audio.Po
@@ -586,7 +586,9 @@ libags_audio_a-ags_copy_pattern_audio.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/recall/ags_copy_pattern_audio_run.h \
  src/ags/audio/ags_recall_audio_run.h \
@@ -596,8 +598,6 @@ libags_audio_a-ags_copy_pattern_audio.o: \
  src/ags/audio/ags_recall_channel.h src/ags/audio/ags_pattern.h \
  src/ags/audio/recall/ags_copy_pattern_channel_run.h \
  src/ags/audio/ags_recall_channel_run.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -2030,6 +2030,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2056,12 +2064,4 @@ src/ags/audio/ags_recall_channel_run.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_copy_pattern_audio_run.Po b/.deps/libags_audio_a-ags_copy_pattern_audio_run.Po
index bdd4fbb..a212348 100644
--- a/.deps/libags_audio_a-ags_copy_pattern_audio_run.Po
+++ b/.deps/libags_audio_a-ags_copy_pattern_audio_run.Po
@@ -591,11 +591,11 @@ libags_audio_a-ags_copy_pattern_audio_run.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/util/ags_id_generator.h src/ags/object/ags_dynamic_connectable.h \
  src/ags/object/ags_plugin.h src/ags/file/ags_file_stock.h \
  src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
@@ -2042,6 +2042,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2052,14 +2060,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/util/ags_id_generator.h:
 
 src/ags/object/ags_dynamic_connectable.h:
diff --git a/.deps/libags_audio_a-ags_copy_pattern_channel.Po b/.deps/libags_audio_a-ags_copy_pattern_channel.Po
index bf38b5c..2c3526a 100644
--- a/.deps/libags_audio_a-ags_copy_pattern_channel.Po
+++ b/.deps/libags_audio_a-ags_copy_pattern_channel.Po
@@ -590,7 +590,9 @@ libags_audio_a-ags_copy_pattern_channel.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/recall/ags_copy_pattern_audio_run.h \
  src/ags/audio/ags_recall_audio_run.h \
@@ -598,8 +600,6 @@ libags_audio_a-ags_copy_pattern_channel.o: \
  src/ags/audio/recall/ags_delay_audio_run.h \
  src/ags/audio/recall/ags_copy_pattern_channel_run.h \
  src/ags/audio/ags_recall_channel_run.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -2038,6 +2038,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2058,12 +2066,4 @@ src/ags/audio/ags_recall_channel_run.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_copy_pattern_channel_run.Po b/.deps/libags_audio_a-ags_copy_pattern_channel_run.Po
index 44edd8c..66a4f0e 100644
--- a/.deps/libags_audio_a-ags_copy_pattern_channel_run.Po
+++ b/.deps/libags_audio_a-ags_copy_pattern_channel_run.Po
@@ -150,6 +150,26 @@ libags_audio_a-ags_copy_pattern_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -571,32 +591,12 @@ libags_audio_a-ags_copy_pattern_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
  src/ags/audio/ags_recall_channel.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/object/ags_dynamic_connectable.h \
- src/ags/object/ags_plugin.h src/ags/audio/ags_recall_container.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
+ src/ags/audio/ags_recall_container.h \
  src/ags/audio/recall/ags_copy_pattern_audio.h \
  src/ags/audio/recall/ags_copy_pattern_audio_run.h \
  src/ags/audio/recall/ags_count_beats_audio_run.h \
@@ -1066,6 +1066,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1988,50 +2040,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2048,16 +2056,6 @@ src/ags/audio/ags_recall_channel.h:
 
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/main.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_copy_recycling.Po b/.deps/libags_audio_a-ags_copy_recycling.Po
index b5ae941..2e172e5 100644
--- a/.deps/libags_audio_a-ags_copy_recycling.Po
+++ b/.deps/libags_audio_a-ags_copy_recycling.Po
@@ -147,6 +147,26 @@ libags_audio_a-ags_copy_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -568,29 +588,9 @@ libags_audio_a-ags_copy_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/recall/ags_copy_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h
@@ -1055,6 +1055,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1977,50 +2029,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2033,14 +2041,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/audio/recall/ags_copy_audio_signal.h:
diff --git a/.deps/libags_audio_a-ags_count_beats_audio.Po b/.deps/libags_audio_a-ags_count_beats_audio.Po
index 7b0d205..b77ee1b 100644
--- a/.deps/libags_audio_a-ags_count_beats_audio.Po
+++ b/.deps/libags_audio_a-ags_count_beats_audio.Po
@@ -560,15 +560,7 @@ libags_audio_a-ags_count_beats_audio.o: \
  src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/recall/ags_delay_audio_run.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_tactable.h src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -1889,38 +1881,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_tactable.h:
diff --git a/.deps/libags_audio_a-ags_count_beats_audio_run.Po b/.deps/libags_audio_a-ags_count_beats_audio_run.Po
index 7adcac4..a3468ad 100644
--- a/.deps/libags_audio_a-ags_count_beats_audio_run.Po
+++ b/.deps/libags_audio_a-ags_count_beats_audio_run.Po
@@ -562,14 +562,6 @@ libags_audio_a-ags_count_beats_audio_run.o: \
  src/ags/audio/recall/ags_count_beats_audio.h \
  src/ags/util/ags_id_generator.h src/ags/object/ags_application_context.h \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_async_queue.h \
- /usr/include/linux/futex.h /usr/include/linux/types.h \
- /usr/include/asm/types.h /usr/include/asm-generic/types.h \
- /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
- /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
- /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
- /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
- /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_countable.h \
  src/ags/object/ags_seekable.h src/ags/object/ags_plugin.h \
@@ -602,8 +594,16 @@ libags_audio_a-ags_count_beats_audio_run.o: \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/recall/ags_stream_channel.h
@@ -1926,38 +1926,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags-lib/object/ags_connectable.h:
@@ -2086,10 +2054,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_delay_audio.Po b/.deps/libags_audio_a-ags_delay_audio.Po
index c8058ee..32469bf 100644
--- a/.deps/libags_audio_a-ags_delay_audio.Po
+++ b/.deps/libags_audio_a-ags_delay_audio.Po
@@ -556,18 +556,10 @@ libags_audio_a-ags_delay_audio.o: src/ags/audio/recall/ags_delay_audio.c \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/audio/recall/ags_delay_audio_run.h \
- src/ags/audio/ags_recall_audio_run.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
- src/ags/object/ags_tactable.h src/ags/object/ags_plugin.h \
+ src/ags/audio/ags_recall_audio_run.h src/ags/object/ags_tactable.h \
+ src/ags/object/ags_plugin.h src/ags/file/ags_file.h \
+ src/ags/object/ags_soundcard.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
  src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
  /usr/include/string.h /usr/include/bits/string.h \
  /usr/include/bits/string2.h /usr/include/fcntl.h \
@@ -589,8 +581,16 @@ libags_audio_a-ags_delay_audio.o: src/ags/audio/recall/ags_delay_audio.c \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h
 
 /usr/include/stdc-predef.h:
@@ -1901,51 +1901,19 @@ src/ags/audio/recall/ags_delay_audio_run.h:
 
 src/ags/audio/ags_recall_audio_run.h:
 
-src/ags/main.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
+src/ags/object/ags_tactable.h:
 
-/usr/include/asm-generic/posix_types.h:
+src/ags/object/ags_plugin.h:
 
-/usr/include/sys/time.h:
+src/ags/file/ags_file.h:
 
-src/ags/object/ags_stackable.h:
+src/ags/object/ags_soundcard.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_application_context.h:
 
-src/ags/object/ags_tactable.h:
+src/ags/lib/ags_log.h:
 
-src/ags/object/ags_plugin.h:
+src/ags/object/ags_config.h:
 
 src/ags/audio/ags_devout.h:
 
@@ -2037,10 +2005,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_delay_audio_run.Po b/.deps/libags_audio_a-ags_delay_audio_run.Po
index 8d415aa..c49f14f 100644
--- a/.deps/libags_audio_a-ags_delay_audio_run.Po
+++ b/.deps/libags_audio_a-ags_delay_audio_run.Po
@@ -557,48 +557,20 @@ libags_audio_a-ags_delay_audio_run.o: \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/audio/recall/ags_delay_audio.h \
- src/ags-lib/object/ags_connectable.h src/ags/main.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_marshal.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
+ src/ags/file/ags_file.h src/ags/object/ags_soundcard.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
- src/ags/object/ags_marshal.h src/ags/object/ags_dynamic_connectable.h \
- src/ags/object/ags_plugin.h src/ags/file/ags_file_stock.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file_stock.h \
  src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
  src/ags/widget/ags_indicator.h src/ags/widget/ags_hindicator.h \
  src/ags/widget/ags_waveform.h src/ags/widget/ags_dial.h \
  src/ags/widget/ags_cartesian.h src/ags/file/ags_file_id_ref.h \
- src/ags/file/ags_file_lookup.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/string.h \
- /usr/include/bits/string.h /usr/include/bits/string2.h \
- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
- /usr/include/bits/fcntl-linux.h /usr/include/bits/stat.h \
- /usr/include/assert.h /usr/include/sys/poll.h /usr/include/bits/poll.h \
- /usr/include/errno.h /usr/include/bits/errno.h \
- /usr/include/linux/errno.h /usr/include/asm/errno.h \
- /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
- /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_audio_loop.h \
- /usr/include/math.h /usr/include/bits/huge_val.h \
- /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
- /usr/include/bits/inf.h /usr/include/bits/nan.h \
- /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
- src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h
+ src/ags/file/ags_file_lookup.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h
 
 /usr/include/stdc-predef.h:
 
@@ -1910,53 +1882,21 @@ src/ags/audio/recall/ags_delay_audio.h:
 
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/main.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
+src/ags/object/ags_marshal.h:
 
-/usr/include/sys/time.h:
+src/ags/object/ags_dynamic_connectable.h:
 
-src/ags/object/ags_stackable.h:
+src/ags/object/ags_plugin.h:
 
 src/ags/file/ags_file.h:
 
-src/ags/object/ags_marshal.h:
+src/ags/object/ags_soundcard.h:
 
-src/ags/object/ags_dynamic_connectable.h:
+src/ags/object/ags_application_context.h:
 
-src/ags/object/ags_plugin.h:
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
 
 src/ags/file/ags_file_stock.h:
 
@@ -1978,78 +1918,6 @@ src/ags/file/ags_file_id_ref.h:
 
 src/ags/file/ags_file_lookup.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/string.h:
-
-/usr/include/bits/string.h:
-
-/usr/include/bits/string2.h:
-
-/usr/include/fcntl.h:
-
-/usr/include/bits/fcntl.h:
-
-/usr/include/bits/fcntl-linux.h:
-
-/usr/include/bits/stat.h:
-
-/usr/include/assert.h:
-
-/usr/include/sys/poll.h:
-
-/usr/include/bits/poll.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/alsa/asoundef.h:
-
-/usr/include/alsa/version.h:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.h:
-
-src/ags/thread/ags_audio_loop.h:
-
 /usr/include/math.h:
 
 /usr/include/bits/huge_val.h:
@@ -2067,13 +1935,3 @@ src/ags/thread/ags_audio_loop.h:
 /usr/include/bits/mathcalls.h:
 
 /usr/include/bits/mathinline.h:
-
-src/ags/thread/ags_task_thread.h:
-
-src/ags/thread/ags_thread_pool.h:
-
-src/ags/audio/ags_task.h:
-
-src/ags/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_loop_channel.Po b/.deps/libags_audio_a-ags_loop_channel.Po
index 7482715..51dc7f0 100644
--- a/.deps/libags_audio_a-ags_loop_channel.Po
+++ b/.deps/libags_audio_a-ags_loop_channel.Po
@@ -558,15 +558,7 @@ libags_audio_a-ags_loop_channel.o: \
  src/ags/audio/recall/ags_delay_audio.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/util/ags_id_generator.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_plugin.h src/ags/file/ags_file_stock.h \
  src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
@@ -1895,38 +1887,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/util/ags_id_generator.h:
diff --git a/.deps/libags_audio_a-ags_loop_channel_run.Po b/.deps/libags_audio_a-ags_loop_channel_run.Po
index 5c5d944..60bf2fe 100644
--- a/.deps/libags_audio_a-ags_loop_channel_run.Po
+++ b/.deps/libags_audio_a-ags_loop_channel_run.Po
@@ -585,18 +585,18 @@ libags_audio_a-ags_loop_channel_run.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h src/ags/audio/ags_recall_channel.h \
  src/ags/audio/recall/ags_count_beats_audio_run.h \
  src/ags/audio/recall/ags_delay_audio_run.h \
- src/ags/object/ags_dynamic_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/util/ags_id_generator.h src/ags/lib/ags_list.h \
- src/ags-lib/object/ags_connectable.h src/ags/object/ags_countable.h \
- src/ags/object/ags_plugin.h src/ags/file/ags_file_stock.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_soundcard.h \
+ src/ags/object/ags_countable.h src/ags/object/ags_plugin.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/file/ags_file_stock.h \
  src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
  src/ags/widget/ags_indicator.h src/ags/widget/ags_hindicator.h \
  src/ags/widget/ags_waveform.h src/ags/widget/ags_dial.h \
@@ -2032,6 +2032,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2050,28 +2058,20 @@ src/ags/audio/recall/ags_count_beats_audio_run.h:
 
 src/ags/audio/recall/ags_delay_audio_run.h:
 
-src/ags/object/ags_dynamic_connectable.h:
-
-src/ags/main.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/util/ags_id_generator.h:
 
 src/ags/lib/ags_list.h:
 
 src/ags-lib/object/ags_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/object/ags_countable.h:
 
 src/ags/object/ags_plugin.h:
 
+src/ags/object/ags_dynamic_connectable.h:
+
 src/ags/file/ags_file_stock.h:
 
 src/ags/widget/ags_led.h:
diff --git a/.deps/libags_audio_a-ags_mute_audio.Po b/.deps/libags_audio_a-ags_mute_audio.Po
index ba322c5..03213e2 100644
--- a/.deps/libags_audio_a-ags_mute_audio.Po
+++ b/.deps/libags_audio_a-ags_mute_audio.Po
@@ -556,15 +556,7 @@ libags_audio_a-ags_mute_audio.o: src/ags/audio/recall/ags_mute_audio.c \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags-lib/object/ags_connectable.h src/ags/object/ags_mutable.h \
  src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
  /usr/include/string.h /usr/include/bits/string.h \
@@ -587,8 +579,16 @@ libags_audio_a-ags_mute_audio.o: src/ags/audio/recall/ags_mute_audio.c \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/object/ags_plugin.h
 
@@ -1904,38 +1904,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags-lib/object/ags_connectable.h:
@@ -2032,10 +2000,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_mute_audio_signal.Po b/.deps/libags_audio_a-ags_mute_audio_signal.Po
index a1060da..248fec7 100644
--- a/.deps/libags_audio_a-ags_mute_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_mute_audio_signal.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_mute_audio_signal.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,32 +590,12 @@ libags_audio_a-ags_mute_audio_signal.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_mute_audio.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
  src/ags/audio/recall/ags_mute_channel.h \
  src/ags/audio/ags_recall_channel.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/object/ags_dynamic_connectable.h \
+ src/ags/main.h src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/ags_recall_container.h \
  src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h
@@ -1062,6 +1062,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1984,50 +2036,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2048,14 +2056,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/audio/ags_recall_container.h:
diff --git a/.deps/libags_audio_a-ags_mute_channel.Po b/.deps/libags_audio_a-ags_mute_channel.Po
index 125161e..9dae746 100644
--- a/.deps/libags_audio_a-ags_mute_channel.Po
+++ b/.deps/libags_audio_a-ags_mute_channel.Po
@@ -557,15 +557,7 @@ libags_audio_a-ags_mute_channel.o: \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_mutable.h src/ags/audio/ags_devout.h \
  /usr/include/alsa/asoundlib.h /usr/include/string.h \
  /usr/include/bits/string.h /usr/include/bits/string2.h \
@@ -588,8 +580,16 @@ libags_audio_a-ags_mute_channel.o: \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/object/ags_plugin.h
 
@@ -1905,38 +1905,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_mutable.h:
@@ -2031,10 +1999,42 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_mute_channel_run.Po b/.deps/libags_audio_a-ags_mute_channel_run.Po
index d2a5844..9c53241 100644
--- a/.deps/libags_audio_a-ags_mute_channel_run.Po
+++ b/.deps/libags_audio_a-ags_mute_channel_run.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_mute_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_mute_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -594,8 +596,6 @@ libags_audio_a-ags_mute_channel_run.o: \
  src/ags/audio/recall/ags_mute_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h
 
 /usr/include/stdc-predef.h:
@@ -1060,6 +1060,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1982,50 +2034,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2048,12 +2056,4 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
diff --git a/.deps/libags_audio_a-ags_mute_recycling.Po b/.deps/libags_audio_a-ags_mute_recycling.Po
index dbf112f..7ddb5ee 100644
--- a/.deps/libags_audio_a-ags_mute_recycling.Po
+++ b/.deps/libags_audio_a-ags_mute_recycling.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_mute_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,29 +589,9 @@ libags_audio_a-ags_mute_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/object/ags_dynamic_connectable.h \
+ src/ags/main.h src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/recall/ags_mute_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h
 
@@ -1057,6 +1057,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1979,50 +2031,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2033,14 +2041,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/audio/recall/ags_mute_audio_signal.h:
diff --git a/.deps/libags_audio_a-ags_open_file.Po b/.deps/libags_audio_a-ags_open_file.Po
index edd0dfa..1a2fdf6 100644
--- a/.deps/libags_audio_a-ags_open_file.Po
+++ b/.deps/libags_audio_a-ags_open_file.Po
@@ -554,42 +554,13 @@ libags_audio_a-ags_open_file.o: src/ags/audio/task/ags_open_file.c \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags-lib/object/ags_connectable.h src/ags/file/ags_file_link.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/string.h /usr/include/bits/string.h \
- /usr/include/bits/string2.h /usr/include/fcntl.h \
- /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
- /usr/include/bits/stat.h /usr/include/assert.h /usr/include/sys/poll.h \
- /usr/include/bits/poll.h /usr/include/errno.h /usr/include/bits/errno.h \
- /usr/include/linux/errno.h /usr/include/asm/errno.h \
- /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
- /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_audio_loop.h \
- /usr/include/math.h /usr/include/bits/huge_val.h \
- /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
- /usr/include/bits/inf.h /usr/include/bits/nan.h \
- /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
- /usr/include/linux/futex.h /usr/include/linux/types.h \
- /usr/include/asm/types.h /usr/include/asm-generic/types.h \
- /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
- /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
- /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
- /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
- /usr/include/sys/time.h src/ags/object/ags_stackable.h \
- src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_input.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_soundcard.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ src/ags/file/ags_file_link.h src/ags/audio/ags_input.h \
  /usr/include/glib-2.0/glib/gstdio.h /usr/include/glib-2.0/glib/gprintf.h \
- /usr/include/sys/stat.h src/ags/audio/file/ags_audio_file.h \
- src/ags/X/ags_machine.h
+ /usr/include/sys/stat.h /usr/include/bits/stat.h \
+ src/ags/audio/file/ags_audio_file.h src/ags/X/ags_machine.h
 
 /usr/include/stdc-predef.h:
 
@@ -1897,137 +1868,17 @@ src/ags/audio/ags_note.h:
 
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/file/ags_file_link.h:
-
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/string.h:
-
-/usr/include/bits/string.h:
-
-/usr/include/bits/string2.h:
-
-/usr/include/fcntl.h:
-
-/usr/include/bits/fcntl.h:
-
-/usr/include/bits/fcntl-linux.h:
-
-/usr/include/bits/stat.h:
-
-/usr/include/assert.h:
-
-/usr/include/sys/poll.h:
-
-/usr/include/bits/poll.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/alsa/asoundef.h:
-
-/usr/include/alsa/version.h:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/alsa/seq_event.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/alsa/seq.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/alsa/seqmid.h:
+src/ags/object/ags_config.h:
 
-/usr/include/alsa/seq_midi_event.h:
+src/ags/file/ags_file.h:
 
-src/ags/thread/ags_audio_loop.h:
-
-/usr/include/math.h:
-
-/usr/include/bits/huge_val.h:
-
-/usr/include/bits/huge_valf.h:
-
-/usr/include/bits/huge_vall.h:
-
-/usr/include/bits/inf.h:
-
-/usr/include/bits/nan.h:
-
-/usr/include/bits/mathdef.h:
-
-/usr/include/bits/mathcalls.h:
-
-/usr/include/bits/mathinline.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
-src/ags/thread/ags_task_thread.h:
-
-src/ags/thread/ags_thread_pool.h:
-
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
+src/ags/file/ags_file_link.h:
 
 src/ags/audio/ags_input.h:
 
@@ -2037,6 +1888,8 @@ src/ags/audio/ags_input.h:
 
 /usr/include/sys/stat.h:
 
+/usr/include/bits/stat.h:
+
 src/ags/audio/file/ags_audio_file.h:
 
 src/ags/X/ags_machine.h:
diff --git a/.deps/libags_audio_a-ags_open_single_file.Po b/.deps/libags_audio_a-ags_open_single_file.Po
index 6098a28..492c354 100644
--- a/.deps/libags_audio_a-ags_open_single_file.Po
+++ b/.deps/libags_audio_a-ags_open_single_file.Po
@@ -585,7 +585,9 @@ libags_audio_a-ags_open_single_file.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_devout_thread.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h \
  src/ags-lib/object/ags_connectable.h src/ags/file/ags_file_link.h \
  src/ags/audio/ags_audio.h src/ags/audio/file/ags_audio_file.h
@@ -2018,6 +2020,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_peak_channel.Po b/.deps/libags_audio_a-ags_peak_channel.Po
index f887824..797e635 100644
--- a/.deps/libags_audio_a-ags_peak_channel.Po
+++ b/.deps/libags_audio_a-ags_peak_channel.Po
@@ -555,14 +555,13 @@ libags_audio_a-ags_peak_channel.o: \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/object/ags_config.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_mutable.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/string.h \
- /usr/include/bits/string.h /usr/include/bits/string2.h \
- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
- /usr/include/bits/fcntl-linux.h /usr/include/bits/stat.h \
- /usr/include/assert.h /usr/include/sys/poll.h /usr/include/bits/poll.h \
- /usr/include/errno.h /usr/include/bits/errno.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_mutable.h \
+ src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
+ /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
+ /usr/include/bits/stat.h /usr/include/assert.h /usr/include/sys/poll.h \
+ /usr/include/bits/poll.h /usr/include/errno.h /usr/include/bits/errno.h \
  /usr/include/linux/errno.h /usr/include/asm/errno.h \
  /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
  /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
@@ -587,9 +586,11 @@ libags_audio_a-ags_peak_channel.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
- src/ags/object/ags_plugin.h src/ags/file/ags_file.h
+ src/ags/object/ags_plugin.h src/ags/object/ags_soundcard.h
 
 /usr/include/stdc-predef.h:
 
@@ -1893,8 +1894,6 @@ src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
-src/ags/object/ags_config.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_mutable.h:
@@ -2025,6 +2024,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2033,4 +2040,4 @@ src/ags/thread/ags_iterator_thread.h:
 
 src/ags/object/ags_plugin.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_soundcard.h:
diff --git a/.deps/libags_audio_a-ags_peak_channel_run.Po b/.deps/libags_audio_a-ags_peak_channel_run.Po
index 383bd63..ee18f0c 100644
--- a/.deps/libags_audio_a-ags_peak_channel_run.Po
+++ b/.deps/libags_audio_a-ags_peak_channel_run.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_peak_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,33 +589,12 @@ libags_audio_a-ags_peak_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
  src/ags/audio/ags_recall_channel.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/lib/ags_list.h \
- src/ags/lib/ags_parameter.h src/ags/object/ags_dynamic_connectable.h \
- src/ags/object/ags_plugin.h
+ src/ags/main.h src/ags/lib/ags_list.h src/ags/lib/ags_parameter.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
 
@@ -1059,6 +1058,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1981,50 +2032,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2043,14 +2050,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/lib/ags_list.h:
 
 src/ags/lib/ags_parameter.h:
diff --git a/.deps/libags_audio_a-ags_play_audio.Po b/.deps/libags_audio_a-ags_play_audio.Po
index b4209b2..b009134 100644
--- a/.deps/libags_audio_a-ags_play_audio.Po
+++ b/.deps/libags_audio_a-ags_play_audio.Po
@@ -556,15 +556,7 @@ libags_audio_a-ags_play_audio.o: src/ags/audio/recall/ags_play_audio.c \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h
+ src/ags/object/ags_config.h src/ags/file/ags_file.h
 
 /usr/include/stdc-predef.h:
 
@@ -1878,36 +1870,4 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
diff --git a/.deps/libags_audio_a-ags_play_audio_file.Po b/.deps/libags_audio_a-ags_play_audio_file.Po
index e7dca9d..f9a230c 100644
--- a/.deps/libags_audio_a-ags_play_audio_file.Po
+++ b/.deps/libags_audio_a-ags_play_audio_file.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_play_audio_file.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_play_audio_file.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h
 
@@ -1052,6 +1054,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1974,50 +2028,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_play_audio_signal.Po b/.deps/libags_audio_a-ags_play_audio_signal.Po
index 0772288..1f4c082 100644
--- a/.deps/libags_audio_a-ags_play_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_play_audio_signal.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_play_audio_signal.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,27 +590,9 @@ libags_audio_a-ags_play_audio_signal.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_dynamic_connectable.h \
+ src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_soundcard.h \
  src/ags/audio/ags_recall_container.h src/ags/audio/ags_recall_channel.h \
  src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
@@ -1061,6 +1063,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1983,50 +2037,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2037,6 +2047,8 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/audio/ags_recall_container.h:
 
 src/ags/audio/ags_recall_channel.h:
diff --git a/.deps/libags_audio_a-ags_play_channel.Po b/.deps/libags_audio_a-ags_play_channel.Po
index c24bc74..20aef17 100644
--- a/.deps/libags_audio_a-ags_play_channel.Po
+++ b/.deps/libags_audio_a-ags_play_channel.Po
@@ -585,11 +585,11 @@ libags_audio_a-ags_play_channel.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_mutable.h src/ags/object/ags_plugin.h \
  src/ags/audio/ags_audio.h
 
@@ -2021,6 +2021,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2031,14 +2039,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_mutable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_play_channel_run.Po b/.deps/libags_audio_a-ags_play_channel_run.Po
index bea49fb..d8b2b78 100644
--- a/.deps/libags_audio_a-ags_play_channel_run.Po
+++ b/.deps/libags_audio_a-ags_play_channel_run.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_play_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,35 +589,15 @@ libags_audio_a-ags_play_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/recall/ags_stream_channel_run.h \
  src/ags/audio/recall/ags_stream_channel.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
- src/ags/audio/ags_recall_container.h \
+ src/ags/object/ags_soundcard.h src/ags/audio/ags_recall_container.h \
  src/ags/audio/task/ags_cancel_recall.h \
  src/ags/audio/recall/ags_play_channel.h \
  src/ags/audio/recall/ags_play_recycling.h \
@@ -1070,6 +1070,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1992,50 +2044,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2054,20 +2062,14 @@ src/ags/audio/recall/ags_stream_channel_run.h:
 
 src/ags/audio/recall/ags_stream_channel.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/audio/ags_recall_container.h:
 
 src/ags/audio/task/ags_cancel_recall.h:
diff --git a/.deps/libags_audio_a-ags_play_channel_run_master.Po b/.deps/libags_audio_a-ags_play_channel_run_master.Po
index 3b1f440..789b89d 100644
--- a/.deps/libags_audio_a-ags_play_channel_run_master.Po
+++ b/.deps/libags_audio_a-ags_play_channel_run_master.Po
@@ -150,6 +150,26 @@ libags_audio_a-ags_play_channel_run_master.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -571,24 +591,6 @@ libags_audio_a-ags_play_channel_run_master.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -596,8 +598,6 @@ libags_audio_a-ags_play_channel_run_master.o: \
  src/ags/audio/recall/ags_stream_channel_run.h \
  src/ags/audio/recall/ags_stream_channel.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
  src/ags/audio/ags_recall_container.h \
  src/ags/audio/task/ags_cancel_recall.h \
@@ -1067,6 +1067,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1989,50 +2041,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2055,14 +2063,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_play_notation_audio.Po b/.deps/libags_audio_a-ags_play_notation_audio.Po
index b2bc341..6751b72 100644
--- a/.deps/libags_audio_a-ags_play_notation_audio.Po
+++ b/.deps/libags_audio_a-ags_play_notation_audio.Po
@@ -558,15 +558,7 @@ libags_audio_a-ags_play_notation_audio.o: \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -1881,38 +1873,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_play_notation_audio_run.Po b/.deps/libags_audio_a-ags_play_notation_audio_run.Po
index e04ea13..9701fc2 100644
--- a/.deps/libags_audio_a-ags_play_notation_audio_run.Po
+++ b/.deps/libags_audio_a-ags_play_notation_audio_run.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_play_notation_audio_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,40 +589,20 @@ libags_audio_a-ags_play_notation_audio_run.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_delay_audio_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h src/ags/audio/recall/ags_count_beats_audio.h \
  src/ags/audio/recall/ags_count_beats_audio_run.h \
  src/ags/audio/recall/ags_play_notation_audio.h \
- src/ags/util/ags_id_generator.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h \
+ src/ags/util/ags_id_generator.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
- src/ags/file/ags_file_stock.h src/ags/widget/ags_led.h \
- src/ags/widget/ags_vindicator.h src/ags/widget/ags_indicator.h \
- src/ags/widget/ags_hindicator.h src/ags/widget/ags_waveform.h \
- src/ags/widget/ags_dial.h src/ags/widget/ags_cartesian.h \
- src/ags/file/ags_file_id_ref.h src/ags/file/ags_file_lookup.h \
- src/ags/audio/ags_recall_container.h
+ src/ags/object/ags_soundcard.h src/ags/file/ags_file_stock.h \
+ src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
+ src/ags/widget/ags_indicator.h src/ags/widget/ags_hindicator.h \
+ src/ags/widget/ags_waveform.h src/ags/widget/ags_dial.h \
+ src/ags/widget/ags_cartesian.h src/ags/file/ags_file_id_ref.h \
+ src/ags/file/ags_file_lookup.h src/ags/audio/ags_recall_container.h
 
 /usr/include/stdc-predef.h:
 
@@ -1048,6 +1048,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1986,50 +2038,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2052,20 +2060,14 @@ src/ags/audio/recall/ags_play_notation_audio.h:
 
 src/ags/util/ags_id_generator.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/file/ags_file_stock.h:
 
 src/ags/widget/ags_led.h:
diff --git a/.deps/libags_audio_a-ags_play_note.Po b/.deps/libags_audio_a-ags_play_note.Po
index 5230db8..b1fb649 100644
--- a/.deps/libags_audio_a-ags_play_note.Po
+++ b/.deps/libags_audio_a-ags_play_note.Po
@@ -142,6 +142,26 @@ libags_audio_a-ags_play_note.o: src/ags/audio/recall/ags_play_note.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -567,24 +587,6 @@ libags_audio_a-ags_play_note.o: src/ags/audio/recall/ags_play_note.c \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h \
  src/ags/audio/recall/ags_play_notation_audio_run.h \
@@ -1039,6 +1041,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1977,50 +2031,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_play_pattern.Po b/.deps/libags_audio_a-ags_play_pattern.Po
index 071e93c..90cb30c 100644
--- a/.deps/libags_audio_a-ags_play_pattern.Po
+++ b/.deps/libags_audio_a-ags_play_pattern.Po
@@ -585,7 +585,9 @@ libags_audio_a-ags_play_pattern.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_audio.h src/ags/audio/task/ags_cancel_recall.h \
  src/ags/audio/recall/ags_play_channel.h \
@@ -2021,6 +2023,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_audio_a-ags_play_recycling.Po b/.deps/libags_audio_a-ags_play_recycling.Po
index d3e82fb..f9ee799 100644
--- a/.deps/libags_audio_a-ags_play_recycling.Po
+++ b/.deps/libags_audio_a-ags_play_recycling.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_play_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_play_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/audio/ags_audio.h \
@@ -1058,6 +1060,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1980,50 +2034,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_remove_audio.Po b/.deps/libags_audio_a-ags_remove_audio.Po
index 646c275..0c50a6c 100644
--- a/.deps/libags_audio_a-ags_remove_audio.Po
+++ b/.deps/libags_audio_a-ags_remove_audio.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_remove_audio.o: src/ags/audio/task/ags_remove_audio.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_remove_audio.o: src/ags/audio/task/ags_remove_audio.c \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_audio.h \
  src/ags-lib/object/ags_connectable.h
@@ -1037,6 +1039,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1973,50 +2027,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_remove_recall.Po b/.deps/libags_audio_a-ags_remove_recall.Po
index cc0a4bf..b5a2b5e 100644
--- a/.deps/libags_audio_a-ags_remove_recall.Po
+++ b/.deps/libags_audio_a-ags_remove_recall.Po
@@ -590,7 +590,9 @@ libags_audio_a-ags_remove_recall.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_devout_thread.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_recall_channel.h
 
 /usr/include/stdc-predef.h:
@@ -2033,6 +2035,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_set_audio_channels.Po b/.deps/libags_audio_a-ags_set_audio_channels.Po
index 157fc9e..73c38d2 100644
--- a/.deps/libags_audio_a-ags_set_audio_channels.Po
+++ b/.deps/libags_audio_a-ags_set_audio_channels.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_set_audio_channels.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,24 +589,6 @@ libags_audio_a-ags_set_audio_channels.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h
 
@@ -1036,6 +1038,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1972,50 +2026,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_set_buffer_size.Po b/.deps/libags_audio_a-ags_set_buffer_size.Po
index 62c42ac..81b251e 100644
--- a/.deps/libags_audio_a-ags_set_buffer_size.Po
+++ b/.deps/libags_audio_a-ags_set_buffer_size.Po
@@ -161,6 +161,8 @@ libags_audio_a-ags_set_buffer_size.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1081,6 +1083,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_set_devout_play_flags.Po b/.deps/libags_audio_a-ags_set_devout_play_flags.Po
index a098d4c..19bcd39 100644
--- a/.deps/libags_audio_a-ags_set_devout_play_flags.Po
+++ b/.deps/libags_audio_a-ags_set_devout_play_flags.Po
@@ -146,6 +146,26 @@ libags_audio_a-ags_set_devout_play_flags.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -571,24 +591,6 @@ libags_audio_a-ags_set_devout_play_flags.o: \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h
 
@@ -1038,6 +1040,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1974,50 +2028,6 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_set_muted.Po b/.deps/libags_audio_a-ags_set_muted.Po
index d524ef1..5ce7395 100644
--- a/.deps/libags_audio_a-ags_set_muted.Po
+++ b/.deps/libags_audio_a-ags_set_muted.Po
@@ -162,6 +162,8 @@ libags_audio_a-ags_set_muted.o: src/ags/audio/task/recall/ags_set_muted.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1084,6 +1086,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_set_output_device.Po b/.deps/libags_audio_a-ags_set_output_device.Po
index 10c98dd..1f68d80 100644
--- a/.deps/libags_audio_a-ags_set_output_device.Po
+++ b/.deps/libags_audio_a-ags_set_output_device.Po
@@ -161,6 +161,8 @@ libags_audio_a-ags_set_output_device.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1081,6 +1083,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_set_samplerate.Po b/.deps/libags_audio_a-ags_set_samplerate.Po
index 6e19a9f..9fd0f4d 100644
--- a/.deps/libags_audio_a-ags_set_samplerate.Po
+++ b/.deps/libags_audio_a-ags_set_samplerate.Po
@@ -161,6 +161,8 @@ libags_audio_a-ags_set_samplerate.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1081,6 +1083,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_start_devout.Po b/.deps/libags_audio_a-ags_start_devout.Po
index e391ab7..c31f4b1 100644
--- a/.deps/libags_audio_a-ags_start_devout.Po
+++ b/.deps/libags_audio_a-ags_start_devout.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_start_devout.o: src/ags/audio/task/ags_start_devout.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,28 +589,8 @@ libags_audio_a-ags_start_devout.o: src/ags/audio/task/ags_start_devout.c \
  src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
- src/ags/audio/ags_note.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h
+ src/ags/audio/ags_note.h src/ags-lib/object/ags_connectable.h
 
 /usr/include/stdc-predef.h:
 
@@ -1038,6 +1038,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1974,62 +2026,10 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags-lib/object/ags_connectable.h:
diff --git a/.deps/libags_audio_a-ags_stream.Po b/.deps/libags_audio_a-ags_stream.Po
index bc7adcf..811529f 100644
--- a/.deps/libags_audio_a-ags_stream.Po
+++ b/.deps/libags_audio_a-ags_stream.Po
@@ -147,6 +147,26 @@ libags_audio_a-ags_stream.o: src/ags/audio/recall/ags_stream.c \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -568,24 +588,6 @@ libags_audio_a-ags_stream.o: src/ags/audio/recall/ags_stream.c \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h
 
@@ -1049,6 +1051,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1971,50 +2025,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_stream_audio_signal.Po b/.deps/libags_audio_a-ags_stream_audio_signal.Po
index c14946b..3a31e24 100644
--- a/.deps/libags_audio_a-ags_stream_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_stream_audio_signal.Po
@@ -588,7 +588,9 @@ libags_audio_a-ags_stream_audio_signal.o: \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h src/ags/audio/recall/ags_stream_recycling.h \
@@ -596,8 +598,6 @@ libags_audio_a-ags_stream_audio_signal.o: \
  src/ags/audio/recall/ags_stream_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/task/ags_unref_audio_signal.h
 
@@ -2033,6 +2033,14 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -2057,14 +2065,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/audio/task/ags_unref_audio_signal.h:
diff --git a/.deps/libags_audio_a-ags_stream_channel.Po b/.deps/libags_audio_a-ags_stream_channel.Po
index 2d902dd..c822797 100644
--- a/.deps/libags_audio_a-ags_stream_channel.Po
+++ b/.deps/libags_audio_a-ags_stream_channel.Po
@@ -555,8 +555,10 @@ libags_audio_a-ags_stream_channel.o: \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/object/ags_config.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_plugin.h src/ags/file/ags_file.h
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_plugin.h \
+ src/ags/object/ags_soundcard.h
 
 /usr/include/stdc-predef.h:
 
@@ -1860,10 +1862,16 @@ src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
 src/ags/object/ags_config.h:
 
+src/ags/file/ags_file.h:
+
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_soundcard.h:
diff --git a/.deps/libags_audio_a-ags_stream_channel_run.Po b/.deps/libags_audio_a-ags_stream_channel_run.Po
index ef6ced1..6085980 100644
--- a/.deps/libags_audio_a-ags_stream_channel_run.Po
+++ b/.deps/libags_audio_a-ags_stream_channel_run.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_stream_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,24 +590,6 @@ libags_audio_a-ags_stream_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -596,8 +598,6 @@ libags_audio_a-ags_stream_channel_run.o: \
  src/ags/audio/recall/ags_stream_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
  src/ags/audio/task/ags_cancel_recall.h
 
@@ -1063,6 +1063,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1985,50 +2037,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2053,14 +2061,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_stream_recycling.Po b/.deps/libags_audio_a-ags_stream_recycling.Po
index c772d29..82bf182 100644
--- a/.deps/libags_audio_a-ags_stream_recycling.Po
+++ b/.deps/libags_audio_a-ags_stream_recycling.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_stream_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,29 +589,9 @@ libags_audio_a-ags_stream_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_stream_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/task/ags_remove_audio_signal.h
@@ -1058,6 +1058,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1980,50 +2032,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2036,14 +2044,6 @@ src/ags/audio/ags_recall_audio_signal.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
diff --git a/.deps/libags_audio_a-ags_volume_audio_signal.Po b/.deps/libags_audio_a-ags_volume_audio_signal.Po
index 0db5985..1cf9f61 100644
--- a/.deps/libags_audio_a-ags_volume_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_volume_audio_signal.Po
@@ -150,6 +150,26 @@ libags_audio_a-ags_volume_audio_signal.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -571,31 +591,11 @@ libags_audio_a-ags_volume_audio_signal.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_volume_channel.h \
  src/ags/audio/ags_recall_channel.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/lib/ags_list.h \
- src/ags/lib/ags_parameter.h src/ags/object/ags_dynamic_connectable.h \
+ src/ags/main.h src/ags/lib/ags_list.h src/ags/lib/ags_parameter.h \
+ src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_audio.h
@@ -1062,6 +1062,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1984,50 +2036,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2042,14 +2050,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/lib/ags_list.h:
 
 src/ags/lib/ags_parameter.h:
diff --git a/.deps/libags_audio_a-ags_volume_channel.Po b/.deps/libags_audio_a-ags_volume_channel.Po
index 8a08cb2..55dce4c 100644
--- a/.deps/libags_audio_a-ags_volume_channel.Po
+++ b/.deps/libags_audio_a-ags_volume_channel.Po
@@ -557,15 +557,7 @@ libags_audio_a-ags_volume_channel.o: \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_plugin.h
 
 /usr/include/stdc-predef.h:
@@ -1880,38 +1872,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
-src/ags/object/ags_stackable.h:
-
 src/ags/file/ags_file.h:
 
 src/ags/object/ags_plugin.h:
diff --git a/.deps/libags_audio_a-ags_volume_channel_run.Po b/.deps/libags_audio_a-ags_volume_channel_run.Po
index b84a1d6..b1aa915 100644
--- a/.deps/libags_audio_a-ags_volume_channel_run.Po
+++ b/.deps/libags_audio_a-ags_volume_channel_run.Po
@@ -149,6 +149,26 @@ libags_audio_a-ags_volume_channel_run.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,24 +590,6 @@ libags_audio_a-ags_volume_channel_run.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
@@ -595,8 +597,6 @@ libags_audio_a-ags_volume_channel_run.o: \
  src/ags/audio/recall/ags_volume_recycling.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/lib/ags_list.h src/ags/lib/ags_parameter.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
  src/ags/audio/task/ags_cancel_recall.h
@@ -1063,6 +1063,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1985,50 +2037,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2051,14 +2059,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/lib/ags_list.h:
 
 src/ags/lib/ags_parameter.h:
diff --git a/.deps/libags_audio_a-ags_volume_recycling.Po b/.deps/libags_audio_a-ags_volume_recycling.Po
index 3e97def..e10473d 100644
--- a/.deps/libags_audio_a-ags_volume_recycling.Po
+++ b/.deps/libags_audio_a-ags_volume_recycling.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_volume_recycling.o: \
  /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
  src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/libxml2/libxml/xmlexports.h \
+ /usr/include/libxml2/libxml/xmlstring.h \
+ /usr/include/libxml2/libxml/xmlregexp.h \
+ /usr/include/libxml2/libxml/dict.h \
+ /usr/include/libxml2/libxml/xmlmemory.h \
+ /usr/include/libxml2/libxml/threads.h \
+ /usr/include/libxml2/libxml/globals.h \
+ /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
+ /usr/include/libxml2/libxml/valid.h \
+ /usr/include/libxml2/libxml/xmlerror.h \
+ /usr/include/libxml2/libxml/list.h \
+ /usr/include/libxml2/libxml/xmlautomata.h \
+ /usr/include/libxml2/libxml/entities.h \
+ /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
+ /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -569,32 +589,12 @@ libags_audio_a-ags_volume_recycling.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_notation.h \
- /usr/include/libxml2/libxml/tree.h \
- /usr/include/libxml2/libxml/xmlversion.h \
- /usr/include/libxml2/libxml/xmlexports.h \
- /usr/include/libxml2/libxml/xmlstring.h \
- /usr/include/libxml2/libxml/xmlregexp.h \
- /usr/include/libxml2/libxml/dict.h \
- /usr/include/libxml2/libxml/xmlmemory.h \
- /usr/include/libxml2/libxml/threads.h \
- /usr/include/libxml2/libxml/globals.h \
- /usr/include/libxml2/libxml/parser.h /usr/include/libxml2/libxml/hash.h \
- /usr/include/libxml2/libxml/valid.h \
- /usr/include/libxml2/libxml/xmlerror.h \
- /usr/include/libxml2/libxml/list.h \
- /usr/include/libxml2/libxml/xmlautomata.h \
- /usr/include/libxml2/libxml/entities.h \
- /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
- /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
  src/ags/audio/ags_note.h src/ags/audio/recall/ags_volume_channel.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/recall/ags_volume_audio_signal.h \
  src/ags/audio/ags_recall_audio_signal.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/lib/ags_parameter.h src/ags/object/ags_dynamic_connectable.h
 
 /usr/include/stdc-predef.h:
@@ -1059,6 +1059,58 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
+/usr/include/libxml2/libxml/xmlversion.h:
+
+/usr/include/libxml2/libxml/xmlexports.h:
+
+/usr/include/libxml2/libxml/xmlstring.h:
+
+/usr/include/libxml2/libxml/xmlregexp.h:
+
+/usr/include/libxml2/libxml/dict.h:
+
+/usr/include/libxml2/libxml/xmlmemory.h:
+
+/usr/include/libxml2/libxml/threads.h:
+
+/usr/include/libxml2/libxml/globals.h:
+
+/usr/include/libxml2/libxml/parser.h:
+
+/usr/include/libxml2/libxml/hash.h:
+
+/usr/include/libxml2/libxml/valid.h:
+
+/usr/include/libxml2/libxml/xmlerror.h:
+
+/usr/include/libxml2/libxml/list.h:
+
+/usr/include/libxml2/libxml/xmlautomata.h:
+
+/usr/include/libxml2/libxml/entities.h:
+
+/usr/include/libxml2/libxml/encoding.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libxml2/libxml/xmlIO.h:
+
+/usr/include/libxml2/libxml/SAX.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1981,50 +2033,6 @@ src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/libxml2/libxml/xmlversion.h:
-
-/usr/include/libxml2/libxml/xmlexports.h:
-
-/usr/include/libxml2/libxml/xmlstring.h:
-
-/usr/include/libxml2/libxml/xmlregexp.h:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
@@ -2043,14 +2051,6 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/main.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/lib/ags_parameter.h:
 
 src/ags/object/ags_dynamic_connectable.h:
diff --git a/gsequencer b/gsequencer
deleted file mode 100755
index 7b827b2..0000000
Binary files a/gsequencer and /dev/null differ
diff --git a/src/ags/audio/recall/ags_buffer_audio_signal.c b/src/ags/audio/recall/ags_buffer_audio_signal.c
index 1f23d95..e86abcd 100644
--- a/src/ags/audio/recall/ags_buffer_audio_signal.c
+++ b/src/ags/audio/recall/ags_buffer_audio_signal.c
@@ -20,11 +20,10 @@
 #include <ags/audio/recall/ags_buffer_recycling.h>
 #include <ags/audio/recall/ags_buffer_channel.h>
 
-#include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_recycling.h>
 #include <ags/audio/ags_audio_signal.h>
 #include <ags/audio/ags_recall_channel.h>
@@ -62,9 +61,6 @@ static gpointer ags_buffer_audio_signal_parent_class = NULL;
 static AgsConnectableInterface *ags_buffer_audio_signal_parent_connectable_interface;
 static AgsDynamicConnectableInterface *ags_buffer_audio_signal_parent_dynamic_connectable_interface;
 
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 GType
 ags_buffer_audio_signal_get_type()
 {
@@ -213,11 +209,11 @@ ags_buffer_audio_signal_disconnect_dynamic(AgsDynamicConnectable *dynamic_connec
 void
 ags_buffer_audio_signal_run_init_pre(AgsRecall *recall)
 {
-  AgsDevout *devout;
   AgsRecycling *recycling;
   AgsAudioSignal *destination;
   AgsBufferRecycling *buffer_recycling;
   AgsBufferAudioSignal *buffer_audio_signal;
+  AgsSoundcard *soundcard;
   GList *stream;
   guint buffer_size;
   guint samplerate;
@@ -226,27 +222,21 @@ ags_buffer_audio_signal_run_init_pre(AgsRecall *recall)
   buffer_audio_signal = AGS_BUFFER_AUDIO_SIGNAL(recall);
   buffer_recycling = AGS_BUFFER_RECYCLING(recall->parent);
 
-  devout = AGS_DEVOUT(AGS_RECALL(buffer_audio_signal)->devout);
-
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
-				NULL,
-				10);
-
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(buffer_audio_signal)->soundcard);
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
+  
   //  recall->flags &= (~AGS_RECALL_PERSISTENT);
   recycling = AGS_RECALL_RECYCLING(buffer_recycling)->destination;
 
   /* create new audio signal */
-  destination = ags_audio_signal_new((GObject *) devout,
+  destination = ags_audio_signal_new((GObject *) soundcard,
 				     (GObject *) recycling,
 				     (GObject *) recall->recall_id->recycling_container->parent->recall_id);
-  length =  (guint) (2.0 * devout->delay[devout->tic_counter]) + 1;
+  length =  (guint) (2.0 * ags_soundcard_get_delay(soundcard)) + 1;
   ags_audio_signal_stream_resize(destination,
 				 length);
   stream = destination->stream_beginning;
@@ -283,7 +273,6 @@ ags_buffer_audio_signal_run_pre(AgsRecall *recall)
 void
 ags_buffer_audio_signal_run_inter(AgsRecall *recall)
 {
-  AgsDevout *devout;
   AgsRecycling *recycling;
   AgsAudioSignal *source, *destination;
   AgsBufferChannel *buffer_channel;
@@ -301,7 +290,6 @@ ags_buffer_audio_signal_run_inter(AgsRecall *recall)
   buffer_recycling = AGS_BUFFER_RECYCLING(recall->parent);
   buffer_channel = AGS_BUFFER_CHANNEL(AGS_RECALL_CHANNEL_RUN(AGS_RECALL(buffer_recycling)->parent)->recall_channel);
 
-  devout = AGS_DEVOUT(AGS_RECALL(buffer_audio_signal)->devout);
   source = AGS_RECALL_AUDIO_SIGNAL(buffer_audio_signal)->source;
   stream_source = source->stream_current;
 
diff --git a/src/ags/audio/recall/ags_copy_audio_signal.c b/src/ags/audio/recall/ags_copy_audio_signal.c
index 5651d16..ccda08c 100644
--- a/src/ags/audio/recall/ags_copy_audio_signal.c
+++ b/src/ags/audio/recall/ags_copy_audio_signal.c
@@ -19,12 +19,9 @@
 #include <ags/audio/recall/ags_copy_audio_signal.h>
 
 #include <ags-lib/object/ags_connectable.h>
-
-#include <ags/main.h>
-
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio_signal.h>
 #include <ags/audio/ags_recycling.h>
 #include <ags/audio/ags_channel.h>
@@ -215,7 +212,6 @@ ags_copy_audio_signal_finalize(GObject *gobject)
 void
 ags_copy_audio_signal_run_inter(AgsRecall *recall)
 {
-  AgsDevout *devout;
   AgsCopyChannel *copy_channel;
   AgsCopyAudioSignal *copy_audio_signal;
   AgsAudioSignal *source, *destination;
@@ -228,7 +224,6 @@ ags_copy_audio_signal_run_inter(AgsRecall *recall)
 
   copy_audio_signal = AGS_COPY_AUDIO_SIGNAL(recall);
 
-  devout = AGS_DEVOUT(AGS_RECALL(copy_audio_signal)->devout);
   source = AGS_RECALL_AUDIO_SIGNAL(copy_audio_signal)->source;
   stream_source = source->stream_current;
 
@@ -297,7 +292,7 @@ ags_copy_audio_signal_duplicate(AgsRecall *recall,
  * ags_copy_audio_signal_new:
  * @destination: the destination #AgsAudioSignal
  * @source: the source #AgsAudioSignal
- * @devout: the #AgsDevout defaulting to
+ * @soundcard: the #AgsSoundcard defaulting to
  * @attack: the attack
  *
  * Creates an #AgsCopyAudioSignal
@@ -309,7 +304,7 @@ ags_copy_audio_signal_duplicate(AgsRecall *recall,
 AgsCopyAudioSignal*
 ags_copy_audio_signal_new(AgsAudioSignal *destination,
 			  AgsAudioSignal *source,
-			  AgsDevout *devout,
+			  GObject *soundcard,
 			  AgsAttack *attack)
 {
   AgsCopyAudioSignal *copy_audio_signal;
@@ -317,7 +312,7 @@ ags_copy_audio_signal_new(AgsAudioSignal *destination,
   copy_audio_signal = (AgsCopyAudioSignal *) g_object_new(AGS_TYPE_COPY_AUDIO_SIGNAL,
 							  "destination\0", destination,
 							  "source\0", source,
-							  "devout\0", devout,
+							  "soundcard\0", soundcard,
 							  "attack\0", attack,
 							  NULL);
 
diff --git a/src/ags/audio/recall/ags_copy_audio_signal.h b/src/ags/audio/recall/ags_copy_audio_signal.h
index ca72f06..f3d41cc 100644
--- a/src/ags/audio/recall/ags_copy_audio_signal.h
+++ b/src/ags/audio/recall/ags_copy_audio_signal.h
@@ -48,7 +48,7 @@ GType ags_copy_audio_signal_get_type();
 
 AgsCopyAudioSignal* ags_copy_audio_signal_new(AgsAudioSignal *destination,
 					      AgsAudioSignal *source,
-					      AgsDevout *devout,
+					      GObject *soundcard,
 					      AgsAttack *attack);
 
 #endif /*__AGS_COPY_AUDIO_SIGNAL_H__*/
diff --git a/src/ags/audio/recall/ags_copy_pattern_channel_run.c b/src/ags/audio/recall/ags_copy_pattern_channel_run.c
index e9eb030..6dbe3bd 100644
--- a/src/ags/audio/recall/ags_copy_pattern_channel_run.c
+++ b/src/ags/audio/recall/ags_copy_pattern_channel_run.c
@@ -19,9 +19,6 @@
 #include <ags/audio/recall/ags_copy_pattern_channel_run.h>
 
 #include <ags-lib/object/ags_connectable.h>
-
-#include <ags/main.h>
-
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_plugin.h>
 
@@ -403,13 +400,10 @@ ags_copy_pattern_channel_run_sequencer_alloc_callback(AgsDelayAudioRun *delay_au
   current_bit = g_value_get_boolean(&current_bit_value);
 
   if(current_bit){
-    AgsDevout *devout;
     AgsRecycling *recycling;
     AgsAudioSignal *audio_signal;
     gdouble delay;
     guint attack;
-  
-    devout = AGS_DEVOUT(AGS_RECALL(copy_pattern_channel_run)->devout);
 
     //    g_message("ags_copy_pattern_channel_run_sequencer_alloc_callback - playing channel: %u; playing pattern: %u\0",
     //	      AGS_RECALL_CHANNEL(copy_pattern_channel)->source->line,
@@ -450,7 +444,7 @@ ags_copy_pattern_channel_run_sequencer_alloc_callback(AgsDelayAudioRun *delay_au
 	  }
 	}
 
-	audio_signal = ags_audio_signal_new(AGS_RECALL(copy_pattern_audio)->devout,
+	audio_signal = ags_audio_signal_new(AGS_RECALL(copy_pattern_audio)->soundcard,
 					    recycling,
 					    child_recall_id);
 	ags_recycling_create_audio_signal_with_defaults(recycling,
diff --git a/src/ags/audio/recall/ags_count_beats_audio_run.c b/src/ags/audio/recall/ags_count_beats_audio_run.c
index d1b5319..5da7972 100644
--- a/src/ags/audio/recall/ags_count_beats_audio_run.c
+++ b/src/ags/audio/recall/ags_count_beats_audio_run.c
@@ -1364,15 +1364,18 @@ void
 ags_count_beats_audio_run_stop(AgsCountBeatsAudioRun *count_beats_audio_run,
 			       gboolean notation)
 {
-  AgsAudioLoop *audio_loop;
+  AgsThread *main_loop;
   AgsAudio *audio;
   AgsChannel *channel;
   AgsRecallID *recall_id;
+  AgsApplicationContext *application_context;
   GList *devout_play;
   gboolean all_done;
 
   audio = AGS_RECALL_AUDIO_RUN(count_beats_audio_run)->recall_audio->audio;
-  audio_loop = AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(AGS_DEVOUT(audio->devout)->application_context)->main_loop);
+
+  application_context = ags_soundcard_get_application_context(AGS_SOUNDCARD(audio->soundcard));
+  main_loop = application_context->main_loop;
 
   channel = audio->output;
   devout_play = AGS_DEVOUT_PLAY_DOMAIN(audio->devout_play_domain)->devout_play;
@@ -1440,7 +1443,7 @@ ags_count_beats_audio_run_stop(AgsCountBeatsAudioRun *count_beats_audio_run,
   }
 
   if(all_done){
-    ags_audio_loop_remove_audio(audio_loop,
+    ags_audio_loop_remove_audio(AGS_AUDIO_LOOP(main_loop),
 				audio);
   }
 } 
diff --git a/src/ags/audio/recall/ags_delay_audio.c b/src/ags/audio/recall/ags_delay_audio.c
index f4a25c9..7c2b8bb 100644
--- a/src/ags/audio/recall/ags_delay_audio.c
+++ b/src/ags/audio/recall/ags_delay_audio.c
@@ -19,11 +19,9 @@
 #include <ags/audio/recall/ags_delay_audio.h>
 #include <ags/audio/recall/ags_delay_audio_run.h>
 
-#include <ags/main.h>
-
-#include <ags/object/ags_config.h>
 #include <ags/object/ags_tactable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/audio/ags_devout.h>
 
@@ -42,7 +40,7 @@ void ags_delay_audio_get_property(GObject *gobject,
 void ags_delay_audio_set_ports(AgsPlugin *plugin, GList *port);
 void ags_delay_audio_finalize(GObject *gobject);
 
-void ags_delay_audio_notify_devout_callback(GObject *gobject,
+void ags_delay_audio_notify_soundcard_callback(GObject *gobject,
 					    GParamSpec *pspec,
 					    gpointer user_data);
 
@@ -51,9 +49,6 @@ void ags_delay_audio_change_tact(AgsTactable *tactable, gdouble tact);
 void ags_delay_audio_change_sequencer_duration(AgsTactable *tactable, gdouble duration);
 void ags_delay_audio_change_notation_duration(AgsTactable *tactable, gdouble duration);
 
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 /**
  * SECTION:ags_delay_audio
  * @short_description: delay audio 
@@ -320,8 +315,8 @@ ags_delay_audio_init(AgsDelayAudio *delay_audio)
   AGS_RECALL(delay_audio)->build_id = AGS_RECALL_DEFAULT_BUILD_ID;
   AGS_RECALL(delay_audio)->xml_type = "ags-delay-audio\0";
 
-  g_signal_connect_after(delay_audio, "notify::devout",
-			 G_CALLBACK(ags_delay_audio_notify_devout_callback), NULL);
+  g_signal_connect_after(delay_audio, "notify::soundcard",
+			 G_CALLBACK(ags_delay_audio_notify_soundcard_callback), NULL);
 }
 
 void
@@ -584,36 +579,32 @@ ags_delay_audio_finalize(GObject *gobject)
 }
 
 void
-ags_delay_audio_notify_devout_callback(GObject *gobject,
-				       GParamSpec *pspec,
-				       gpointer user_data)
+ags_delay_audio_notify_soundcard_callback(GObject *gobject,
+					  GParamSpec *pspec,
+					  gpointer user_data)
 {
   AgsDelayAudio *delay_audio;
   GList *port;
   guint buffer_size;
   guint samplerate;
 
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   gdouble bpm;
   gdouble delay;
 
   delay_audio = AGS_DELAY_AUDIO(gobject);
 
-  devout = AGS_RECALL(delay_audio)->devout;
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(delay_audio)->soundcard);
   port = NULL;
 
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
-				NULL,
-				10);
-  bpm = devout->bpm;
-  delay = devout->delay[devout->tic_counter];
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
+  
+  bpm = ags_soundcard_get_bpm(soundcard);
+  delay = ags_soundcard_get_delay(soundcard);
 
   /* bpm */
   delay_audio->bpm = g_object_new(AGS_TYPE_PORT,
@@ -712,7 +703,6 @@ ags_delay_audio_notify_devout_callback(GObject *gobject,
 void
 ags_delay_audio_change_bpm(AgsTactable *tactable, gdouble new_bpm)
 {
-  AgsDevout *devout;
   AgsDelayAudio *delay_audio;
   gdouble old_bpm;
   gdouble sequencer_delay, notation_delay;
@@ -721,8 +711,6 @@ ags_delay_audio_change_bpm(AgsTactable *tactable, gdouble new_bpm)
 
   delay_audio = AGS_DELAY_AUDIO(tactable);
 
-  devout = AGS_DEVOUT(AGS_RECALL(delay_audio)->devout);
-
   /* retrieve old bpm */
   g_value_init(&value, G_TYPE_DOUBLE);
 
@@ -793,7 +781,6 @@ ags_delay_audio_change_bpm(AgsTactable *tactable, gdouble new_bpm)
 void
 ags_delay_audio_change_tact(AgsTactable *tactable, gdouble new_tact)
 {
-  AgsDevout *devout;
   AgsDelayAudio *delay_audio;
   gdouble old_tact;
   gdouble sequencer_delay, notation_delay;
@@ -803,8 +790,6 @@ ags_delay_audio_change_tact(AgsTactable *tactable, gdouble new_tact)
   
   delay_audio = AGS_DELAY_AUDIO(tactable);
 
-  devout = AGS_DEVOUT(AGS_RECALL(delay_audio)->devout);
-
   /* retrieve old tact */
   g_value_init(&value, G_TYPE_DOUBLE);
 
@@ -878,23 +863,23 @@ void
 ags_delay_audio_change_sequencer_duration(AgsTactable *tactable, gdouble duration)
 {
   AgsDelayAudio *delay_audio;
+  AgsSoundcard *soundcard;
   guint buffer_size;
   guint samplerate;
+  gdouble bpm;
   gdouble delay;
   GValue value = {0,};
   
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
-				NULL,
-				10);
-
-  delay = ((gdouble) samplerate / (gdouble) buffer_size) * (60.0 / AGS_DEVOUT_DEFAULT_BPM);
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(delay_audio)->soundcard);
+
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
+  bpm = ags_soundcard_get_bpm(soundcard);
+  
+  delay = ((gdouble) samplerate / (gdouble) buffer_size) * (60.0 / bpm);
 
   delay_audio = AGS_DELAY_AUDIO(tactable);
 
@@ -908,25 +893,25 @@ void
 ags_delay_audio_change_notation_duration(AgsTactable *tactable, gdouble duration)
 {
   AgsDelayAudio *delay_audio;
+  AgsSoundcard *soundcard;
   guint buffer_size;
   guint samplerate;
+  gdouble bpm;
   gdouble delay;
   GValue value = {0,};
   
   delay_audio = AGS_DELAY_AUDIO(tactable);
 
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
-				NULL,
-				10);
-
-  delay = ((gdouble) samplerate / (gdouble) buffer_size) * (60.0 / AGS_DEVOUT_DEFAULT_BPM);
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(delay_audio)->soundcard);
+
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
+  bpm = ags_soundcard_get_bpm(soundcard);
+  
+  delay = ((gdouble) samplerate / (gdouble) buffer_size) * (60.0 / bpm);
 
   g_value_init(&value, G_TYPE_DOUBLE);
   g_value_set_double(&value, duration * delay * AGS_DEVOUT_DEFAULT_SCALE);
diff --git a/src/ags/audio/recall/ags_delay_audio_run.c b/src/ags/audio/recall/ags_delay_audio_run.c
index 62886fb..dcc2247 100644
--- a/src/ags/audio/recall/ags_delay_audio_run.c
+++ b/src/ags/audio/recall/ags_delay_audio_run.c
@@ -20,18 +20,15 @@
 #include <ags/audio/recall/ags_delay_audio.h>
 
 #include <ags-lib/object/ags_connectable.h>
-
-#include <ags/main.h>
-
 #include <ags/object/ags_marshal.h>
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
 #include <ags/file/ags_file_lookup.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_recall_audio.h>
 #include <ags/audio/ags_recall_id.h>
 
@@ -413,7 +410,6 @@ ags_delay_audio_run_write(AgsFile *file, xmlNode *parent, AgsPlugin *plugin)
 void
 ags_delay_audio_run_run_init_pre(AgsRecall *recall)
 {
-  AgsDevout *devout;
   AgsDelayAudio *delay_audio;
   AgsDelayAudioRun *delay_audio_run;
 
@@ -424,8 +420,6 @@ ags_delay_audio_run_run_init_pre(AgsRecall *recall)
   delay_audio = AGS_DELAY_AUDIO(AGS_RECALL_AUDIO_RUN(recall)->recall_audio);
   delay_audio_run = AGS_DELAY_AUDIO_RUN(recall);
 
-  devout = AGS_DEVOUT(AGS_RECALL_AUDIO(delay_audio)->audio->devout);
-
   /* run order */
   delay_audio_run->hide_ref_counter = 0;
 }
@@ -490,13 +484,10 @@ ags_delay_audio_run_run_pre(AgsRecall *recall)
 
   if(delay_audio_run->notation_counter == 0 &&
      delay_audio_run->hide_ref_counter == 0){
-    AgsDevout *devout;
     guint run_order;
     gdouble delay;
     guint attack;
 
-    devout = AGS_DEVOUT(AGS_RECALL_AUDIO(delay_audio)->audio->devout);
-
     run_order = delay_audio_run->hide_ref_counter;
 
     /* delay and attack */
@@ -527,13 +518,10 @@ ags_delay_audio_run_run_pre(AgsRecall *recall)
 
   if(delay_audio_run->sequencer_counter == 0 &&
      delay_audio_run->hide_ref_counter == 0){
-    AgsDevout *devout;
     guint run_order;
     gdouble delay;
     guint attack;
 
-    devout = AGS_DEVOUT(AGS_RECALL_AUDIO(delay_audio)->audio->devout);
-
     /* delay and attack */
     //TODO:JK: unclear
     attack = 0; // devout->attack[((devout->tic_counter + 1 == AGS_NOTATION_TICS_PER_BEAT) ?
diff --git a/src/ags/audio/recall/ags_loop_channel_run.c b/src/ags/audio/recall/ags_loop_channel_run.c
index cb16380..4ce169a 100644
--- a/src/ags/audio/recall/ags_loop_channel_run.c
+++ b/src/ags/audio/recall/ags_loop_channel_run.c
@@ -18,24 +18,20 @@
 
 #include <ags/audio/recall/ags_loop_channel_run.h>
 
-#include <ags/object/ags_dynamic_connectable.h>
-
-#include <ags/main.h>
-
 #include <ags/util/ags_id_generator.h>
 
 #include <ags/lib/ags_list.h>
 
 #include <ags-lib/object/ags_connectable.h>
-
+#include <ags/object/ags_soundcard.h>
 #include <ags/object/ags_countable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_dynamic_connectable.h>
 
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
 #include <ags/file/ags_file_lookup.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_recall_container.h>
 #include <ags/audio/ags_recall_id.h>
@@ -576,23 +572,20 @@ ags_loop_channel_run_duplicate(AgsRecall *recall,
 void
 ags_loop_channel_run_create_audio_signals(AgsLoopChannelRun *loop_channel_run)
 {
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   AgsRecycling *recycling;
   AgsAudioSignal *audio_signal;
   gdouble delay;
   guint attack;
-  guint tic_counter_incr;
 
   //  g_message("debug\0");
 
-  devout = AGS_DEVOUT(AGS_RECALL(loop_channel_run)->devout);
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(loop_channel_run)->soundcard);
 
   /* recycling */
   recycling = AGS_RECALL_CHANNEL_RUN(loop_channel_run)->source->first_recycling;
 
   /* delay and attack */
-  tic_counter_incr = devout->tic_counter + 1;
-
   //TODO:JK: unclear
   attack = 0;// devout->attack[((tic_counter_incr == AGS_NOTATION_TICS_PER_BEAT) ?
   //		   0:
@@ -602,7 +595,7 @@ ags_loop_channel_run_create_audio_signals(AgsLoopChannelRun *loop_channel_run)
   //			 tic_counter_incr)];
 
   while(recycling != AGS_RECALL_CHANNEL_RUN(loop_channel_run)->source->last_recycling->next){
-    audio_signal = ags_audio_signal_new((GObject *) devout,
+    audio_signal = ags_audio_signal_new((GObject *) soundcard,
 					(GObject *) recycling,
 					(GObject *) AGS_RECALL(loop_channel_run)->recall_id);
     audio_signal->stream_current = audio_signal->stream_beginning;
diff --git a/src/ags/audio/recall/ags_peak_channel.c b/src/ags/audio/recall/ags_peak_channel.c
index 601296b..bac9275 100644
--- a/src/ags/audio/recall/ags_peak_channel.c
+++ b/src/ags/audio/recall/ags_peak_channel.c
@@ -18,11 +18,11 @@
 
 #include <ags/audio/recall/ags_peak_channel.h>
 
-#include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 
 #include <ags/object/ags_mutable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 void ags_peak_channel_class_init(AgsPeakChannelClass *peak_channel);
 void ags_peak_channel_connectable_interface_init(AgsConnectableInterface *connectable);
@@ -41,9 +41,6 @@ void ags_peak_channel_disconnect(AgsConnectable *connectable);
 void ags_peak_channel_set_ports(AgsPlugin *plugin, GList *port);
 void ags_peak_channel_finalize(GObject *gobject);
 
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 /**
  * SECTION:ags_peak_channel
  * @short_description: peaks channel
@@ -309,6 +306,7 @@ ags_peak_channel_retrieve_peak(AgsPeakChannel *peak_channel,
   AgsRecall *recall;
   AgsChannel *source;
   AgsRecycling *recycling;
+  AgsSoundcard *soundcard;
   GList *audio_signal;
   double *buffer;
   double current_value;
@@ -322,17 +320,20 @@ ags_peak_channel_retrieve_peak(AgsPeakChannel *peak_channel,
   }
 
   recall = (AgsRecall *) peak_channel;
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-
+  soundcard = AGS_SOUNDCARD(recall->soundcard);
+  
   source = AGS_RECALL_CHANNEL(peak_channel)->source;
   recycling = source->first_recycling;
 
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    NULL,
+			    &buffer_size,
+			    NULL);
+  
   /* initialize buffer */
   buffer = (double *) malloc(buffer_size * sizeof(double));
+  
   for(i = 0; i < buffer_size; i++) buffer[i] = 0.0;
 
   while(recycling != source->last_recycling->next){
diff --git a/src/ags/audio/recall/ags_play_audio_signal.c b/src/ags/audio/recall/ags_play_audio_signal.c
index 3fcd82e..1c473bb 100644
--- a/src/ags/audio/recall/ags_play_audio_signal.c
+++ b/src/ags/audio/recall/ags_play_audio_signal.c
@@ -20,8 +20,8 @@
 
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio_signal.h>
 #include <ags/audio/ags_recycling.h>
 #include <ags/audio/ags_channel.h>
@@ -211,7 +211,7 @@ ags_play_audio_signal_run_init_pre(AgsRecall *recall)
 void
 ags_play_audio_signal_run_inter(AgsRecall *recall)
 {
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   AgsRecycling *recycling;
   AgsAudioSignal *source;
   AgsRecallChannelRun *play_channel_run;
@@ -220,6 +220,7 @@ ags_play_audio_signal_run_inter(AgsRecall *recall)
   GList *stream;
   signed short *buffer0, *buffer1;
   guint audio_channel;
+  guint pcm_channels;
   guint buffer_size;
   gboolean muted;
   GValue muted_value = {0,};
@@ -227,12 +228,12 @@ ags_play_audio_signal_run_inter(AgsRecall *recall)
 
   play_audio_signal = AGS_PLAY_AUDIO_SIGNAL(recall);
 
-  devout = AGS_DEVOUT(AGS_RECALL(play_audio_signal)->devout);
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(play_audio_signal)->soundcard);
   source = AGS_AUDIO_SIGNAL(AGS_RECALL_AUDIO_SIGNAL(play_audio_signal)->source);
   stream = source->stream_current;
 
-  if(devout == NULL){
-    g_warning("no devout\0");
+  if(soundcard == NULL){
+    g_warning("no soundcard\0");
     return;
   }
 
@@ -242,19 +243,16 @@ ags_play_audio_signal_run_inter(AgsRecall *recall)
     return;
   }
 
-  if((AGS_DEVOUT_BUFFER0 & devout->flags) != 0){
-    buffer0 = devout->buffer[1];
-    buffer1 = devout->buffer[2];
-  }else if((AGS_DEVOUT_BUFFER1 & devout->flags) != 0){
-    buffer0 = devout->buffer[2];
-    buffer1 = devout->buffer[3];
-  }else if((AGS_DEVOUT_BUFFER2 & devout->flags) != 0){
-    buffer0 = devout->buffer[3];
-    buffer1 = devout->buffer[0];
-  }else if((AGS_DEVOUT_BUFFER3 & devout->flags) != 0){
-    buffer0 = devout->buffer[0];
-    buffer1 = devout->buffer[1];
-  }else{
+  buffer0 = ags_soundcard_get_buffer(soundcard);
+  buffer1 = ags_soundcard_get_next_buffer(soundcard);
+
+  ags_soundcard_get_presets(soundcard,
+			    &pcm_channels,
+			    NULL,
+			    NULL,
+			    NULL);
+  
+  if(buffer0 == NULL){
     g_warning("no output buffer\0");
     return;
   }
@@ -290,12 +288,12 @@ ags_play_audio_signal_run_inter(AgsRecall *recall)
 
   if((AGS_RECALL_INITIAL_RUN & (AGS_RECALL_AUDIO_SIGNAL(recall)->flags)) != 0){
     AGS_RECALL_AUDIO_SIGNAL(recall)->flags &= (~AGS_RECALL_INITIAL_RUN);
-    ags_audio_signal_copy_buffer_to_buffer(&(buffer0[audio_channel + source->attack * devout->pcm_channels]),
-					   devout->pcm_channels,
+    ags_audio_signal_copy_buffer_to_buffer(&(buffer0[audio_channel + source->attack * pcm_channels]),
+					   pcm_channels,
 					   (signed short *) stream->data, 1,
 					   buffer_size - source->attack);
   }else{
-    ags_audio_signal_copy_buffer_to_buffer(&(buffer0[audio_channel]), devout->pcm_channels,
+    ags_audio_signal_copy_buffer_to_buffer(&(buffer0[audio_channel]), pcm_channels,
 					   (signed short *) stream->data, 1,
 					   buffer_size);
   }
@@ -320,7 +318,7 @@ ags_play_audio_signal_duplicate(AgsRecall *recall,
 /**
  * ags_play_audio_signal_new:
  * @source: the source #AgsAudioSignal
- * @devout: the #AgsDevout outputting to
+ * @soundcard: the #AgsSoundcard outputting to
  * @attack: the attack
  *
  * Creates an #AgsPlayAudioSignal
@@ -331,14 +329,14 @@ ags_play_audio_signal_duplicate(AgsRecall *recall,
  */
 AgsPlayAudioSignal*
 ags_play_audio_signal_new(AgsAudioSignal *source,
-			  AgsDevout *devout,
+			  GObject *soundcard,
 			  guint audio_channel)
 {
   AgsPlayAudioSignal *play_audio_signal;
 
   play_audio_signal = (AgsPlayAudioSignal *) g_object_new(AGS_TYPE_PLAY_AUDIO_SIGNAL,
 							  "source\0", source,
-							  "devout\0", devout,
+							  "soundcard\0", soundcard,
 							  "audio_channel\0", audio_channel,
 							  NULL);
 
diff --git a/src/ags/audio/recall/ags_play_audio_signal.h b/src/ags/audio/recall/ags_play_audio_signal.h
index 350b695..da2d06e 100644
--- a/src/ags/audio/recall/ags_play_audio_signal.h
+++ b/src/ags/audio/recall/ags_play_audio_signal.h
@@ -47,7 +47,7 @@ struct _AgsPlayAudioSignalClass
 GType ags_play_audio_signal_get_type();
 
 AgsPlayAudioSignal* ags_play_audio_signal_new(AgsAudioSignal *source,
-					      AgsDevout *devout,
+					      GObject *soundcard,
 					      guint audio_channel);
 
 #endif /*__AGS_PLAY_AUDIO_SIGNAL__H__*/
diff --git a/src/ags/audio/recall/ags_play_channel_run.c b/src/ags/audio/recall/ags_play_channel_run.c
index 17bbbcf..49d3cc1 100644
--- a/src/ags/audio/recall/ags_play_channel_run.c
+++ b/src/ags/audio/recall/ags_play_channel_run.c
@@ -22,8 +22,8 @@
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_recycling.h>
 #include <ags/audio/ags_recall_id.h>
@@ -373,15 +373,12 @@ void
 ags_play_channel_run_run_pre(AgsRecall *recall)
 {
   AgsChannel *source;
-  AgsDevout *devout;
   AgsRecycling *recycling;
   AgsAudioSignal *audio_signal;
   gdouble delay;
   guint attack;
   guint tic_counter_incr;
 
-  devout = AGS_DEVOUT(recall->devout);
-
   //    g_message("ags_copy_pattern_channel_run_sequencer_alloc_callback - playing channel: %u; playing pattern: %u\0",
   //	      AGS_RECALL_CHANNEL(copy_pattern_channel)->source->line,
   //	      copy_pattern_audio_run->count_beats_audio_run->sequencer_counter);
@@ -392,8 +389,6 @@ ags_play_channel_run_run_pre(AgsRecall *recall)
   /* create new audio signals */
   recycling = source->first_recycling;
 
-  tic_counter_incr = devout->tic_counter + 1;
-    
   //TODO:JK: unclear
   attack = 0; //devout->attack[((tic_counter_incr == AGS_NOTATION_TICS_PER_BEAT) ?
     //		   0:
@@ -404,7 +399,7 @@ ags_play_channel_run_run_pre(AgsRecall *recall)
 
   if(recycling != NULL){
     while(recycling != source->last_recycling->next){    
-      audio_signal = ags_audio_signal_new((GObject *) recall->devout,
+      audio_signal = ags_audio_signal_new((GObject *) recall->soundcard,
 					  (GObject *) recycling,
 					  (GObject *) recall->recall_id);
       ags_recycling_create_audio_signal_with_defaults(recycling,
@@ -556,12 +551,23 @@ ags_play_channel_run_stream_audio_signal_done_callback(AgsRecall *recall,
 void
 ags_play_channel_run_stop(AgsPlayChannelRun *play_channel_run)
 {
-  AgsThread *task_thread;
   AgsChannel *channel;
   AgsCancelChannel *cancel_channel;
+  AgsThread *main_loop;
+  AgsThread *task_thread;
+  AgsApplicationContext *application_context;
+  AgsSoundcard *soundcard;
 
   channel = AGS_RECALL_CHANNEL_RUN(play_channel_run)->source;
-  task_thread = (AgsTaskThread *) AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(AGS_DEVOUT(AGS_AUDIO(channel->audio)->devout)->application_context)->main_loop)->task_thread;
+
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(play_channel_run)->soundcard);
+
+  application_context = ags_soundcard_get_application_context(soundcard);
+
+  main_loop = application_context->main_loop;
+  
+  task_thread = (AgsTaskThread *) ags_thread_find_type(main_loop,
+						       AGS_TYPE_TASK_THREAD);
 
   /* create append task */
   cancel_channel = ags_cancel_channel_new(channel,
diff --git a/src/ags/audio/recall/ags_play_notation_audio_run.c b/src/ags/audio/recall/ags_play_notation_audio_run.c
index 906d35b..937b37f 100644
--- a/src/ags/audio/recall/ags_play_notation_audio_run.c
+++ b/src/ags/audio/recall/ags_play_notation_audio_run.c
@@ -21,11 +21,10 @@
 
 #include <ags/util/ags_id_generator.h>
 
-#include <ags/object/ags_application_context.h>
-#include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
@@ -75,9 +74,6 @@ void ags_play_notation_audio_run_write_resolve_dependency(AgsFileLookup *file_lo
 void ags_play_notation_audio_run_read_resolve_dependency(AgsFileLookup *file_lookup,
 						       GObject *recall);
 
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 /**
  * SECTION:ags_play_notation_audio_run
  * @short_description: play notation
@@ -630,13 +626,15 @@ ags_play_notation_audio_run_alloc_input_callback(AgsDelayAudioRun *delay_audio_r
 						 gdouble delay, guint attack,
 						 AgsPlayNotationAudioRun *play_notation_audio_run)
 {
-  AgsTimestampThread *timestamp_thread;
-  AgsDevout *devout;
   AgsAudio *audio;
   AgsChannel *selected_channel, *channel, *next_pad;
   AgsAudioSignal *audio_signal;
   AgsNotation *notation;
   AgsPlayNotationAudio *play_notation_audio;
+  AgsThread *main_loop;
+  AgsTimestampThread *timestamp_thread;
+  AgsApplicationContext *application_context;
+  AgsSoundcard *soundcard;
   GList *current_position;
   AgsNote *note;
   AgsRecycling *recycling;
@@ -650,18 +648,13 @@ ags_play_notation_audio_run_alloc_input_callback(AgsDelayAudioRun *delay_audio_r
   play_notation_audio = AGS_PLAY_NOTATION_AUDIO(AGS_RECALL_AUDIO_RUN(play_notation_audio_run)->recall_audio);
 
   audio = AGS_RECALL_AUDIO(play_notation_audio)->audio;
-  devout = AGS_DEVOUT(audio->devout);
-
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
-				NULL,
-				10);
+  soundcard = AGS_SOUNDCARD(audio->soundcard);
+
+  ags_soundcard_get_presets(soundcard,
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
 
   g_value_init(&value, G_TYPE_POINTER);
   ags_port_safe_read(play_notation_audio->notation,
@@ -683,7 +676,12 @@ ags_play_notation_audio_run_alloc_input_callback(AgsDelayAudioRun *delay_audio_r
 			      audio_channel);
   }
 
-  timestamp_thread = AGS_DEVOUT_THREAD(AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(devout->application_context)->main_loop)->devout_thread)->timestamp_thread;
+  application_context = ags_soundcard_get_application_context(soundcard);
+
+  main_loop = application_context->main_loop;
+  
+  timestamp_thread = ags_thread_find_type(main_loop,
+					  AGS_TYPE_TIMESTAMP_THREAD);
   
   //TODO:JK: make it advanced
   notation = AGS_NOTATION(g_list_nth(list, audio_channel)->data);//AGS_NOTATION(ags_notation_find_near_timestamp(list, audio_channel,
@@ -706,7 +704,7 @@ ags_play_notation_audio_run_alloc_input_callback(AgsDelayAudioRun *delay_audio_r
 	//#endif
 
 	while(recycling != selected_channel->last_recycling->next){
-	  audio_signal = ags_audio_signal_new((GObject *) audio->devout,
+	  audio_signal = ags_audio_signal_new((GObject *) audio->soundcard,
 					      (GObject *) recycling,
 					      (GObject *) AGS_RECALL(play_notation_audio_run)->recall_id);
 	  ags_recycling_create_audio_signal_with_frame_count(recycling,
diff --git a/src/ags/audio/recall/ags_stream_channel.c b/src/ags/audio/recall/ags_stream_channel.c
index 19f27d1..4ca730d 100644
--- a/src/ags/audio/recall/ags_stream_channel.c
+++ b/src/ags/audio/recall/ags_stream_channel.c
@@ -18,9 +18,11 @@
 
 #include <ags/audio/recall/ags_stream_channel.h>
 
+#include <ags/object/ags_application_context.h>
 #include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 void ags_stream_channel_class_init(AgsStreamChannelClass *stream_channel);
 void ags_stream_channel_connectable_interface_init(AgsConnectableInterface *connectable);
@@ -58,9 +60,6 @@ static gpointer ags_stream_channel_parent_class = NULL;
 static AgsConnectableInterface *ags_stream_channel_parent_connectable_interface;
 static AgsPluginInterface *ags_stream_channel_parent_plugin_interface;
 
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 static const gchar *ags_stream_channel_plugin_name = "ags-stream\0";
 static const gchar *ags_stream_channel_plugin_specifier[] = {
   "./auto-sense[0]\0",
@@ -165,8 +164,17 @@ ags_stream_channel_plugin_interface_init(AgsPluginInterface *plugin)
 void
 ags_stream_channel_init(AgsStreamChannel *stream_channel)
 {
+  AgsApplicationContext *application_context;
+  AgsConfig *config;
+  AgsSoundcard *soundcard;
   GList *port;
 
+  soundcard = AGS_SOUNDCARD(AGS_RECALL(stream_channel)->soundcard);
+  
+  application_context = ags_soundcard_get_application_context(soundcard);
+
+  config = application_context->config;
+
   AGS_RECALL(stream_channel)->name = "ags-stream\0";
   AGS_RECALL(stream_channel)->version = AGS_RECALL_DEFAULT_VERSION;
   AGS_RECALL(stream_channel)->build_id = AGS_RECALL_DEFAULT_BUILD_ID;
@@ -183,9 +191,9 @@ ags_stream_channel_init(AgsStreamChannel *stream_channel)
 				     "port-value-size\0", sizeof(gboolean),
 				     "port-value-length\0", 1,
 				     NULL);
-  stream_channel->auto_sense->port_value.ags_port_boolean = ((!g_strcmp0(ags_config_get_value(ags_config,
-											AGS_CONFIG_RECALL,
-											"auto-sense\0"), "true\0")
+  stream_channel->auto_sense->port_value.ags_port_boolean = ((!g_strcmp0(ags_config_get_value(config,
+											      AGS_CONFIG_RECALL,
+											      "auto-sense\0"), "true\0")
 							      ) ? TRUE: FALSE);
   
   port = g_list_prepend(port, stream_channel->auto_sense);
diff --git a/src/ags/audio/task/ags_open_file.c b/src/ags/audio/task/ags_open_file.c
index a77f027..345e680 100644
--- a/src/ags/audio/task/ags_open_file.c
+++ b/src/ags/audio/task/ags_open_file.c
@@ -19,10 +19,10 @@
 #include <ags/audio/task/ags_open_file.h>
 
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file_link.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_channel.h>
 #include <ags/audio/ags_input.h>
@@ -228,7 +228,7 @@ ags_open_file_launch(AgsTask *task)
     current_filename = (gchar *) current->data;
 
     audio_file = ags_audio_file_new((gchar *) current_filename,
-				    AGS_DEVOUT(audio->devout),
+				    audio->soundcard,
 				    0, open_file->audio->audio_channels);
 
     ags_audio_file_open(audio_file);
diff --git a/src/ags/object/ags_soundcard.c b/src/ags/object/ags_soundcard.c
index ed3f4bc..c7434e1 100644
--- a/src/ags/object/ags_soundcard.c
+++ b/src/ags/object/ags_soundcard.c
@@ -323,6 +323,28 @@ ags_soundcard_get_next_buffer(AgsSoundcard *soundcard)
   return(soundcard_interface->get_next_buffer(soundcard));
 }
 
+gdouble
+ags_soundcard_get_delay(AgsSoundcard *soundcard)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_val_if_fail(AGS_IS_SOUNDCARD(soundcard), G_MAXUINT);
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_val_if_fail(soundcard_interface->get_delay, G_MAXUINT);
+  return(soundcard_interface->get_delay(soundcard));
+}
+
+guint
+ags_soundcard_get_attack(AgsSoundcard *soundcard)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_val_if_fail(AGS_IS_SOUNDCARD(soundcard), G_MAXUINT);
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_val_if_fail(soundcard_interface->get_attack, G_MAXUINT);
+  return(soundcard_interface->get_attack(soundcard));
+}
+
 void
 ags_soundcard_set_note_offset(AgsSoundcard *soundcard,
 			      guint note_offset)
diff --git a/src/ags/object/ags_soundcard.h b/src/ags/object/ags_soundcard.h
index e56a7d8..0fc66f9 100644
--- a/src/ags/object/ags_soundcard.h
+++ b/src/ags/object/ags_soundcard.h
@@ -72,6 +72,9 @@ struct _AgsSoundcardInterface
   signed short* (*get_buffer)(AgsSoundcard *soundcard);
   signed short* (*get_next_buffer)(AgsSoundcard *soundcard);  
 
+  gdouble (*get_delay)(AgsSoundcard *soundcard);
+  guint (*get_attack)(AgsSoundcard *soundcard);
+  
   void (*set_note_offset)(AgsSoundcard *soundcard,
 			  guint note_offset);
   guint (*get_note_offset)(AgsSoundcard *soundcard);
@@ -114,6 +117,9 @@ void ags_soundcard_offset_changed(AgsSoundcard *soundcard, guint note_offset);
 signed short* ags_soundcard_get_buffer(AgsSoundcard *soundcard);
 signed short* ags_soundcard_get_next_buffer(AgsSoundcard *soundcard);
 
+gdouble ags_soundcard_get_delay(AgsSoundcard *soundcard);
+guint ags_soundcard_get_attack(AgsSoundcard *soundcard);
+
 void ags_soundcard_set_note_offset(AgsSoundcard *soundcard,
 				   guint note_offset);
 guint ags_soundcard_get_note_offset(AgsSoundcard *soundcard);

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list