[SCM] gsequencer/upstream: refactoring to AgsSoundcard and fixing application context access

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


The following commit has been merged in the upstream branch:
commit 28bf6d8d8abb021e4ce0359d86d5a162643bb6bc
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Mon Apr 6 20:01:53 2015 +0000

    refactoring to AgsSoundcard and fixing application context access

diff --git a/.deps/gsequencer-ags_server.Po b/.deps/gsequencer-ags_server_application_context.Po
similarity index 95%
copy from .deps/gsequencer-ags_server.Po
copy to .deps/gsequencer-ags_server_application_context.Po
index 82ecef5..afa3081 100644
--- a/.deps/gsequencer-ags_server.Po
+++ b/.deps/gsequencer-ags_server_application_context.Po
@@ -1,5 +1,7 @@
-gsequencer-ags_server.o: src/ags/server/ags_server.c \
- /usr/include/stdc-predef.h src/ags/server/ags_server.h \
+gsequencer-ags_server_application_context.o: \
+ src/ags/server/ags_server_application_context.c \
+ /usr/include/stdc-predef.h \
+ src/ags/server/ags_server_application_context.h \
  /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
  /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
@@ -103,19 +105,22 @@ gsequencer-ags_server.o: src/ags/server/ags_server.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h /usr/include/netinet/in.h \
- /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
- /usr/include/stdint.h /usr/include/bits/wchar.h \
- /usr/include/sys/socket.h /usr/include/sys/uio.h /usr/include/bits/uio.h \
- /usr/include/bits/socket.h /usr/include/bits/socket_type.h \
- /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \
- /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
- /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
- src/ags/server/ags_registry.h src/ags/file/ags_file.h \
- /usr/include/libxml2/libxml/tree.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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 \
+ /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 \
@@ -135,22 +140,20 @@ gsequencer-ags_server.o: src/ags/server/ags_server.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/server/ags_remote_task.h src/ags-lib/object/ags_connectable.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/server/ags_server_application_context.h
+ src/ags/server/ags_server.h /usr/include/netinet/in.h \
+ /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/sys/socket.h /usr/include/sys/uio.h /usr/include/bits/uio.h \
+ /usr/include/bits/socket.h /usr/include/bits/socket_type.h \
+ /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \
+ /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
+ /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
+ src/ags/server/ags_registry.h src/ags/server/ags_remote_task.h \
+ src/ags-lib/object/ags_connectable.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/server/ags_server.h:
+src/ags/server/ags_server_application_context.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -428,55 +431,61 @@ src/ags/server/ags_server.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-/usr/include/netinet/in.h:
+src/ags/object/ags_application_context.h:
 
-/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/stdint.h:
+/usr/include/stdio.h:
 
-/usr/include/bits/wchar.h:
+/usr/include/libio.h:
 
-/usr/include/sys/socket.h:
+/usr/include/_G_config.h:
 
-/usr/include/sys/uio.h:
+/usr/include/wchar.h:
 
-/usr/include/bits/uio.h:
+/usr/include/bits/stdio_lim.h:
 
-/usr/include/bits/socket.h:
+/usr/include/bits/sys_errlist.h:
 
-/usr/include/bits/socket_type.h:
+/usr/include/bits/stdio.h:
 
-/usr/include/bits/sockaddr.h:
+src/ags/object/ags_config.h:
 
-/usr/include/asm/socket.h:
+src/ags/object/ags_main_loop.h:
 
-/usr/include/asm-generic/socket.h:
+src/ags/thread/ags_async_queue.h:
 
-/usr/include/asm/sockios.h:
+/usr/include/linux/futex.h:
 
-/usr/include/asm-generic/sockios.h:
+/usr/include/linux/types.h:
 
-/usr/include/bits/in.h:
+/usr/include/asm/types.h:
 
-src/ags/server/ags_registry.h:
+/usr/include/asm-generic/types.h:
 
-src/ags/file/ags_file.h:
+/usr/include/asm-generic/int-ll64.h:
 
-/usr/include/libxml2/libxml/tree.h:
+/usr/include/asm/bitsperlong.h:
 
-/usr/include/stdio.h:
+/usr/include/asm-generic/bitsperlong.h:
 
-/usr/include/libio.h:
+/usr/include/linux/posix_types.h:
 
-/usr/include/_G_config.h:
+/usr/include/linux/stddef.h:
 
-/usr/include/wchar.h:
+/usr/include/asm/posix_types.h:
 
-/usr/include/bits/stdio_lim.h:
+/usr/include/asm/posix_types_64.h:
 
-/usr/include/bits/sys_errlist.h:
+/usr/include/asm-generic/posix_types.h:
 
-/usr/include/bits/stdio.h:
+/usr/include/sys/time.h:
+
+src/ags/object/ags_stackable.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
 
 /usr/include/libxml2/libxml/xmlversion.h:
 
@@ -532,46 +541,40 @@ src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/server/ags_remote_task.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
+src/ags/server/ags_server.h:
 
-src/ags/object/ags_config.h:
+/usr/include/netinet/in.h:
 
-src/ags/object/ags_main_loop.h:
+/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h:
 
-src/ags/thread/ags_async_queue.h:
+/usr/include/stdint.h:
 
-/usr/include/linux/futex.h:
+/usr/include/bits/wchar.h:
 
-/usr/include/linux/types.h:
+/usr/include/sys/socket.h:
 
-/usr/include/asm/types.h:
+/usr/include/sys/uio.h:
 
-/usr/include/asm-generic/types.h:
+/usr/include/bits/uio.h:
 
-/usr/include/asm-generic/int-ll64.h:
+/usr/include/bits/socket.h:
 
-/usr/include/asm/bitsperlong.h:
+/usr/include/bits/socket_type.h:
 
-/usr/include/asm-generic/bitsperlong.h:
+/usr/include/bits/sockaddr.h:
 
-/usr/include/linux/posix_types.h:
+/usr/include/asm/socket.h:
 
-/usr/include/linux/stddef.h:
+/usr/include/asm-generic/socket.h:
 
-/usr/include/asm/posix_types.h:
+/usr/include/asm/sockios.h:
 
-/usr/include/asm/posix_types_64.h:
+/usr/include/asm-generic/sockios.h:
 
-/usr/include/asm-generic/posix_types.h:
+/usr/include/bits/in.h:
 
-/usr/include/sys/time.h:
+src/ags/server/ags_registry.h:
 
-src/ags/object/ags_stackable.h:
+src/ags/server/ags_remote_task.h:
 
-src/ags/server/ags_server_application_context.h:
+src/ags-lib/object/ags_connectable.h:
diff --git a/.deps/gsequencer-ags_remote_task.Po b/.deps/gsequencer-ags_server_init.Po
similarity index 98%
copy from .deps/gsequencer-ags_remote_task.Po
copy to .deps/gsequencer-ags_server_init.Po
index fae7267..b0ab49e 100644
--- a/.deps/gsequencer-ags_remote_task.Po
+++ b/.deps/gsequencer-ags_server_init.Po
@@ -1,7 +1,8 @@
-gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
- /usr/include/stdc-predef.h src/ags/server/ags_remote_task.h \
- /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
- /usr/include/glib-2.0/glib/gtypes.h \
+gsequencer-ags_server_init.o: src/ags/server/ags_server_init.c \
+ /usr/include/stdc-predef.h src/ags/server/ags_server_init.h \
+ /usr/include/glib-2.0/glib-object.h \
+ /usr/include/glib-2.0/gobject/gbinding.h /usr/include/glib-2.0/glib.h \
+ /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
  /usr/include/glib-2.0/glib/gmacros.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stddef.h \
@@ -86,8 +87,6 @@ gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/pthread.h /usr/include/sched.h \
  /usr/include/bits/sched.h /usr/include/bits/setjmp.h \
- /usr/include/glib-2.0/glib-object.h \
- /usr/include/glib-2.0/gobject/gbinding.h \
  /usr/include/glib-2.0/gobject/gobject.h \
  /usr/include/glib-2.0/gobject/gtype.h \
  /usr/include/glib-2.0/gobject/gvalue.h \
@@ -104,32 +103,7 @@ gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags-lib/object/ags_connectable.h /usr/include/libxml2/libxml/tree.h \
- /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
- /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/main.h /usr/include/gtk-2.0/gtk/gtk.h \
- /usr/include/gtk-2.0/gdk/gdk.h \
+ /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
  /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
@@ -294,8 +268,10 @@ gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
  /usr/include/pango-1.0/pango/pango-layout.h \
  /usr/include/pango-1.0/pango/pango-tabs.h \
  /usr/include/pango-1.0/pango/pango-renderer.h \
- /usr/include/pango-1.0/pango/pango-utils.h \
- /usr/lib/gtk-2.0/include/gdkconfig.h \
+ /usr/include/pango-1.0/pango/pango-utils.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/lib/gtk-2.0/include/gdkconfig.h \
  /usr/include/gtk-2.0/gdk/gdkdisplay.h \
  /usr/include/gtk-2.0/gdk/gdkevents.h /usr/include/gtk-2.0/gdk/gdkcolor.h \
  /usr/include/gtk-2.0/gdk/gdkdnd.h /usr/include/gtk-2.0/gdk/gdkinput.h \
@@ -560,6 +536,28 @@ gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
  /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 \
+ /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/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
  /usr/include/stdint.h /usr/include/bits/wchar.h \
@@ -568,11 +566,15 @@ gsequencer-ags_remote_task.o: src/ags/server/ags_remote_task.c \
  /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \
  /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
  /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
- src/ags/server/ags_registry.h src/ags/audio/ags_task.h
+ src/ags/server/ags_registry.h src/ags/server/ags_remote_task.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/server/ags_remote_task.h:
+src/ags/server/ags_server_init.h:
+
+/usr/include/glib-2.0/glib-object.h:
+
+/usr/include/glib-2.0/gobject/gbinding.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -814,10 +816,6 @@ src/ags/server/ags_remote_task.h:
 
 /usr/include/bits/setjmp.h:
 
-/usr/include/glib-2.0/glib-object.h:
-
-/usr/include/glib-2.0/gobject/gbinding.h:
-
 /usr/include/glib-2.0/gobject/gobject.h:
 
 /usr/include/glib-2.0/gobject/gtype.h:
@@ -850,80 +848,6 @@ src/ags/server/ags_remote_task.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags-lib/object/ags_connectable.h:
-
-/usr/include/libxml2/libxml/tree.h:
-
-/usr/include/stdio.h:
-
-/usr/include/libio.h:
-
-/usr/include/_G_config.h:
-
-/usr/include/wchar.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.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/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
-src/ags/main.h:
-
 /usr/include/gtk-2.0/gtk/gtk.h:
 
 /usr/include/gtk-2.0/gdk/gdk.h:
@@ -1284,6 +1208,20 @@ src/ags/main.h:
 
 /usr/include/pango-1.0/pango/pango-utils.h:
 
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
 /usr/lib/gtk-2.0/include/gdkconfig.h:
 
 /usr/include/gtk-2.0/gdk/gdkdisplay.h:
@@ -1886,6 +1824,64 @@ src/ags/object/ags_stackable.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/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib-bsearch.h:
+
+/usr/include/bits/stdlib-float.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+src/ags/server/ags_server_application_context.h:
+
 src/ags/server/ags_server.h:
 
 /usr/include/netinet/in.h:
@@ -1920,4 +1916,4 @@ src/ags/server/ags_server.h:
 
 src/ags/server/ags_registry.h:
 
-src/ags/audio/ags_task.h:
+src/ags/server/ags_remote_task.h:
diff --git a/.deps/gsequencer-ags_window_callbacks.Po b/.deps/gsequencer-ags_xorg_init.Po
similarity index 98%
copy from .deps/gsequencer-ags_window_callbacks.Po
copy to .deps/gsequencer-ags_xorg_init.Po
index 3237fb0..a066323 100644
--- a/.deps/gsequencer-ags_window_callbacks.Po
+++ b/.deps/gsequencer-ags_xorg_init.Po
@@ -1,5 +1,5 @@
-gsequencer-ags_window_callbacks.o: src/ags/X/ags_window_callbacks.c \
- /usr/include/stdc-predef.h src/ags/X/ags_window_callbacks.h \
+gsequencer-ags_xorg_init.o: src/ags/X/ags_xorg_init.c \
+ /usr/include/stdc-predef.h src/ags/X/ags_xorg_init.h \
  /usr/include/glib-2.0/glib-object.h \
  /usr/include/glib-2.0/gobject/gbinding.h /usr/include/glib-2.0/glib.h \
  /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
@@ -525,11 +525,41 @@ gsequencer-ags_window_callbacks.o: src/ags/X/ags_window_callbacks.c \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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/X/ags_window.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
+ /usr/include/gtk-2.0/gtk/gtktipsquery.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 \
+ /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/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/audio/ags_audio_init.h src/ags/widget/ags_gui_init.h \
+ src/ags/X/ags_xorg_application_context.h src/ags/X/ags_window.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 \
@@ -551,41 +581,16 @@ gsequencer-ags_window_callbacks.o: src/ags/X/ags_window_callbacks.c \
  /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_thread-posix.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_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/audio/ags_channel.h \
  src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
  src/ags/audio/ags_audio_signal.h 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/X/ags_automation_editor.h \
+ src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
+ src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
+ src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
@@ -599,14 +604,11 @@ gsequencer-ags_window_callbacks.o: src/ags/X/ags_window_callbacks.c \
  src/ags/X/ags_preferences.h src/ags/X/ags_generic_preferences.h \
  src/ags/X/ags_audio_preferences.h \
  src/ags/X/ags_performance_preferences.h \
- src/ags/X/ags_server_preferences.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/task/ags_save_file.h
+ src/ags/X/ags_server_preferences.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/X/ags_window_callbacks.h:
+src/ags/X/ags_xorg_init.h:
 
 /usr/include/glib-2.0/glib-object.h:
 
@@ -1820,11 +1822,85 @@ src/ags/X/ags_window_callbacks.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
-src/ags/X/ags_window.h:
+src/ags/object/ags_application_context.h:
 
-src/ags/audio/ags_devout.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/alsa/asoundlib.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:
+
+/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/stdlib.h:
 
@@ -1838,6 +1914,22 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/stdlib-float.h:
 
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+src/ags/audio/ags_audio_init.h:
+
+src/ags/widget/ags_gui_init.h:
+
+src/ags/X/ags_xorg_application_context.h:
+
+src/ags/X/ags_window.h:
+
+src/ags/audio/ags_devout.h:
+
+/usr/include/alsa/asoundlib.h:
+
 /usr/include/string.h:
 
 /usr/include/bits/string.h:
@@ -1926,42 +2018,10 @@ src/ags/thread/ags_audio_loop.h:
 
 src/ags/thread/ags_thread-posix.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:
@@ -1988,50 +2048,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:
@@ -2087,13 +2103,3 @@ src/ags/X/ags_audio_preferences.h:
 src/ags/X/ags_performance_preferences.h:
 
 src/ags/X/ags_server_preferences.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/task/ags_save_file.h:
diff --git a/.deps/gsequencer-main.Po b/.deps/gsequencer-main.Po
index 6a9ec1d..f822b92 100644
--- a/.deps/gsequencer-main.Po
+++ b/.deps/gsequencer-main.Po
@@ -558,9 +558,7 @@ gsequencer-main.o: src/ags/main.c /usr/include/stdc-predef.h \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/thread/ags_thread_application_context.h \
- src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
- src/ags/thread/ags_single_thread.h src/ags/thread/ags_autosave_thread.h \
+ src/ags-lib/object/ags_connectable.h \
  src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
@@ -571,6 +569,9 @@ gsequencer-main.o: src/ags/main.c /usr/include/stdc-predef.h \
  /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
  /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
  src/ags/server/ags_registry.h src/ags/server/ags_remote_task.h \
+ src/ags/thread/ags_thread_application_context.h \
+ src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
+ src/ags/thread/ags_single_thread.h src/ags/thread/ags_autosave_thread.h \
  src/ags/plugin/ags_ladspa_manager.h \
  src/ags/audio/ags_audio_application_context.h \
  src/ags/object/ags_soundcard.h src/ags/audio/ags_devout.h \
@@ -604,8 +605,8 @@ gsequencer-main.o: src/ags/main.c /usr/include/stdc-predef.h \
  /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
  src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/X/ags_xorg_application_context.h src/ags/X/ags_window.h \
- src/ags/X/ags_automation_editor.h \
+ src/ags/X/ags_xorg_init.h src/ags/X/ags_xorg_application_context.h \
+ src/ags/X/ags_window.h src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
@@ -622,10 +623,89 @@ gsequencer-main.o: src/ags/main.c /usr/include/stdc-predef.h \
  src/ags/X/ags_server_preferences.h src/ags/thread/ags_gui_thread.h \
  /usr/include/libintl.h /usr/include/locale.h /usr/include/bits/locale.h \
  /usr/include/sys/resource.h /usr/include/bits/resource.h \
- /usr/include/mcheck.h /usr/X11/include/X11/Xlib.h \
- /usr/X11/include/X11/X.h /usr/X11/include/X11/Xfuncproto.h \
- /usr/X11/include/X11/Xosdefs.h /usr/include/pwd.h \
- /usr/include/sys/mman.h /usr/include/bits/mman.h \
+ /usr/include/mcheck.h /usr/include/ao/ao.h /usr/include/ao/os_types.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/libinstpatch.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/builtin_enums.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchBase.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchFile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchItem.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchIter.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchList.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchContainer.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Preset.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2PZone.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Zone.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Gen.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Mod.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Inst.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2IZone.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Sample.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleData.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStore.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSample.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleTransform.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/sample.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchConverter.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchConverterSF2VoiceCache.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_DLS2.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_Gig.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_SF2.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Conn.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSFile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchRiff.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Info.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Inst.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Sample.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Region.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSReader.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigInst.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigRegion.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigEffects.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigSample.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigDimension.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigSubRegion.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSWriter.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGigFile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchGig.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchParamProp.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchPaste.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchRange.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreCache.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreFile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreRam.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreRom.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSndFile.h \
+ /usr/include/sndfile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSplit24.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSwap.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreVirtual.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleList.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2File.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2GenItem.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2ModItem.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Reader.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2VoiceCache.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Writer.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchSndFile.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchTypeProp.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_generic.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_DLS.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_SF2.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchVBank.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchVBankInst.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchVBankRegion.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchVirtualContainer.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchVirtualContainer_types.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchXml.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/IpatchXmlObject.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/misc.h \
+ /usr/include/libinstpatch-1.0/libinstpatch/version.h \
+ /usr/X11/include/X11/Xlib.h /usr/X11/include/X11/X.h \
+ /usr/X11/include/X11/Xfuncproto.h /usr/X11/include/X11/Xosdefs.h \
+ /usr/include/pwd.h /usr/include/sys/mman.h /usr/include/bits/mman.h \
  /usr/include/bits/mman-linux.h
 
 /usr/include/stdc-predef.h:
@@ -1944,15 +2024,7 @@ src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/thread/ags_thread_application_context.h:
-
-src/ags/thread/ags_thread-posix.h:
-
-src/ags/thread/ags_thread_pool.h:
-
-src/ags/thread/ags_single_thread.h:
-
-src/ags/thread/ags_autosave_thread.h:
+src/ags-lib/object/ags_connectable.h:
 
 src/ags/server/ags_server_application_context.h:
 
@@ -1992,6 +2064,16 @@ src/ags/server/ags_registry.h:
 
 src/ags/server/ags_remote_task.h:
 
+src/ags/thread/ags_thread_application_context.h:
+
+src/ags/thread/ags_thread-posix.h:
+
+src/ags/thread/ags_thread_pool.h:
+
+src/ags/thread/ags_single_thread.h:
+
+src/ags/thread/ags_autosave_thread.h:
+
 src/ags/plugin/ags_ladspa_manager.h:
 
 src/ags/audio/ags_audio_application_context.h:
@@ -2122,6 +2204,8 @@ src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
+src/ags/X/ags_xorg_init.h:
+
 src/ags/X/ags_xorg_application_context.h:
 
 src/ags/X/ags_window.h:
@@ -2190,6 +2274,168 @@ src/ags/thread/ags_gui_thread.h:
 
 /usr/include/mcheck.h:
 
+/usr/include/ao/ao.h:
+
+/usr/include/ao/os_types.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/libinstpatch.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/builtin_enums.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchBase.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchFile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchItem.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchIter.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchList.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchContainer.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Preset.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2PZone.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Zone.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Gen.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Mod.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Inst.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2IZone.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Sample.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleData.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStore.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSample.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleTransform.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/sample.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchConverter.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchConverterSF2VoiceCache.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_DLS2.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_Gig.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchConvert_SF2.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Conn.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSFile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchRiff.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Info.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Inst.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Sample.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Region.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSReader.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigInst.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigRegion.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigEffects.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigSample.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigDimension.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigSubRegion.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLSWriter.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGigFile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchGig.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchParamProp.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchPaste.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchRange.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreCache.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreFile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreRam.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreRom.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSndFile.h:
+
+/usr/include/sndfile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSplit24.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreSwap.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleStoreVirtual.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSampleList.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2File.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2GenItem.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2ModItem.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Reader.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2VoiceCache.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSF2Writer.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchSndFile.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchTypeProp.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_generic.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_DLS.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchUnit_SF2.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchVBank.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchVBankInst.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchVBankRegion.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchVirtualContainer.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchVirtualContainer_types.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchXml.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/IpatchXmlObject.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/misc.h:
+
+/usr/include/libinstpatch-1.0/libinstpatch/version.h:
+
 /usr/X11/include/X11/Xlib.h:
 
 /usr/X11/include/X11/X.h:
diff --git a/.deps/libags_a-ags_application_context.Po b/.deps/libags_a-ags_application_context.Po
index 748279e..30199b5 100644
--- a/.deps/libags_a-ags_application_context.Po
+++ b/.deps/libags_a-ags_application_context.Po
@@ -107,15 +107,7 @@ libags_a-ags_application_context.o: \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -576,38 +568,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:
 
 /usr/include/libxml2/libxml/tree.h:
diff --git a/.deps/libags_a-ags_config.Po b/.deps/libags_a-ags_config.Po
index 94b2881..1551203 100644
--- a/.deps/libags_a-ags_config.Po
+++ b/.deps/libags_a-ags_config.Po
@@ -527,14 +527,6 @@ libags_a-ags_config.o: src/ags/object/ags_config.c \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.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 /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -1782,38 +1774,6 @@ src/ags/object/ags_application_context.h:
 
 src/ags/lib/ags_log.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:
 
 /usr/include/libxml2/libxml/tree.h:
diff --git a/.deps/libags_audio_a-ags_note.Po b/.deps/libags_a-ags_init.Po
similarity index 96%
copy from .deps/libags_audio_a-ags_note.Po
copy to .deps/libags_a-ags_init.Po
index 78f4fd3..496e70c 100644
--- a/.deps/libags_audio_a-ags_note.Po
+++ b/.deps/libags_a-ags_init.Po
@@ -1,7 +1,6 @@
-libags_audio_a-ags_note.o: src/ags/audio/ags_note.c \
- /usr/include/stdc-predef.h src/ags/audio/ags_note.h \
- /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
- /usr/include/glib-2.0/glib/gtypes.h \
+libags_a-ags_init.o: src/ags/object/ags_init.c /usr/include/stdc-predef.h \
+ src/ags/object/ags_init.h /usr/include/glib-2.0/glib.h \
+ /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
  /usr/include/glib-2.0/glib/gmacros.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stddef.h \
@@ -104,10 +103,12 @@ libags_audio_a-ags_note.o: src/ags/audio/ags_note.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags-lib/object/ags_connectable.h /usr/include/libxml2/libxml/tree.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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 \
@@ -131,7 +132,7 @@ libags_audio_a-ags_note.o: src/ags/audio/ags_note.c \
 
 /usr/include/stdc-predef.h:
 
-src/ags/audio/ags_note.h:
+src/ags/object/ags_init.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -409,9 +410,9 @@ src/ags/audio/ags_note.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags-lib/object/ags_connectable.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -427,6 +428,12 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/bits/stdio.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:
diff --git a/.deps/libags_a-ags_main_loop.Po b/.deps/libags_a-ags_main_loop.Po
index 7f5b79d..86381bf 100644
--- a/.deps/libags_a-ags_main_loop.Po
+++ b/.deps/libags_a-ags_main_loop.Po
@@ -103,17 +103,32 @@ libags_a-ags_main_loop.o: src/ags/object/ags_main_loop.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.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 /usr/include/stdio.h /usr/include/libio.h \
- /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h
 
 /usr/include/stdc-predef.h:
 
@@ -395,46 +410,80 @@ src/ags/object/ags_main_loop.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/thread/ags_async_queue.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/linux/futex.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/linux/types.h:
+/usr/include/stdio.h:
 
-/usr/include/asm/types.h:
+/usr/include/libio.h:
 
-/usr/include/asm-generic/types.h:
+/usr/include/_G_config.h:
 
-/usr/include/asm-generic/int-ll64.h:
+/usr/include/wchar.h:
 
-/usr/include/asm/bitsperlong.h:
+/usr/include/bits/stdio_lim.h:
 
-/usr/include/asm-generic/bitsperlong.h:
+/usr/include/bits/sys_errlist.h:
 
-/usr/include/linux/posix_types.h:
+/usr/include/bits/stdio.h:
 
-/usr/include/linux/stddef.h:
+src/ags/object/ags_config.h:
 
-/usr/include/asm/posix_types.h:
+src/ags/file/ags_file.h:
 
-/usr/include/asm/posix_types_64.h:
+/usr/include/libxml2/libxml/tree.h:
 
-/usr/include/asm-generic/posix_types.h:
+/usr/include/libxml2/libxml/xmlversion.h:
 
-/usr/include/sys/time.h:
+/usr/include/libxml2/libxml/xmlexports.h:
 
-src/ags/object/ags_stackable.h:
+/usr/include/libxml2/libxml/xmlstring.h:
 
-/usr/include/stdio.h:
+/usr/include/libxml2/libxml/xmlregexp.h:
 
-/usr/include/libio.h:
+/usr/include/libxml2/libxml/dict.h:
 
-/usr/include/_G_config.h:
+/usr/include/libxml2/libxml/xmlmemory.h:
 
-/usr/include/wchar.h:
+/usr/include/libxml2/libxml/threads.h:
 
-/usr/include/bits/stdio_lim.h:
+/usr/include/libxml2/libxml/globals.h:
 
-/usr/include/bits/sys_errlist.h:
+/usr/include/libxml2/libxml/parser.h:
 
-/usr/include/bits/stdio.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/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib-bsearch.h:
+
+/usr/include/bits/stdlib-float.h:
+
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
diff --git a/.deps/libags_a-ags_mutable.Po b/.deps/libags_a-ags_mutable.Po
index 1dfdfad..8dc1514 100644
--- a/.deps/libags_a-ags_mutable.Po
+++ b/.deps/libags_a-ags_mutable.Po
@@ -142,6 +142,26 @@ libags_a-ags_mutable.o: src/ags/object/ags_mutable.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_a-ags_mutable.o: src/ags/object/ags_mutable.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
 
@@ -1032,6 +1034,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:
@@ -1970,50 +2024,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_a-ags_soundcard.Po b/.deps/libags_a-ags_soundcard.Po
index 30265f7..81719db 100644
--- a/.deps/libags_a-ags_soundcard.Po
+++ b/.deps/libags_a-ags_soundcard.Po
@@ -102,11 +102,14 @@ libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/file/ags_file.h \
- /usr/include/libxml2/libxml/tree.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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 \
@@ -412,9 +415,9 @@ src/ags/object/ags_soundcard.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -430,6 +433,12 @@ src/ags/file/ags_file.h:
 
 /usr/include/bits/stdio.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:
diff --git a/.deps/libags_audio_a-ags_add_audio.Po b/.deps/libags_audio_a-ags_add_audio.Po
index 02ed6e1..c8b9896 100644
--- a/.deps/libags_audio_a-ags_add_audio.Po
+++ b/.deps/libags_audio_a-ags_add_audio.Po
@@ -143,6 +143,26 @@ libags_audio_a-ags_add_audio.o: src/ags/audio/task/ags_add_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 \
@@ -568,24 +588,6 @@ libags_audio_a-ags_add_audio.o: src/ags/audio/task/ags_add_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
@@ -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_add_audio_signal.Po b/.deps/libags_audio_a-ags_add_audio_signal.Po
index 50edd95..d7b8c05 100644
--- a/.deps/libags_audio_a-ags_add_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_add_audio_signal.Po
@@ -145,6 +145,26 @@ libags_audio_a-ags_add_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/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_add_audio_signal.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
 
@@ -1040,6 +1042,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_append_audio.Po b/.deps/libags_audio_a-ags_append_audio.Po
index f5981c1..f0d2d8d 100644
--- a/.deps/libags_audio_a-ags_append_audio.Po
+++ b/.deps/libags_audio_a-ags_append_audio.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_append_audio.o: src/ags/audio/task/ags_append_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,28 +589,8 @@ libags_audio_a-ags_append_audio.o: src/ags/audio/task/ags_append_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/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 \
  src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.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/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1984,64 +2036,12 @@ 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/server/ags_server_application_context.h:
diff --git a/.deps/libags_audio_a-ags_append_audio_threaded.Po b/.deps/libags_audio_a-ags_append_audio_threaded.Po
index 6032c69..e6f360b 100644
--- a/.deps/libags_audio_a-ags_append_audio_threaded.Po
+++ b/.deps/libags_audio_a-ags_append_audio_threaded.Po
@@ -146,6 +146,26 @@ libags_audio_a-ags_append_audio_threaded.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_append_audio_threaded.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_append_channel.Po b/.deps/libags_audio_a-ags_append_channel.Po
index e6a475f..d08eb97 100644
--- a/.deps/libags_audio_a-ags_append_channel.Po
+++ b/.deps/libags_audio_a-ags_append_channel.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_append_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/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_append_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/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 \
  src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.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/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -1984,64 +2036,12 @@ 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/server/ags_server_application_context.h:
diff --git a/.deps/libags_audio_a-ags_append_recall.Po b/.deps/libags_audio_a-ags_append_recall.Po
index 01397fb..ec1b59f 100644
--- a/.deps/libags_audio_a-ags_append_recall.Po
+++ b/.deps/libags_audio_a-ags_append_recall.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_append_recall.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_append_recall.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_apply_synth.Po b/.deps/libags_audio_a-ags_apply_synth.Po
index a14e1b1..d49dddb 100644
--- a/.deps/libags_audio_a-ags_apply_synth.Po
+++ b/.deps/libags_audio_a-ags_apply_synth.Po
@@ -587,8 +587,9 @@ libags_audio_a-ags_apply_synth.o: src/ags/audio/task/ags_apply_synth.c \
  /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/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/file/ags_file.h \
+ src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h
 
 /usr/include/stdc-predef.h:
 
@@ -2026,6 +2027,12 @@ 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/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_audio.Po b/.deps/libags_audio_a-ags_audio.Po
index 0ca7898..5d7a438 100644
--- a/.deps/libags_audio_a-ags_audio.Po
+++ b/.deps/libags_audio_a-ags_audio.Po
@@ -555,14 +555,6 @@ libags_audio_a-ags_audio.o: src/ags/audio/ags_audio.c \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/lib/ags_list.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_marshal.h \
  src/ags/thread/ags_audio_loop.h /usr/include/math.h \
@@ -570,7 +562,15 @@ libags_audio_a-ags_audio.o: src/ags/audio/ags_audio.c \
  /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/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/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
@@ -1912,7 +1912,33 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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_marshal.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:
 
@@ -1944,38 +1970,12 @@ src/ags/thread/ags_async_queue.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_marshal.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/object/ags_main_loop.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/server/ags_server_application_context.h:
diff --git a/.deps/libags_audio_a-ags_audio_application_context.Po b/.deps/libags_audio_a-ags_audio_application_context.Po
index 6559ec1..9f51c14 100644
--- a/.deps/libags_audio_a-ags_audio_application_context.Po
+++ b/.deps/libags_audio_a-ags_audio_application_context.Po
@@ -109,15 +109,7 @@ libags_audio_a-ags_audio_application_context.o: \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -166,7 +158,15 @@ libags_audio_a-ags_audio_application_context.o: \
  /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_thread-posix.h \
- src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.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_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
@@ -903,38 +903,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:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1105,10 +1073,42 @@ src/ags/thread/ags_audio_loop.h:
 
 src/ags/thread/ags_thread-posix.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_audio_file.Po b/.deps/libags_audio_a-ags_audio_file.Po
index 1640a9f..956283f 100644
--- a/.deps/libags_audio_a-ags_audio_file.Po
+++ b/.deps/libags_audio_a-ags_audio_file.Po
@@ -103,16 +103,35 @@ libags_audio_a-ags_audio_file.o: src/ags/audio/file/ags_audio_file.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/audio/ags_devout.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/object/ags_config.h \
+ src/ags-lib/object/ags_connectable.h /usr/include/libxml2/libxml/tree.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/object/ags_playable.h src/ags/audio/ags_devout.h \
  /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.h /usr/include/string.h \
+ /usr/include/bits/confname.h /usr/include/getopt.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 \
@@ -143,9 +162,11 @@ libags_audio_a-ags_audio_file.o: src/ags/audio/file/ags_audio_file.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/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 \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
+ /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
  /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
@@ -568,27 +589,8 @@ libags_audio_a-ags_audio_file.o: src/ags/audio/file/ags_audio_file.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_config.h \
- src/ags-lib/object/ags_connectable.h src/ags/object/ags_playable.h \
+ src/ags/audio/ags_note.h src/ags/object/ags_soundcard.h \
  src/ags/audio/file/ags_sndfile.h /usr/include/sndfile.h
 
 /usr/include/stdc-predef.h:
@@ -871,19 +873,11 @@ src/ags/audio/file/ags_audio_file.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
+src/ags/object/ags_config.h:
 
-/usr/include/bits/confname.h:
+src/ags-lib/object/ags_connectable.h:
 
-/usr/include/getopt.h:
+/usr/include/libxml2/libxml/tree.h:
 
 /usr/include/stdio.h:
 
@@ -899,6 +893,44 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/stdio.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/stdlib.h:
 
 /usr/include/bits/waitflags.h:
@@ -911,6 +943,26 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/stdlib-float.h:
 
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+src/ags/object/ags_playable.h:
+
+src/ags/audio/ags_devout.h:
+
+/usr/include/alsa/asoundlib.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
 /usr/include/string.h:
 
 /usr/include/bits/string.h:
@@ -1035,6 +1087,12 @@ 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/file/ags_file.h:
+
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1973,61 +2031,13 @@ 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_config.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-src/ags/object/ags_playable.h:
+src/ags/object/ags_soundcard.h:
 
 src/ags/audio/file/ags_sndfile.h:
 
diff --git a/.deps/libags_audio_a-ags_audio_file_xml.Po b/.deps/libags_audio_a-ags_audio_file_xml.Po
index 8490f25..2cab68f 100644
--- a/.deps/libags_audio_a-ags_audio_file_xml.Po
+++ b/.deps/libags_audio_a-ags_audio_file_xml.Po
@@ -107,488 +107,7 @@ libags_audio_a-ags_audio_file_xml.o: \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
- src/ags/audio/file/ags_audio_file.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.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_thread-posix.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_channel.h \
- /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
- /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
- /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
- /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
- /usr/include/glib-2.0/gio/gactiongroup.h \
- /usr/include/glib-2.0/gio/gactiongroupexporter.h \
- /usr/include/glib-2.0/gio/gactionmap.h \
- /usr/include/glib-2.0/gio/gappinfo.h \
- /usr/include/glib-2.0/gio/gapplication.h \
- /usr/include/glib-2.0/gio/gapplicationcommandline.h \
- /usr/include/glib-2.0/gio/gasyncinitable.h \
- /usr/include/glib-2.0/gio/ginitable.h \
- /usr/include/glib-2.0/gio/gasyncresult.h \
- /usr/include/glib-2.0/gio/gbufferedinputstream.h \
- /usr/include/glib-2.0/gio/gfilterinputstream.h \
- /usr/include/glib-2.0/gio/ginputstream.h \
- /usr/include/glib-2.0/gio/gbufferedoutputstream.h \
- /usr/include/glib-2.0/gio/gfilteroutputstream.h \
- /usr/include/glib-2.0/gio/goutputstream.h \
- /usr/include/glib-2.0/gio/gbytesicon.h \
- /usr/include/glib-2.0/gio/gcancellable.h \
- /usr/include/glib-2.0/gio/gcharsetconverter.h \
- /usr/include/glib-2.0/gio/gconverter.h \
- /usr/include/glib-2.0/gio/gcontenttype.h \
- /usr/include/glib-2.0/gio/gconverterinputstream.h \
- /usr/include/glib-2.0/gio/gconverteroutputstream.h \
- /usr/include/glib-2.0/gio/gcredentials.h \
- /usr/include/glib-2.0/gio/gdatainputstream.h \
- /usr/include/glib-2.0/gio/gdataoutputstream.h \
- /usr/include/glib-2.0/gio/gdbusaddress.h \
- /usr/include/glib-2.0/gio/gdbusauthobserver.h \
- /usr/include/glib-2.0/gio/gdbusconnection.h \
- /usr/include/glib-2.0/gio/gdbuserror.h \
- /usr/include/glib-2.0/gio/gdbusintrospection.h \
- /usr/include/glib-2.0/gio/gdbusmessage.h \
- /usr/include/glib-2.0/gio/gdbusmethodinvocation.h \
- /usr/include/glib-2.0/gio/gdbusnameowning.h \
- /usr/include/glib-2.0/gio/gdbusnamewatching.h \
- /usr/include/glib-2.0/gio/gdbusproxy.h \
- /usr/include/glib-2.0/gio/gdbusserver.h \
- /usr/include/glib-2.0/gio/gdbusutils.h \
- /usr/include/glib-2.0/gio/gdrive.h \
- /usr/include/glib-2.0/gio/gemblemedicon.h \
- /usr/include/glib-2.0/gio/gicon.h /usr/include/glib-2.0/gio/gemblem.h \
- /usr/include/glib-2.0/gio/gfileattribute.h \
- /usr/include/glib-2.0/gio/gfileenumerator.h \
- /usr/include/glib-2.0/gio/gfile.h /usr/include/glib-2.0/gio/gfileicon.h \
- /usr/include/glib-2.0/gio/gfileinfo.h \
- /usr/include/glib-2.0/gio/gfileinputstream.h \
- /usr/include/glib-2.0/gio/gfileiostream.h \
- /usr/include/glib-2.0/gio/giostream.h \
- /usr/include/glib-2.0/gio/gioerror.h \
- /usr/include/glib-2.0/gio/gfilemonitor.h \
- /usr/include/glib-2.0/gio/gfilenamecompleter.h \
- /usr/include/glib-2.0/gio/gfileoutputstream.h \
- /usr/include/glib-2.0/gio/ginetaddress.h \
- /usr/include/glib-2.0/gio/ginetaddressmask.h \
- /usr/include/glib-2.0/gio/ginetsocketaddress.h \
- /usr/include/glib-2.0/gio/gsocketaddress.h \
- /usr/include/glib-2.0/gio/gioenumtypes.h \
- /usr/include/glib-2.0/gio/giomodule.h /usr/include/glib-2.0/gmodule.h \
- /usr/include/glib-2.0/gio/gioscheduler.h \
- /usr/include/glib-2.0/gio/gloadableicon.h \
- /usr/include/glib-2.0/gio/gmemoryinputstream.h \
- /usr/include/glib-2.0/gio/gmemoryoutputstream.h \
- /usr/include/glib-2.0/gio/gmount.h \
- /usr/include/glib-2.0/gio/gmountoperation.h \
- /usr/include/glib-2.0/gio/gnativevolumemonitor.h \
- /usr/include/glib-2.0/gio/gvolumemonitor.h \
- /usr/include/glib-2.0/gio/gnetworkaddress.h \
- /usr/include/glib-2.0/gio/gnetworkmonitor.h \
- /usr/include/glib-2.0/gio/gnetworkservice.h \
- /usr/include/glib-2.0/gio/gpermission.h \
- /usr/include/glib-2.0/gio/gpollableinputstream.h \
- /usr/include/glib-2.0/gio/gpollableoutputstream.h \
- /usr/include/glib-2.0/gio/gpollableutils.h \
- /usr/include/glib-2.0/gio/gpropertyaction.h \
- /usr/include/glib-2.0/gio/gproxy.h \
- /usr/include/glib-2.0/gio/gproxyaddress.h \
- /usr/include/glib-2.0/gio/gproxyaddressenumerator.h \
- /usr/include/glib-2.0/gio/gsocketaddressenumerator.h \
- /usr/include/glib-2.0/gio/gproxyresolver.h \
- /usr/include/glib-2.0/gio/gresolver.h \
- /usr/include/glib-2.0/gio/gresource.h \
- /usr/include/glib-2.0/gio/gseekable.h \
- /usr/include/glib-2.0/gio/gsettingsschema.h \
- /usr/include/glib-2.0/gio/gsettings.h \
- /usr/include/glib-2.0/gio/gsimpleaction.h \
- /usr/include/glib-2.0/gio/gsimpleactiongroup.h \
- /usr/include/glib-2.0/gio/gactiongroup.h \
- /usr/include/glib-2.0/gio/gactionmap.h \
- /usr/include/glib-2.0/gio/gsimpleasyncresult.h \
- /usr/include/glib-2.0/gio/gsimplepermission.h \
- /usr/include/glib-2.0/gio/gsocketclient.h \
- /usr/include/glib-2.0/gio/gsocketconnectable.h \
- /usr/include/glib-2.0/gio/gsocketconnection.h \
- /usr/include/glib-2.0/gio/gsocket.h \
- /usr/include/glib-2.0/gio/gsocketcontrolmessage.h \
- /usr/include/glib-2.0/gio/gsocketlistener.h \
- /usr/include/glib-2.0/gio/gsocketservice.h \
- /usr/include/glib-2.0/gio/gsrvtarget.h \
- /usr/include/glib-2.0/gio/gsimpleproxyresolver.h \
- /usr/include/glib-2.0/gio/gtask.h \
- /usr/include/glib-2.0/gio/gsubprocess.h \
- /usr/include/glib-2.0/gio/gsubprocesslauncher.h \
- /usr/include/glib-2.0/gio/gtcpconnection.h \
- /usr/include/glib-2.0/gio/gtcpwrapperconnection.h \
- /usr/include/glib-2.0/gio/gtestdbus.h \
- /usr/include/glib-2.0/gio/gthemedicon.h \
- /usr/include/glib-2.0/gio/gthreadedsocketservice.h \
- /usr/include/glib-2.0/gio/gtlsbackend.h \
- /usr/include/glib-2.0/gio/gtlscertificate.h \
- /usr/include/glib-2.0/gio/gtlsclientconnection.h \
- /usr/include/glib-2.0/gio/gtlsconnection.h \
- /usr/include/glib-2.0/gio/gtlsdatabase.h \
- /usr/include/glib-2.0/gio/gtlsfiledatabase.h \
- /usr/include/glib-2.0/gio/gtlsinteraction.h \
- /usr/include/glib-2.0/gio/gtlsserverconnection.h \
- /usr/include/glib-2.0/gio/gtlspassword.h \
- /usr/include/glib-2.0/gio/gvfs.h /usr/include/glib-2.0/gio/gvolume.h \
- /usr/include/glib-2.0/gio/gzlibcompressor.h \
- /usr/include/glib-2.0/gio/gzlibdecompressor.h \
- /usr/include/glib-2.0/gio/gdbusinterface.h \
- /usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h \
- /usr/include/glib-2.0/gio/gdbusobject.h \
- /usr/include/glib-2.0/gio/gdbusobjectskeleton.h \
- /usr/include/glib-2.0/gio/gdbusobjectproxy.h \
- /usr/include/glib-2.0/gio/gdbusobjectmanager.h \
- /usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h \
- /usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h \
- /usr/include/glib-2.0/gio/gdbusactiongroup.h \
- /usr/include/glib-2.0/gio/giotypes.h \
- /usr/include/glib-2.0/gio/gremoteactiongroup.h \
- /usr/include/glib-2.0/gio/gmenumodel.h /usr/include/glib-2.0/gio/gmenu.h \
- /usr/include/glib-2.0/gio/gmenuexporter.h \
- /usr/include/glib-2.0/gio/gdbusmenumodel.h \
- /usr/include/glib-2.0/gio/gnotification.h \
- /usr/include/gtk-2.0/gdk/gdkscreen.h /usr/include/cairo/cairo.h \
- /usr/include/cairo/cairo-version.h /usr/include/cairo/cairo-features.h \
- /usr/include/cairo/cairo-deprecated.h \
- /usr/include/gtk-2.0/gdk/gdktypes.h /usr/include/pango-1.0/pango/pango.h \
- /usr/include/pango-1.0/pango/pango-attributes.h \
- /usr/include/pango-1.0/pango/pango-font.h \
- /usr/include/pango-1.0/pango/pango-coverage.h \
- /usr/include/pango-1.0/pango/pango-types.h \
- /usr/include/pango-1.0/pango/pango-gravity.h \
- /usr/include/pango-1.0/pango/pango-matrix.h \
- /usr/include/pango-1.0/pango/pango-script.h \
- /usr/include/pango-1.0/pango/pango-language.h \
- /usr/include/pango-1.0/pango/pango-bidi-type.h \
- /usr/include/pango-1.0/pango/pango-break.h \
- /usr/include/pango-1.0/pango/pango-item.h \
- /usr/include/pango-1.0/pango/pango-context.h \
- /usr/include/pango-1.0/pango/pango-fontmap.h \
- /usr/include/pango-1.0/pango/pango-fontset.h \
- /usr/include/pango-1.0/pango/pango-engine.h \
- /usr/include/pango-1.0/pango/pango-glyph.h \
- /usr/include/pango-1.0/pango/pango-enum-types.h \
- /usr/include/pango-1.0/pango/pango-features.h \
- /usr/include/pango-1.0/pango/pango-glyph-item.h \
- /usr/include/pango-1.0/pango/pango-layout.h \
- /usr/include/pango-1.0/pango/pango-tabs.h \
- /usr/include/pango-1.0/pango/pango-renderer.h \
- /usr/include/pango-1.0/pango/pango-utils.h \
- /usr/lib/gtk-2.0/include/gdkconfig.h \
- /usr/include/gtk-2.0/gdk/gdkdisplay.h \
- /usr/include/gtk-2.0/gdk/gdkevents.h /usr/include/gtk-2.0/gdk/gdkcolor.h \
- /usr/include/gtk-2.0/gdk/gdkdnd.h /usr/include/gtk-2.0/gdk/gdkinput.h \
- /usr/include/gtk-2.0/gdk/gdkcairo.h /usr/include/gtk-2.0/gdk/gdkpixbuf.h \
- /usr/include/gtk-2.0/gdk/gdkrgb.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h \
- /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h \
- /usr/include/pango-1.0/pango/pangocairo.h \
- /usr/include/gtk-2.0/gdk/gdkcursor.h \
- /usr/include/gtk-2.0/gdk/gdkdisplaymanager.h \
- /usr/include/gtk-2.0/gdk/gdkdrawable.h /usr/include/gtk-2.0/gdk/gdkgc.h \
- /usr/include/gtk-2.0/gdk/gdkenumtypes.h \
- /usr/include/gtk-2.0/gdk/gdkfont.h /usr/include/gtk-2.0/gdk/gdkimage.h \
- /usr/include/gtk-2.0/gdk/gdkkeys.h /usr/include/gtk-2.0/gdk/gdkpango.h \
- /usr/include/gtk-2.0/gdk/gdkpixmap.h \
- /usr/include/gtk-2.0/gdk/gdkproperty.h \
- /usr/include/gtk-2.0/gdk/gdkregion.h \
- /usr/include/gtk-2.0/gdk/gdkselection.h \
- /usr/include/gtk-2.0/gdk/gdkspawn.h \
- /usr/include/gtk-2.0/gdk/gdktestutils.h \
- /usr/include/gtk-2.0/gdk/gdkwindow.h \
- /usr/include/gtk-2.0/gdk/gdkvisual.h \
- /usr/include/gtk-2.0/gtk/gtkaboutdialog.h \
- /usr/include/gtk-2.0/gtk/gtkdialog.h \
- /usr/include/gtk-2.0/gtk/gtkwindow.h \
- /usr/include/gtk-2.0/gtk/gtkaccelgroup.h \
- /usr/include/gtk-2.0/gtk/gtkenums.h /usr/include/gtk-2.0/gtk/gtkbin.h \
- /usr/include/gtk-2.0/gtk/gtkcontainer.h \
- /usr/include/gtk-2.0/gtk/gtkwidget.h \
- /usr/include/gtk-2.0/gtk/gtkobject.h \
- /usr/include/gtk-2.0/gtk/gtktypeutils.h \
- /usr/include/gtk-2.0/gtk/gtktypebuiltins.h \
- /usr/include/gtk-2.0/gtk/gtkdebug.h \
- /usr/include/gtk-2.0/gtk/gtkadjustment.h \
- /usr/include/gtk-2.0/gtk/gtkstyle.h \
- /usr/include/gtk-2.0/gtk/gtksettings.h /usr/include/gtk-2.0/gtk/gtkrc.h \
- /usr/include/atk-1.0/atk/atk.h /usr/include/atk-1.0/atk/atkobject.h \
- /usr/include/atk-1.0/atk/atkversion.h \
- /usr/include/atk-1.0/atk/atkstate.h \
- /usr/include/atk-1.0/atk/atkrelationtype.h \
- /usr/include/atk-1.0/atk/atkaction.h \
- /usr/include/atk-1.0/atk/atkcomponent.h \
- /usr/include/atk-1.0/atk/atkutil.h \
- /usr/include/atk-1.0/atk/atkdocument.h \
- /usr/include/atk-1.0/atk/atkeditabletext.h \
- /usr/include/atk-1.0/atk/atktext.h \
- /usr/include/atk-1.0/atk/atk-enum-types.h \
- /usr/include/atk-1.0/atk/atkgobjectaccessible.h \
- /usr/include/atk-1.0/atk/atkhyperlink.h \
- /usr/include/atk-1.0/atk/atkhyperlinkimpl.h \
- /usr/include/atk-1.0/atk/atkhypertext.h \
- /usr/include/atk-1.0/atk/atkimage.h \
- /usr/include/atk-1.0/atk/atknoopobject.h \
- /usr/include/atk-1.0/atk/atknoopobjectfactory.h \
- /usr/include/atk-1.0/atk/atkobjectfactory.h \
- /usr/include/atk-1.0/atk/atkplug.h /usr/include/atk-1.0/atk/atkrange.h \
- /usr/include/atk-1.0/atk/atkregistry.h \
- /usr/include/atk-1.0/atk/atkobjectfactory.h \
- /usr/include/atk-1.0/atk/atkrelation.h \
- /usr/include/atk-1.0/atk/atkrelationset.h \
- /usr/include/atk-1.0/atk/atkselection.h \
- /usr/include/atk-1.0/atk/atksocket.h \
- /usr/include/atk-1.0/atk/atkstateset.h \
- /usr/include/atk-1.0/atk/atkstreamablecontent.h \
- /usr/include/atk-1.0/atk/atktable.h \
- /usr/include/atk-1.0/atk/atktablecell.h \
- /usr/include/atk-1.0/atk/atkmisc.h /usr/include/atk-1.0/atk/atkvalue.h \
- /usr/include/atk-1.0/atk/atkwindow.h \
- /usr/include/gtk-2.0/gtk/gtkaccellabel.h \
- /usr/include/gtk-2.0/gtk/gtklabel.h /usr/include/gtk-2.0/gtk/gtkmisc.h \
- /usr/include/gtk-2.0/gtk/gtkmenu.h \
- /usr/include/gtk-2.0/gtk/gtkmenushell.h \
- /usr/include/gtk-2.0/gtk/gtkaccelmap.h \
- /usr/include/gtk-2.0/gtk/gtkaccessible.h \
- /usr/include/gtk-2.0/gtk/gtkaction.h \
- /usr/include/gtk-2.0/gtk/gtkactiongroup.h \
- /usr/include/gtk-2.0/gtk/gtkactivatable.h \
- /usr/include/gtk-2.0/gtk/gtkalignment.h \
- /usr/include/gtk-2.0/gtk/gtkarrow.h \
- /usr/include/gtk-2.0/gtk/gtkaspectframe.h \
- /usr/include/gtk-2.0/gtk/gtkframe.h \
- /usr/include/gtk-2.0/gtk/gtkassistant.h \
- /usr/include/gtk-2.0/gtk/gtkbbox.h /usr/include/gtk-2.0/gtk/gtkbox.h \
- /usr/include/gtk-2.0/gtk/gtkbindings.h \
- /usr/include/gtk-2.0/gtk/gtkbuildable.h \
- /usr/include/gtk-2.0/gtk/gtkbuilder.h \
- /usr/include/gtk-2.0/gtk/gtkbutton.h /usr/include/gtk-2.0/gtk/gtkimage.h \
- /usr/include/gtk-2.0/gtk/gtkcalendar.h \
- /usr/include/gtk-2.0/gtk/gtksignal.h \
- /usr/include/gtk-2.0/gtk/gtkmarshal.h \
- /usr/include/gtk-2.0/gtk/gtkcelleditable.h \
- /usr/include/gtk-2.0/gtk/gtkcelllayout.h \
- /usr/include/gtk-2.0/gtk/gtkcellrenderer.h \
- /usr/include/gtk-2.0/gtk/gtktreeviewcolumn.h \
- /usr/include/gtk-2.0/gtk/gtktreemodel.h \
- /usr/include/gtk-2.0/gtk/gtktreesortable.h \
- /usr/include/gtk-2.0/gtk/gtkcellrendereraccel.h \
- /usr/include/gtk-2.0/gtk/gtkcellrenderertext.h \
- /usr/include/gtk-2.0/gtk/gtkcellrenderercombo.h \
- /usr/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h \
- /usr/include/gtk-2.0/gtk/gtkcellrendererprogress.h \
- /usr/include/gtk-2.0/gtk/gtkcellrendererspin.h \
- /usr/include/gtk-2.0/gtk/gtkcellrendererspinner.h \
- /usr/include/gtk-2.0/gtk/gtkcellrenderertoggle.h \
- /usr/include/gtk-2.0/gtk/gtkcellview.h \
- /usr/include/gtk-2.0/gtk/gtkcheckbutton.h \
- /usr/include/gtk-2.0/gtk/gtktogglebutton.h \
- /usr/include/gtk-2.0/gtk/gtkcheckmenuitem.h \
- /usr/include/gtk-2.0/gtk/gtkmenuitem.h \
- /usr/include/gtk-2.0/gtk/gtkitem.h \
- /usr/include/gtk-2.0/gtk/gtkclipboard.h \
- /usr/include/gtk-2.0/gtk/gtkselection.h \
- /usr/include/gtk-2.0/gtk/gtktextiter.h \
- /usr/include/gtk-2.0/gtk/gtktexttag.h \
- /usr/include/gtk-2.0/gtk/gtktextchild.h \
- /usr/include/gtk-2.0/gtk/gtkcolorbutton.h \
- /usr/include/gtk-2.0/gtk/gtkcolorsel.h \
- /usr/include/gtk-2.0/gtk/gtkvbox.h \
- /usr/include/gtk-2.0/gtk/gtkcolorseldialog.h \
- /usr/include/gtk-2.0/gtk/gtkcombobox.h \
- /usr/include/gtk-2.0/gtk/gtktreeview.h /usr/include/gtk-2.0/gtk/gtkdnd.h \
- /usr/include/gtk-2.0/gtk/gtkentry.h \
- /usr/include/gtk-2.0/gtk/gtkeditable.h \
- /usr/include/gtk-2.0/gtk/gtkimcontext.h \
- /usr/include/gtk-2.0/gtk/gtkentrybuffer.h \
- /usr/include/gtk-2.0/gtk/gtkentrycompletion.h \
- /usr/include/gtk-2.0/gtk/gtkliststore.h \
- /usr/include/gtk-2.0/gtk/gtktreemodelfilter.h \
- /usr/include/gtk-2.0/gtk/gtkcomboboxentry.h \
- /usr/include/gtk-2.0/gtk/gtkcomboboxtext.h \
- /usr/include/gtk-2.0/gtk/gtkdrawingarea.h \
- /usr/include/gtk-2.0/gtk/gtkeventbox.h \
- /usr/include/gtk-2.0/gtk/gtkexpander.h \
- /usr/include/gtk-2.0/gtk/gtkfixed.h \
- /usr/include/gtk-2.0/gtk/gtkfilechooser.h \
- /usr/include/gtk-2.0/gtk/gtkfilefilter.h \
- /usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h \
- /usr/include/gtk-2.0/gtk/gtkhbox.h \
- /usr/include/gtk-2.0/gtk/gtkfilechooserdialog.h \
- /usr/include/gtk-2.0/gtk/gtkfilechooserwidget.h \
- /usr/include/gtk-2.0/gtk/gtkfontbutton.h \
- /usr/include/gtk-2.0/gtk/gtkfontsel.h /usr/include/gtk-2.0/gtk/gtkgc.h \
- /usr/include/gtk-2.0/gtk/gtkhandlebox.h \
- /usr/include/gtk-2.0/gtk/gtkhbbox.h /usr/include/gtk-2.0/gtk/gtkhpaned.h \
- /usr/include/gtk-2.0/gtk/gtkpaned.h /usr/include/gtk-2.0/gtk/gtkhruler.h \
- /usr/include/gtk-2.0/gtk/gtkruler.h /usr/include/gtk-2.0/gtk/gtkhscale.h \
- /usr/include/gtk-2.0/gtk/gtkscale.h /usr/include/gtk-2.0/gtk/gtkrange.h \
- /usr/include/gtk-2.0/gtk/gtkhscrollbar.h \
- /usr/include/gtk-2.0/gtk/gtkscrollbar.h \
- /usr/include/gtk-2.0/gtk/gtkhseparator.h \
- /usr/include/gtk-2.0/gtk/gtkseparator.h \
- /usr/include/gtk-2.0/gtk/gtkhsv.h \
- /usr/include/gtk-2.0/gtk/gtkiconfactory.h \
- /usr/include/gtk-2.0/gtk/gtkicontheme.h \
- /usr/include/gtk-2.0/gtk/gtkiconview.h \
- /usr/include/gtk-2.0/gtk/gtktooltip.h \
- /usr/include/gtk-2.0/gtk/gtkimagemenuitem.h \
- /usr/include/gtk-2.0/gtk/gtkimcontextsimple.h \
- /usr/include/gtk-2.0/gtk/gtkimmulticontext.h \
- /usr/include/gtk-2.0/gtk/gtkinfobar.h \
- /usr/include/gtk-2.0/gtk/gtkinvisible.h \
- /usr/include/gtk-2.0/gtk/gtklayout.h \
- /usr/include/gtk-2.0/gtk/gtklinkbutton.h \
- /usr/include/gtk-2.0/gtk/gtkmain.h /usr/include/gtk-2.0/gtk/gtkmenubar.h \
- /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h \
- /usr/include/gtk-2.0/gtk/gtktoolbutton.h \
- /usr/include/gtk-2.0/gtk/gtktoolitem.h \
- /usr/include/gtk-2.0/gtk/gtktooltips.h \
- /usr/include/gtk-2.0/gtk/gtksizegroup.h \
- /usr/include/gtk-2.0/gtk/gtkmessagedialog.h \
- /usr/include/gtk-2.0/gtk/gtkmodules.h \
- /usr/include/gtk-2.0/gtk/gtkmountoperation.h \
- /usr/include/gtk-2.0/gtk/gtknotebook.h \
- /usr/include/gtk-2.0/gtk/gtkoffscreenwindow.h \
- /usr/include/gtk-2.0/gtk/gtkorientable.h \
- /usr/include/gtk-2.0/gtk/gtkpagesetup.h \
- /usr/include/gtk-2.0/gtk/gtkpapersize.h \
- /usr/include/gtk-2.0/gtk/gtkplug.h /usr/include/gtk-2.0/gtk/gtksocket.h \
- /usr/include/gtk-2.0/gtk/gtkprintcontext.h \
- /usr/include/gtk-2.0/gtk/gtkprintoperation.h \
- /usr/include/gtk-2.0/gtk/gtkprintsettings.h \
- /usr/include/gtk-2.0/gtk/gtkprintoperationpreview.h \
- /usr/include/gtk-2.0/gtk/gtkprogressbar.h \
- /usr/include/gtk-2.0/gtk/gtkprogress.h \
- /usr/include/gtk-2.0/gtk/gtkradioaction.h \
- /usr/include/gtk-2.0/gtk/gtktoggleaction.h \
- /usr/include/gtk-2.0/gtk/gtkradiobutton.h \
- /usr/include/gtk-2.0/gtk/gtkradiomenuitem.h \
- /usr/include/gtk-2.0/gtk/gtkradiotoolbutton.h \
- /usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h \
- /usr/include/gtk-2.0/gtk/gtkrecentaction.h \
- /usr/include/gtk-2.0/gtk/gtkrecentmanager.h \
- /usr/include/gtk-2.0/gtk/gtkrecentchooser.h \
- /usr/include/gtk-2.0/gtk/gtkrecentfilter.h \
- /usr/include/gtk-2.0/gtk/gtkrecentchooserdialog.h \
- /usr/include/gtk-2.0/gtk/gtkrecentchoosermenu.h \
- /usr/include/gtk-2.0/gtk/gtkrecentchooserwidget.h \
- /usr/include/gtk-2.0/gtk/gtkscalebutton.h \
- /usr/include/gtk-2.0/gtk/gtkscrolledwindow.h \
- /usr/include/gtk-2.0/gtk/gtkvscrollbar.h \
- /usr/include/gtk-2.0/gtk/gtkviewport.h \
- /usr/include/gtk-2.0/gtk/gtkseparatormenuitem.h \
- /usr/include/gtk-2.0/gtk/gtkseparatortoolitem.h \
- /usr/include/gtk-2.0/gtk/gtkshow.h \
- /usr/include/gtk-2.0/gtk/gtkspinbutton.h \
- /usr/include/gtk-2.0/gtk/gtkspinner.h \
- /usr/include/gtk-2.0/gtk/gtkstatusbar.h \
- /usr/include/gtk-2.0/gtk/gtkstatusicon.h \
- /usr/include/gtk-2.0/gtk/gtkstock.h /usr/include/gtk-2.0/gtk/gtktable.h \
- /usr/include/gtk-2.0/gtk/gtktearoffmenuitem.h \
- /usr/include/gtk-2.0/gtk/gtktextbuffer.h \
- /usr/include/gtk-2.0/gtk/gtktexttagtable.h \
- /usr/include/gtk-2.0/gtk/gtktextmark.h \
- /usr/include/gtk-2.0/gtk/gtktextbufferrichtext.h \
- /usr/include/gtk-2.0/gtk/gtktextview.h \
- /usr/include/gtk-2.0/gtk/gtktoolbar.h \
- /usr/include/gtk-2.0/gtk/gtkpixmap.h \
- /usr/include/gtk-2.0/gtk/gtktoolitemgroup.h \
- /usr/include/gtk-2.0/gtk/gtktoolpalette.h \
- /usr/include/gtk-2.0/gtk/gtktoolshell.h \
- /usr/include/gtk-2.0/gtk/gtktestutils.h \
- /usr/include/gtk-2.0/gtk/gtktreednd.h \
- /usr/include/gtk-2.0/gtk/gtktreemodelsort.h \
- /usr/include/gtk-2.0/gtk/gtktreeselection.h \
- /usr/include/gtk-2.0/gtk/gtktreestore.h \
- /usr/include/gtk-2.0/gtk/gtkuimanager.h \
- /usr/include/gtk-2.0/gtk/gtkvbbox.h \
- /usr/include/gtk-2.0/gtk/gtkversion.h \
- /usr/include/gtk-2.0/gtk/gtkvolumebutton.h \
- /usr/include/gtk-2.0/gtk/gtkvpaned.h \
- /usr/include/gtk-2.0/gtk/gtkvruler.h \
- /usr/include/gtk-2.0/gtk/gtkvscale.h \
- /usr/include/gtk-2.0/gtk/gtkvseparator.h \
- /usr/include/gtk-2.0/gtk/gtktext.h /usr/include/gtk-2.0/gtk/gtktree.h \
- /usr/include/gtk-2.0/gtk/gtktreeitem.h \
- /usr/include/gtk-2.0/gtk/gtkclist.h /usr/include/gtk-2.0/gtk/gtkcombo.h \
- /usr/include/gtk-2.0/gtk/gtkctree.h /usr/include/gtk-2.0/gtk/gtkcurve.h \
- /usr/include/gtk-2.0/gtk/gtkfilesel.h \
- /usr/include/gtk-2.0/gtk/gtkgamma.h \
- /usr/include/gtk-2.0/gtk/gtkinputdialog.h \
- /usr/include/gtk-2.0/gtk/gtkitemfactory.h \
- /usr/include/gtk-2.0/gtk/gtklist.h \
- /usr/include/gtk-2.0/gtk/gtklistitem.h \
- /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
- /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_recall_id.h \
- src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
- 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/file/ags_audio_file.h
 
 /usr/include/stdc-predef.h:
 
@@ -887,1141 +406,3 @@ src/ags/audio/file/ags_audio_file_xml.h:
 /usr/include/bits/stdio.h:
 
 src/ags/audio/file/ags_audio_file.h:
-
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/getopt.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.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_thread-posix.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_channel.h:
-
-/usr/include/gtk-2.0/gtk/gtk.h:
-
-/usr/include/gtk-2.0/gdk/gdk.h:
-
-/usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:
-
-/usr/include/glib-2.0/gio/gio.h:
-
-/usr/include/glib-2.0/gio/giotypes.h:
-
-/usr/include/glib-2.0/gio/gioenums.h:
-
-/usr/include/glib-2.0/gio/gaction.h:
-
-/usr/include/glib-2.0/gio/gactiongroup.h:
-
-/usr/include/glib-2.0/gio/gactiongroupexporter.h:
-
-/usr/include/glib-2.0/gio/gactionmap.h:
-
-/usr/include/glib-2.0/gio/gappinfo.h:
-
-/usr/include/glib-2.0/gio/gapplication.h:
-
-/usr/include/glib-2.0/gio/gapplicationcommandline.h:
-
-/usr/include/glib-2.0/gio/gasyncinitable.h:
-
-/usr/include/glib-2.0/gio/ginitable.h:
-
-/usr/include/glib-2.0/gio/gasyncresult.h:
-
-/usr/include/glib-2.0/gio/gbufferedinputstream.h:
-
-/usr/include/glib-2.0/gio/gfilterinputstream.h:
-
-/usr/include/glib-2.0/gio/ginputstream.h:
-
-/usr/include/glib-2.0/gio/gbufferedoutputstream.h:
-
-/usr/include/glib-2.0/gio/gfilteroutputstream.h:
-
-/usr/include/glib-2.0/gio/goutputstream.h:
-
-/usr/include/glib-2.0/gio/gbytesicon.h:
-
-/usr/include/glib-2.0/gio/gcancellable.h:
-
-/usr/include/glib-2.0/gio/gcharsetconverter.h:
-
-/usr/include/glib-2.0/gio/gconverter.h:
-
-/usr/include/glib-2.0/gio/gcontenttype.h:
-
-/usr/include/glib-2.0/gio/gconverterinputstream.h:
-
-/usr/include/glib-2.0/gio/gconverteroutputstream.h:
-
-/usr/include/glib-2.0/gio/gcredentials.h:
-
-/usr/include/glib-2.0/gio/gdatainputstream.h:
-
-/usr/include/glib-2.0/gio/gdataoutputstream.h:
-
-/usr/include/glib-2.0/gio/gdbusaddress.h:
-
-/usr/include/glib-2.0/gio/gdbusauthobserver.h:
-
-/usr/include/glib-2.0/gio/gdbusconnection.h:
-
-/usr/include/glib-2.0/gio/gdbuserror.h:
-
-/usr/include/glib-2.0/gio/gdbusintrospection.h:
-
-/usr/include/glib-2.0/gio/gdbusmessage.h:
-
-/usr/include/glib-2.0/gio/gdbusmethodinvocation.h:
-
-/usr/include/glib-2.0/gio/gdbusnameowning.h:
-
-/usr/include/glib-2.0/gio/gdbusnamewatching.h:
-
-/usr/include/glib-2.0/gio/gdbusproxy.h:
-
-/usr/include/glib-2.0/gio/gdbusserver.h:
-
-/usr/include/glib-2.0/gio/gdbusutils.h:
-
-/usr/include/glib-2.0/gio/gdrive.h:
-
-/usr/include/glib-2.0/gio/gemblemedicon.h:
-
-/usr/include/glib-2.0/gio/gicon.h:
-
-/usr/include/glib-2.0/gio/gemblem.h:
-
-/usr/include/glib-2.0/gio/gfileattribute.h:
-
-/usr/include/glib-2.0/gio/gfileenumerator.h:
-
-/usr/include/glib-2.0/gio/gfile.h:
-
-/usr/include/glib-2.0/gio/gfileicon.h:
-
-/usr/include/glib-2.0/gio/gfileinfo.h:
-
-/usr/include/glib-2.0/gio/gfileinputstream.h:
-
-/usr/include/glib-2.0/gio/gfileiostream.h:
-
-/usr/include/glib-2.0/gio/giostream.h:
-
-/usr/include/glib-2.0/gio/gioerror.h:
-
-/usr/include/glib-2.0/gio/gfilemonitor.h:
-
-/usr/include/glib-2.0/gio/gfilenamecompleter.h:
-
-/usr/include/glib-2.0/gio/gfileoutputstream.h:
-
-/usr/include/glib-2.0/gio/ginetaddress.h:
-
-/usr/include/glib-2.0/gio/ginetaddressmask.h:
-
-/usr/include/glib-2.0/gio/ginetsocketaddress.h:
-
-/usr/include/glib-2.0/gio/gsocketaddress.h:
-
-/usr/include/glib-2.0/gio/gioenumtypes.h:
-
-/usr/include/glib-2.0/gio/giomodule.h:
-
-/usr/include/glib-2.0/gmodule.h:
-
-/usr/include/glib-2.0/gio/gioscheduler.h:
-
-/usr/include/glib-2.0/gio/gloadableicon.h:
-
-/usr/include/glib-2.0/gio/gmemoryinputstream.h:
-
-/usr/include/glib-2.0/gio/gmemoryoutputstream.h:
-
-/usr/include/glib-2.0/gio/gmount.h:
-
-/usr/include/glib-2.0/gio/gmountoperation.h:
-
-/usr/include/glib-2.0/gio/gnativevolumemonitor.h:
-
-/usr/include/glib-2.0/gio/gvolumemonitor.h:
-
-/usr/include/glib-2.0/gio/gnetworkaddress.h:
-
-/usr/include/glib-2.0/gio/gnetworkmonitor.h:
-
-/usr/include/glib-2.0/gio/gnetworkservice.h:
-
-/usr/include/glib-2.0/gio/gpermission.h:
-
-/usr/include/glib-2.0/gio/gpollableinputstream.h:
-
-/usr/include/glib-2.0/gio/gpollableoutputstream.h:
-
-/usr/include/glib-2.0/gio/gpollableutils.h:
-
-/usr/include/glib-2.0/gio/gpropertyaction.h:
-
-/usr/include/glib-2.0/gio/gproxy.h:
-
-/usr/include/glib-2.0/gio/gproxyaddress.h:
-
-/usr/include/glib-2.0/gio/gproxyaddressenumerator.h:
-
-/usr/include/glib-2.0/gio/gsocketaddressenumerator.h:
-
-/usr/include/glib-2.0/gio/gproxyresolver.h:
-
-/usr/include/glib-2.0/gio/gresolver.h:
-
-/usr/include/glib-2.0/gio/gresource.h:
-
-/usr/include/glib-2.0/gio/gseekable.h:
-
-/usr/include/glib-2.0/gio/gsettingsschema.h:
-
-/usr/include/glib-2.0/gio/gsettings.h:
-
-/usr/include/glib-2.0/gio/gsimpleaction.h:
-
-/usr/include/glib-2.0/gio/gsimpleactiongroup.h:
-
-/usr/include/glib-2.0/gio/gactiongroup.h:
-
-/usr/include/glib-2.0/gio/gactionmap.h:
-
-/usr/include/glib-2.0/gio/gsimpleasyncresult.h:
-
-/usr/include/glib-2.0/gio/gsimplepermission.h:
-
-/usr/include/glib-2.0/gio/gsocketclient.h:
-
-/usr/include/glib-2.0/gio/gsocketconnectable.h:
-
-/usr/include/glib-2.0/gio/gsocketconnection.h:
-
-/usr/include/glib-2.0/gio/gsocket.h:
-
-/usr/include/glib-2.0/gio/gsocketcontrolmessage.h:
-
-/usr/include/glib-2.0/gio/gsocketlistener.h:
-
-/usr/include/glib-2.0/gio/gsocketservice.h:
-
-/usr/include/glib-2.0/gio/gsrvtarget.h:
-
-/usr/include/glib-2.0/gio/gsimpleproxyresolver.h:
-
-/usr/include/glib-2.0/gio/gtask.h:
-
-/usr/include/glib-2.0/gio/gsubprocess.h:
-
-/usr/include/glib-2.0/gio/gsubprocesslauncher.h:
-
-/usr/include/glib-2.0/gio/gtcpconnection.h:
-
-/usr/include/glib-2.0/gio/gtcpwrapperconnection.h:
-
-/usr/include/glib-2.0/gio/gtestdbus.h:
-
-/usr/include/glib-2.0/gio/gthemedicon.h:
-
-/usr/include/glib-2.0/gio/gthreadedsocketservice.h:
-
-/usr/include/glib-2.0/gio/gtlsbackend.h:
-
-/usr/include/glib-2.0/gio/gtlscertificate.h:
-
-/usr/include/glib-2.0/gio/gtlsclientconnection.h:
-
-/usr/include/glib-2.0/gio/gtlsconnection.h:
-
-/usr/include/glib-2.0/gio/gtlsdatabase.h:
-
-/usr/include/glib-2.0/gio/gtlsfiledatabase.h:
-
-/usr/include/glib-2.0/gio/gtlsinteraction.h:
-
-/usr/include/glib-2.0/gio/gtlsserverconnection.h:
-
-/usr/include/glib-2.0/gio/gtlspassword.h:
-
-/usr/include/glib-2.0/gio/gvfs.h:
-
-/usr/include/glib-2.0/gio/gvolume.h:
-
-/usr/include/glib-2.0/gio/gzlibcompressor.h:
-
-/usr/include/glib-2.0/gio/gzlibdecompressor.h:
-
-/usr/include/glib-2.0/gio/gdbusinterface.h:
-
-/usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h:
-
-/usr/include/glib-2.0/gio/gdbusobject.h:
-
-/usr/include/glib-2.0/gio/gdbusobjectskeleton.h:
-
-/usr/include/glib-2.0/gio/gdbusobjectproxy.h:
-
-/usr/include/glib-2.0/gio/gdbusobjectmanager.h:
-
-/usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h:
-
-/usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h:
-
-/usr/include/glib-2.0/gio/gdbusactiongroup.h:
-
-/usr/include/glib-2.0/gio/giotypes.h:
-
-/usr/include/glib-2.0/gio/gremoteactiongroup.h:
-
-/usr/include/glib-2.0/gio/gmenumodel.h:
-
-/usr/include/glib-2.0/gio/gmenu.h:
-
-/usr/include/glib-2.0/gio/gmenuexporter.h:
-
-/usr/include/glib-2.0/gio/gdbusmenumodel.h:
-
-/usr/include/glib-2.0/gio/gnotification.h:
-
-/usr/include/gtk-2.0/gdk/gdkscreen.h:
-
-/usr/include/cairo/cairo.h:
-
-/usr/include/cairo/cairo-version.h:
-
-/usr/include/cairo/cairo-features.h:
-
-/usr/include/cairo/cairo-deprecated.h:
-
-/usr/include/gtk-2.0/gdk/gdktypes.h:
-
-/usr/include/pango-1.0/pango/pango.h:
-
-/usr/include/pango-1.0/pango/pango-attributes.h:
-
-/usr/include/pango-1.0/pango/pango-font.h:
-
-/usr/include/pango-1.0/pango/pango-coverage.h:
-
-/usr/include/pango-1.0/pango/pango-types.h:
-
-/usr/include/pango-1.0/pango/pango-gravity.h:
-
-/usr/include/pango-1.0/pango/pango-matrix.h:
-
-/usr/include/pango-1.0/pango/pango-script.h:
-
-/usr/include/pango-1.0/pango/pango-language.h:
-
-/usr/include/pango-1.0/pango/pango-bidi-type.h:
-
-/usr/include/pango-1.0/pango/pango-break.h:
-
-/usr/include/pango-1.0/pango/pango-item.h:
-
-/usr/include/pango-1.0/pango/pango-context.h:
-
-/usr/include/pango-1.0/pango/pango-fontmap.h:
-
-/usr/include/pango-1.0/pango/pango-fontset.h:
-
-/usr/include/pango-1.0/pango/pango-engine.h:
-
-/usr/include/pango-1.0/pango/pango-glyph.h:
-
-/usr/include/pango-1.0/pango/pango-enum-types.h:
-
-/usr/include/pango-1.0/pango/pango-features.h:
-
-/usr/include/pango-1.0/pango/pango-glyph-item.h:
-
-/usr/include/pango-1.0/pango/pango-layout.h:
-
-/usr/include/pango-1.0/pango/pango-tabs.h:
-
-/usr/include/pango-1.0/pango/pango-renderer.h:
-
-/usr/include/pango-1.0/pango/pango-utils.h:
-
-/usr/lib/gtk-2.0/include/gdkconfig.h:
-
-/usr/include/gtk-2.0/gdk/gdkdisplay.h:
-
-/usr/include/gtk-2.0/gdk/gdkevents.h:
-
-/usr/include/gtk-2.0/gdk/gdkcolor.h:
-
-/usr/include/gtk-2.0/gdk/gdkdnd.h:
-
-/usr/include/gtk-2.0/gdk/gdkinput.h:
-
-/usr/include/gtk-2.0/gdk/gdkcairo.h:
-
-/usr/include/gtk-2.0/gdk/gdkpixbuf.h:
-
-/usr/include/gtk-2.0/gdk/gdkrgb.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h:
-
-/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h:
-
-/usr/include/pango-1.0/pango/pangocairo.h:
-
-/usr/include/gtk-2.0/gdk/gdkcursor.h:
-
-/usr/include/gtk-2.0/gdk/gdkdisplaymanager.h:
-
-/usr/include/gtk-2.0/gdk/gdkdrawable.h:
-
-/usr/include/gtk-2.0/gdk/gdkgc.h:
-
-/usr/include/gtk-2.0/gdk/gdkenumtypes.h:
-
-/usr/include/gtk-2.0/gdk/gdkfont.h:
-
-/usr/include/gtk-2.0/gdk/gdkimage.h:
-
-/usr/include/gtk-2.0/gdk/gdkkeys.h:
-
-/usr/include/gtk-2.0/gdk/gdkpango.h:
-
-/usr/include/gtk-2.0/gdk/gdkpixmap.h:
-
-/usr/include/gtk-2.0/gdk/gdkproperty.h:
-
-/usr/include/gtk-2.0/gdk/gdkregion.h:
-
-/usr/include/gtk-2.0/gdk/gdkselection.h:
-
-/usr/include/gtk-2.0/gdk/gdkspawn.h:
-
-/usr/include/gtk-2.0/gdk/gdktestutils.h:
-
-/usr/include/gtk-2.0/gdk/gdkwindow.h:
-
-/usr/include/gtk-2.0/gdk/gdkvisual.h:
-
-/usr/include/gtk-2.0/gtk/gtkaboutdialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkdialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkwindow.h:
-
-/usr/include/gtk-2.0/gtk/gtkaccelgroup.h:
-
-/usr/include/gtk-2.0/gtk/gtkenums.h:
-
-/usr/include/gtk-2.0/gtk/gtkbin.h:
-
-/usr/include/gtk-2.0/gtk/gtkcontainer.h:
-
-/usr/include/gtk-2.0/gtk/gtkwidget.h:
-
-/usr/include/gtk-2.0/gtk/gtkobject.h:
-
-/usr/include/gtk-2.0/gtk/gtktypeutils.h:
-
-/usr/include/gtk-2.0/gtk/gtktypebuiltins.h:
-
-/usr/include/gtk-2.0/gtk/gtkdebug.h:
-
-/usr/include/gtk-2.0/gtk/gtkadjustment.h:
-
-/usr/include/gtk-2.0/gtk/gtkstyle.h:
-
-/usr/include/gtk-2.0/gtk/gtksettings.h:
-
-/usr/include/gtk-2.0/gtk/gtkrc.h:
-
-/usr/include/atk-1.0/atk/atk.h:
-
-/usr/include/atk-1.0/atk/atkobject.h:
-
-/usr/include/atk-1.0/atk/atkversion.h:
-
-/usr/include/atk-1.0/atk/atkstate.h:
-
-/usr/include/atk-1.0/atk/atkrelationtype.h:
-
-/usr/include/atk-1.0/atk/atkaction.h:
-
-/usr/include/atk-1.0/atk/atkcomponent.h:
-
-/usr/include/atk-1.0/atk/atkutil.h:
-
-/usr/include/atk-1.0/atk/atkdocument.h:
-
-/usr/include/atk-1.0/atk/atkeditabletext.h:
-
-/usr/include/atk-1.0/atk/atktext.h:
-
-/usr/include/atk-1.0/atk/atk-enum-types.h:
-
-/usr/include/atk-1.0/atk/atkgobjectaccessible.h:
-
-/usr/include/atk-1.0/atk/atkhyperlink.h:
-
-/usr/include/atk-1.0/atk/atkhyperlinkimpl.h:
-
-/usr/include/atk-1.0/atk/atkhypertext.h:
-
-/usr/include/atk-1.0/atk/atkimage.h:
-
-/usr/include/atk-1.0/atk/atknoopobject.h:
-
-/usr/include/atk-1.0/atk/atknoopobjectfactory.h:
-
-/usr/include/atk-1.0/atk/atkobjectfactory.h:
-
-/usr/include/atk-1.0/atk/atkplug.h:
-
-/usr/include/atk-1.0/atk/atkrange.h:
-
-/usr/include/atk-1.0/atk/atkregistry.h:
-
-/usr/include/atk-1.0/atk/atkobjectfactory.h:
-
-/usr/include/atk-1.0/atk/atkrelation.h:
-
-/usr/include/atk-1.0/atk/atkrelationset.h:
-
-/usr/include/atk-1.0/atk/atkselection.h:
-
-/usr/include/atk-1.0/atk/atksocket.h:
-
-/usr/include/atk-1.0/atk/atkstateset.h:
-
-/usr/include/atk-1.0/atk/atkstreamablecontent.h:
-
-/usr/include/atk-1.0/atk/atktable.h:
-
-/usr/include/atk-1.0/atk/atktablecell.h:
-
-/usr/include/atk-1.0/atk/atkmisc.h:
-
-/usr/include/atk-1.0/atk/atkvalue.h:
-
-/usr/include/atk-1.0/atk/atkwindow.h:
-
-/usr/include/gtk-2.0/gtk/gtkaccellabel.h:
-
-/usr/include/gtk-2.0/gtk/gtklabel.h:
-
-/usr/include/gtk-2.0/gtk/gtkmisc.h:
-
-/usr/include/gtk-2.0/gtk/gtkmenu.h:
-
-/usr/include/gtk-2.0/gtk/gtkmenushell.h:
-
-/usr/include/gtk-2.0/gtk/gtkaccelmap.h:
-
-/usr/include/gtk-2.0/gtk/gtkaccessible.h:
-
-/usr/include/gtk-2.0/gtk/gtkaction.h:
-
-/usr/include/gtk-2.0/gtk/gtkactiongroup.h:
-
-/usr/include/gtk-2.0/gtk/gtkactivatable.h:
-
-/usr/include/gtk-2.0/gtk/gtkalignment.h:
-
-/usr/include/gtk-2.0/gtk/gtkarrow.h:
-
-/usr/include/gtk-2.0/gtk/gtkaspectframe.h:
-
-/usr/include/gtk-2.0/gtk/gtkframe.h:
-
-/usr/include/gtk-2.0/gtk/gtkassistant.h:
-
-/usr/include/gtk-2.0/gtk/gtkbbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkbindings.h:
-
-/usr/include/gtk-2.0/gtk/gtkbuildable.h:
-
-/usr/include/gtk-2.0/gtk/gtkbuilder.h:
-
-/usr/include/gtk-2.0/gtk/gtkbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkimage.h:
-
-/usr/include/gtk-2.0/gtk/gtkcalendar.h:
-
-/usr/include/gtk-2.0/gtk/gtksignal.h:
-
-/usr/include/gtk-2.0/gtk/gtkmarshal.h:
-
-/usr/include/gtk-2.0/gtk/gtkcelleditable.h:
-
-/usr/include/gtk-2.0/gtk/gtkcelllayout.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrenderer.h:
-
-/usr/include/gtk-2.0/gtk/gtktreeviewcolumn.h:
-
-/usr/include/gtk-2.0/gtk/gtktreemodel.h:
-
-/usr/include/gtk-2.0/gtk/gtktreesortable.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrendereraccel.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrenderertext.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrenderercombo.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrendererprogress.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrendererspin.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrendererspinner.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellrenderertoggle.h:
-
-/usr/include/gtk-2.0/gtk/gtkcellview.h:
-
-/usr/include/gtk-2.0/gtk/gtkcheckbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtktogglebutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkcheckmenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkmenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkclipboard.h:
-
-/usr/include/gtk-2.0/gtk/gtkselection.h:
-
-/usr/include/gtk-2.0/gtk/gtktextiter.h:
-
-/usr/include/gtk-2.0/gtk/gtktexttag.h:
-
-/usr/include/gtk-2.0/gtk/gtktextchild.h:
-
-/usr/include/gtk-2.0/gtk/gtkcolorbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkcolorsel.h:
-
-/usr/include/gtk-2.0/gtk/gtkvbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkcolorseldialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkcombobox.h:
-
-/usr/include/gtk-2.0/gtk/gtktreeview.h:
-
-/usr/include/gtk-2.0/gtk/gtkdnd.h:
-
-/usr/include/gtk-2.0/gtk/gtkentry.h:
-
-/usr/include/gtk-2.0/gtk/gtkeditable.h:
-
-/usr/include/gtk-2.0/gtk/gtkimcontext.h:
-
-/usr/include/gtk-2.0/gtk/gtkentrybuffer.h:
-
-/usr/include/gtk-2.0/gtk/gtkentrycompletion.h:
-
-/usr/include/gtk-2.0/gtk/gtkliststore.h:
-
-/usr/include/gtk-2.0/gtk/gtktreemodelfilter.h:
-
-/usr/include/gtk-2.0/gtk/gtkcomboboxentry.h:
-
-/usr/include/gtk-2.0/gtk/gtkcomboboxtext.h:
-
-/usr/include/gtk-2.0/gtk/gtkdrawingarea.h:
-
-/usr/include/gtk-2.0/gtk/gtkeventbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkexpander.h:
-
-/usr/include/gtk-2.0/gtk/gtkfixed.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilechooser.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilefilter.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkhbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilechooserdialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilechooserwidget.h:
-
-/usr/include/gtk-2.0/gtk/gtkfontbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkfontsel.h:
-
-/usr/include/gtk-2.0/gtk/gtkgc.h:
-
-/usr/include/gtk-2.0/gtk/gtkhandlebox.h:
-
-/usr/include/gtk-2.0/gtk/gtkhbbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkhpaned.h:
-
-/usr/include/gtk-2.0/gtk/gtkpaned.h:
-
-/usr/include/gtk-2.0/gtk/gtkhruler.h:
-
-/usr/include/gtk-2.0/gtk/gtkruler.h:
-
-/usr/include/gtk-2.0/gtk/gtkhscale.h:
-
-/usr/include/gtk-2.0/gtk/gtkscale.h:
-
-/usr/include/gtk-2.0/gtk/gtkrange.h:
-
-/usr/include/gtk-2.0/gtk/gtkhscrollbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkscrollbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkhseparator.h:
-
-/usr/include/gtk-2.0/gtk/gtkseparator.h:
-
-/usr/include/gtk-2.0/gtk/gtkhsv.h:
-
-/usr/include/gtk-2.0/gtk/gtkiconfactory.h:
-
-/usr/include/gtk-2.0/gtk/gtkicontheme.h:
-
-/usr/include/gtk-2.0/gtk/gtkiconview.h:
-
-/usr/include/gtk-2.0/gtk/gtktooltip.h:
-
-/usr/include/gtk-2.0/gtk/gtkimagemenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkimcontextsimple.h:
-
-/usr/include/gtk-2.0/gtk/gtkimmulticontext.h:
-
-/usr/include/gtk-2.0/gtk/gtkinfobar.h:
-
-/usr/include/gtk-2.0/gtk/gtkinvisible.h:
-
-/usr/include/gtk-2.0/gtk/gtklayout.h:
-
-/usr/include/gtk-2.0/gtk/gtklinkbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkmain.h:
-
-/usr/include/gtk-2.0/gtk/gtkmenubar.h:
-
-/usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolitem.h:
-
-/usr/include/gtk-2.0/gtk/gtktooltips.h:
-
-/usr/include/gtk-2.0/gtk/gtksizegroup.h:
-
-/usr/include/gtk-2.0/gtk/gtkmessagedialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkmodules.h:
-
-/usr/include/gtk-2.0/gtk/gtkmountoperation.h:
-
-/usr/include/gtk-2.0/gtk/gtknotebook.h:
-
-/usr/include/gtk-2.0/gtk/gtkoffscreenwindow.h:
-
-/usr/include/gtk-2.0/gtk/gtkorientable.h:
-
-/usr/include/gtk-2.0/gtk/gtkpagesetup.h:
-
-/usr/include/gtk-2.0/gtk/gtkpapersize.h:
-
-/usr/include/gtk-2.0/gtk/gtkplug.h:
-
-/usr/include/gtk-2.0/gtk/gtksocket.h:
-
-/usr/include/gtk-2.0/gtk/gtkprintcontext.h:
-
-/usr/include/gtk-2.0/gtk/gtkprintoperation.h:
-
-/usr/include/gtk-2.0/gtk/gtkprintsettings.h:
-
-/usr/include/gtk-2.0/gtk/gtkprintoperationpreview.h:
-
-/usr/include/gtk-2.0/gtk/gtkprogressbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkprogress.h:
-
-/usr/include/gtk-2.0/gtk/gtkradioaction.h:
-
-/usr/include/gtk-2.0/gtk/gtktoggleaction.h:
-
-/usr/include/gtk-2.0/gtk/gtkradiobutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkradiomenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkradiotoolbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentaction.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentmanager.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentchooser.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentfilter.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentchooserdialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentchoosermenu.h:
-
-/usr/include/gtk-2.0/gtk/gtkrecentchooserwidget.h:
-
-/usr/include/gtk-2.0/gtk/gtkscalebutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkscrolledwindow.h:
-
-/usr/include/gtk-2.0/gtk/gtkvscrollbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkviewport.h:
-
-/usr/include/gtk-2.0/gtk/gtkseparatormenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkseparatortoolitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkshow.h:
-
-/usr/include/gtk-2.0/gtk/gtkspinbutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkspinner.h:
-
-/usr/include/gtk-2.0/gtk/gtkstatusbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkstatusicon.h:
-
-/usr/include/gtk-2.0/gtk/gtkstock.h:
-
-/usr/include/gtk-2.0/gtk/gtktable.h:
-
-/usr/include/gtk-2.0/gtk/gtktearoffmenuitem.h:
-
-/usr/include/gtk-2.0/gtk/gtktextbuffer.h:
-
-/usr/include/gtk-2.0/gtk/gtktexttagtable.h:
-
-/usr/include/gtk-2.0/gtk/gtktextmark.h:
-
-/usr/include/gtk-2.0/gtk/gtktextbufferrichtext.h:
-
-/usr/include/gtk-2.0/gtk/gtktextview.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolbar.h:
-
-/usr/include/gtk-2.0/gtk/gtkpixmap.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolitemgroup.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolpalette.h:
-
-/usr/include/gtk-2.0/gtk/gtktoolshell.h:
-
-/usr/include/gtk-2.0/gtk/gtktestutils.h:
-
-/usr/include/gtk-2.0/gtk/gtktreednd.h:
-
-/usr/include/gtk-2.0/gtk/gtktreemodelsort.h:
-
-/usr/include/gtk-2.0/gtk/gtktreeselection.h:
-
-/usr/include/gtk-2.0/gtk/gtktreestore.h:
-
-/usr/include/gtk-2.0/gtk/gtkuimanager.h:
-
-/usr/include/gtk-2.0/gtk/gtkvbbox.h:
-
-/usr/include/gtk-2.0/gtk/gtkversion.h:
-
-/usr/include/gtk-2.0/gtk/gtkvolumebutton.h:
-
-/usr/include/gtk-2.0/gtk/gtkvpaned.h:
-
-/usr/include/gtk-2.0/gtk/gtkvruler.h:
-
-/usr/include/gtk-2.0/gtk/gtkvscale.h:
-
-/usr/include/gtk-2.0/gtk/gtkvseparator.h:
-
-/usr/include/gtk-2.0/gtk/gtktext.h:
-
-/usr/include/gtk-2.0/gtk/gtktree.h:
-
-/usr/include/gtk-2.0/gtk/gtktreeitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkclist.h:
-
-/usr/include/gtk-2.0/gtk/gtkcombo.h:
-
-/usr/include/gtk-2.0/gtk/gtkctree.h:
-
-/usr/include/gtk-2.0/gtk/gtkcurve.h:
-
-/usr/include/gtk-2.0/gtk/gtkfilesel.h:
-
-/usr/include/gtk-2.0/gtk/gtkgamma.h:
-
-/usr/include/gtk-2.0/gtk/gtkinputdialog.h:
-
-/usr/include/gtk-2.0/gtk/gtkitemfactory.h:
-
-/usr/include/gtk-2.0/gtk/gtklist.h:
-
-/usr/include/gtk-2.0/gtk/gtklistitem.h:
-
-/usr/include/gtk-2.0/gtk/gtkoldeditable.h:
-
-/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_recall_id.h:
-
-src/ags/audio/ags_recycling.h:
-
-src/ags/audio/ags_audio_signal.h:
-
-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:
diff --git a/.deps/libags_audio_a-ags_recall_id.Po b/.deps/libags_audio_a-ags_audio_init.Po
similarity index 95%
copy from .deps/libags_audio_a-ags_recall_id.Po
copy to .deps/libags_audio_a-ags_audio_init.Po
index 344c96a..2eb8c94 100644
--- a/.deps/libags_audio_a-ags_recall_id.Po
+++ b/.deps/libags_audio_a-ags_audio_init.Po
@@ -1,5 +1,5 @@
-libags_audio_a-ags_recall_id.o: src/ags/audio/ags_recall_id.c \
- /usr/include/stdc-predef.h src/ags/audio/ags_recall_id.h \
+libags_audio_a-ags_audio_init.o: src/ags/audio/ags_audio_init.c \
+ /usr/include/stdc-predef.h src/ags/audio/ags_audio_init.h \
  /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
  /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
@@ -104,12 +104,12 @@ libags_audio_a-ags_recall_id.o: src/ags/audio/ags_recall_id.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
- src/ags/audio/ags_recycling_container.h \
- src/ags-lib/object/ags_connectable.h /usr/include/libxml2/libxml/tree.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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 \
@@ -129,11 +129,13 @@ libags_audio_a-ags_recall_id.o: src/ags/audio/ags_recall_id.c \
  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
- /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/audio/ags_audio_application_context.h \
+ src/ags/object/ags_soundcard.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/audio/ags_recall_id.h:
+src/ags/audio/ags_audio_init.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -411,15 +413,9 @@ src/ags/audio/ags_recall_id.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/audio/ags_recycling.h:
+src/ags/object/ags_application_context.h:
 
-src/ags/audio/ags_audio_signal.h:
-
-src/ags/audio/ags_recycling_container.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -435,6 +431,12 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/bits/stdio.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:
@@ -488,3 +490,7 @@ src/ags-lib/object/ags_connectable.h:
 /usr/include/libxml2/libxml/xlink.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
+
+src/ags/audio/ags_audio_application_context.h:
+
+src/ags/object/ags_soundcard.h:
diff --git a/.deps/libags_audio_a-ags_audio_set_recycling.Po b/.deps/libags_audio_a-ags_audio_set_recycling.Po
index df79d65..34d0b86 100644
--- a/.deps/libags_audio_a-ags_audio_set_recycling.Po
+++ b/.deps/libags_audio_a-ags_audio_set_recycling.Po
@@ -587,7 +587,9 @@ libags_audio_a-ags_audio_set_recycling.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
 
 /usr/include/stdc-predef.h:
@@ -2024,6 +2026,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_audio_signal.Po b/.deps/libags_audio_a-ags_audio_signal.Po
index 75f16bd..fbe665e 100644
--- a/.deps/libags_audio_a-ags_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_audio_signal.Po
@@ -127,14 +127,16 @@ libags_audio_a-ags_audio_signal.o: src/ags/audio/ags_audio_signal.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
- /usr/include/bits/environments.h /usr/include/bits/confname.h \
- /usr/include/getopt.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/object/ags_soundcard.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/file/ags_file.h src/ags/audio/ags_devout.h \
+ /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.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 \
@@ -949,6 +951,14 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
+src/ags/object/ags_soundcard.h:
+
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/asoundlib.h:
diff --git a/.deps/libags_audio_a-ags_automation.Po b/.deps/libags_audio_a-ags_automation.Po
index dc9b727..3aaa617 100644
--- a/.deps/libags_audio_a-ags_automation.Po
+++ b/.deps/libags_audio_a-ags_automation.Po
@@ -163,6 +163,8 @@ libags_audio_a-ags_automation.o: src/ags/audio/ags_automation.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/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 \
@@ -1090,6 +1092,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_cancel_audio.Po b/.deps/libags_audio_a-ags_cancel_audio.Po
index 956e4b3..b9077a7 100644
--- a/.deps/libags_audio_a-ags_cancel_audio.Po
+++ b/.deps/libags_audio_a-ags_cancel_audio.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_cancel_audio.o: src/ags/audio/task/ags_cancel_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_cancel_audio.o: src/ags/audio/task/ags_cancel_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_cancel_channel.Po b/.deps/libags_audio_a-ags_cancel_channel.Po
index 7b4a0e3..198ad24 100644
--- a/.deps/libags_audio_a-ags_cancel_channel.Po
+++ b/.deps/libags_audio_a-ags_cancel_channel.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_cancel_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/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_cancel_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-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_cancel_recall.Po b/.deps/libags_audio_a-ags_cancel_recall.Po
index 870e8d7..94250e7 100644
--- a/.deps/libags_audio_a-ags_cancel_recall.Po
+++ b/.deps/libags_audio_a-ags_cancel_recall.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_cancel_recall.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_cancel_recall.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_channel.Po b/.deps/libags_audio_a-ags_channel.Po
index 7529b65..da50401 100644
--- a/.deps/libags_audio_a-ags_channel.Po
+++ b/.deps/libags_audio_a-ags_channel.Po
@@ -554,25 +554,25 @@ libags_audio_a-ags_channel.o: src/ags/audio/ags_channel.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/ags_list.h src/ags/object/ags_marshal.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/plugin/ags_ladspa_manager.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 \
+ /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_recycling_thread.h \
  src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
@@ -584,30 +584,30 @@ libags_audio_a-ags_channel.o: src/ags/audio/ags_channel.c \
  /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
  /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
  src/ags/server/ags_registry.h src/ags/server/ags_remote_task.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_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_audio.h \
- src/ags/audio/ags_output.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/ags_pattern.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_output.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 \
+ /usr/include/bits/stat.h src/ags/audio/ags_pattern.h \
  src/ags/audio/ags_recall_audio.h src/ags/audio/ags_recall_audio_run.h \
  src/ags/audio/ags_recall_channel.h \
- src/ags/audio/ags_recall_channel_run.h \
+ src/ags/audio/ags_recall_channel_run.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/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_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_recall_container.h \
  src/ags/audio/ags_recall_channel_run_dummy.h \
  src/ags/audio/ags_recall_recycling_dummy.h \
@@ -1925,38 +1925,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/ags_list.h:
@@ -1967,6 +1935,8 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/plugin/ags_ladspa_manager.h:
 
 src/ags/thread/ags_audio_loop.h:
@@ -1989,10 +1959,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_recycling_thread.h:
@@ -2035,6 +2037,30 @@ src/ags/server/ags_registry.h:
 
 src/ags/server/ags_remote_task.h:
 
+src/ags/audio/ags_audio.h:
+
+src/ags/audio/ags_output.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:
+
+/usr/include/bits/stat.h:
+
+src/ags/audio/ags_pattern.h:
+
+src/ags/audio/ags_recall_audio.h:
+
+src/ags/audio/ags_recall_audio_run.h:
+
+src/ags/audio/ags_recall_channel.h:
+
+src/ags/audio/ags_recall_channel_run.h:
+
 src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/asoundlib.h:
@@ -2051,8 +2077,6 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/fcntl-linux.h:
 
-/usr/include/bits/stat.h:
-
 /usr/include/assert.h:
 
 /usr/include/sys/poll.h:
@@ -2109,28 +2133,6 @@ src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
 
-src/ags/audio/ags_audio.h:
-
-src/ags/audio/ags_output.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/ags_pattern.h:
-
-src/ags/audio/ags_recall_audio.h:
-
-src/ags/audio/ags_recall_audio_run.h:
-
-src/ags/audio/ags_recall_channel.h:
-
-src/ags/audio/ags_recall_channel_run.h:
-
 src/ags/audio/ags_recall_container.h:
 
 src/ags/audio/ags_recall_channel_run_dummy.h:
diff --git a/.deps/libags_audio_a-ags_channel_set_recycling.Po b/.deps/libags_audio_a-ags_channel_set_recycling.Po
index 3e5af7a..33c3c60 100644
--- a/.deps/libags_audio_a-ags_channel_set_recycling.Po
+++ b/.deps/libags_audio_a-ags_channel_set_recycling.Po
@@ -589,7 +589,9 @@ libags_audio_a-ags_channel_set_recycling.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
 
 /usr/include/stdc-predef.h:
@@ -2026,6 +2028,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_devout.Po b/.deps/libags_audio_a-ags_devout.Po
index 6dd2bf5..8b257da 100644
--- a/.deps/libags_audio_a-ags_devout.Po
+++ b/.deps/libags_audio_a-ags_devout.Po
@@ -143,6 +143,26 @@ libags_audio_a-ags_devout.o: src/ags/audio/ags_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/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,8 @@ libags_audio_a-ags_devout.o: src/ags/audio/ags_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 \
  src/ags/main.h src/ags/object/ags_soundcard.h /usr/include/sys/stat.h \
  /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \
  /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h \
@@ -1040,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/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1978,64 +2030,12 @@ 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/main.h:
diff --git a/.deps/libags_audio_a-ags_export_output.Po b/.deps/libags_audio_a-ags_export_output.Po
index 101a821..9b50b7e 100644
--- a/.deps/libags_audio_a-ags_export_output.Po
+++ b/.deps/libags_audio_a-ags_export_output.Po
@@ -105,49 +105,8 @@ libags_audio_a-ags_export_output.o: \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
  src/ags/thread/ags_export_thread.h src/ags/thread/ags_thread-posix.h \
- src/ags/audio/file/ags_audio_file.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.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/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 \
+ src/ags/audio/file/ags_audio_file.h src/ags/X/ags_window.h \
+ /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
  /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
@@ -173,7 +132,9 @@ libags_audio_a-ags_export_output.o: \
  /usr/include/glib-2.0/gio/gcontenttype.h \
  /usr/include/glib-2.0/gio/gconverterinputstream.h \
  /usr/include/glib-2.0/gio/gconverteroutputstream.h \
- /usr/include/glib-2.0/gio/gcredentials.h \
+ /usr/include/glib-2.0/gio/gcredentials.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/include/glib-2.0/gio/gdatainputstream.h \
  /usr/include/glib-2.0/gio/gdataoutputstream.h \
  /usr/include/glib-2.0/gio/gdbusaddress.h \
@@ -310,8 +271,10 @@ libags_audio_a-ags_export_output.o: \
  /usr/include/pango-1.0/pango/pango-layout.h \
  /usr/include/pango-1.0/pango/pango-tabs.h \
  /usr/include/pango-1.0/pango/pango-renderer.h \
- /usr/include/pango-1.0/pango/pango-utils.h \
- /usr/lib/gtk-2.0/include/gdkconfig.h \
+ /usr/include/pango-1.0/pango/pango-utils.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/lib/gtk-2.0/include/gdkconfig.h \
  /usr/include/gtk-2.0/gdk/gdkdisplay.h \
  /usr/include/gtk-2.0/gdk/gdkevents.h /usr/include/gtk-2.0/gdk/gdkcolor.h \
  /usr/include/gtk-2.0/gdk/gdkdnd.h /usr/include/gtk-2.0/gdk/gdkinput.h \
@@ -565,12 +528,43 @@ libags_audio_a-ags_export_output.o: \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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_recall_id.h \
- src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
- 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/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_devout.h \
+ /usr/include/alsa/asoundlib.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.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/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 \
@@ -588,8 +582,14 @@ libags_audio_a-ags_export_output.o: \
  /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/X/ags_window.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 \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h 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 src/ags/thread/ags_timestamp_thread.h \
+ src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
@@ -605,9 +605,7 @@ libags_audio_a-ags_export_output.o: \
  src/ags/X/ags_audio_preferences.h \
  src/ags/X/ags_performance_preferences.h \
  src/ags/X/ags_server_preferences.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/main.h
 
 /usr/include/stdc-predef.h:
 
@@ -895,175 +893,7 @@ src/ags/thread/ags_thread-posix.h:
 
 src/ags/audio/file/ags_audio_file.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/getopt.h:
-
-/usr/include/stdio.h:
-
-/usr/include/libio.h:
-
-/usr/include/_G_config.h:
-
-/usr/include/wchar.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.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/audio/ags_task.h:
-
-src/ags/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
-src/ags/audio/ags_channel.h:
+src/ags/X/ags_window.h:
 
 /usr/include/gtk-2.0/gtk/gtk.h:
 
@@ -1125,6 +955,16 @@ src/ags/audio/ags_channel.h:
 
 /usr/include/glib-2.0/gio/gcredentials.h:
 
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
 /usr/include/glib-2.0/gio/gdatainputstream.h:
 
 /usr/include/glib-2.0/gio/gdataoutputstream.h:
@@ -1415,6 +1255,20 @@ src/ags/audio/ags_channel.h:
 
 /usr/include/pango-1.0/pango/pango-utils.h:
 
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
 /usr/lib/gtk-2.0/include/gdkconfig.h:
 
 /usr/include/gtk-2.0/gdk/gdkdisplay.h:
@@ -1977,23 +1831,151 @@ src/ags/audio/ags_channel.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
-src/ags/audio/ags_recall_id.h:
+src/ags/audio/ags_devout.h:
 
-src/ags/audio/ags_recycling.h:
+/usr/include/alsa/asoundlib.h:
 
-src/ags/audio/ags_audio_signal.h:
+/usr/include/stdlib.h:
 
-src/ags/audio/ags_recycling_container.h:
+/usr/include/bits/waitflags.h:
 
-src/ags/audio/ags_recall.h:
+/usr/include/bits/waitstatus.h:
 
-src/ags/audio/ags_port.h:
+/usr/include/alloca.h:
 
-/usr/include/ladspa.h:
+/usr/include/bits/stdlib-bsearch.h:
 
-src/ags/audio/ags_recall_dependency.h:
+/usr/include/bits/stdlib-float.h:
 
-src/ags/audio/ags_notation.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/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:
 
@@ -2039,14 +2021,38 @@ src/ags/audio/ags_notation.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:
+
+src/ags/audio/ags_recall_id.h:
+
+src/ags/audio/ags_recycling.h:
+
+src/ags/audio/ags_audio_signal.h:
+
+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:
+
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
-src/ags/X/ags_window.h:
-
 src/ags/X/ags_automation_editor.h:
 
 src/ags/X/editor/ags_automation_toolbar.h:
@@ -2100,11 +2106,3 @@ src/ags/X/ags_server_preferences.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:
diff --git a/.deps/libags_audio_a-ags_garbage_collector.Po b/.deps/libags_audio_a-ags_garbage_collector.Po
index 68dccf1..1266663 100644
--- a/.deps/libags_audio_a-ags_garbage_collector.Po
+++ b/.deps/libags_audio_a-ags_garbage_collector.Po
@@ -562,12 +562,9 @@ libags_audio_a-ags_garbage_collector.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/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h 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 \
+ 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 \
@@ -585,8 +582,13 @@ libags_audio_a-ags_garbage_collector.o: \
  /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_task.h src/ags/thread/ags_devout_thread.h \
+ src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h 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 src/ags/thread/ags_timestamp_thread.h \
+ src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h
 
 /usr/include/stdc-predef.h:
 
@@ -1948,27 +1950,13 @@ 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_channel.h:
-
-src/ags/audio/ags_recall_id.h:
-
-src/ags/audio/ags_recycling_container.h:
-
-src/ags/audio/ags_recall.h:
-
-src/ags/audio/ags_port.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/ladspa.h:
+src/ags/lib/ags_log.h:
 
-src/ags/audio/ags_recall_dependency.h:
+src/ags/object/ags_config.h:
 
-src/ags/audio/ags_notation.h:
+src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
 
@@ -2014,6 +2002,28 @@ src/ags/audio/ags_notation.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:
+
+src/ags/audio/ags_recall_id.h:
+
+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:
+
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_audio_a-ags_init_audio.Po b/.deps/libags_audio_a-ags_init_audio.Po
index 3c41a99..470c469 100644
--- a/.deps/libags_audio_a-ags_init_audio.Po
+++ b/.deps/libags_audio_a-ags_init_audio.Po
@@ -586,7 +586,9 @@ libags_audio_a-ags_init_audio.o: src/ags/audio/task/ags_init_audio.c \
  /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
 
 /usr/include/stdc-predef.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/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_init_channel.Po b/.deps/libags_audio_a-ags_init_channel.Po
index 0702080..0691f28 100644
--- a/.deps/libags_audio_a-ags_init_channel.Po
+++ b/.deps/libags_audio_a-ags_init_channel.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_init_channel.o: src/ags/audio/task/ags_init_channel.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_init_channel.o: src/ags/audio/task/ags_init_channel.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-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_input.Po b/.deps/libags_audio_a-ags_input.Po
index 53f9f4c..261a899 100644
--- a/.deps/libags_audio_a-ags_input.Po
+++ b/.deps/libags_audio_a-ags_input.Po
@@ -558,39 +558,7 @@ libags_audio_a-ags_input.o: src/ags/audio/ags_input.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-lib/object/ags_connectable.h src/ags/file/ags_file_link.h \
- src/ags/audio/file/ags_audio_file.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/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/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h
+ src/ags/audio/file/ags_audio_file.h
 
 /usr/include/stdc-predef.h:
 
@@ -1905,133 +1873,3 @@ src/ags-lib/object/ags_connectable.h:
 src/ags/file/ags_file_link.h:
 
 src/ags/audio/file/ags_audio_file.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/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/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_ipatch.Po b/.deps/libags_audio_a-ags_ipatch.Po
index 1670f79..a6753d2 100644
--- a/.deps/libags_audio_a-ags_ipatch.Po
+++ b/.deps/libags_audio_a-ags_ipatch.Po
@@ -223,6 +223,26 @@ libags_audio_a-ags_ipatch.o: src/ags/audio/file/ags_ipatch.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 \
@@ -648,24 +668,6 @@ libags_audio_a-ags_ipatch.o: src/ags/audio/file/ags_ipatch.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-lib/object/ags_connectable.h \
  src/ags/object/ags_playable.h src/ags/audio/file/ags_ipatch_sf2_reader.h
@@ -1272,6 +1274,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:
@@ -2210,50 +2264,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_ipatch_sf2_reader.Po b/.deps/libags_audio_a-ags_ipatch_sf2_reader.Po
index 5c3486d..ec40f56 100644
--- a/.deps/libags_audio_a-ags_ipatch_sf2_reader.Po
+++ b/.deps/libags_audio_a-ags_ipatch_sf2_reader.Po
@@ -223,6 +223,26 @@ libags_audio_a-ags_ipatch_sf2_reader.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 \
@@ -648,24 +668,6 @@ libags_audio_a-ags_ipatch_sf2_reader.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
 
@@ -1273,6 +1275,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:
@@ -2211,50 +2265,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_libao.Po b/.deps/libags_audio_a-ags_libao.Po
index 45cd620..79155fd 100644
--- a/.deps/libags_audio_a-ags_libao.Po
+++ b/.deps/libags_audio_a-ags_libao.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_libao.o: src/ags/audio/ags_libao.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 \
@@ -569,28 +589,8 @@ libags_audio_a-ags_libao.o: src/ags/audio/ags_libao.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 \
  src/ags/main.h
 
 /usr/include/stdc-predef.h:
@@ -1039,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/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1977,64 +2029,12 @@ 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/main.h:
diff --git a/.deps/libags_audio_a-ags_notation.Po b/.deps/libags_audio_a-ags_notation.Po
index 338fecd..2151051 100644
--- a/.deps/libags_audio_a-ags_notation.Po
+++ b/.deps/libags_audio_a-ags_notation.Po
@@ -163,7 +163,9 @@ libags_audio_a-ags_notation.o: src/ags/audio/ags_notation.c \
  /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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1093,6 +1095,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_output.Po b/.deps/libags_audio_a-ags_output.Po
index d63cdb7..40ccaed 100644
--- a/.deps/libags_audio_a-ags_output.Po
+++ b/.deps/libags_audio_a-ags_output.Po
@@ -554,39 +554,9 @@ libags_audio_a-ags_output.o: src/ags/audio/ags_output.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/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/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/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/audio/ags_audio.h
 
 /usr/include/stdc-predef.h:
@@ -1891,136 +1861,14 @@ src/ags/audio/ags_note.h:
 
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/audio/ags_devout.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/alsa/asoundlib.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/string.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/bits/string.h:
+src/ags/object/ags_config.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/audio/ags_task.h:
-
-src/ags/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
+src/ags/file/ags_file.h:
 
 src/ags/audio/ags_audio.h:
diff --git a/.deps/libags_audio_a-ags_playable.Po b/.deps/libags_audio_a-ags_playable.Po
index ef45079..7c49999 100644
--- a/.deps/libags_audio_a-ags_playable.Po
+++ b/.deps/libags_audio_a-ags_playable.Po
@@ -142,6 +142,26 @@ libags_audio_a-ags_playable.o: src/ags/object/ags_playable.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,27 +587,8 @@ libags_audio_a-ags_playable.o: src/ags/object/ags_playable.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_config.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:
 
@@ -1033,6 +1034,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,56 +2024,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_config.h:
-
 src/ags-lib/object/ags_connectable.h:
diff --git a/.deps/libags_audio_a-ags_recall.Po b/.deps/libags_audio_a-ags_recall.Po
index 1d30d8e..8df6aaa 100644
--- a/.deps/libags_audio_a-ags_recall.Po
+++ b/.deps/libags_audio_a-ags_recall.Po
@@ -134,18 +134,10 @@ libags_audio_a-ags_recall.o: src/ags/audio/ags_recall.c \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/util/ags_id_generator.h src/ags/lib/ags_parameter.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_marshal.h src/ags/object/ags_packable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_plugin.h \
- src/ags/server/ags_server_application_context.h \
+ src/ags/object/ags_soundcard.h src/ags/server/ags_service_provider.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
  /usr/include/stdint.h /usr/include/bits/wchar.h \
@@ -580,7 +572,13 @@ libags_audio_a-ags_recall.o: src/ags/audio/ags_recall.c \
  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/audio/ags_devout.h \
+ src/ags/file/ags_file_id_ref.h src/ags/audio/ags_audio.h \
+ src/ags/audio/ags_channel.h src/ags/audio/ags_notation.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/audio/ags_recall_container.h src/ags/audio/ags_recall_audio.h \
+ src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_channel.h \
+ src/ags/audio/ags_recall_channel_run.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 \
@@ -602,16 +600,17 @@ libags_audio_a-ags_recall.o: src/ags/audio/ags_recall.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_thread-posix.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/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_notation.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/audio/ags_recall_container.h \
- src/ags/audio/ags_recall_audio.h src/ags/audio/ags_recall_audio_run.h \
- src/ags/audio/ags_recall_channel.h \
- src/ags/audio/ags_recall_channel_run.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_recycling.h \
  src/ags/audio/ags_recall_audio_signal.h
 
@@ -991,38 +990,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_marshal.h:
@@ -1033,7 +1000,9 @@ src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_plugin.h:
 
-src/ags/server/ags_server_application_context.h:
+src/ags/object/ags_soundcard.h:
+
+src/ags/server/ags_service_provider.h:
 
 src/ags/server/ags_server.h:
 
@@ -2011,6 +1980,30 @@ src/ags/widget/ags_cartesian.h:
 
 src/ags/file/ags_file_id_ref.h:
 
+src/ags/audio/ags_audio.h:
+
+src/ags/audio/ags_channel.h:
+
+src/ags/audio/ags_notation.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/audio/ags_recall_container.h:
+
+src/ags/audio/ags_recall_audio.h:
+
+src/ags/audio/ags_recall_audio_run.h:
+
+src/ags/audio/ags_recall_channel.h:
+
+src/ags/audio/ags_recall_channel_run.h:
+
 src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/asoundlib.h:
@@ -2101,39 +2094,47 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
-src/ags/thread/ags_thread-posix.h:
+src/ags/thread/ags_async_queue.h:
 
-src/ags/thread/ags_task_thread.h:
+/usr/include/linux/futex.h:
 
-src/ags/thread/ags_thread_pool.h:
+/usr/include/linux/types.h:
 
-src/ags/audio/ags_task.h:
+/usr/include/asm/types.h:
 
-src/ags/thread/ags_devout_thread.h:
+/usr/include/asm-generic/types.h:
 
-src/ags/thread/ags_iterator_thread.h:
+/usr/include/asm-generic/int-ll64.h:
 
-src/ags/audio/ags_channel.h:
+/usr/include/asm/bitsperlong.h:
 
-src/ags/audio/ags_notation.h:
+/usr/include/asm-generic/bitsperlong.h:
 
-src/ags/thread/ags_timestamp_thread.h:
+/usr/include/linux/posix_types.h:
 
-src/ags/audio/ags_timestamp.h:
+/usr/include/linux/stddef.h:
 
-src/ags/audio/ags_note.h:
+/usr/include/asm/posix_types.h:
 
-src/ags/audio/ags_audio.h:
+/usr/include/asm/posix_types_64.h:
 
-src/ags/audio/ags_recall_container.h:
+/usr/include/asm-generic/posix_types.h:
 
-src/ags/audio/ags_recall_audio.h:
+/usr/include/sys/time.h:
 
-src/ags/audio/ags_recall_audio_run.h:
+src/ags/object/ags_stackable.h:
 
-src/ags/audio/ags_recall_channel.h:
+src/ags/thread/ags_task_thread.h:
 
-src/ags/audio/ags_recall_channel_run.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_recycling.h:
 
diff --git a/.deps/libags_audio_a-ags_recall_audio_run.Po b/.deps/libags_audio_a-ags_recall_audio_run.Po
index 1bd4024..b10b1d1 100644
--- a/.deps/libags_audio_a-ags_recall_audio_run.Po
+++ b/.deps/libags_audio_a-ags_recall_audio_run.Po
@@ -588,7 +588,9 @@ libags_audio_a-ags_recall_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/audio/ags_recall_channel.h src/ags/audio/ags_recall_container.h \
  src/ags/audio/recall/ags_copy_pattern_audio_run.h \
@@ -2035,6 +2037,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_recall_audio_signal.Po b/.deps/libags_audio_a-ags_recall_audio_signal.Po
index 31e7e1d..2a16a84 100644
--- a/.deps/libags_audio_a-ags_recall_audio_signal.Po
+++ b/.deps/libags_audio_a-ags_recall_audio_signal.Po
@@ -147,6 +147,26 @@ libags_audio_a-ags_recall_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 \
@@ -568,29 +588,11 @@ libags_audio_a-ags_recall_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/ags_recall_recycling.h \
  src/ags/lib/ags_list.h src/ags/lib/ags_parameter.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
 
 /usr/include/stdc-predef.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:
@@ -2033,3 +2043,5 @@ src/ags/lib/ags_parameter.h:
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
+
+src/ags/object/ags_soundcard.h:
diff --git a/.deps/libags_audio_a-ags_recall_channel_run.Po b/.deps/libags_audio_a-ags_recall_channel_run.Po
index 4c6dfe7..63f1289 100644
--- a/.deps/libags_audio_a-ags_recall_channel_run.Po
+++ b/.deps/libags_audio_a-ags_recall_channel_run.Po
@@ -147,6 +147,26 @@ libags_audio_a-ags_recall_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 \
@@ -568,31 +588,11 @@ libags_audio_a-ags_recall_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/ags_parameter.h \
- src/ags/object/ags_marshal.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_marshal.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_packable.h src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/ags_output.h src/ags/audio/ags_input.h \
  /usr/include/glib-2.0/glib/gstdio.h /usr/include/glib-2.0/glib/gprintf.h \
@@ -1061,6 +1061,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 +2035,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:
@@ -2045,14 +2053,6 @@ src/ags/lib/ags_parameter.h:
 
 src/ags/object/ags_marshal.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_packable.h:
diff --git a/.deps/libags_audio_a-ags_recall_channel_run_dummy.Po b/.deps/libags_audio_a-ags_recall_channel_run_dummy.Po
index 05401c6..c6cf2e8 100644
--- a/.deps/libags_audio_a-ags_recall_channel_run_dummy.Po
+++ b/.deps/libags_audio_a-ags_recall_channel_run_dummy.Po
@@ -587,13 +587,13 @@ libags_audio_a-ags_recall_channel_run_dummy.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_recycling_dummy.h \
  src/ags/audio/ags_recall_recycling.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/file/ags_file_stock.h src/ags/widget/ags_led.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,14 +2058,6 @@ src/ags/audio/ags_recall_recycling.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:
diff --git a/.deps/libags_audio_a-ags_recall_container.Po b/.deps/libags_audio_a-ags_recall_container.Po
index e54719a..159ac67 100644
--- a/.deps/libags_audio_a-ags_recall_container.Po
+++ b/.deps/libags_audio_a-ags_recall_container.Po
@@ -590,7 +590,9 @@ libags_audio_a-ags_recall_container.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_play_notation_audio_run.h \
  src/ags/audio/recall/ags_delay_audio_run.h \
@@ -2039,6 +2041,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_recall_dependency.Po b/.deps/libags_audio_a-ags_recall_dependency.Po
index b37aa2e..86acd4b 100644
--- a/.deps/libags_audio_a-ags_recall_dependency.Po
+++ b/.deps/libags_audio_a-ags_recall_dependency.Po
@@ -589,7 +589,9 @@ libags_audio_a-ags_recall_dependency.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:
@@ -2030,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:
diff --git a/.deps/libags_audio_a-ags_recall_factory.Po b/.deps/libags_audio_a-ags_recall_factory.Po
index 1fc8986..a7e0dbe 100644
--- a/.deps/libags_audio_a-ags_recall_factory.Po
+++ b/.deps/libags_audio_a-ags_recall_factory.Po
@@ -589,7 +589,9 @@ libags_audio_a-ags_recall_factory.o: src/ags/audio/ags_recall_factory.c \
  /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_recall_recycling_dummy.h \
@@ -2062,6 +2064,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_recall_ladspa.Po b/.deps/libags_audio_a-ags_recall_ladspa.Po
index 33d2f34..806261e 100644
--- a/.deps/libags_audio_a-ags_recall_ladspa.Po
+++ b/.deps/libags_audio_a-ags_recall_ladspa.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_recall_ladspa.o: src/ags/audio/ags_recall_ladspa.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 \
@@ -569,32 +589,12 @@ libags_audio_a-ags_recall_ladspa.o: src/ags/audio/ags_recall_ladspa.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 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/util/ags_id_generator.h \
- src/ags/plugin/ags_ladspa_manager.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/plugin/ags_ladspa_manager.h src/ags-lib/object/ags_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 \
  src/ags/widget/ags_vindicator.h src/ags/widget/ags_indicator.h \
  src/ags/widget/ags_hindicator.h src/ags/widget/ags_waveform.h \
@@ -1064,6 +1064,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_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,18 +2056,12 @@ src/ags/util/ags_id_generator.h:
 
 src/ags/plugin/ags_ladspa_manager.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:
+
 src/ags/file/ags_file_stock.h:
 
 src/ags/widget/ags_led.h:
diff --git a/.deps/libags_audio_a-ags_recall_ladspa_run.Po b/.deps/libags_audio_a-ags_recall_ladspa_run.Po
index acc226e..b6b8d42 100644
--- a/.deps/libags_audio_a-ags_recall_ladspa_run.Po
+++ b/.deps/libags_audio_a-ags_recall_ladspa_run.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_recall_ladspa_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,11 @@ libags_audio_a-ags_recall_ladspa_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/ags_recall_ladspa_run.h \
  src/ags/audio/ags_recall_audio_signal.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/plugin/ags_ladspa_manager.h /usr/include/dlfcn.h \
  /usr/include/bits/dlfcn.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:
@@ -2044,14 +2052,6 @@ src/ags/audio/ags_recall_ladspa_run.h:
 
 src/ags/audio/ags_recall_audio_signal.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:
diff --git a/.deps/libags_audio_a-ags_recall_recycling.Po b/.deps/libags_audio_a-ags_recall_recycling.Po
index 865213e..dbde22f 100644
--- a/.deps/libags_audio_a-ags_recall_recycling.Po
+++ b/.deps/libags_audio_a-ags_recall_recycling.Po
@@ -147,6 +147,26 @@ libags_audio_a-ags_recall_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,34 +588,15 @@ libags_audio_a-ags_recall_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/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_marshal.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_dynamic_connectable.h src/ags/audio/ags_audio.h \
- src/ags/audio/ags_output.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/ags_recall_channel_run.h \
+ src/ags/audio/ags_note.h src/ags/main.h src/ags/lib/ags_list.h \
+ src/ags/lib/ags_parameter.h src/ags/object/ags_marshal.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_audio.h src/ags/audio/ags_output.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/ags_recall_channel_run.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/ags_recall_audio_signal.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:
@@ -2036,14 +2045,6 @@ 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/file/ags_file.h:
-
 src/ags/lib/ags_list.h:
 
 src/ags/lib/ags_parameter.h:
@@ -2054,6 +2055,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_audio.h:
 
 src/ags/audio/ags_output.h:
diff --git a/.deps/libags_audio_a-ags_recall_recycling_dummy.Po b/.deps/libags_audio_a-ags_recall_recycling_dummy.Po
index 68906a9..88c1a35 100644
--- a/.deps/libags_audio_a-ags_recall_recycling_dummy.Po
+++ b/.deps/libags_audio_a-ags_recall_recycling_dummy.Po
@@ -148,6 +148,26 @@ libags_audio_a-ags_recall_recycling_dummy.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_recall_recycling_dummy.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_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/main.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h \
  src/ags/audio/task/ags_remove_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/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_recycling.Po b/.deps/libags_audio_a-ags_recycling.Po
index 5f9c146..f17a073 100644
--- a/.deps/libags_audio_a-ags_recycling.Po
+++ b/.deps/libags_audio_a-ags_recycling.Po
@@ -128,41 +128,9 @@ libags_audio_a-ags_recycling.o: src/ags/audio/ags_recycling.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
- /usr/include/bits/environments.h /usr/include/bits/confname.h \
- /usr/include/getopt.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_thread-posix.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_channel.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/audio/ags_audio.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
@@ -189,7 +157,9 @@ libags_audio_a-ags_recycling.o: src/ags/audio/ags_recycling.c \
  /usr/include/glib-2.0/gio/gcontenttype.h \
  /usr/include/glib-2.0/gio/gconverterinputstream.h \
  /usr/include/glib-2.0/gio/gconverteroutputstream.h \
- /usr/include/glib-2.0/gio/gcredentials.h \
+ /usr/include/glib-2.0/gio/gcredentials.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
  /usr/include/glib-2.0/gio/gdatainputstream.h \
  /usr/include/glib-2.0/gio/gdataoutputstream.h \
  /usr/include/glib-2.0/gio/gdbusaddress.h \
@@ -581,12 +551,19 @@ libags_audio_a-ags_recycling.o: src/ags/audio/ags_recycling.c \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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_recall_id.h \
- 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 \
- 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
+ /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h 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 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 /usr/include/string.h \
+ /usr/include/bits/string.h /usr/include/bits/string2.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:
 
@@ -946,151 +923,17 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/getopt.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/object/ags_soundcard.h:
 
-/usr/include/linux/errno.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/asm/errno.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/asm-generic/errno.h:
+src/ags/object/ags_config.h:
 
-/usr/include/asm-generic/errno-base.h:
+src/ags/file/ags_file.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_thread-posix.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_channel.h:
+src/ags/audio/ags_audio.h:
 
 /usr/include/gtk-2.0/gtk/gtk.h:
 
@@ -1152,6 +995,16 @@ src/ags/audio/ags_channel.h:
 
 /usr/include/glib-2.0/gio/gcredentials.h:
 
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
 /usr/include/glib-2.0/gio/gdatainputstream.h:
 
 /usr/include/glib-2.0/gio/gdataoutputstream.h:
@@ -2004,6 +1857,8 @@ src/ags/audio/ags_channel.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
+src/ags/audio/ags_channel.h:
+
 src/ags/audio/ags_recall_id.h:
 
 src/ags/audio/ags_recycling_container.h:
@@ -2020,8 +1875,32 @@ src/ags/audio/ags_notation.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/audio/ags_audio.h:
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.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:
diff --git a/.deps/libags_audio_a-ags_sndfile.Po b/.deps/libags_audio_a-ags_sndfile.Po
index ef6dbac..5a169d8 100644
--- a/.deps/libags_audio_a-ags_sndfile.Po
+++ b/.deps/libags_audio_a-ags_sndfile.Po
@@ -144,6 +144,26 @@ libags_audio_a-ags_sndfile.o: src/ags/audio/file/ags_sndfile.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 \
@@ -569,24 +589,6 @@ libags_audio_a-ags_sndfile.o: src/ags/audio/file/ags_sndfile.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-lib/object/ags_connectable.h \
  src/ags/object/ags_playable.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/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
@@ -1975,50 +2029,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_synths.Po b/.deps/libags_audio_a-ags_synths.Po
index d0e95f9..6cafa57 100644
--- a/.deps/libags_audio_a-ags_synths.Po
+++ b/.deps/libags_audio_a-ags_synths.Po
@@ -561,13 +561,9 @@ libags_audio_a-ags_synths.o: src/ags/audio/ags_synths.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/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h 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 \
+ 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 \
@@ -585,8 +581,14 @@ libags_audio_a-ags_synths.o: src/ags/audio/ags_synths.c \
  /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_task.h src/ags/thread/ags_devout_thread.h \
+ src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h 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 src/ags/thread/ags_timestamp_thread.h \
+ src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h
 
 /usr/include/stdc-predef.h:
 
@@ -1944,31 +1946,13 @@ 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_channel.h:
-
-src/ags/audio/ags_recall_id.h:
-
-src/ags/audio/ags_recycling.h:
-
-src/ags/audio/ags_audio_signal.h:
-
-src/ags/audio/ags_recycling_container.h:
-
-src/ags/audio/ags_recall.h:
-
-src/ags/audio/ags_port.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/ladspa.h:
+src/ags/lib/ags_log.h:
 
-src/ags/audio/ags_recall_dependency.h:
+src/ags/object/ags_config.h:
 
-src/ags/audio/ags_notation.h:
+src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
 
@@ -2014,6 +1998,32 @@ src/ags/audio/ags_notation.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:
+
+src/ags/audio/ags_recall_id.h:
+
+src/ags/audio/ags_recycling.h:
+
+src/ags/audio/ags_audio_signal.h:
+
+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:
+
 src/ags/thread/ags_timestamp_thread.h:
 
 src/ags/audio/ags_timestamp.h:
diff --git a/.deps/libags_gui_a-ags_menu.Po b/.deps/libags_gui_a-ags_gui_init.Po
similarity index 99%
copy from .deps/libags_gui_a-ags_menu.Po
copy to .deps/libags_gui_a-ags_gui_init.Po
index e330200..951a4a5 100644
--- a/.deps/libags_gui_a-ags_menu.Po
+++ b/.deps/libags_gui_a-ags_gui_init.Po
@@ -1,5 +1,5 @@
-libags_gui_a-ags_menu.o: src/ags/widget/ags_menu.c \
- /usr/include/stdc-predef.h src/ags/widget/ags_menu.h \
+libags_gui_a-ags_gui_init.o: src/ags/widget/ags_gui_init.c \
+ /usr/include/stdc-predef.h src/ags/widget/ags_gui_init.h \
  /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
  /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
@@ -526,11 +526,11 @@ libags_gui_a-ags_menu.o: src/ags/widget/ags_menu.c \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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/widget/ags_table.h
+ /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/thread/ags_thread_init.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/widget/ags_menu.h:
+src/ags/widget/ags_gui_init.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -1744,4 +1744,4 @@ src/ags/widget/ags_menu.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
-src/ags/widget/ags_table.h:
+src/ags/thread/ags_thread_init.h:
diff --git a/.deps/libags_thread_a-ags_async_queue.Po b/.deps/libags_thread_a-ags_async_queue.Po
index a7c91f4..a786cad 100644
--- a/.deps/libags_thread_a-ags_async_queue.Po
+++ b/.deps/libags_thread_a-ags_async_queue.Po
@@ -161,7 +161,9 @@ libags_thread_a-ags_async_queue.o: src/ags/thread/ags_async_queue.c \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
  /usr/include/bits/mathinline.h src/ags/thread/ags_thread-posix.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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1078,6 +1080,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_thread_a-ags_audio_loop.Po b/.deps/libags_thread_a-ags_audio_loop.Po
index 08ebc18..8859ea5 100644
--- a/.deps/libags_thread_a-ags_audio_loop.Po
+++ b/.deps/libags_thread_a-ags_audio_loop.Po
@@ -119,8 +119,8 @@ libags_thread_a-ags_audio_loop.o: src/ags/thread/ags_audio_loop.c \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.h \
- src/ags/file/ags_file.h /usr/include/libxml2/libxml/tree.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 \
@@ -141,16 +141,17 @@ libags_thread_a-ags_audio_loop.o: src/ags/thread/ags_audio_loop.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags-lib/object/ags_connectable.h src/ags/thread/ags_export_thread.h \
- src/ags/audio/file/ags_audio_file.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_main_loop.h \
+ src/ags/thread/ags_export_thread.h src/ags/audio/file/ags_audio_file.h \
+ src/ags/thread/ags_gui_thread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.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/bits/confname.h /usr/include/getopt.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 \
@@ -589,8 +590,7 @@ libags_thread_a-ags_audio_loop.o: src/ags/thread/ags_audio_loop.c \
  src/ags/audio/ags_port.h /usr/include/ladspa.h \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
  src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
- src/ags/audio/ags_note.h src/ags/thread/ags_gui_thread.h \
- src/ags/audio/ags_audio.h
+ src/ags/audio/ags_note.h src/ags/audio/ags_audio.h
 
 /usr/include/stdc-predef.h:
 
@@ -942,8 +942,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
-
 src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1004,13 +1002,13 @@ src/ags/file/ags_file.h:
 
 src/ags-lib/object/ags_connectable.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/thread/ags_export_thread.h:
 
 src/ags/audio/file/ags_audio_file.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
+src/ags/thread/ags_gui_thread.h:
 
 /usr/include/unistd.h:
 
@@ -1022,6 +1020,10 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/getopt.h:
 
+src/ags/audio/ags_devout.h:
+
+/usr/include/alsa/asoundlib.h:
+
 /usr/include/string.h:
 
 /usr/include/bits/string.h:
@@ -2036,6 +2038,4 @@ src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
 
-src/ags/thread/ags_gui_thread.h:
-
 src/ags/audio/ags_audio.h:
diff --git a/.deps/libags_thread_a-ags_autosave_thread.Po b/.deps/libags_thread_a-ags_autosave_thread.Po
index 8d91431..46668e7 100644
--- a/.deps/libags_thread_a-ags_autosave_thread.Po
+++ b/.deps/libags_thread_a-ags_autosave_thread.Po
@@ -109,15 +109,7 @@ libags_thread_a-ags_autosave_thread.o: \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -163,8 +155,16 @@ libags_thread_a-ags_autosave_thread.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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -895,38 +895,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:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1087,10 +1055,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_thread_a-ags_devout_thread.Po b/.deps/libags_thread_a-ags_devout_thread.Po
index b2abe06..85430bd 100644
--- a/.deps/libags_thread_a-ags_devout_thread.Po
+++ b/.deps/libags_thread_a-ags_devout_thread.Po
@@ -128,16 +128,17 @@ libags_thread_a-ags_devout_thread.o: src/ags/thread/ags_devout_thread.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/object/ags_soundcard.h src/ags/file/ags_file.h \
- src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.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/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/thread/ags_timestamp_thread.h \
+ src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.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,8 +588,7 @@ libags_thread_a-ags_devout_thread.o: src/ags/thread/ags_devout_thread.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 \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/object/ags_config.h
+ src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h
 
 /usr/include/stdc-predef.h:
 
@@ -946,6 +946,12 @@ 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/thread/ags_timestamp_thread.h:
@@ -2025,5 +2031,3 @@ src/ags/audio/ags_notation.h:
 src/ags/audio/ags_timestamp.h:
 
 src/ags/audio/ags_note.h:
-
-src/ags/object/ags_config.h:
diff --git a/.deps/libags_thread_a-ags_export_thread.Po b/.deps/libags_thread_a-ags_export_thread.Po
index c40ee42..02346f3 100644
--- a/.deps/libags_thread_a-ags_export_thread.Po
+++ b/.deps/libags_thread_a-ags_export_thread.Po
@@ -105,21 +105,38 @@ libags_thread_a-ags_export_thread.o: src/ags/thread/ags_export_thread.c \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
  src/ags/thread/ags_thread-posix.h src/ags/audio/file/ags_audio_file.h \
+ src/ags-lib/object/ags_connectable.h /usr/include/libxml2/libxml/tree.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
  /usr/include/bits/environments.h /usr/include/bits/confname.h \
- /usr/include/getopt.h /usr/include/stdio.h /usr/include/libio.h \
- /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.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/getopt.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 \
@@ -144,7 +161,9 @@ libags_thread_a-ags_export_thread.o: src/ags/thread/ags_export_thread.c \
  /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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -570,26 +589,8 @@ libags_thread_a-ags_export_thread.o: src/ags/thread/ags_export_thread.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-lib/object/ags_connectable.h
+ src/ags/audio/ags_note.h
 
 /usr/include/stdc-predef.h:
 
@@ -875,19 +876,9 @@ src/ags/thread/ags_thread-posix.h:
 
 src/ags/audio/file/ags_audio_file.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
+src/ags-lib/object/ags_connectable.h:
 
-/usr/include/getopt.h:
+/usr/include/libxml2/libxml/tree.h:
 
 /usr/include/stdio.h:
 
@@ -903,6 +894,44 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/stdio.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/stdlib.h:
 
 /usr/include/bits/waitflags.h:
@@ -915,6 +944,24 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/stdlib-float.h:
 
+/usr/include/libxml2/libxml/xlink.h:
+
+/usr/include/libxml2/libxml/SAX2.h:
+
+src/ags/audio/ags_devout.h:
+
+/usr/include/alsa/asoundlib.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
 /usr/include/string.h:
 
 /usr/include/bits/string.h:
@@ -1037,6 +1084,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:
@@ -1975,54 +2030,8 @@ 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:
diff --git a/.deps/libags_thread_a-ags_gui_thread.Po b/.deps/libags_thread_a-ags_gui_thread.Po
index 9a6084f..a217b4c 100644
--- a/.deps/libags_thread_a-ags_gui_thread.Po
+++ b/.deps/libags_thread_a-ags_gui_thread.Po
@@ -161,7 +161,9 @@ libags_thread_a-ags_gui_thread.o: src/ags/thread/ags_gui_thread.c \
  /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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
@@ -1080,6 +1082,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_thread_a-ags_record_thread.Po b/.deps/libags_thread_a-ags_record_thread.Po
index c263ee1..f25a034 100644
--- a/.deps/libags_thread_a-ags_record_thread.Po
+++ b/.deps/libags_thread_a-ags_record_thread.Po
@@ -162,10 +162,11 @@ libags_thread_a-ags_record_thread.o: src/ags/thread/ags_record_thread.c \
  /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_channel.h /usr/include/gtk-2.0/gtk/gtk.h \
- /usr/include/gtk-2.0/gdk/gdk.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/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 \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
  /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
@@ -1085,6 +1086,12 @@ 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/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_thread_a-ags_recycling_thread.Po b/.deps/libags_thread_a-ags_recycling_thread.Po
index 82c163e..be6c2a9 100644
--- a/.deps/libags_thread_a-ags_recycling_thread.Po
+++ b/.deps/libags_thread_a-ags_recycling_thread.Po
@@ -587,7 +587,9 @@ libags_thread_a-ags_recycling_thread.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/audio/ags_audio.h \
  src/ags/audio/ags_output.h
 
@@ -2023,6 +2025,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_thread_a-ags_returnable_thread.Po b/.deps/libags_thread_a-ags_returnable_thread.Po
index 53aa4ab..b281fe9 100644
--- a/.deps/libags_thread_a-ags_returnable_thread.Po
+++ b/.deps/libags_thread_a-ags_returnable_thread.Po
@@ -129,19 +129,13 @@ libags_thread_a-ags_returnable_thread.o: \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_thread_pool.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 /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.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
+ 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/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.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/stdc-predef.h:
 
@@ -501,35 +495,13 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
-src/ags/thread/ags_async_queue.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/linux/futex.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/linux/types.h:
+src/ags/object/ags_config.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:
 
 /usr/include/unistd.h:
 
diff --git a/.deps/libags_thread_a-ags_task_thread.Po b/.deps/libags_thread_a-ags_task_thread.Po
index d45e97f..83bdb30 100644
--- a/.deps/libags_thread_a-ags_task_thread.Po
+++ b/.deps/libags_thread_a-ags_task_thread.Po
@@ -105,19 +105,13 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.c \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
  src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.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/audio/ags_task.h src/ags-lib/object/ags_connectable.h \
- /usr/include/libxml2/libxml/tree.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/bits/stdio.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 \
@@ -137,6 +131,7 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/audio/ags_task.h src/ags-lib/object/ags_connectable.h \
  src/ags/main.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
@@ -558,22 +553,27 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.c \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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/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/thread/ags_thread_application_context.h \
+ /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/lib/ags_list.h \
+ src/ags/thread/ags_thread_application_context.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_returnable_thread.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/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_returnable_thread.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 \
@@ -879,41 +879,9 @@ src/ags/thread/ags_thread_pool.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/audio/ags_task.h:
-
-src/ags-lib/object/ags_connectable.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -929,6 +897,12 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/bits/stdio.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:
@@ -983,6 +957,10 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
+src/ags/audio/ags_task.h:
+
+src/ags-lib/object/ags_connectable.h:
+
 src/ags/main.h:
 
 /usr/include/gtk-2.0/gtk/gtk.h:
@@ -1907,14 +1885,6 @@ src/ags/main.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.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/thread/ags_thread_application_context.h:
@@ -1939,6 +1909,36 @@ 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_returnable_thread.h:
 
 src/ags/audio/ags_devout.h:
diff --git a/.deps/libags_thread_a-ags_thread-posix.Po b/.deps/libags_thread_a-ags_thread-posix.Po
index 4402527..049060a 100644
--- a/.deps/libags_thread_a-ags_thread-posix.Po
+++ b/.deps/libags_thread_a-ags_thread-posix.Po
@@ -129,7 +129,9 @@ libags_thread_a-ags_thread-posix.o: src/ags/thread/ags_thread-posix.c \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/object/ags_tree_iterator.h src/ags/object/ags_stackable.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_async_queue.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_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 \
@@ -949,6 +951,14 @@ src/ags/object/ags_stackable.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_async_queue.h:
 
 /usr/include/linux/futex.h:
diff --git a/.deps/libags_thread_a-ags_thread_application_context.Po b/.deps/libags_thread_a-ags_thread_application_context.Po
index 90634f4..ea88085 100644
--- a/.deps/libags_thread_a-ags_thread_application_context.Po
+++ b/.deps/libags_thread_a-ags_thread_application_context.Po
@@ -110,15 +110,7 @@ libags_thread_a-ags_thread_application_context.o: \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -141,12 +133,20 @@ libags_thread_a-ags_thread_application_context.o: \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
- src/ags-lib/object/ags_connectable.h src/ags/file/ags_file_thread.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/object/ags_main_loop.h src/ags-lib/object/ags_connectable.h \
+ src/ags/file/ags_file_thread.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/file/ags_file_stock.h /usr/include/gtk-2.0/gtk/gtk.h \
  /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
@@ -875,38 +875,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:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -969,6 +937,8 @@ src/ags/thread/ags_thread-posix.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags-lib/object/ags_connectable.h:
 
 src/ags/file/ags_file_thread.h:
@@ -993,6 +963,36 @@ 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/file/ags_file_stock.h:
 
 /usr/include/gtk-2.0/gtk/gtk.h:
diff --git a/.deps/libags_audio_a-ags_plugin_factory.Po b/.deps/libags_thread_a-ags_thread_init.Po
similarity index 94%
copy from .deps/libags_audio_a-ags_plugin_factory.Po
copy to .deps/libags_thread_a-ags_thread_init.Po
index ac835ff..7b7d723 100644
--- a/.deps/libags_audio_a-ags_plugin_factory.Po
+++ b/.deps/libags_thread_a-ags_thread_init.Po
@@ -1,5 +1,5 @@
-libags_audio_a-ags_plugin_factory.o: src/ags/plugin/ags_plugin_factory.c \
- /usr/include/stdc-predef.h src/ags/plugin/ags_plugin_factory.h \
+libags_thread_a-ags_thread_init.o: src/ags/thread/ags_thread_init.c \
+ /usr/include/stdc-predef.h src/ags/thread/ags_thread_init.h \
  /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
  /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
@@ -103,11 +103,13 @@ libags_audio_a-ags_plugin_factory.o: src/ags/plugin/ags_plugin_factory.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/object/ags_plugin.h \
- src/ags/file/ags_file.h /usr/include/libxml2/libxml/tree.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/object/ags_init.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.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 \
@@ -128,11 +130,13 @@ libags_audio_a-ags_plugin_factory.o: src/ags/plugin/ags_plugin_factory.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/object/ags_marshal.h
+ src/ags/thread/ags_thread_application_context.h \
+ src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/plugin/ags_plugin_factory.h:
+src/ags/thread/ags_thread_init.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -410,11 +414,11 @@ src/ags/plugin/ags_plugin_factory.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/object/ags_plugin.h:
+src/ags/object/ags_init.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -430,6 +434,12 @@ src/ags/file/ags_file.h:
 
 /usr/include/bits/stdio.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:
@@ -484,4 +494,10 @@ src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/object/ags_marshal.h:
+src/ags/thread/ags_thread_application_context.h:
+
+src/ags/thread/ags_thread-posix.h:
+
+src/ags/thread/ags_thread_pool.h:
+
+src/ags/object/ags_main_loop.h:
diff --git a/.deps/libags_thread_a-ags_thread_pool.Po b/.deps/libags_thread_a-ags_thread_pool.Po
index 0f688bf..feb4fcf 100644
--- a/.deps/libags_thread_a-ags_thread_pool.Po
+++ b/.deps/libags_thread_a-ags_thread_pool.Po
@@ -104,19 +104,13 @@ libags_thread_a-ags_thread_pool.o: src/ags/thread/ags_thread_pool.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.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/thread/ags_thread-posix.h src/ags-lib/object/ags_connectable.h \
- /usr/include/libxml2/libxml/tree.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/libxml2/libxml/xmlversion.h \
+ /usr/include/bits/stdio.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 \
@@ -136,6 +130,7 @@ libags_thread_a-ags_thread_pool.o: src/ags/thread/ags_thread_pool.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/thread/ags_thread-posix.h src/ags-lib/object/ags_connectable.h \
  src/ags/thread/ags_returnable_thread.h
 
 /usr/include/stdc-predef.h:
@@ -420,41 +415,9 @@ src/ags/thread/ags_thread_pool.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_application_context.h:
 
-src/ags/object/ags_stackable.h:
-
-src/ags/thread/ags_thread-posix.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -470,6 +433,12 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/bits/stdio.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:
@@ -524,4 +493,8 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
+src/ags/thread/ags_thread-posix.h:
+
+src/ags-lib/object/ags_connectable.h:
+
 src/ags/thread/ags_returnable_thread.h:
diff --git a/.deps/libags_thread_a-ags_timestamp_thread.Po b/.deps/libags_thread_a-ags_timestamp_thread.Po
index ed32f61..d0b5f5d 100644
--- a/.deps/libags_thread_a-ags_timestamp_thread.Po
+++ b/.deps/libags_thread_a-ags_timestamp_thread.Po
@@ -161,7 +161,9 @@ libags_thread_a-ags_timestamp_thread.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_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/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/Makefile b/Makefile
index 40a9788..d68df8c 100644
--- a/Makefile
+++ b/Makefile
@@ -112,7 +112,7 @@ am__objects_3 = $(am__objects_1) libags_a-ags_connectable.$(OBJEXT) \
 	libags_a-ags_combo_box_text.$(OBJEXT) \
 	libags_a-ags_container.$(OBJEXT) libags_a-ags_list.$(OBJEXT) \
 	libags_a-ags_log.$(OBJEXT) libags_a-ags_parameter.$(OBJEXT)
-am__objects_4 = $(am__objects_1) \
+am__objects_4 = $(am__objects_1) libags_a-ags_init.$(OBJEXT) \
 	libags_a-ags_application_context.$(OBJEXT) \
 	libags_a-ags_config.$(OBJEXT) \
 	libags_a-ags_applicable.$(OBJEXT) \
@@ -139,6 +139,7 @@ am__objects_5 = libags_audio_a-ags_garbage_collector.$(OBJEXT) \
 	libags_audio_a-ags_timestamp.$(OBJEXT) \
 	libags_audio_a-ags_timestamp_factory.$(OBJEXT)
 am__objects_6 = $(am__objects_5) \
+	libags_audio_a-ags_audio_init.$(OBJEXT) \
 	libags_audio_a-ags_audio_application_context.$(OBJEXT) \
 	libags_audio_a-ags_acceleration.$(OBJEXT) \
 	libags_audio_a-ags_playable.$(OBJEXT) \
@@ -282,7 +283,8 @@ am_libags_audio_a_OBJECTS = $(am__objects_6) $(am__objects_8) \
 libags_audio_a_OBJECTS = $(am_libags_audio_a_OBJECTS)
 libags_gui_a_AR = $(AR) $(ARFLAGS)
 libags_gui_a_LIBADD =
-am__objects_14 = $(am__objects_1) libags_gui_a-ags_cartesian.$(OBJEXT) \
+am__objects_14 = $(am__objects_1) libags_gui_a-ags_gui_init.$(OBJEXT) \
+	libags_gui_a-ags_cartesian.$(OBJEXT) \
 	libags_gui_a-ags_dial.$(OBJEXT) \
 	libags_gui_a-ags_expander.$(OBJEXT) \
 	libags_gui_a-ags_expander_set.$(OBJEXT) \
@@ -303,6 +305,7 @@ libags_gui_a_OBJECTS = $(am_libags_gui_a_OBJECTS)
 libags_thread_a_AR = $(AR) $(ARFLAGS)
 libags_thread_a_DEPENDENCIES = libags.a
 am__objects_15 = $(am__objects_1) \
+	libags_thread_a-ags_thread_init.$(OBJEXT) \
 	libags_thread_a-ags_thread_application_context.$(OBJEXT) \
 	libags_thread_a-ags_async_queue.$(OBJEXT) \
 	libags_thread_a-ags_audio_loop.$(OBJEXT) \
@@ -325,10 +328,12 @@ libags_thread_a_OBJECTS = $(am_libags_thread_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)"
 PROGRAMS = $(bin_PROGRAMS)
 am__objects_16 = gsequencer-main.$(OBJEXT)
-am__objects_17 = $(am__objects_1) gsequencer-ags_registry.$(OBJEXT) \
+am__objects_17 = $(am__objects_1) gsequencer-ags_server_init.$(OBJEXT) \
+	gsequencer-ags_server_application_context.$(OBJEXT) \
+	gsequencer-ags_registry.$(OBJEXT) \
 	gsequencer-ags_remote_task.$(OBJEXT) \
 	gsequencer-ags_server.$(OBJEXT)
-am__objects_18 = $(am__objects_1) \
+am__objects_18 = $(am__objects_1) gsequencer-ags_xorg_init.$(OBJEXT) \
 	gsequencer-ags_xorg_application_context.$(OBJEXT) \
 	gsequencer-ags_audio_preferences_callbacks.$(OBJEXT) \
 	gsequencer-ags_audio_preferences.$(OBJEXT) \
@@ -820,17 +825,17 @@ TARGETS = gsequencer
 noinst_LIBRARIES = libags.a libags_thread.a libags_audio.a libags_gui.a
 
 # application
-libags_a_CFLAGS = -g -O2 -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_a_CFLAGS = -g -O2 -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_a_LDFLAGS =  -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
-libags_thread_a_CFLAGS = -g -O2 -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_thread_a_CFLAGS = -g -O2 -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_thread_a_LDFLAGS =  -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_thread_a_LIBADD = libags.a
-libags_audio_a_CFLAGS = -g -O2 -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_audio_a_CFLAGS = -g -O2 -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_audio_a_LDFLAGS =  -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_audio_a_LIBADD = libags_thread.a libags.a 
-libags_gui_a_CFLAGS = -g -O2 -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_gui_a_CFLAGS = -g -O2 -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_gui_a_LDFLAGS =  -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
-gsequencer_CFLAGS = -g -O2 -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+gsequencer_CFLAGS = -g -O2 -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 gsequencer_LDFLAGS =  -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 gsequencer_LDADD = libags_audio.a libags_gui.a libags_thread.a libags.a
 ACLOCAL_AMFLAGS = -I m4
@@ -869,6 +874,7 @@ ags_util_c_sources = \
 deprecated_ags_object_h_sources = 
 ags_object_h_sources = \
 	$(deprecated_ags_object_h_sources) \
+	src/ags/object/ags_init.h			\
 	src/ags/object/ags_application_context.h	\
 	src/ags/object/ags_config.h			\
 	src/ags/object/ags_applicable.h			\
@@ -893,6 +899,7 @@ ags_object_h_sources = \
 deprecated_ags_object_c_sources = 
 ags_object_c_sources = \
 	$(deprecated_ags_object_c_sources) \
+	src/ags/object/ags_init.c			\
 	src/ags/object/ags_application_context.c	\
 	src/ags/object/ags_config.c			\
 	src/ags/object/ags_applicable.c			\
@@ -933,6 +940,7 @@ deprecated_ags_thread_h_sources = \
 
 ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
+	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
@@ -954,6 +962,7 @@ ags_thread_h_sources = \
 deprecated_ags_thread_c_sources = 
 ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
+	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
@@ -977,6 +986,7 @@ ags_thread_c_sources = \
 odeprecated_ags_widget_h_sources = 
 ags_widget_h_sources = \
 	$(deprecated_ags_widget_h_sources) \
+	src/ags/widget/ags_gui_init.h			\
 	src/ags/widget/ags_cartesian.h			\
 	src/ags/widget/ags_dial.h 			\
 	src/ags/widget/ags_expander.h			\
@@ -998,6 +1008,7 @@ ags_widget_h_sources = \
 deprecated_ags_widget_c_sources = 
 ags_widget_c_sources = \
 	$(deprecated_ags_widget_c_sources) \
+	src/ags/widget/ags_gui_init.c			\
 	src/ags/widget/ags_cartesian.c			\
 	src/ags/widget/ags_dial.c 			\
 	src/ags/widget/ags_expander.c			\
@@ -1027,6 +1038,7 @@ deprecated_ags_audio_h_sources = \
 
 ags_audio_h_sources = \
 	$(deprecated_ags_audio_h_sources) \
+	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
@@ -1071,6 +1083,7 @@ deprecated_ags_audio_c_sources = \
 
 ags_audio_c_sources = \
 	$(deprecated_ags_audio_c_sources) \
+	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
@@ -1382,6 +1395,8 @@ gsequencer_main_c_sources = \
 deprecated_gsequencer_server_h_sources = 
 gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
+	src/ags/server/ags_server_init.h		\
+	src/ags/server/ags_server_application_context.h	\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -1389,6 +1404,8 @@ gsequencer_server_h_sources = \
 deprecated_gsequencer_server_c_sources = 
 gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
+	src/ags/server/ags_server_init.c		\
+	src/ags/server/ags_server_application_context.c	\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
@@ -1396,6 +1413,7 @@ gsequencer_server_c_sources = \
 deprecated_gsequencer_xorg_h_sources = 
 gsequencer_xorg_h_sources = \
 	$(deprecated_gsequencer_xorg_h_sources)	\
+	src/ags/X/ags_xorg_init.h			\
 	src/ags/X/ags_xorg_application_context.h	\
 	src/ags/X/ags_audio_preferences_callbacks.h	\
 	src/ags/X/ags_audio_preferences.h		\
@@ -1465,6 +1483,7 @@ gsequencer_xorg_h_sources = \
 deprecated_gsequencer_xorg_c_sources = 
 gsequencer_xorg_c_sources = \
 	$(deprecated_gsequencer_xorg_c_sources) 	\
+	src/ags/X/ags_xorg_init.c			\
 	src/ags/X/ags_xorg_application_context.c	\
 	src/ags/X/ags_audio_preferences_callbacks.c	\
 	src/ags/X/ags_audio_preferences.c		\
@@ -2020,6 +2039,8 @@ include ./$(DEPDIR)/gsequencer-ags_resize_editor.Po
 include ./$(DEPDIR)/gsequencer-ags_save_file.Po
 include ./$(DEPDIR)/gsequencer-ags_scroll_on_play.Po
 include ./$(DEPDIR)/gsequencer-ags_server.Po
+include ./$(DEPDIR)/gsequencer-ags_server_application_context.Po
+include ./$(DEPDIR)/gsequencer-ags_server_init.Po
 include ./$(DEPDIR)/gsequencer-ags_server_preferences.Po
 include ./$(DEPDIR)/gsequencer-ags_server_preferences_callbacks.Po
 include ./$(DEPDIR)/gsequencer-ags_sf2_chooser.Po
@@ -2046,6 +2067,7 @@ include ./$(DEPDIR)/gsequencer-ags_update_bulk_member.Po
 include ./$(DEPDIR)/gsequencer-ags_window.Po
 include ./$(DEPDIR)/gsequencer-ags_window_callbacks.Po
 include ./$(DEPDIR)/gsequencer-ags_xorg_application_context.Po
+include ./$(DEPDIR)/gsequencer-ags_xorg_init.Po
 include ./$(DEPDIR)/gsequencer-main.Po
 include ./$(DEPDIR)/libags_a-ags_applicable.Po
 include ./$(DEPDIR)/libags_a-ags_application_context.Po
@@ -2057,6 +2079,7 @@ include ./$(DEPDIR)/libags_a-ags_countable.Po
 include ./$(DEPDIR)/libags_a-ags_dynamic_connectable.Po
 include ./$(DEPDIR)/libags_a-ags_effect.Po
 include ./$(DEPDIR)/libags_a-ags_id_generator.Po
+include ./$(DEPDIR)/libags_a-ags_init.Po
 include ./$(DEPDIR)/libags_a-ags_list.Po
 include ./$(DEPDIR)/libags_a-ags_log.Po
 include ./$(DEPDIR)/libags_a-ags_main_loop.Po
@@ -2092,6 +2115,7 @@ include ./$(DEPDIR)/libags_audio_a-ags_audio.Po
 include ./$(DEPDIR)/libags_audio_a-ags_audio_application_context.Po
 include ./$(DEPDIR)/libags_audio_a-ags_audio_file.Po
 include ./$(DEPDIR)/libags_audio_a-ags_audio_file_xml.Po
+include ./$(DEPDIR)/libags_audio_a-ags_audio_init.Po
 include ./$(DEPDIR)/libags_audio_a-ags_audio_set_recycling.Po
 include ./$(DEPDIR)/libags_audio_a-ags_audio_signal.Po
 include ./$(DEPDIR)/libags_audio_a-ags_automation.Po
@@ -2212,6 +2236,7 @@ include ./$(DEPDIR)/libags_gui_a-ags_cartesian.Po
 include ./$(DEPDIR)/libags_gui_a-ags_dial.Po
 include ./$(DEPDIR)/libags_gui_a-ags_expander.Po
 include ./$(DEPDIR)/libags_gui_a-ags_expander_set.Po
+include ./$(DEPDIR)/libags_gui_a-ags_gui_init.Po
 include ./$(DEPDIR)/libags_gui_a-ags_hindicator.Po
 include ./$(DEPDIR)/libags_gui_a-ags_htimebar.Po
 include ./$(DEPDIR)/libags_gui_a-ags_indicator.Po
@@ -2240,6 +2265,7 @@ include ./$(DEPDIR)/libags_thread_a-ags_single_thread.Po
 include ./$(DEPDIR)/libags_thread_a-ags_task_thread.Po
 include ./$(DEPDIR)/libags_thread_a-ags_thread-posix.Po
 include ./$(DEPDIR)/libags_thread_a-ags_thread_application_context.Po
+include ./$(DEPDIR)/libags_thread_a-ags_thread_init.Po
 include ./$(DEPDIR)/libags_thread_a-ags_thread_pool.Po
 include ./$(DEPDIR)/libags_thread_a-ags_timestamp_thread.Po
 
@@ -2362,6 +2388,20 @@ libags_a-ags_parameter.obj: src/ags/lib/ags_parameter.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_parameter.obj `if test -f 'src/ags/lib/ags_parameter.c'; then $(CYGPATH_W) 'src/ags/lib/ags_parameter.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/lib/ags_parameter.c'; fi`
 
+libags_a-ags_init.o: src/ags/object/ags_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_init.o -MD -MP -MF $(DEPDIR)/libags_a-ags_init.Tpo -c -o libags_a-ags_init.o `test -f 'src/ags/object/ags_init.c' || echo '$(srcdir)/'`src/ags/object/ags_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_init.Tpo $(DEPDIR)/libags_a-ags_init.Po
+#	$(AM_V_CC)source='src/ags/object/ags_init.c' object='libags_a-ags_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_init.o `test -f 'src/ags/object/ags_init.c' || echo '$(srcdir)/'`src/ags/object/ags_init.c
+
+libags_a-ags_init.obj: src/ags/object/ags_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_init.obj -MD -MP -MF $(DEPDIR)/libags_a-ags_init.Tpo -c -o libags_a-ags_init.obj `if test -f 'src/ags/object/ags_init.c'; then $(CYGPATH_W) 'src/ags/object/ags_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/object/ags_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_init.Tpo $(DEPDIR)/libags_a-ags_init.Po
+#	$(AM_V_CC)source='src/ags/object/ags_init.c' object='libags_a-ags_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_init.obj `if test -f 'src/ags/object/ags_init.c'; then $(CYGPATH_W) 'src/ags/object/ags_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/object/ags_init.c'; fi`
+
 libags_a-ags_application_context.o: src/ags/object/ags_application_context.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_application_context.o -MD -MP -MF $(DEPDIR)/libags_a-ags_application_context.Tpo -c -o libags_a-ags_application_context.o `test -f 'src/ags/object/ags_application_context.c' || echo '$(srcdir)/'`src/ags/object/ags_application_context.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_application_context.Tpo $(DEPDIR)/libags_a-ags_application_context.Po
@@ -2684,6 +2724,20 @@ libags_audio_a-ags_timestamp_factory.obj: src/ags/audio/ags_timestamp_factory.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_timestamp_factory.obj `if test -f 'src/ags/audio/ags_timestamp_factory.c'; then $(CYGPATH_W) 'src/ags/audio/ags_timestamp_factory.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_timestamp_factory.c'; fi`
 
+libags_audio_a-ags_audio_init.o: src/ags/audio/ags_audio_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_init.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo -c -o libags_audio_a-ags_audio_init.o `test -f 'src/ags/audio/ags_audio_init.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo $(DEPDIR)/libags_audio_a-ags_audio_init.Po
+#	$(AM_V_CC)source='src/ags/audio/ags_audio_init.c' object='libags_audio_a-ags_audio_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_init.o `test -f 'src/ags/audio/ags_audio_init.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_init.c
+
+libags_audio_a-ags_audio_init.obj: src/ags/audio/ags_audio_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_init.obj -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo -c -o libags_audio_a-ags_audio_init.obj `if test -f 'src/ags/audio/ags_audio_init.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo $(DEPDIR)/libags_audio_a-ags_audio_init.Po
+#	$(AM_V_CC)source='src/ags/audio/ags_audio_init.c' object='libags_audio_a-ags_audio_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_init.obj `if test -f 'src/ags/audio/ags_audio_init.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_init.c'; fi`
+
 libags_audio_a-ags_audio_application_context.o: src/ags/audio/ags_audio_application_context.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_application_context.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_application_context.Tpo -c -o libags_audio_a-ags_audio_application_context.o `test -f 'src/ags/audio/ags_audio_application_context.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_application_context.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_application_context.Tpo $(DEPDIR)/libags_audio_a-ags_audio_application_context.Po
@@ -4518,6 +4572,20 @@ libags_audio_a-ags_plugin_factory.obj: src/ags/plugin/ags_plugin_factory.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_plugin_factory.obj `if test -f 'src/ags/plugin/ags_plugin_factory.c'; then $(CYGPATH_W) 'src/ags/plugin/ags_plugin_factory.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/plugin/ags_plugin_factory.c'; fi`
 
+libags_gui_a-ags_gui_init.o: src/ags/widget/ags_gui_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_gui_init.o -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo -c -o libags_gui_a-ags_gui_init.o `test -f 'src/ags/widget/ags_gui_init.c' || echo '$(srcdir)/'`src/ags/widget/ags_gui_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo $(DEPDIR)/libags_gui_a-ags_gui_init.Po
+#	$(AM_V_CC)source='src/ags/widget/ags_gui_init.c' object='libags_gui_a-ags_gui_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_gui_init.o `test -f 'src/ags/widget/ags_gui_init.c' || echo '$(srcdir)/'`src/ags/widget/ags_gui_init.c
+
+libags_gui_a-ags_gui_init.obj: src/ags/widget/ags_gui_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_gui_init.obj -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo -c -o libags_gui_a-ags_gui_init.obj `if test -f 'src/ags/widget/ags_gui_init.c'; then $(CYGPATH_W) 'src/ags/widget/ags_gui_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_gui_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo $(DEPDIR)/libags_gui_a-ags_gui_init.Po
+#	$(AM_V_CC)source='src/ags/widget/ags_gui_init.c' object='libags_gui_a-ags_gui_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_gui_init.obj `if test -f 'src/ags/widget/ags_gui_init.c'; then $(CYGPATH_W) 'src/ags/widget/ags_gui_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_gui_init.c'; fi`
+
 libags_gui_a-ags_cartesian.o: src/ags/widget/ags_cartesian.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_cartesian.o -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_cartesian.Tpo -c -o libags_gui_a-ags_cartesian.o `test -f 'src/ags/widget/ags_cartesian.c' || echo '$(srcdir)/'`src/ags/widget/ags_cartesian.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_cartesian.Tpo $(DEPDIR)/libags_gui_a-ags_cartesian.Po
@@ -4756,6 +4824,20 @@ libags_gui_a-ags_waveform.obj: src/ags/widget/ags_waveform.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_waveform.obj `if test -f 'src/ags/widget/ags_waveform.c'; then $(CYGPATH_W) 'src/ags/widget/ags_waveform.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_waveform.c'; fi`
 
+libags_thread_a-ags_thread_init.o: src/ags/thread/ags_thread_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_init.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo -c -o libags_thread_a-ags_thread_init.o `test -f 'src/ags/thread/ags_thread_init.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo $(DEPDIR)/libags_thread_a-ags_thread_init.Po
+#	$(AM_V_CC)source='src/ags/thread/ags_thread_init.c' object='libags_thread_a-ags_thread_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_init.o `test -f 'src/ags/thread/ags_thread_init.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_init.c
+
+libags_thread_a-ags_thread_init.obj: src/ags/thread/ags_thread_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_init.obj -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo -c -o libags_thread_a-ags_thread_init.obj `if test -f 'src/ags/thread/ags_thread_init.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo $(DEPDIR)/libags_thread_a-ags_thread_init.Po
+#	$(AM_V_CC)source='src/ags/thread/ags_thread_init.c' object='libags_thread_a-ags_thread_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_init.obj `if test -f 'src/ags/thread/ags_thread_init.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_init.c'; fi`
+
 libags_thread_a-ags_thread_application_context.o: src/ags/thread/ags_thread_application_context.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_application_context.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_application_context.Tpo -c -o libags_thread_a-ags_thread_application_context.o `test -f 'src/ags/thread/ags_thread_application_context.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_application_context.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_application_context.Tpo $(DEPDIR)/libags_thread_a-ags_thread_application_context.Po
@@ -5008,6 +5090,34 @@ gsequencer-main.obj: src/ags/main.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-main.obj `if test -f 'src/ags/main.c'; then $(CYGPATH_W) 'src/ags/main.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/main.c'; fi`
 
+gsequencer-ags_server_init.o: src/ags/server/ags_server_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_init.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_init.Tpo -c -o gsequencer-ags_server_init.o `test -f 'src/ags/server/ags_server_init.c' || echo '$(srcdir)/'`src/ags/server/ags_server_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_init.Tpo $(DEPDIR)/gsequencer-ags_server_init.Po
+#	$(AM_V_CC)source='src/ags/server/ags_server_init.c' object='gsequencer-ags_server_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_init.o `test -f 'src/ags/server/ags_server_init.c' || echo '$(srcdir)/'`src/ags/server/ags_server_init.c
+
+gsequencer-ags_server_init.obj: src/ags/server/ags_server_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_init.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_init.Tpo -c -o gsequencer-ags_server_init.obj `if test -f 'src/ags/server/ags_server_init.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_init.Tpo $(DEPDIR)/gsequencer-ags_server_init.Po
+#	$(AM_V_CC)source='src/ags/server/ags_server_init.c' object='gsequencer-ags_server_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_init.obj `if test -f 'src/ags/server/ags_server_init.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_init.c'; fi`
+
+gsequencer-ags_server_application_context.o: src/ags/server/ags_server_application_context.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_application_context.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_application_context.Tpo -c -o gsequencer-ags_server_application_context.o `test -f 'src/ags/server/ags_server_application_context.c' || echo '$(srcdir)/'`src/ags/server/ags_server_application_context.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_application_context.Tpo $(DEPDIR)/gsequencer-ags_server_application_context.Po
+#	$(AM_V_CC)source='src/ags/server/ags_server_application_context.c' object='gsequencer-ags_server_application_context.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.o `test -f 'src/ags/server/ags_server_application_context.c' || echo '$(srcdir)/'`src/ags/server/ags_server_application_context.c
+
+gsequencer-ags_server_application_context.obj: src/ags/server/ags_server_application_context.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_application_context.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_application_context.Tpo -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_application_context.Tpo $(DEPDIR)/gsequencer-ags_server_application_context.Po
+#	$(AM_V_CC)source='src/ags/server/ags_server_application_context.c' object='gsequencer-ags_server_application_context.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
+
 gsequencer-ags_registry.o: src/ags/server/ags_registry.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_registry.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_registry.Tpo -c -o gsequencer-ags_registry.o `test -f 'src/ags/server/ags_registry.c' || echo '$(srcdir)/'`src/ags/server/ags_registry.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_registry.Tpo $(DEPDIR)/gsequencer-ags_registry.Po
@@ -5050,6 +5160,20 @@ gsequencer-ags_server.obj: src/ags/server/ags_server.c
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server.obj `if test -f 'src/ags/server/ags_server.c'; then $(CYGPATH_W) 'src/ags/server/ags_server.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server.c'; fi`
 
+gsequencer-ags_xorg_init.o: src/ags/X/ags_xorg_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_init.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_init.Tpo -c -o gsequencer-ags_xorg_init.o `test -f 'src/ags/X/ags_xorg_init.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_init.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_init.Tpo $(DEPDIR)/gsequencer-ags_xorg_init.Po
+#	$(AM_V_CC)source='src/ags/X/ags_xorg_init.c' object='gsequencer-ags_xorg_init.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_xorg_init.o `test -f 'src/ags/X/ags_xorg_init.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_init.c
+
+gsequencer-ags_xorg_init.obj: src/ags/X/ags_xorg_init.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_init.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_init.Tpo -c -o gsequencer-ags_xorg_init.obj `if test -f 'src/ags/X/ags_xorg_init.c'; then $(CYGPATH_W) 'src/ags/X/ags_xorg_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/X/ags_xorg_init.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_init.Tpo $(DEPDIR)/gsequencer-ags_xorg_init.Po
+#	$(AM_V_CC)source='src/ags/X/ags_xorg_init.c' object='gsequencer-ags_xorg_init.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_xorg_init.obj `if test -f 'src/ags/X/ags_xorg_init.c'; then $(CYGPATH_W) 'src/ags/X/ags_xorg_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/X/ags_xorg_init.c'; fi`
+
 gsequencer-ags_xorg_application_context.o: src/ags/X/ags_xorg_application_context.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_application_context.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_application_context.Tpo -c -o gsequencer-ags_xorg_application_context.o `test -f 'src/ags/X/ags_xorg_application_context.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_application_context.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_application_context.Tpo $(DEPDIR)/gsequencer-ags_xorg_application_context.Po
diff --git a/Makefile.am b/Makefile.am
index 690a1fb..c989100 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -36,21 +36,21 @@ noinst_LIBRARIES = libags.a libags_thread.a libags_audio.a libags_gui.a
 bin_PROGRAMS = gsequencer
 
 # application
-libags_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 
-libags_thread_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_thread_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_thread_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_thread_a_LIBADD = libags.a
 
-libags_audio_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_audio_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_audio_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_audio_a_LIBADD = libags_thread.a libags.a 
 
-libags_gui_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_gui_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_gui_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 
-gsequencer_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+gsequencer_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 gsequencer_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 gsequencer_LDADD = libags_audio.a libags_gui.a libags_thread.a libags.a
 
@@ -95,6 +95,7 @@ deprecated_ags_object_h_sources =
 
 ags_object_h_sources = \
 	$(deprecated_ags_object_h_sources) \
+	src/ags/object/ags_init.h			\
 	src/ags/object/ags_application_context.h	\
 	src/ags/object/ags_config.h			\
 	src/ags/object/ags_applicable.h			\
@@ -120,6 +121,7 @@ deprecated_ags_object_c_sources =
 
 ags_object_c_sources = \
 	$(deprecated_ags_object_c_sources) \
+	src/ags/object/ags_init.c			\
 	src/ags/object/ags_application_context.c	\
 	src/ags/object/ags_config.c			\
 	src/ags/object/ags_applicable.c			\
@@ -161,6 +163,7 @@ deprecated_ags_thread_h_sources = \
 
 ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
+	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
@@ -183,6 +186,7 @@ deprecated_ags_thread_c_sources =
 
 ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
+	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
@@ -206,6 +210,7 @@ odeprecated_ags_widget_h_sources =
 
 ags_widget_h_sources = \
 	$(deprecated_ags_widget_h_sources) \
+	src/ags/widget/ags_gui_init.h			\
 	src/ags/widget/ags_cartesian.h			\
 	src/ags/widget/ags_dial.h 			\
 	src/ags/widget/ags_expander.h			\
@@ -228,6 +233,7 @@ deprecated_ags_widget_c_sources =
 
 ags_widget_c_sources = \
 	$(deprecated_ags_widget_c_sources) \
+	src/ags/widget/ags_gui_init.c			\
 	src/ags/widget/ags_cartesian.c			\
 	src/ags/widget/ags_dial.c 			\
 	src/ags/widget/ags_expander.c			\
@@ -256,6 +262,7 @@ deprecated_ags_audio_h_sources = \
 
 ags_audio_h_sources = 		\
 	$(deprecated_ags_audio_h_sources) \
+	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
@@ -300,6 +307,7 @@ deprecated_ags_audio_c_sources =  \
 
 ags_audio_c_sources =  		\
 	$(deprecated_ags_audio_c_sources) \
+	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
@@ -613,6 +621,8 @@ deprecated_gsequencer_server_h_sources =
 
 gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
+	src/ags/server/ags_server_init.h		\
+	src/ags/server/ags_server_application_context.h	\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -621,6 +631,8 @@ deprecated_gsequencer_server_c_sources =
 
 gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
+	src/ags/server/ags_server_init.c		\
+	src/ags/server/ags_server_application_context.c	\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
@@ -630,6 +642,7 @@ deprecated_gsequencer_xorg_h_sources =
 
 gsequencer_xorg_h_sources = \
 	$(deprecated_gsequencer_xorg_h_sources)	\
+	src/ags/X/ags_xorg_init.h			\
 	src/ags/X/ags_xorg_application_context.h	\
 	src/ags/X/ags_audio_preferences_callbacks.h	\
 	src/ags/X/ags_audio_preferences.h		\
@@ -700,6 +713,7 @@ deprecated_gsequencer_xorg_c_sources =
 
 gsequencer_xorg_c_sources = \
 	$(deprecated_gsequencer_xorg_c_sources) 	\
+	src/ags/X/ags_xorg_init.c			\
 	src/ags/X/ags_xorg_application_context.c	\
 	src/ags/X/ags_audio_preferences_callbacks.c	\
 	src/ags/X/ags_audio_preferences.c		\
diff --git a/Makefile.in b/Makefile.in
index 210cafb..09eb942 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -112,7 +112,7 @@ am__objects_3 = $(am__objects_1) libags_a-ags_connectable.$(OBJEXT) \
 	libags_a-ags_combo_box_text.$(OBJEXT) \
 	libags_a-ags_container.$(OBJEXT) libags_a-ags_list.$(OBJEXT) \
 	libags_a-ags_log.$(OBJEXT) libags_a-ags_parameter.$(OBJEXT)
-am__objects_4 = $(am__objects_1) \
+am__objects_4 = $(am__objects_1) libags_a-ags_init.$(OBJEXT) \
 	libags_a-ags_application_context.$(OBJEXT) \
 	libags_a-ags_config.$(OBJEXT) \
 	libags_a-ags_applicable.$(OBJEXT) \
@@ -139,6 +139,7 @@ am__objects_5 = libags_audio_a-ags_garbage_collector.$(OBJEXT) \
 	libags_audio_a-ags_timestamp.$(OBJEXT) \
 	libags_audio_a-ags_timestamp_factory.$(OBJEXT)
 am__objects_6 = $(am__objects_5) \
+	libags_audio_a-ags_audio_init.$(OBJEXT) \
 	libags_audio_a-ags_audio_application_context.$(OBJEXT) \
 	libags_audio_a-ags_acceleration.$(OBJEXT) \
 	libags_audio_a-ags_playable.$(OBJEXT) \
@@ -282,7 +283,8 @@ am_libags_audio_a_OBJECTS = $(am__objects_6) $(am__objects_8) \
 libags_audio_a_OBJECTS = $(am_libags_audio_a_OBJECTS)
 libags_gui_a_AR = $(AR) $(ARFLAGS)
 libags_gui_a_LIBADD =
-am__objects_14 = $(am__objects_1) libags_gui_a-ags_cartesian.$(OBJEXT) \
+am__objects_14 = $(am__objects_1) libags_gui_a-ags_gui_init.$(OBJEXT) \
+	libags_gui_a-ags_cartesian.$(OBJEXT) \
 	libags_gui_a-ags_dial.$(OBJEXT) \
 	libags_gui_a-ags_expander.$(OBJEXT) \
 	libags_gui_a-ags_expander_set.$(OBJEXT) \
@@ -303,6 +305,7 @@ libags_gui_a_OBJECTS = $(am_libags_gui_a_OBJECTS)
 libags_thread_a_AR = $(AR) $(ARFLAGS)
 libags_thread_a_DEPENDENCIES = libags.a
 am__objects_15 = $(am__objects_1) \
+	libags_thread_a-ags_thread_init.$(OBJEXT) \
 	libags_thread_a-ags_thread_application_context.$(OBJEXT) \
 	libags_thread_a-ags_async_queue.$(OBJEXT) \
 	libags_thread_a-ags_audio_loop.$(OBJEXT) \
@@ -325,10 +328,12 @@ libags_thread_a_OBJECTS = $(am_libags_thread_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)"
 PROGRAMS = $(bin_PROGRAMS)
 am__objects_16 = gsequencer-main.$(OBJEXT)
-am__objects_17 = $(am__objects_1) gsequencer-ags_registry.$(OBJEXT) \
+am__objects_17 = $(am__objects_1) gsequencer-ags_server_init.$(OBJEXT) \
+	gsequencer-ags_server_application_context.$(OBJEXT) \
+	gsequencer-ags_registry.$(OBJEXT) \
 	gsequencer-ags_remote_task.$(OBJEXT) \
 	gsequencer-ags_server.$(OBJEXT)
-am__objects_18 = $(am__objects_1) \
+am__objects_18 = $(am__objects_1) gsequencer-ags_xorg_init.$(OBJEXT) \
 	gsequencer-ags_xorg_application_context.$(OBJEXT) \
 	gsequencer-ags_audio_preferences_callbacks.$(OBJEXT) \
 	gsequencer-ags_audio_preferences.$(OBJEXT) \
@@ -820,17 +825,17 @@ TARGETS = gsequencer
 noinst_LIBRARIES = libags.a libags_thread.a libags_audio.a libags_gui.a
 
 # application
-libags_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
-libags_thread_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_thread_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_thread_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_thread_a_LIBADD = libags.a
-libags_audio_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_audio_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_audio_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 libags_audio_a_LIBADD = libags_thread.a libags.a 
-libags_gui_a_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libags_gui_a_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 libags_gui_a_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
-gsequencer_CFLAGS = @CFLAGS@ -g -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+gsequencer_CFLAGS = @CFLAGS@ -g -pedantic -std=gnu11 -Wall -O -I./src -I/usr/include $(UUID_CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
 gsequencer_LDFLAGS = @LDFLAGS@ -L/lib -L/usr/lib -L/usr/X11/lib -lm -pthread -lrt -lgmp $(UUID_LIBS) $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
 gsequencer_LDADD = libags_audio.a libags_gui.a libags_thread.a libags.a
 ACLOCAL_AMFLAGS = -I m4
@@ -869,6 +874,7 @@ ags_util_c_sources = \
 deprecated_ags_object_h_sources = 
 ags_object_h_sources = \
 	$(deprecated_ags_object_h_sources) \
+	src/ags/object/ags_init.h			\
 	src/ags/object/ags_application_context.h	\
 	src/ags/object/ags_config.h			\
 	src/ags/object/ags_applicable.h			\
@@ -893,6 +899,7 @@ ags_object_h_sources = \
 deprecated_ags_object_c_sources = 
 ags_object_c_sources = \
 	$(deprecated_ags_object_c_sources) \
+	src/ags/object/ags_init.c			\
 	src/ags/object/ags_application_context.c	\
 	src/ags/object/ags_config.c			\
 	src/ags/object/ags_applicable.c			\
@@ -933,6 +940,7 @@ deprecated_ags_thread_h_sources = \
 
 ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
+	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
@@ -954,6 +962,7 @@ ags_thread_h_sources = \
 deprecated_ags_thread_c_sources = 
 ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
+	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
@@ -977,6 +986,7 @@ ags_thread_c_sources = \
 odeprecated_ags_widget_h_sources = 
 ags_widget_h_sources = \
 	$(deprecated_ags_widget_h_sources) \
+	src/ags/widget/ags_gui_init.h			\
 	src/ags/widget/ags_cartesian.h			\
 	src/ags/widget/ags_dial.h 			\
 	src/ags/widget/ags_expander.h			\
@@ -998,6 +1008,7 @@ ags_widget_h_sources = \
 deprecated_ags_widget_c_sources = 
 ags_widget_c_sources = \
 	$(deprecated_ags_widget_c_sources) \
+	src/ags/widget/ags_gui_init.c			\
 	src/ags/widget/ags_cartesian.c			\
 	src/ags/widget/ags_dial.c 			\
 	src/ags/widget/ags_expander.c			\
@@ -1027,6 +1038,7 @@ deprecated_ags_audio_h_sources = \
 
 ags_audio_h_sources = \
 	$(deprecated_ags_audio_h_sources) \
+	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
@@ -1071,6 +1083,7 @@ deprecated_ags_audio_c_sources = \
 
 ags_audio_c_sources = \
 	$(deprecated_ags_audio_c_sources) \
+	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
@@ -1382,6 +1395,8 @@ gsequencer_main_c_sources = \
 deprecated_gsequencer_server_h_sources = 
 gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
+	src/ags/server/ags_server_init.h		\
+	src/ags/server/ags_server_application_context.h	\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -1389,6 +1404,8 @@ gsequencer_server_h_sources = \
 deprecated_gsequencer_server_c_sources = 
 gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
+	src/ags/server/ags_server_init.c		\
+	src/ags/server/ags_server_application_context.c	\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
@@ -1396,6 +1413,7 @@ gsequencer_server_c_sources = \
 deprecated_gsequencer_xorg_h_sources = 
 gsequencer_xorg_h_sources = \
 	$(deprecated_gsequencer_xorg_h_sources)	\
+	src/ags/X/ags_xorg_init.h			\
 	src/ags/X/ags_xorg_application_context.h	\
 	src/ags/X/ags_audio_preferences_callbacks.h	\
 	src/ags/X/ags_audio_preferences.h		\
@@ -1465,6 +1483,7 @@ gsequencer_xorg_h_sources = \
 deprecated_gsequencer_xorg_c_sources = 
 gsequencer_xorg_c_sources = \
 	$(deprecated_gsequencer_xorg_c_sources) 	\
+	src/ags/X/ags_xorg_init.c			\
 	src/ags/X/ags_xorg_application_context.c	\
 	src/ags/X/ags_audio_preferences_callbacks.c	\
 	src/ags/X/ags_audio_preferences.c		\
@@ -2020,6 +2039,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_save_file.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_scroll_on_play.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_application_context.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_preferences.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_preferences_callbacks.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_sf2_chooser.Po at am__quote@
@@ -2046,6 +2067,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_window.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_window_callbacks.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_xorg_application_context.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_xorg_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-main.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_applicable.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_application_context.Po at am__quote@
@@ -2057,6 +2079,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_dynamic_connectable.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_effect.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_id_generator.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_list.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_log.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_a-ags_main_loop.Po at am__quote@
@@ -2092,6 +2115,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_application_context.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_file.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_file_xml.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_set_recycling.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_audio_signal.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_automation.Po at am__quote@
@@ -2212,6 +2236,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_dial.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_expander.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_expander_set.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_gui_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_hindicator.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_htimebar.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_gui_a-ags_indicator.Po at am__quote@
@@ -2240,6 +2265,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_task_thread.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_thread-posix.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_thread_application_context.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_thread_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_thread_pool.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_timestamp_thread.Po at am__quote@
 
@@ -2362,6 +2388,20 @@ libags_a-ags_parameter.obj: src/ags/lib/ags_parameter.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_parameter.obj `if test -f 'src/ags/lib/ags_parameter.c'; then $(CYGPATH_W) 'src/ags/lib/ags_parameter.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/lib/ags_parameter.c'; fi`
 
+libags_a-ags_init.o: src/ags/object/ags_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_init.o -MD -MP -MF $(DEPDIR)/libags_a-ags_init.Tpo -c -o libags_a-ags_init.o `test -f 'src/ags/object/ags_init.c' || echo '$(srcdir)/'`src/ags/object/ags_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_init.Tpo $(DEPDIR)/libags_a-ags_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/object/ags_init.c' object='libags_a-ags_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_init.o `test -f 'src/ags/object/ags_init.c' || echo '$(srcdir)/'`src/ags/object/ags_init.c
+
+libags_a-ags_init.obj: src/ags/object/ags_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_init.obj -MD -MP -MF $(DEPDIR)/libags_a-ags_init.Tpo -c -o libags_a-ags_init.obj `if test -f 'src/ags/object/ags_init.c'; then $(CYGPATH_W) 'src/ags/object/ags_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/object/ags_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_init.Tpo $(DEPDIR)/libags_a-ags_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/object/ags_init.c' object='libags_a-ags_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -c -o libags_a-ags_init.obj `if test -f 'src/ags/object/ags_init.c'; then $(CYGPATH_W) 'src/ags/object/ags_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/object/ags_init.c'; fi`
+
 libags_a-ags_application_context.o: src/ags/object/ags_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_a_CFLAGS) $(CFLAGS) -MT libags_a-ags_application_context.o -MD -MP -MF $(DEPDIR)/libags_a-ags_application_context.Tpo -c -o libags_a-ags_application_context.o `test -f 'src/ags/object/ags_application_context.c' || echo '$(srcdir)/'`src/ags/object/ags_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_a-ags_application_context.Tpo $(DEPDIR)/libags_a-ags_application_context.Po
@@ -2684,6 +2724,20 @@ libags_audio_a-ags_timestamp_factory.obj: src/ags/audio/ags_timestamp_factory.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_timestamp_factory.obj `if test -f 'src/ags/audio/ags_timestamp_factory.c'; then $(CYGPATH_W) 'src/ags/audio/ags_timestamp_factory.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_timestamp_factory.c'; fi`
 
+libags_audio_a-ags_audio_init.o: src/ags/audio/ags_audio_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_init.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo -c -o libags_audio_a-ags_audio_init.o `test -f 'src/ags/audio/ags_audio_init.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo $(DEPDIR)/libags_audio_a-ags_audio_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/audio/ags_audio_init.c' object='libags_audio_a-ags_audio_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_init.o `test -f 'src/ags/audio/ags_audio_init.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_init.c
+
+libags_audio_a-ags_audio_init.obj: src/ags/audio/ags_audio_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_init.obj -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo -c -o libags_audio_a-ags_audio_init.obj `if test -f 'src/ags/audio/ags_audio_init.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_init.Tpo $(DEPDIR)/libags_audio_a-ags_audio_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/audio/ags_audio_init.c' object='libags_audio_a-ags_audio_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_init.obj `if test -f 'src/ags/audio/ags_audio_init.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_init.c'; fi`
+
 libags_audio_a-ags_audio_application_context.o: src/ags/audio/ags_audio_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_audio_application_context.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_audio_application_context.Tpo -c -o libags_audio_a-ags_audio_application_context.o `test -f 'src/ags/audio/ags_audio_application_context.c' || echo '$(srcdir)/'`src/ags/audio/ags_audio_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_audio_application_context.Tpo $(DEPDIR)/libags_audio_a-ags_audio_application_context.Po
@@ -4518,6 +4572,20 @@ libags_audio_a-ags_plugin_factory.obj: src/ags/plugin/ags_plugin_factory.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_plugin_factory.obj `if test -f 'src/ags/plugin/ags_plugin_factory.c'; then $(CYGPATH_W) 'src/ags/plugin/ags_plugin_factory.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/plugin/ags_plugin_factory.c'; fi`
 
+libags_gui_a-ags_gui_init.o: src/ags/widget/ags_gui_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_gui_init.o -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo -c -o libags_gui_a-ags_gui_init.o `test -f 'src/ags/widget/ags_gui_init.c' || echo '$(srcdir)/'`src/ags/widget/ags_gui_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo $(DEPDIR)/libags_gui_a-ags_gui_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/widget/ags_gui_init.c' object='libags_gui_a-ags_gui_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_gui_init.o `test -f 'src/ags/widget/ags_gui_init.c' || echo '$(srcdir)/'`src/ags/widget/ags_gui_init.c
+
+libags_gui_a-ags_gui_init.obj: src/ags/widget/ags_gui_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_gui_init.obj -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo -c -o libags_gui_a-ags_gui_init.obj `if test -f 'src/ags/widget/ags_gui_init.c'; then $(CYGPATH_W) 'src/ags/widget/ags_gui_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_gui_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_gui_init.Tpo $(DEPDIR)/libags_gui_a-ags_gui_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/widget/ags_gui_init.c' object='libags_gui_a-ags_gui_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_gui_init.obj `if test -f 'src/ags/widget/ags_gui_init.c'; then $(CYGPATH_W) 'src/ags/widget/ags_gui_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_gui_init.c'; fi`
+
 libags_gui_a-ags_cartesian.o: src/ags/widget/ags_cartesian.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -MT libags_gui_a-ags_cartesian.o -MD -MP -MF $(DEPDIR)/libags_gui_a-ags_cartesian.Tpo -c -o libags_gui_a-ags_cartesian.o `test -f 'src/ags/widget/ags_cartesian.c' || echo '$(srcdir)/'`src/ags/widget/ags_cartesian.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_gui_a-ags_cartesian.Tpo $(DEPDIR)/libags_gui_a-ags_cartesian.Po
@@ -4756,6 +4824,20 @@ libags_gui_a-ags_waveform.obj: src/ags/widget/ags_waveform.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_gui_a_CFLAGS) $(CFLAGS) -c -o libags_gui_a-ags_waveform.obj `if test -f 'src/ags/widget/ags_waveform.c'; then $(CYGPATH_W) 'src/ags/widget/ags_waveform.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/widget/ags_waveform.c'; fi`
 
+libags_thread_a-ags_thread_init.o: src/ags/thread/ags_thread_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_init.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo -c -o libags_thread_a-ags_thread_init.o `test -f 'src/ags/thread/ags_thread_init.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo $(DEPDIR)/libags_thread_a-ags_thread_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/thread/ags_thread_init.c' object='libags_thread_a-ags_thread_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_init.o `test -f 'src/ags/thread/ags_thread_init.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_init.c
+
+libags_thread_a-ags_thread_init.obj: src/ags/thread/ags_thread_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_init.obj -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo -c -o libags_thread_a-ags_thread_init.obj `if test -f 'src/ags/thread/ags_thread_init.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_init.Tpo $(DEPDIR)/libags_thread_a-ags_thread_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/thread/ags_thread_init.c' object='libags_thread_a-ags_thread_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_init.obj `if test -f 'src/ags/thread/ags_thread_init.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_init.c'; fi`
+
 libags_thread_a-ags_thread_application_context.o: src/ags/thread/ags_thread_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_thread_application_context.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_thread_application_context.Tpo -c -o libags_thread_a-ags_thread_application_context.o `test -f 'src/ags/thread/ags_thread_application_context.c' || echo '$(srcdir)/'`src/ags/thread/ags_thread_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_thread_application_context.Tpo $(DEPDIR)/libags_thread_a-ags_thread_application_context.Po
@@ -5008,6 +5090,34 @@ gsequencer-main.obj: src/ags/main.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-main.obj `if test -f 'src/ags/main.c'; then $(CYGPATH_W) 'src/ags/main.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/main.c'; fi`
 
+gsequencer-ags_server_init.o: src/ags/server/ags_server_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_init.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_init.Tpo -c -o gsequencer-ags_server_init.o `test -f 'src/ags/server/ags_server_init.c' || echo '$(srcdir)/'`src/ags/server/ags_server_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_init.Tpo $(DEPDIR)/gsequencer-ags_server_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_server_init.c' object='gsequencer-ags_server_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_init.o `test -f 'src/ags/server/ags_server_init.c' || echo '$(srcdir)/'`src/ags/server/ags_server_init.c
+
+gsequencer-ags_server_init.obj: src/ags/server/ags_server_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_init.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_init.Tpo -c -o gsequencer-ags_server_init.obj `if test -f 'src/ags/server/ags_server_init.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_init.Tpo $(DEPDIR)/gsequencer-ags_server_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_server_init.c' object='gsequencer-ags_server_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_init.obj `if test -f 'src/ags/server/ags_server_init.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_init.c'; fi`
+
+gsequencer-ags_server_application_context.o: src/ags/server/ags_server_application_context.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_application_context.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_application_context.Tpo -c -o gsequencer-ags_server_application_context.o `test -f 'src/ags/server/ags_server_application_context.c' || echo '$(srcdir)/'`src/ags/server/ags_server_application_context.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_application_context.Tpo $(DEPDIR)/gsequencer-ags_server_application_context.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_server_application_context.c' object='gsequencer-ags_server_application_context.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.o `test -f 'src/ags/server/ags_server_application_context.c' || echo '$(srcdir)/'`src/ags/server/ags_server_application_context.c
+
+gsequencer-ags_server_application_context.obj: src/ags/server/ags_server_application_context.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_server_application_context.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_server_application_context.Tpo -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_server_application_context.Tpo $(DEPDIR)/gsequencer-ags_server_application_context.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_server_application_context.c' object='gsequencer-ags_server_application_context.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
+
 gsequencer-ags_registry.o: src/ags/server/ags_registry.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_registry.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_registry.Tpo -c -o gsequencer-ags_registry.o `test -f 'src/ags/server/ags_registry.c' || echo '$(srcdir)/'`src/ags/server/ags_registry.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_registry.Tpo $(DEPDIR)/gsequencer-ags_registry.Po
@@ -5050,6 +5160,20 @@ gsequencer-ags_server.obj: src/ags/server/ags_server.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server.obj `if test -f 'src/ags/server/ags_server.c'; then $(CYGPATH_W) 'src/ags/server/ags_server.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server.c'; fi`
 
+gsequencer-ags_xorg_init.o: src/ags/X/ags_xorg_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_init.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_init.Tpo -c -o gsequencer-ags_xorg_init.o `test -f 'src/ags/X/ags_xorg_init.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_init.Tpo $(DEPDIR)/gsequencer-ags_xorg_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/X/ags_xorg_init.c' object='gsequencer-ags_xorg_init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_xorg_init.o `test -f 'src/ags/X/ags_xorg_init.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_init.c
+
+gsequencer-ags_xorg_init.obj: src/ags/X/ags_xorg_init.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_init.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_init.Tpo -c -o gsequencer-ags_xorg_init.obj `if test -f 'src/ags/X/ags_xorg_init.c'; then $(CYGPATH_W) 'src/ags/X/ags_xorg_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/X/ags_xorg_init.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_init.Tpo $(DEPDIR)/gsequencer-ags_xorg_init.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/X/ags_xorg_init.c' object='gsequencer-ags_xorg_init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_xorg_init.obj `if test -f 'src/ags/X/ags_xorg_init.c'; then $(CYGPATH_W) 'src/ags/X/ags_xorg_init.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/X/ags_xorg_init.c'; fi`
+
 gsequencer-ags_xorg_application_context.o: src/ags/X/ags_xorg_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_xorg_application_context.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_xorg_application_context.Tpo -c -o gsequencer-ags_xorg_application_context.o `test -f 'src/ags/X/ags_xorg_application_context.c' || echo '$(srcdir)/'`src/ags/X/ags_xorg_application_context.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_xorg_application_context.Tpo $(DEPDIR)/gsequencer-ags_xorg_application_context.Po
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
index 6133580..1dfafc1 100644
--- a/autom4te.cache/requests
+++ b/autom4te.cache/requests
@@ -43,196 +43,196 @@
                         'configure.ac'
                       ],
                       {
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        'PKG_CHECK_EXISTS' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
-                        '_LT_PROG_FC' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'AM_MISSING_HAS_RUN' => 1,
-                        'PKG_NOARCH_INSTALLDIR' => 1,
-                        'AC_PROG_LD' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        '_LT_DLL_DEF_P' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        '_AM_PROG_TAR' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        'AC_PROG_NM' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        'AC_DISABLE_SHARED' => 1,
-                        '_m4_warn' => 1,
-                        'LT_PATH_NM' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'AC_LTDL_DLLIB' => 1,
+                        'AC_WITH_LTDL' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
                         '_LT_PROG_CXX' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'LT_OUTPUT' => 1,
-                        'PKG_CHECK_MODULES' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        'PKG_INSTALLDIR' => 1,
-                        '_LT_COMPILER_BOILERPLATE' => 1,
-                        'LT_INIT' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
+                        'AM_ENABLE_STATIC' => 1,
+                        'LT_FUNC_ARGZ' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        '_LT_AC_SHELL_INIT' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
                         'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        'AM_C_PROTOTYPES' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        'LTSUGAR_VERSION' => 1,
                         'LT_PATH_LD' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        'AM_CONFIG_HEADER' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
                         'AM_PROG_NM' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_WITH_LTDL' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'AM_C_PROTOTYPES' => 1,
+                        'm4_pattern_forbid' => 1,
                         'AC_ENABLE_SHARED' => 1,
-                        'PKG_CHECK_VAR' => 1,
                         '_LT_PROG_F77' => 1,
-                        '_AM_PROG_CC_C_O' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        '_LT_COMPILER_BOILERPLATE' => 1,
+                        'LT_PATH_NM' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'AM_MISSING_HAS_RUN' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        '_LT_PROG_FC' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
                         'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
+                        'AC_PROG_LD' => 1,
+                        'LT_PROG_GO' => 1,
+                        'LT_LIB_DLLOAD' => 1,
                         'AC_ENABLE_FAST_INSTALL' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        '_AM_SET_OPTIONS' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        '_LT_LINKER_OPTION' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+                        'm4_include' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        'AM_PROG_CC_C_O' => 1,
                         'AC_DEFUN' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        '_AM_PROG_CC_C_O' => 1,
+                        'AC_PROG_NM' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        'AU_DEFUN' => 1,
                         '_AM_DEPENDENCIES' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        'LT_AC_PROG_SED' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'include' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'AC_DISABLE_STATIC' => 1,
                         'AC_PROG_LIBTOOL' => 1,
-                        'LT_PROG_GO' => 1,
-                        'LTDL_INIT' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        'PKG_PROG_PKG_CONFIG' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'PKG_CHECK_MODULES' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        'm4_pattern_allow' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'PKG_NOARCH_INSTALLDIR' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
                         'AM_PROG_INSTALL_STRIP' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        'AM_SANITY_CHECK' => 1,
+                        'LT_AC_PROG_GCJ' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'include' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
+                        '_LT_AC_LOCK' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        'LT_LIB_M' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
                         '_AM_MANGLE_OPTION' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
+                        'AM_CONFIG_HEADER' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
+                        'PKG_CHECK_EXISTS' => 1,
+                        'AC_ENABLE_STATIC' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'LT_OUTPUT' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        'AM_SET_DEPDIR' => 1,
+                        'LT_AC_PROG_SED' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
+                        'LT_AC_PROG_RC' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
                         'LT_LANG' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
                         'AM_PROG_LD' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        'LT_LIB_M' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        'LT_PROG_RC' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'AM_ENABLE_STATIC' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
                         'LT_WITH_LTDL' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'AM_RUN_LOG' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        '_LTDL_SETUP' => 1,
+                        'AC_LTDL_OBJDIR' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
+                        'PKG_PROG_PKG_CONFIG' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
+                        'AM_DEP_TRACK' => 1,
+                        'AC_PROG_LD_GNU' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
                         'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        'm4_include' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'LT_SYS_MODULE_PATH' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+                        'LT_PROG_GCJ' => 1,
+                        'LT_INIT' => 1,
                         'AM_PROG_CC_STDC' => 1,
+                        'PKG_CHECK_VAR' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
+                        'LT_AC_PROG_EGREP' => 1,
                         '_LT_AC_TAGVAR' => 1,
                         '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'AM_ENABLE_SHARED' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
                         '_LT_AC_LANG_F77' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
                         'fp_C_PROTOTYPES' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
-                        'm4_pattern_allow' => 1
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'AM_MISSING_PROG' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
+                        'LTDL_INIT' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+                        '_m4_warn' => 1,
+                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AC_PATH_MAGIC' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'PKG_INSTALLDIR' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+                        'AM_ENABLE_SHARED' => 1,
+                        'LT_PROG_RC' => 1,
+                        'AM_RUN_LOG' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -247,65 +247,65 @@
                         'configure.ac'
                       ],
                       {
-                        'sinclude' => 1,
-                        'AC_CANONICAL_HOST' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
                         'AM_MAINTAINER_MODE' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
-                        'AM_NLS' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AC_CONFIG_FILES' => 1,
                         'AM_PROG_MKDIR_P' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AC_SUBST' => 1,
+                        'AC_FC_FREEFORM' => 1,
                         'AM_CONDITIONAL' => 1,
-                        'AH_OUTPUT' => 1,
-                        'AM_POT_TOOLS' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
+                        'AM_MAKEFILE_INCLUDE' => 1,
+                        'AC_CANONICAL_BUILD' => 1,
                         'AC_PROG_LIBTOOL' => 1,
-                        'include' => 1,
+                        'm4_pattern_forbid' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        '_m4_warn' => 1,
                         'AC_SUBST_TRACE' => 1,
-                        'AM_PROG_F77_C_O' => 1,
-                        'm4_include' => 1,
+                        'm4_pattern_allow' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        'AH_OUTPUT' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'AM_PATH_GUILE' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'AC_FC_PP_SRCEXT' => 1,
+                        'AM_POT_TOOLS' => 1,
                         'AM_PROG_MOC' => 1,
-                        'AM_MAKEFILE_INCLUDE' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        'AM_PROG_CC_C_O' => 1,
+                        'AC_CANONICAL_HOST' => 1,
                         'AC_CONFIG_SUBDIRS' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
+                        'AC_INIT' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+                        '_AM_COND_IF' => 1,
+                        'AM_PROG_AR' => 1,
+                        'AM_XGETTEXT_OPTION' => 1,
+                        'AC_FC_PP_DEFINE' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
                         '_AM_COND_ENDIF' => 1,
+                        'm4_include' => 1,
                         'AC_REQUIRE_AUX_FILE' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        '_AM_COND_IF' => 1,
+                        'AM_PROG_CXX_C_O' => 1,
                         'm4_sinclude' => 1,
-                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AC_CANONICAL_BUILD' => 1,
+                        'AC_CONFIG_AUX_DIR' => 1,
                         '_AM_COND_ELSE' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AM_PATH_GUILE' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
-                        'LT_INIT' => 1,
-                        'AC_FC_SRCEXT' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        'AC_INIT' => 1,
-                        '_m4_warn' => 1,
+                        'AC_SUBST' => 1,
                         'AM_AUTOMAKE_VERSION' => 1,
-                        'AM_PROG_AR' => 1,
-                        'AM_XGETTEXT_OPTION' => 1
+                        'AC_CONFIG_LIBOBJ_DIR' => 1,
+                        'AM_GNU_GETTEXT' => 1,
+                        'include' => 1,
+                        'LT_INIT' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
+                        'AM_PROG_FC_C_O' => 1,
+                        'AC_CONFIG_LINKS' => 1,
+                        'AM_PROG_F77_C_O' => 1,
+                        'AM_NLS' => 1,
+                        'sinclude' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AM_ENABLE_MULTILIB' => 1,
+                        'AC_LIBSOURCE' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -348,196 +348,196 @@
                         'configure.ac'
                       ],
                       {
-                        'AC_LIBTOOL_FC' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        'AC_CHECK_LIBM' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'AM_C_PROTOTYPES' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AM_PROG_NM' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'AM_MISSING_HAS_RUN' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'AC_ENABLE_SHARED' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        '_LT_COMPILER_BOILERPLATE' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'LT_PATH_NM' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        'AM_ENABLE_STATIC' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
+                        'LT_FUNC_ARGZ' => 1,
                         'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        '_LT_AC_SHELL_INIT' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
                         'AC_WITH_LTDL' => 1,
-                        '_LT_PROG_F77' => 1,
-                        'PKG_CHECK_VAR' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        'LTSUGAR_VERSION' => 1,
+                        'LT_PATH_LD' => 1,
                         '_AM_PROG_CC_C_O' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'AC_PROG_NM' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        'AU_DEFUN' => 1,
+                        'AC_DISABLE_STATIC' => 1,
+                        '_AM_DEPENDENCIES' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_DEFUN' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        'PKG_NOARCH_INSTALLDIR' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'PKG_CHECK_MODULES' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        'm4_pattern_allow' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'AC_PROG_LD' => 1,
                         'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        '_AM_SET_OPTIONS' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'LT_PROG_GO' => 1,
                         'AC_ENABLE_FAST_INSTALL' => 1,
+                        'LT_LIB_DLLOAD' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+                        'm4_include' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        '_LT_PROG_FC' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'LT_OUTPUT' => 1,
                         'AC_LTDL_ENABLE_INSTALL' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'include' => 1,
-                        'LTDL_INIT' => 1,
-                        'LT_PROG_GO' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
-                        '_AM_DEPENDENCIES' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
                         'AC_PATH_TOOL_PREFIX' => 1,
-                        'AC_DEFUN' => 1,
-                        '_LT_LINKER_OPTION' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AM_PROG_CC_C_O' => 1,
                         'LT_AC_PROG_SED' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        'AM_SET_DEPDIR' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        'LT_LIB_M' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        'AM_CONFIG_HEADER' => 1,
                         '_AM_MANGLE_OPTION' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        'LT_LANG' => 1,
+                        'PKG_CHECK_EXISTS' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
+                        'AC_ENABLE_STATIC' => 1,
                         '_AM_SET_OPTION' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        'AC_LTDL_OBJDIR' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
                         'PKG_PROG_PKG_CONFIG' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        'LT_AC_PROG_RC' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
+                        'LT_LANG' => 1,
                         'AM_PROG_LD' => 1,
-                        'LT_LIB_M' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        'LT_PROG_RC' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
                         'LT_WITH_LTDL' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'AM_RUN_LOG' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        'AM_ENABLE_STATIC' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        'm4_include' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        '_LTDL_SETUP' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        'AM_SANITY_CHECK' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'LT_AC_PROG_GCJ' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        '_LT_AC_LOCK' => 1,
                         'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AM_ENABLE_SHARED' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'include' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
                         'AC_LIBTOOL_DLOPEN' => 1,
+                        'LTDL_INIT' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+                        '_m4_warn' => 1,
+                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
                         'fp_C_PROTOTYPES' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'm4_pattern_allow' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
                         'LT_SYS_MODULE_PATH' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'AM_PROG_CC_STDC' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'PKG_CHECK_EXISTS' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'AM_MISSING_PROG' => 1,
                         'AM_SILENT_RULES' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        '_LT_PROG_FC' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'AM_MISSING_HAS_RUN' => 1,
-                        'PKG_NOARCH_INSTALLDIR' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
+                        'AM_ENABLE_SHARED' => 1,
+                        'LT_PROG_RC' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+                        'AM_RUN_LOG' => 1,
                         '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
-                        '_AM_PROG_TAR' => 1,
+                        'AC_PATH_MAGIC' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'PKG_INSTALLDIR' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
                         'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        '_LT_DLL_DEF_P' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
                         'AM_DEP_TRACK' => 1,
-                        'AC_PROG_NM' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        'AC_PROG_LD' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        'LT_OUTPUT' => 1,
-                        'PKG_CHECK_MODULES' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'LT_PATH_NM' => 1,
-                        '_m4_warn' => 1,
-                        'AC_DISABLE_SHARED' => 1,
-                        'AC_LTDL_DLLIB' => 1,
-                        'AM_C_PROTOTYPES' => 1,
-                        'm4_pattern_forbid' => 1,
+                        'AC_PROG_LD_GNU' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
                         'LT_AC_PROG_EGREP' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'PKG_INSTALLDIR' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        '_LT_COMPILER_BOILERPLATE' => 1,
-                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
+                        '_LT_AC_TAGVAR' => 1,
+                        '_LT_AC_LANG_F77_CONFIG' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
+                        '_LT_AC_LANG_F77' => 1,
+                        'LT_PROG_GCJ' => 1,
                         'LT_INIT' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        'LT_PATH_LD' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'AM_CONFIG_HEADER' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'AM_PROG_NM' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        'AM_CONDITIONAL' => 1
+                        'AM_PROG_CC_STDC' => 1,
+                        'PKG_CHECK_VAR' => 1
                       }
                     ], 'Autom4te::Request' )
            );
diff --git a/config.log b/config.log
index bda52a5..8d979a2 100644
--- a/config.log
+++ b/config.log
@@ -1507,3 +1507,93 @@ on Device-03036C
 
 config.status:1222: creating Makefile
 config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
diff --git a/gsequencer b/gsequencer
new file mode 100755
index 0000000..7b827b2
Binary files /dev/null and b/gsequencer differ
diff --git a/src/ags/X/ags_audio_preferences.c b/src/ags/X/ags_audio_preferences.c
index 8fcc20f..40b8d1e 100644
--- a/src/ags/X/ags_audio_preferences.c
+++ b/src/ags/X/ags_audio_preferences.c
@@ -56,7 +56,8 @@ void ags_audio_preferences_show(GtkWidget *widget);
 
 static gpointer ags_audio_preferences_parent_class = NULL;
 
-extern AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 GType
 ags_audio_preferences_get_type(void)
diff --git a/src/ags/X/ags_effect_bulk.c b/src/ags/X/ags_effect_bulk.c
index 90f4c40..7f2f259 100644
--- a/src/ags/X/ags_effect_bulk.c
+++ b/src/ags/X/ags_effect_bulk.c
@@ -126,7 +126,8 @@ enum{
 static gpointer ags_effect_bulk_parent_class = NULL;
 static guint effect_bulk_signals[LAST_SIGNAL];
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_effect_bulk_get_type(void)
diff --git a/src/ags/X/ags_export_window_callbacks.c b/src/ags/X/ags_export_window_callbacks.c
index ea75baa..5fc39c6 100644
--- a/src/ags/X/ags_export_window_callbacks.c
+++ b/src/ags/X/ags_export_window_callbacks.c
@@ -37,7 +37,8 @@
 void ags_export_window_stop_callback(AgsThread *thread,
 				     AgsExportWindow *export_window);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern AgsXorgApplicationContext *ags_xorg_application_context;
 
 void
diff --git a/src/ags/X/ags_generic_preferences.c b/src/ags/X/ags_generic_preferences.c
index 3c0550e..ed1c176 100644
--- a/src/ags/X/ags_generic_preferences.c
+++ b/src/ags/X/ags_generic_preferences.c
@@ -53,7 +53,8 @@ void ags_generic_preferences_show(GtkWidget *widget);
 
 static gpointer ags_generic_preferences_parent_class = NULL;
 
-extern AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 GType
 ags_generic_preferences_get_type(void)
diff --git a/src/ags/X/ags_line.c b/src/ags/X/ags_line.c
index dbce47f..4ba37bf 100644
--- a/src/ags/X/ags_line.c
+++ b/src/ags/X/ags_line.c
@@ -103,7 +103,8 @@ enum{
 static gpointer ags_line_parent_class = NULL;
 static guint line_signals[LAST_SIGNAL];
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_line_get_type(void)
diff --git a/src/ags/X/ags_line_callbacks.c b/src/ags/X/ags_line_callbacks.c
index dab444d..e490d4f 100644
--- a/src/ags/X/ags_line_callbacks.c
+++ b/src/ags/X/ags_line_callbacks.c
@@ -40,7 +40,8 @@
 #include <ags/X/ags_pad.h>
 #include <ags/X/ags_line_member.h>
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 int
 ags_line_parent_set_callback(GtkWidget *widget, GtkObject *old_parent, AgsLine *line)
diff --git a/src/ags/X/ags_line_member.c b/src/ags/X/ags_line_member.c
index ed25f0f..a5e6e29 100644
--- a/src/ags/X/ags_line_member.c
+++ b/src/ags/X/ags_line_member.c
@@ -88,7 +88,8 @@ enum{
 static gpointer ags_line_member_parent_class = NULL;
 static guint line_member_signals[LAST_SIGNAL];
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_line_member_get_type(void)
diff --git a/src/ags/X/ags_link_collection_editor.c b/src/ags/X/ags_link_collection_editor.c
index 95a80c3..93fda4a 100644
--- a/src/ags/X/ags_link_collection_editor.c
+++ b/src/ags/X/ags_link_collection_editor.c
@@ -73,7 +73,8 @@ enum{
 
 static gpointer ags_link_collection_editor_parent_class = NULL;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_link_collection_editor_get_type(void)
diff --git a/src/ags/X/ags_link_editor.c b/src/ags/X/ags_link_editor.c
index e5f6cfc..2a86478 100644
--- a/src/ags/X/ags_link_editor.c
+++ b/src/ags/X/ags_link_editor.c
@@ -61,7 +61,8 @@ void ags_link_editor_show(GtkWidget *widget);
 
 static gpointer ags_link_editor_parent_class = NULL;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_link_editor_get_type(void)
diff --git a/src/ags/X/ags_machine.c b/src/ags/X/ags_machine.c
index 70cef3c..17acb77 100644
--- a/src/ags/X/ags_machine.c
+++ b/src/ags/X/ags_machine.c
@@ -98,7 +98,8 @@ enum{
 static gpointer ags_machine_parent_class = NULL;
 static guint machine_signals[LAST_SIGNAL];
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_machine_get_type(void)
diff --git a/src/ags/X/ags_machine_callbacks.c b/src/ags/X/ags_machine_callbacks.c
index 993fb58..d22719f 100644
--- a/src/ags/X/ags_machine_callbacks.c
+++ b/src/ags/X/ags_machine_callbacks.c
@@ -38,7 +38,8 @@
 int ags_machine_popup_rename_response_callback(GtkWidget *widget, gint response, AgsMachine *machine);
 void ags_machine_start_failure_response(GtkWidget *dialog, AgsMachine *machine);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 int
 ags_machine_button_press_callback(GtkWidget *handle_box, GdkEventButton *event, AgsMachine *machine)
diff --git a/src/ags/X/ags_menu_bar_callbacks.c b/src/ags/X/ags_menu_bar_callbacks.c
index 0b586b5..72b1a1f 100644
--- a/src/ags/X/ags_menu_bar_callbacks.c
+++ b/src/ags/X/ags_menu_bar_callbacks.c
@@ -51,7 +51,8 @@
 void ags_menu_bar_open_ok_callback(GtkWidget *widget, AgsMenuBar *menu_bar);
 void ags_menu_bar_open_cancel_callback(GtkWidget *widget, AgsMenuBar *menu_bar);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 gboolean
 ags_menu_bar_destroy_callback(GtkObject *object, AgsMenuBar *menu_bar)
diff --git a/src/ags/X/ags_navigation_callbacks.c b/src/ags/X/ags_navigation_callbacks.c
index c2ba8bd..c0bea86 100644
--- a/src/ags/X/ags_navigation_callbacks.c
+++ b/src/ags/X/ags_navigation_callbacks.c
@@ -33,7 +33,8 @@
 
 #include <ags/X/ags_window.h>
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_navigation_parent_set_callback(GtkWidget *widget, GtkObject *old_parent,
diff --git a/src/ags/X/ags_pad_callbacks.c b/src/ags/X/ags_pad_callbacks.c
index 50ad57c..455ac6e 100644
--- a/src/ags/X/ags_pad_callbacks.c
+++ b/src/ags/X/ags_pad_callbacks.c
@@ -32,7 +32,8 @@
 
 #include <ags/X/ags_machine.h>
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 int
 ags_pad_parent_set_callback(GtkWidget *widget, GtkObject *old_parent, AgsPad *pad)
diff --git a/src/ags/X/ags_performance_preferences.c b/src/ags/X/ags_performance_preferences.c
index 02022ae..4125aa3 100644
--- a/src/ags/X/ags_performance_preferences.c
+++ b/src/ags/X/ags_performance_preferences.c
@@ -52,8 +52,10 @@ void ags_performance_preferences_show(GtkWidget *widget);
 
 static gpointer ags_performance_preferences_parent_class = NULL;
 
-extern AgsApplicationContext *ags_application_context;
-extern AgsConfig *ags_config;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 GType
 ags_performance_preferences_get_type(void)
diff --git a/src/ags/X/ags_preferences.c b/src/ags/X/ags_preferences.c
index b108f62..ce199c3 100644
--- a/src/ags/X/ags_preferences.c
+++ b/src/ags/X/ags_preferences.c
@@ -57,8 +57,10 @@ void ags_preferences_show(GtkWidget *widget);
 
 static gpointer ags_preferences_parent_class = NULL;
 
-extern AgsApplicationContext *ags_application_context;
-extern AgsConfig *ags_config;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 GType
 ags_preferences_get_type(void)
diff --git a/src/ags/X/ags_resize_editor.c b/src/ags/X/ags_resize_editor.c
index 03deda4..2693512 100644
--- a/src/ags/X/ags_resize_editor.c
+++ b/src/ags/X/ags_resize_editor.c
@@ -59,7 +59,8 @@ void ags_resize_editor_show(GtkWidget *widget);
 
 AgsConnectableInterface *ags_resize_editor_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_resize_editor_get_type(void)
diff --git a/src/ags/X/ags_window_callbacks.c b/src/ags/X/ags_window_callbacks.c
index 651c817..da30a18 100644
--- a/src/ags/X/ags_window_callbacks.c
+++ b/src/ags/X/ags_window_callbacks.c
@@ -27,7 +27,8 @@
 
 #include <ags/audio/task/ags_save_file.h>
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 gboolean
 ags_window_delete_event_callback(GtkWidget *widget, gpointer data)
diff --git a/src/ags/X/ags_xorg_application_context.c b/src/ags/X/ags_xorg_application_context.c
index 72882ba..9dd3f81 100644
--- a/src/ags/X/ags_xorg_application_context.c
+++ b/src/ags/X/ags_xorg_application_context.c
@@ -56,7 +56,7 @@ enum{
   PROP_WINDOW,
 };
 
-AgsXorgApplicationContext *ags_xorg_application_context = NULL;
+extern AgsXorgApplicationContext *ags_xorg_application_context;
 
 GType
 ags_xorg_application_context_get_type()
@@ -102,7 +102,7 @@ ags_xorg_application_context_class_init(AgsXorgApplicationContextClass *xorg_app
   AgsApplicationContextClass *application_context;
   GParamSpec *param_spec;
 
-  ags_xorg_application_context_parent_class = g_type_class_peek_parent(ags_xorg_application_context);
+  ags_xorg_application_context_parent_class = g_type_class_peek_parent(xorg_application_context);
 
   /* GObjectClass */
   gobject = (GObjectClass *) xorg_application_context;
diff --git a/src/ags/X/ags_xorg_init.c b/src/ags/X/ags_xorg_init.c
index f2d90ad..2a8bd6e 100644
--- a/src/ags/X/ags_xorg_init.c
+++ b/src/ags/X/ags_xorg_init.c
@@ -22,11 +22,14 @@
 
 #include <ags/audio/ags_audio_init.h>
 
+#include <ags/widget/ags_gui_init.h>
+
 #include <ags/X/ags_xorg_application_context.h>
 
 void ags_xorg_colors_alloc();
 
-extern AgsApplicationContext *ags_application_context = NULL;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern AgsXorgApplicationContext *ags_xorg_application_context;
 
 extern GtkStyle *matrix_style;
@@ -263,16 +266,9 @@ ags_xorg_colors_alloc()
 
 void
 ags_xorg_init_context(int *argc, gchar ***argv)
-{
-  ags_audio_init_context(argc, argv);
-
-  XInitThreads();
-  gdk_threads_init();
-
-  ags_gui_init(argc, &argv);
-  
+{  
   /* map x11 collors */
-  ags_colors_alloc();
+  ags_xorg_colors_alloc();
   
   /* instantiate application context */
   ags_xorg_application_context = ags_xorg_application_context_new(NULL,
diff --git a/src/ags/X/machine/ags_drum.c b/src/ags/X/machine/ags_drum.c
index e26ada7..a98670d 100644
--- a/src/ags/X/machine/ags_drum.c
+++ b/src/ags/X/machine/ags_drum.c
@@ -116,7 +116,8 @@ static AgsConnectableInterface *ags_drum_parent_connectable_interface;
 
 const char *AGS_DRUM_INDEX = "AgsDrumIndex";
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_drum_get_type(void)
diff --git a/src/ags/X/machine/ags_drum_callbacks.c b/src/ags/X/machine/ags_drum_callbacks.c
index 159a7a7..ab9c190 100644
--- a/src/ags/X/machine/ags_drum_callbacks.c
+++ b/src/ags/X/machine/ags_drum_callbacks.c
@@ -66,7 +66,8 @@
 #define AGS_AUDIO_FILE_DEVOUT "AgsAudioFileDevout\0"
 #define AGS_DRUM_PLAY_RECALL "AgsDrumPlayRecall\0"
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern const char *AGS_DRUM_INDEX;
 
 void
diff --git a/src/ags/X/machine/ags_drum_input_line.c b/src/ags/X/machine/ags_drum_input_line.c
index 62c7ce7..624f11e 100644
--- a/src/ags/X/machine/ags_drum_input_line.c
+++ b/src/ags/X/machine/ags_drum_input_line.c
@@ -100,7 +100,8 @@ void ags_drum_input_line_map_recall(AgsLine *line,
 static gpointer ags_drum_input_line_parent_class = NULL;
 static AgsConnectableInterface *ags_drum_input_line_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_drum_input_line_get_type()
diff --git a/src/ags/X/machine/ags_drum_input_pad.c b/src/ags/X/machine/ags_drum_input_pad.c
index 4200541..d2f7880 100644
--- a/src/ags/X/machine/ags_drum_input_pad.c
+++ b/src/ags/X/machine/ags_drum_input_pad.c
@@ -70,7 +70,8 @@ void ags_drum_input_pad_resize_lines(AgsPad *pad, GType line_type,
 static gpointer ags_drum_input_pad_parent_class = NULL;
 static AgsConnectableInterface *ags_drum_input_pad_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_drum_input_pad_get_type()
diff --git a/src/ags/X/machine/ags_drum_input_pad_callbacks.c b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
index dd24afd..96e73ca 100644
--- a/src/ags/X/machine/ags_drum_input_pad_callbacks.c
+++ b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
@@ -60,7 +60,8 @@ void ags_drum_input_pad_init_channel_launch_callback(AgsTask *task, AgsDrumInput
 #define AGS_DRUM_INPUT_PAD_OPEN_AUDIO_FILE_NAME "AgsDrumInputPadOpenAudioFileName\0"
 #define AGS_DRUM_INPUT_PAD_OPEN_SPIN_BUTTON "AgsDrumInputPadOpenSpinButton\0"
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_drum_input_pad_open_callback(GtkWidget *widget, AgsDrumInputPad *drum_input_pad)
diff --git a/src/ags/X/machine/ags_drum_output_line.c b/src/ags/X/machine/ags_drum_output_line.c
index fa8d3ef..225276e 100644
--- a/src/ags/X/machine/ags_drum_output_line.c
+++ b/src/ags/X/machine/ags_drum_output_line.c
@@ -77,7 +77,8 @@ void ags_drum_output_line_map_recall(AgsLine *line,
 static gpointer ags_drum_output_line_parent_class = NULL;
 static AgsConnectableInterface *ags_drum_output_line_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_drum_output_line_get_type()
diff --git a/src/ags/X/machine/ags_ffplayer.c b/src/ags/X/machine/ags_ffplayer.c
index 077fbe9..4edded1 100644
--- a/src/ags/X/machine/ags_ffplayer.c
+++ b/src/ags/X/machine/ags_ffplayer.c
@@ -108,7 +108,8 @@ static AgsConnectableInterface *ags_ffplayer_parent_connectable_interface;
 
 GtkStyle *ffplayer_style;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_ffplayer_get_type(void)
diff --git a/src/ags/X/machine/ags_matrix.c b/src/ags/X/machine/ags_matrix.c
index 3ca7198..1c8acae 100644
--- a/src/ags/X/machine/ags_matrix.c
+++ b/src/ags/X/machine/ags_matrix.c
@@ -115,7 +115,8 @@ GtkStyle *matrix_style;
 
 extern const char *AGS_COPY_PATTERN;
 const char *AGS_MATRIX_INDEX = "AgsMatrixIndex\0";
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_matrix_get_type(void)
diff --git a/src/ags/X/machine/ags_matrix_callbacks.c b/src/ags/X/machine/ags_matrix_callbacks.c
index 4b1ba82..7bf9916 100644
--- a/src/ags/X/machine/ags_matrix_callbacks.c
+++ b/src/ags/X/machine/ags_matrix_callbacks.c
@@ -54,7 +54,8 @@ void ags_matrix_refresh_gui_callback(AgsTogglePatternBit *toggle_pattern_bit,
 				     AgsMatrix *matrix);
 
 extern const char *AGS_MATRIX_INDEX;
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_matrix_parent_set_callback(GtkWidget *widget, GtkObject *old_parent, AgsMatrix *matrix)
diff --git a/src/ags/X/machine/ags_mixer.c b/src/ags/X/machine/ags_mixer.c
index 86edd75..7a6a321 100644
--- a/src/ags/X/machine/ags_mixer.c
+++ b/src/ags/X/machine/ags_mixer.c
@@ -83,7 +83,8 @@ static gpointer ags_mixer_parent_class = NULL;
 static AgsConnectableInterface *ags_mixer_parent_connectable_interface;
 
 extern const char *AGS_MIX_VOLUME;
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_mixer_get_type(void)
diff --git a/src/ags/X/machine/ags_oscillator.c b/src/ags/X/machine/ags_oscillator.c
index 44d4cb2..ba270ff 100644
--- a/src/ags/X/machine/ags_oscillator.c
+++ b/src/ags/X/machine/ags_oscillator.c
@@ -47,7 +47,8 @@ void ags_oscillator_show(GtkWidget *widget);
  */
 
 static AgsConnectableInterface *ags_oscillator_parent_connectable_interface;
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_oscillator_get_type(void)
diff --git a/src/ags/X/machine/ags_panel.c b/src/ags/X/machine/ags_panel.c
index 0221397..704a8fe 100644
--- a/src/ags/X/machine/ags_panel.c
+++ b/src/ags/X/machine/ags_panel.c
@@ -89,7 +89,8 @@ static gpointer ags_panel_parent_class = NULL;
 static AgsConnectableInterface *ags_panel_parent_connectable_interface;
 
 extern const char *AGS_COPY_INPUT_TO_OUTPUT;
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_panel_get_type(void)
diff --git a/src/ags/X/machine/ags_synth.c b/src/ags/X/machine/ags_synth.c
index 8fd693c..fc1fec1 100644
--- a/src/ags/X/machine/ags_synth.c
+++ b/src/ags/X/machine/ags_synth.c
@@ -109,7 +109,8 @@ void ags_synth_update(AgsSynth *synth);
 static gpointer ags_synth_parent_class = NULL;
 
 static AgsConnectableInterface *ags_synth_parent_connectable_interface;
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_synth_get_type(void)
diff --git a/src/ags/X/machine/ags_synth_input_line.c b/src/ags/X/machine/ags_synth_input_line.c
index 96c3151..9909195 100644
--- a/src/ags/X/machine/ags_synth_input_line.c
+++ b/src/ags/X/machine/ags_synth_input_line.c
@@ -75,7 +75,8 @@ void ags_synth_input_line_map_recall(AgsLine *line,
 static gpointer ags_synth_input_line_parent_class = NULL;
 static AgsConnectableInterface *ags_synth_input_line_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_synth_input_line_get_type()
diff --git a/src/ags/X/machine/ags_synth_input_pad.c b/src/ags/X/machine/ags_synth_input_pad.c
index 4caee4b..61d268f 100644
--- a/src/ags/X/machine/ags_synth_input_pad.c
+++ b/src/ags/X/machine/ags_synth_input_pad.c
@@ -66,7 +66,8 @@ void ags_synth_input_pad_resize_lines(AgsPad *pad, GType line_type,
 static gpointer ags_synth_input_pad_parent_class = NULL;
 static AgsConnectableInterface *ags_synth_input_pad_parent_connectable_interface;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_synth_input_pad_get_type()
diff --git a/src/ags/audio/ags_audio.c b/src/ags/audio/ags_audio.c
index 2631d93..5feeab5 100644
--- a/src/ags/audio/ags_audio.c
+++ b/src/ags/audio/ags_audio.c
@@ -99,7 +99,7 @@ enum{
 
 enum{
   PROP_0,
-  PROP_DEVOUT,
+  PROP_SOUNDCARD,
 };
 
 static gpointer ags_audio_parent_class = NULL;
@@ -160,19 +160,19 @@ ags_audio_class_init(AgsAudioClass *audio)
 
   /* properties */
   /**
-   * AgsAudio:devout:
+   * AgsAudio:soundcard:
    *
-   * The assigned #AgsDevout acting as default sink.
+   * The assigned #AgsSoundcard acting as default sink.
    * 
    * Since: 0.4
    */
-  param_spec = g_param_spec_object("devout\0",
-				   "assigned devout\0",
-				   "The devout it is assigned with\0",
-				   AGS_TYPE_DEVOUT,
+  param_spec = g_param_spec_object("soundcard\0",
+				   "assigned soundcard\0",
+				   "The soundcard it is assigned with\0",
+				   G_TYPE_OBJECT,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_DEVOUT,
+				  PROP_SOUNDCARD,
 				  param_spec);
 
   /* AgsAudioClass */
@@ -296,7 +296,7 @@ ags_audio_init(AgsAudio *audio)
 {
   audio->flags = 0;
 
-  audio->devout = NULL;
+  audio->soundcard = NULL;
 
   audio->sequence_length = 0;
   audio->audio_channels = 0;
@@ -340,13 +340,13 @@ ags_audio_set_property(GObject *gobject,
   audio = AGS_AUDIO(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      AgsDevout *devout;
+      GObject *soundcard;
 
-      devout = (AgsDevout *) g_value_get_object(value);
+      soundcard = (GObject *) g_value_get_object(value);
 
-      ags_audio_set_devout(audio, (GObject *) devout);
+      ags_audio_set_soundcard(audio, (GObject *) soundcard);
     }
     break;
   default:
@@ -366,8 +366,8 @@ ags_audio_get_property(GObject *gobject,
   audio = AGS_AUDIO(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
-    g_value_set_object(value, audio->devout);
+  case PROP_SOUNDCARD:
+    g_value_set_object(value, audio->soundcard);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
@@ -383,8 +383,8 @@ ags_audio_finalize(GObject *gobject)
 
   audio = AGS_AUDIO(gobject);
 
-  if(audio->devout != NULL)
-    g_object_unref(audio->devout);
+  if(audio->soundcard != NULL)
+    g_object_unref(audio->soundcard);
 
   /* output */
   channel = audio->output;
@@ -437,7 +437,7 @@ ags_audio_add_to_registry(AgsConnectable *connectable)
   
   audio = AGS_AUDIO(connectable);
 
-  application_context = AGS_APPLICATION_CONTEXT(AGS_DEVOUT(audio->devout)->application_context);
+  application_context = ags_soundcard_get_application_context(AGS_SOUNDCARD(audio->soundcard));
 
   server = NULL;
   list = application_context->sibling;
@@ -627,12 +627,12 @@ ags_audio_set_flags(AgsAudio *audio, guint flags)
 	  
       if(channel != NULL){
 	start_recycling = 
-	  recycling = ags_recycling_new(audio->devout);
+	  recycling = ags_recycling_new(audio->soundcard);
 	goto ags_audio_set_flags_OUTPUT_RECYCLING;
       }
 
       while(channel != NULL){
-	recycling->next = ags_recycling_new(audio->devout);
+	recycling->next = ags_recycling_new(audio->soundcard);
       ags_audio_set_flags_OUTPUT_RECYCLING:
 	recycling->next->prev = recycling;
 	recycling = recycling->next;
@@ -665,13 +665,21 @@ ags_audio_set_flags(AgsAudio *audio, guint flags)
   }
   void ags_audio_set_flags_add_recycling_task(GParameter *parameter){
     AgsAudioSetRecycling *audio_set_recycling;
-
+    AgsThread *main_loop, *current;
+    AgsTaskThread *task_thread;
+    AgsApplicationContext *application_context;
+
+    application_context = ags_soundcard_get_application_context(audio->soundcard);
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
+    
     /* create set recycling task */
     audio_set_recycling = ags_audio_set_recycling_new(audio,
 						      parameter);
 
     /* append AgsAudioSetRecycling */
-    ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(AGS_DEVOUT(audio->devout)->application_context)->main_loop)->task_thread),
+    ags_task_thread_append_task(task_thread,
 				AGS_TASK(audio_set_recycling));
   }
 
@@ -759,13 +767,21 @@ ags_audio_unset_flags(AgsAudio *audio, guint flags)
   }
   void ags_audio_unset_flags_add_recycling_task(GParameter *parameter){
     AgsAudioSetRecycling *audio_set_recycling;
-
+    AgsThread *main_loop, *current;
+    AgsTaskThread *task_thread;
+    AgsApplicationContext *application_context;
+
+    application_context = ags_soundcard_get_application_context(audio->soundcard);
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
+    
     /* create set recycling task */
     audio_set_recycling = ags_audio_set_recycling_new(audio,
 						      parameter);
 
     /* append AgsAudioSetRecycling */
-    ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(AGS_DEVOUT(audio->devout)->application_context)->main_loop)->task_thread),
+    ags_task_thread_append_task(task_thread,
 				AGS_TASK(audio_set_recycling));
   }
 
@@ -869,7 +885,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
     if(alloc_recycling){
       recycling =
 	channel->first_recycling =
-	channel->last_recycling = ags_recycling_new(audio->devout);
+	channel->last_recycling = ags_recycling_new(audio->soundcard);
 
       channel->first_recycling->channel = (GObject *) channel;
 
@@ -904,7 +920,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
 
       if(alloc_recycling){
 	channel->first_recycling =
-	  channel->last_recycling = ags_recycling_new(audio->devout);
+	  channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	if(link_recycling){
 	  recycling->next = channel->first_recycling;
@@ -953,7 +969,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
     if(alloc_recycling){
       recycling =
 	channel->first_recycling =
-	channel->last_recycling = ags_recycling_new(audio->devout);
+	channel->last_recycling = ags_recycling_new(audio->soundcard);
 
       if(link_recycling){
 	prev_channel->last_recycling->next = recycling;
@@ -1011,7 +1027,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
 
       if(alloc_recycling){
 	channel->first_recycling =
-	  channel->last_recycling = ags_recycling_new(audio->devout);
+	  channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	if(link_recycling){
 	  recycling->next = channel->first_recycling;
@@ -1112,7 +1128,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
 
 	if(alloc_recycling){
 	  channel->first_recycling =
-	    channel->last_recycling = ags_recycling_new(audio->devout);
+	    channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	  if(link_recycling){
 	    recycling->next = channel->first_recycling;
@@ -1186,7 +1202,7 @@ ags_audio_real_set_audio_channels(AgsAudio *audio,
 
       if(alloc_recycling){
 	channel->first_recycling =
-	  channel->last_recycling = ags_recycling_new(audio->devout);
+	  channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	if(link_recycling){
 	  recycling->next = channel->first_recycling;
@@ -1501,7 +1517,7 @@ ags_audio_real_set_pads(AgsAudio *audio,
 
     if(alloc_recycling){
       channel->first_recycling =
-	channel->last_recycling = ags_recycling_new(audio->devout);
+	channel->last_recycling = ags_recycling_new(audio->soundcard);
 
       channel->first_recycling->channel = (GObject *) channel;
 
@@ -1534,7 +1550,7 @@ ags_audio_real_set_pads(AgsAudio *audio,
 
       if(alloc_recycling){
 	channel->first_recycling =
-	  channel->last_recycling = ags_recycling_new(audio->devout);
+	  channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	channel->first_recycling->channel = (GObject *) channel;
 
@@ -1634,7 +1650,7 @@ ags_audio_real_set_pads(AgsAudio *audio,
 
 	if(alloc_recycling){
 	  channel->first_recycling =
-	    channel->last_recycling = ags_recycling_new(audio->devout);
+	    channel->last_recycling = ags_recycling_new(audio->soundcard);
 
 	  if(link_recycling){
 	    recycling = recycling_iter->data;
@@ -2997,38 +3013,38 @@ ags_audio_cancel(AgsAudio *audio,
 }
 
 /**
- * ags_audio_set_devout:
+ * ags_audio_set_soundcard:
  * @audio: the #AgsAudio
- * @devout: an #AgsDevout
+ * @soundcard: an #AgsSoundcard
  *
- * Sets a devout object on audio.
+ * Sets a soundcard object on audio.
  *
  * Since: 0.4
  */
 void
-ags_audio_set_devout(AgsAudio *audio, GObject *devout)
+ags_audio_set_soundcard(AgsAudio *audio, GObject *soundcard)
 {
   AgsChannel *channel;
   GList *list;
 
   /* audio */
-  if(audio->devout == devout)
+  if(audio->soundcard == soundcard)
     return;
 
-  if(audio->devout != NULL)
-    g_object_unref(audio->devout);
+  if(audio->soundcard != NULL)
+    g_object_unref(audio->soundcard);
 
-  if(devout != NULL)
-    g_object_ref(devout);
+  if(soundcard != NULL)
+    g_object_ref(soundcard);
 
-  audio->devout = (GObject *) devout;
+  audio->soundcard = (GObject *) soundcard;
 
   /* recall */
   list = audio->play;
   
   while(list != NULL){
     g_object_set(G_OBJECT(list->data),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
     
     list = list->next;
@@ -3038,7 +3054,7 @@ ags_audio_set_devout(AgsAudio *audio, GObject *devout)
   
   while(list != NULL){
     g_object_set(G_OBJECT(list->data),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
     
     list = list->next;
@@ -3049,7 +3065,7 @@ ags_audio_set_devout(AgsAudio *audio, GObject *devout)
 
   while(channel != NULL){
     g_object_set(G_OBJECT(channel),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
     
     channel = channel->next;
@@ -3060,7 +3076,7 @@ ags_audio_set_devout(AgsAudio *audio, GObject *devout)
 
   while(channel != NULL){
     g_object_set(G_OBJECT(channel),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
     
     channel = channel->next;
@@ -3099,7 +3115,7 @@ ags_audio_open_files(AgsAudio *audio,
     if(channel != NULL){
       for(i = 0; i < audio->input_pads && filenames != NULL; i++){
 	audio_file = ags_audio_file_new((gchar *) filenames->data,
-					(AgsDevout *) audio->devout,
+					(GObject *) audio->soundcard,
 					0, audio->audio_channels);
 	if(!ags_audio_file_open(audio_file)){
 	  filenames = filenames->next;
@@ -3158,7 +3174,7 @@ ags_audio_open_files(AgsAudio *audio,
     
     while(filenames != NULL){
       audio_file = ags_audio_file_new((gchar *) filenames->data,
-				      (AgsDevout *) audio->devout,
+				      (GObject *) audio->soundcard,
 				      0, audio->audio_channels);
       if(!ags_audio_file_open(audio_file)){
 	filenames = filenames->next;
@@ -3257,21 +3273,21 @@ ags_audio_find_port(AgsAudio *audio)
 
 /**
  * ags_audio_new:
- * @devout: an #AgsDevout
+ * @soundcard: an #AgsSoundcard
  *
- * Creates an #AgsAudio, with defaults of @devout.
+ * Creates an #AgsAudio, with defaults of @soundcard.
  *
  * Returns: a new #AgsAudio
  *
  * Since: 0.3
  */
 AgsAudio*
-ags_audio_new(AgsDevout *devout)
+ags_audio_new(GObject *soundcard)
 {
   AgsAudio *audio;
 
   audio = (AgsAudio *) g_object_new(AGS_TYPE_AUDIO,
-				    "devout\0", devout,
+				    "soundcard\0", soundcard,
 				    NULL);
 
   return(audio);
diff --git a/src/ags/audio/ags_audio.h b/src/ags/audio/ags_audio.h
index 28e226f..01736c2 100644
--- a/src/ags/audio/ags_audio.h
+++ b/src/ags/audio/ags_audio.h
@@ -52,7 +52,7 @@ struct _AgsAudio
 
   guint flags;
 
-  GObject *devout;
+  GObject *soundcard;
   guint level;
   
   guint sequence_length;
@@ -115,7 +115,7 @@ void ags_audio_done(AgsAudio *audio, AgsRecallID *recall_id);
 
 void ags_audio_set_sequence_length(AgsAudio *audio, guint sequence_length);
 
-void ags_audio_set_devout(AgsAudio *audio, GObject *devout);
+void ags_audio_set_soundcard(AgsAudio *audio, GObject *soundcard);
 
 void ags_audio_add_notation(AgsAudio *audio,
 			      GObject *notation);
@@ -169,6 +169,6 @@ void ags_audio_open_files(AgsAudio *audio,
 
 GList* ags_audio_find_port(AgsAudio *audio);
 
-AgsAudio* ags_audio_new();
+AgsAudio* ags_audio_new(GObject *soundcard);
 
 #endif /*__AGS_AUDIO_H__*/
diff --git a/src/ags/audio/ags_audio_application_context.c b/src/ags/audio/ags_audio_application_context.c
index 50ee0cc..a7a93d6 100644
--- a/src/ags/audio/ags_audio_application_context.c
+++ b/src/ags/audio/ags_audio_application_context.c
@@ -60,9 +60,6 @@ enum{
   PROP_SOUNDCARD,
 };
 
-AgsAudioApplicationContext *ags_audio_application_context = NULL;
-extern AgsConfig *ags_config;
-
 GType
 ags_audio_application_context_get_type()
 {
@@ -176,6 +173,10 @@ ags_audio_application_context_set_property(GObject *gobject,
       
       soundcard = (GObject *) g_value_get_object(value);
 
+      if(soundcard == NULL){
+	return;
+      }
+      
       if(g_list_find(audio_application_context->soundcard, soundcard) == NULL){
 	g_object_ref(G_OBJECT(soundcard));
 
@@ -273,7 +274,7 @@ ags_audio_application_context_load_config(AgsApplicationContext *application_con
   guint buffer_size;
   guint pcm_channels, dsp_channels;
 
-  config = ags_config;
+  config = application_context->config;
   
   list = AGS_AUDIO_APPLICATION_CONTEXT(application_context)->soundcard;
 
@@ -561,7 +562,7 @@ ags_audio_application_context_write(AgsFile *file, xmlNode *parent, GObject *app
 }
 
 AgsAudioApplicationContext*
-ags_audio_application_context_new(AgsMainLoop *main_loop,
+ags_audio_application_context_new(GObject *main_loop,
 				  AgsConfig *config)
 {
   AgsAudioApplicationContext *audio_application_context;
diff --git a/src/ags/audio/ags_audio_application_context.h b/src/ags/audio/ags_audio_application_context.h
index 0bb1374..48f9b11 100644
--- a/src/ags/audio/ags_audio_application_context.h
+++ b/src/ags/audio/ags_audio_application_context.h
@@ -65,6 +65,7 @@ struct _AgsAudioApplicationContextClass
 
 GType ags_audio_application_context_get_type();
 
-AgsAudioApplicationContext* ags_audio_application_context_new();
+AgsAudioApplicationContext* ags_audio_application_context_new(GObject *main_loop,
+							      AgsConfig *config);
 
 #endif /*__AGS_AUDIO_APPLICATION_CONTEXT_H__*/
diff --git a/src/ags/audio/ags_audio_init.c b/src/ags/audio/ags_audio_init.c
index 0a60821..6f66421 100644
--- a/src/ags/audio/ags_audio_init.c
+++ b/src/ags/audio/ags_audio_init.c
@@ -18,29 +18,10 @@
 
 #include <ags/audio/ags_audio_init.h>
 
-#include <ags/object/ags_application_context.h>
-
-#include <ags/thread/ags_thread_init.h>
-
-extern AgsApplicationContext *ags_application_context = NULL;
-extern AgsAudioApplicationContext *ags_audio_application_context;
+#include <ags/audio/ags_audio_application_context.h>
 
 void
-ags_audio_init_context(int *argc, gchar ***argv)
+ags_audio_init_context(AgsApplicationContext *application_context)
 {
-  ags_thread_init(argc, argv);
-  
-  ao_initialize();
-
-  ipatch_init();
-
-  /* complete thread pool */
-  ags_thread_application_context->thread_pool->parent = AGS_THREAD(audio_loop);
-  ags_thread_pool_start(ags_main->thread_pool);
-
-  /* instantiate application context */
-  ags_audio_application_context = ags_audio_application_context_new(NULL,
-								    NULL);
-  ags_application_context_add_sibling(ags_application_context,
-				      ags_audio_application_context);
+  //TODO:JK: implement me
 }
diff --git a/src/ags/audio/ags_audio_init.h b/src/ags/audio/ags_audio_init.h
index 934ef94..846c644 100644
--- a/src/ags/audio/ags_audio_init.h
+++ b/src/ags/audio/ags_audio_init.h
@@ -22,6 +22,8 @@
 #include <glib.h>
 #include <glib-object.h>
 
-void ags_audio_init_context(int *argc, gchar ***argv);
+#include <ags/object/ags_application_context.h>
+
+void ags_audio_init_context(AgsApplicationContext *application_context);
 
 #endif /*__AGS_AUDIO_INIT_H__*/
diff --git a/src/ags/audio/ags_audio_signal.c b/src/ags/audio/ags_audio_signal.c
index 8aad17d..743d0a2 100644
--- a/src/ags/audio/ags_audio_signal.c
+++ b/src/ags/audio/ags_audio_signal.c
@@ -21,6 +21,7 @@
 #include <ags/object/ags_config.h>
 #include <ags/object/ags_marshal.h>
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/audio/ags_devout.h>
 
@@ -61,7 +62,7 @@ void ags_audio_signal_real_morph_samplerate(AgsAudioSignal *audio_signal, guint
 
 enum{
   PROP_0,
-  PROP_DEVOUT,
+  PROP_SOUNDCARD,
   PROP_RECYCLING,
   PROP_RECALL_ID,
 };
@@ -72,8 +73,6 @@ enum{
   LAST_SIGNAL,
 };
 
-extern AgsConfig *ags_config;
-
 static gpointer ags_audio_signal_parent_class = NULL;
 static guint audio_signal_signals[LAST_SIGNAL];
 
@@ -132,19 +131,19 @@ ags_audio_signal_class_init(AgsAudioSignalClass *audio_signal)
 
   /* properties */
   /**
-   * AgsAudioSignal:devout:
+   * AgsAudioSignal:soundcard:
    *
-   * The assigned #AgsDevout providing default settings.
+   * The assigned #AgsSoundcard providing default settings.
    * 
    * Since: 0.4.0
    */
-  param_spec = g_param_spec_object("devout\0",
-				   "assigned devout\0",
-				   "The devout it is assigned with\0",
-				   AGS_TYPE_DEVOUT,
+  param_spec = g_param_spec_object("soundcard\0",
+				   "assigned soundcard\0",
+				   "The soundcard it is assigned with\0",
+				   G_TYPE_OBJECT,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_DEVOUT,
+				  PROP_SOUNDCARD,
 				  param_spec);
 
   /**
@@ -233,23 +232,16 @@ ags_audio_signal_init(AgsAudioSignal *audio_signal)
 {
   audio_signal->flags = 0;
 
-  audio_signal->devout = NULL;
+  audio_signal->soundcard = NULL;
 
   audio_signal->recycling = NULL;
   audio_signal->recall_id = NULL;
 
-  audio_signal->samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-							     AGS_CONFIG_DEVOUT,
-							     "samplerate\0"),
-					      NULL,
-					      10);
-  audio_signal->buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-							      AGS_CONFIG_DEVOUT,
-							      "buffer-size\0"),
-					       NULL,
-					       10);
+  audio_signal->samplerate = AGS_DEVOUT_DEFAULT_SAMPLERATE;
+  audio_signal->buffer_size = AGS_DEVOUT_DEFAULT_BUFFER_SIZE;
   audio_signal->resolution = AGS_DEVOUT_RESOLUTION_16_BIT;
 
+  
   audio_signal->length = 0;
   audio_signal->last_frame = 0;
   audio_signal->loop_start = 0;
@@ -276,22 +268,35 @@ ags_audio_signal_set_property(GObject *gobject,
   audio_signal = AGS_AUDIO_SIGNAL(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      GObject *devout;
+      GObject *soundcard;
 
-      devout = g_value_get_object(value);
+      soundcard = g_value_get_object(value);
 
-      if(audio_signal->devout == devout)
+      if(audio_signal->soundcard == soundcard)
 	return;
 
-      if(audio_signal->devout != NULL)
-	g_object_unref(audio_signal->devout);
+      if(audio_signal->soundcard != NULL)
+	g_object_unref(audio_signal->soundcard);
+
+      if(soundcard != NULL){
+	guint samplerate, buffer_size, bits;
+	
+	g_object_ref(soundcard);
 
-      if(devout != NULL)
-	g_object_ref(devout);
+	ags_soundcard_get_presets(AGS_SOUNDCARD(soundcard),
+				  NULL,
+				  &samplerate,
+				  &buffer_size,
+				  &bits);
 
-      audio_signal->devout = devout;
+	audio_signal->samplerate = samplerate;
+	audio_signal->buffer_size = buffer_size;
+	audio_signal->resolution = bits;
+      }
+      
+      audio_signal->soundcard = soundcard;
     }
     break;
   case PROP_RECYCLING:
@@ -347,8 +352,8 @@ ags_audio_signal_get_property(GObject *gobject,
   audio_signal = AGS_AUDIO_SIGNAL(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
-    g_value_set_object(value, audio_signal->devout);
+  case PROP_SOUNDCARD:
+    g_value_set_object(value, audio_signal->soundcard);
     break;
   case PROP_RECYCLING:
     g_value_set_object(value, audio_signal->recycling);
@@ -376,8 +381,8 @@ ags_audio_signal_finalize(GObject *gobject)
   if((AGS_AUDIO_SIGNAL_TEMPLATE & (audio_signal->flags)) != 0)
     g_warning("AGS_AUDIO_SIGNAL_TEMPLATE: destroying\n\0");
 
-  if(audio_signal->devout != NULL)
-    g_object_unref(audio_signal->devout);
+  if(audio_signal->soundcard != NULL)
+    g_object_unref(audio_signal->soundcard);
 
   if(audio_signal->recycling != NULL)
     g_object_unref(audio_signal->recycling);
@@ -1012,7 +1017,7 @@ ags_audio_signal_tile(AgsAudioSignal *audio_signal,
 		      AgsAudioSignal *template,
 		      guint frame_count)
 {
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   GList *template_stream, *audio_signal_stream, *audio_signal_stream_end;
   signed short *template_buffer, *audio_signal_buffer;
   guint template_size;
@@ -1021,7 +1026,7 @@ ags_audio_signal_tile(AgsAudioSignal *audio_signal,
   guint k, k_end;
   gboolean alloc_buffer;
   
-  devout = AGS_DEVOUT(audio_signal->devout);
+  soundcard = AGS_SOUNDCARD(audio_signal->soundcard);
 
   audio_signal_stream = NULL;
   template_stream = template->stream_beginning;
@@ -1748,11 +1753,11 @@ ags_audio_signal_scale(AgsAudioSignal *audio_signal,
 
 /**
  * ags_audio_signal_new:
- * @devout: the assigned #AgsDevout
+ * @soundcard: the assigned #AgsSoundcard
  * @recycling: the #AgsRecycling
  * @recall_id: the #AgsRecallID, it can be NULL if %AGS_AUDIO_SIGNAL_TEMPLATE is set
  *
- * Creates a #AgsAudioSignal, with defaults of @devout, linking @recycling tree
+ * Creates a #AgsAudioSignal, with defaults of @soundcard, linking @recycling tree
  * and refering to @recall_id.
  *
  * Returns: a new #AgsAudioSignal
@@ -1760,14 +1765,14 @@ ags_audio_signal_scale(AgsAudioSignal *audio_signal,
  * Since: 0.3
  */
 AgsAudioSignal*
-ags_audio_signal_new(GObject *devout,
+ags_audio_signal_new(GObject *soundcard,
 		     GObject *recycling,
 		     GObject *recall_id)
 {
   AgsAudioSignal *audio_signal;
 
   audio_signal = (AgsAudioSignal *) g_object_new(AGS_TYPE_AUDIO_SIGNAL,
-						 "devout\0", devout,
+						 "soundcard\0", soundcard,
 						 "recycling\0", recycling,
 						 "recall-id\0", recall_id,
 						 NULL);
@@ -1777,12 +1782,12 @@ ags_audio_signal_new(GObject *devout,
 
 /**
  * ags_audio_signal_new_with_length:
- * @devout: the assigned #AgsDevout
+ * @soundcard: the assigned #AgsSoundcard
  * @recycling: the #AgsRecycling
  * @recall_id: the #AgsRecallID, it can be NULL if %AGS_AUDIO_SIGNAL_TEMPLATE is set
  * @length: audio data frame count
  *
- * Creates a #AgsAudioSignal, with defaults of @devout, linking @recycling tree
+ * Creates a #AgsAudioSignal, with defaults of @soundcard, linking @recycling tree
  * and refering to @recall_id.
  * The audio data is tiled to @length frame count.
  *
@@ -1791,7 +1796,7 @@ ags_audio_signal_new(GObject *devout,
  * Since: 0.4
  */
 AgsAudioSignal*
-ags_audio_signal_new_with_length(GObject *devout,
+ags_audio_signal_new_with_length(GObject *soundcard,
 				 GObject *recycling,
 				 GObject *recall_id,
 				 guint length)
@@ -1799,7 +1804,7 @@ ags_audio_signal_new_with_length(GObject *devout,
   AgsAudioSignal *audio_signal, *template;
 
   audio_signal = (AgsAudioSignal *) g_object_new(AGS_TYPE_AUDIO_SIGNAL,
-						 "devout\0", devout,
+						 "soundcard\0", soundcard,
 						 "recycling\0", recycling,
 						 "recall-id\0", recall_id,
 						 NULL);
diff --git a/src/ags/audio/ags_audio_signal.h b/src/ags/audio/ags_audio_signal.h
index 0cf32d5..6465e80 100644
--- a/src/ags/audio/ags_audio_signal.h
+++ b/src/ags/audio/ags_audio_signal.h
@@ -49,7 +49,7 @@ struct _AgsAudioSignal
 
   guint flags;
 
-  GObject *devout;
+  GObject *soundcard;
 
   GObject *recycling;
   GObject *recall_id; // AGS_TYPE_RECALL_ID to identify the AgsAudioSignal
@@ -124,11 +124,11 @@ void ags_audio_signal_scale(AgsAudioSignal *audio_signal,
 			    AgsAudioSignal *template,
 			    guint length);
 
-AgsAudioSignal* ags_audio_signal_new(GObject *devout,
+AgsAudioSignal* ags_audio_signal_new(GObject *soundcard,
 				     GObject *recycling,
 				     GObject *recall_id);
 
-AgsAudioSignal* ags_audio_signal_new_with_length(GObject *devout,
+AgsAudioSignal* ags_audio_signal_new_with_length(GObject *soundcard,
 						 GObject *recycling,
 						 GObject *recall_id,
 						 guint length);
diff --git a/src/ags/audio/ags_channel.c b/src/ags/audio/ags_channel.c
index 673cc15..2e5ca73 100644
--- a/src/ags/audio/ags_channel.c
+++ b/src/ags/audio/ags_channel.c
@@ -26,6 +26,7 @@
 #include <ags/object/ags_marshal.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/plugin/ags_ladspa_manager.h>
 
@@ -36,7 +37,6 @@
 #include <ags/server/ags_server_application_context.h>
 #include <ags/server/ags_server.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_output.h>
 #include <ags/audio/ags_input.h>
@@ -111,7 +111,7 @@ enum{
 enum{
   PROP_0,
   PROP_AUDIO,
-  PROP_DEVOUT,
+  PROP_SOUNDCARD,
 };
 
 static gpointer ags_channel_parent_class = NULL;
@@ -187,19 +187,19 @@ ags_channel_class_init(AgsChannelClass *channel)
 				  param_spec);
 
   /**
-   * AgsChannel:devout:
+   * AgsChannel:soundcard:
    *
-   * The assigned #AgsDevout acting as default sink.
+   * The assigned #AgsSoundcard acting as default sink.
    * 
    * Since: 0.4.0
    */
-  param_spec = g_param_spec_object("devout\0",
-				   "assigned devout\0",
-				   "The devout it is assigned with\0",
+  param_spec = g_param_spec_object("soundcard\0",
+				   "assigned soundcard\0",
+				   "The soundcard it is assigned with\0",
 				   G_TYPE_OBJECT,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_DEVOUT,
+				  PROP_SOUNDCARD,
 				  param_spec);
 
   /* AgsChannelClass */
@@ -313,7 +313,7 @@ ags_channel_init(AgsChannel *channel)
   channel->flags = 0;
 
   channel->audio = NULL;
-  channel->devout = NULL;
+  channel->soundcard = NULL;
 
   channel->prev = NULL;
   channel->prev_pad = NULL;
@@ -379,13 +379,13 @@ ags_channel_set_property(GObject *gobject,
       channel->audio = (GObject *) audio;
     }
     break;
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      AgsDevout *devout;
+      AgsSoundcard *soundcard;
 
-      devout = (AgsDevout *) g_value_get_object(value);
+      soundcard = (AgsSoundcard *) g_value_get_object(value);
 
-      ags_channel_set_devout(channel, (GObject *) devout);
+      ags_channel_set_soundcard(channel, (GObject *) soundcard);
     }
     break;
   default:
@@ -408,8 +408,8 @@ ags_channel_get_property(GObject *gobject,
   case PROP_AUDIO:
     g_value_set_object(value, channel->audio);
     break;
-  case PROP_DEVOUT:
-    g_value_set_object(value, channel->devout);
+  case PROP_SOUNDCARD:
+    g_value_set_object(value, channel->soundcard);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
@@ -428,7 +428,7 @@ ags_channel_add_to_registry(AgsConnectable *connectable)
   
   channel = AGS_CHANNEL(connectable);
 
-  application_context = AGS_APPLICATION_CONTEXT(AGS_DEVOUT(AGS_AUDIO(channel->audio)->devout)->application_context);
+  application_context = ags_soundcard_get_application_context(channel->soundcard);
 
   list = application_context->sibling;
 
@@ -808,37 +808,37 @@ ags_channel_last_with_recycling(AgsChannel *channel)
 }
 
 /**
- * ags_channel_set_devout:
+ * ags_channel_set_soundcard:
  * @channel: an #AgsChannel
- * @devout: an #AgsDevout
+ * @soundcard: an #AgsSoundcard
  *
- * Sets devout.
+ * Sets soundcard.
  *
  * Since: 0.4
  */
 void
-ags_channel_set_devout(AgsChannel *channel, GObject *devout)
+ags_channel_set_soundcard(AgsChannel *channel, GObject *soundcard)
 {
   GList *list;
 
   /* channel */
-  if(channel->devout == devout)
+  if(channel->soundcard == soundcard)
     return;
 
-  if(channel->devout != NULL)
-    g_object_unref(channel->devout);
+  if(channel->soundcard != NULL)
+    g_object_unref(channel->soundcard);
 
-  if(devout != NULL)
-    g_object_ref(devout);
+  if(soundcard != NULL)
+    g_object_ref(soundcard);
 
-  channel->devout = (GObject *) devout;
+  channel->soundcard = (GObject *) soundcard;
 
   /* recall */
   list = channel->play;
 
   while(list != NULL){
     g_object_set(G_OBJECT(list->data),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
 
     list = list->next;
@@ -848,7 +848,7 @@ ags_channel_set_devout(AgsChannel *channel, GObject *devout)
 
   while(list != NULL){
     g_object_set(G_OBJECT(list->data),
-		 "devout\0", devout,
+		 "soundcard\0", soundcard,
 		 NULL);
 
     list = list->next;
@@ -865,7 +865,7 @@ ags_channel_set_devout(AgsChannel *channel, GObject *devout)
 
     while(recycling != channel->last_recycling->next){
       g_object_set(G_OBJECT(recycling),
-		   "devout\0", devout,
+		   "soundcard\0", soundcard,
 		   NULL); 
 
       recycling = recycling->next;
@@ -1020,9 +1020,11 @@ ags_channel_real_add_effect(AgsChannel *channel,
   AgsAddRecallContainer *add_recall_container;
   AgsAddRecall *add_recall;
 
-  AgsAudioLoop *audio_loop;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
+  AgsApplicationContext *application_context;
+  
   GList *port;
   GList *task;
 
@@ -1033,8 +1035,10 @@ ags_channel_real_add_effect(AgsChannel *channel,
   LADSPA_Data lower_bound, upper_bound;
   unsigned long index;
 
-  audio_loop = (AgsAudioLoop *) AGS_APPLICATION_CONTEXT(AGS_DEVOUT(AGS_AUDIO(channel->audio)->devout)->application_context)->main_loop;
-  task_thread = (AgsTaskThread *) audio_loop->task_thread;
+  application_context = ags_soundcard_get_application_context;
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   index = ags_ladspa_manager_effect_index(filename,
 					  effect);
@@ -1059,7 +1063,7 @@ ags_channel_real_add_effect(AgsChannel *channel,
 					effect,
 					index);
   g_object_set(G_OBJECT(recall_ladspa),
-	       "devout\0", AGS_AUDIO(channel->audio)->devout,
+	       "soundcard\0", AGS_AUDIO(channel->audio)->soundcard,
 	       "recall-container\0", recall_container,
 	       NULL);
   AGS_RECALL(recall_ladspa)->flags |= AGS_RECALL_TEMPLATE;
@@ -1078,7 +1082,7 @@ ags_channel_real_add_effect(AgsChannel *channel,
 							      AGS_TYPE_RECALL_LADSPA_RUN);
   AGS_RECALL(recall_channel_run_dummy)->flags |= AGS_RECALL_TEMPLATE;
   g_object_set(G_OBJECT(recall_channel_run_dummy),
-	       "devout\0", AGS_AUDIO(channel->audio)->devout,
+	       "soundcard\0", AGS_AUDIO(channel->audio)->soundcard,
 	       "recall-container\0", recall_container,
 	       "recall-channel\0", recall_ladspa,
 	       NULL);
@@ -1102,7 +1106,7 @@ ags_channel_real_add_effect(AgsChannel *channel,
 					effect,
 					index);
   g_object_set(G_OBJECT(recall_ladspa),
-	       "devout\0", AGS_AUDIO(channel->audio)->devout,
+	       "soundcard\0", AGS_AUDIO(channel->audio)->soundcard,
 	       "recall-container\0", recall_container,
 	       NULL);
   AGS_RECALL(recall_ladspa)->flags |= AGS_RECALL_TEMPLATE;
@@ -1125,7 +1129,7 @@ ags_channel_real_add_effect(AgsChannel *channel,
 							      AGS_TYPE_RECALL_LADSPA_RUN);
   AGS_RECALL(recall_channel_run_dummy)->flags |= AGS_RECALL_TEMPLATE;
   g_object_set(G_OBJECT(recall_channel_run_dummy),
-	       "devout\0", AGS_AUDIO(channel->audio)->devout,
+	       "soundcard\0", AGS_AUDIO(channel->audio)->soundcard,
 	       "recall-container\0", recall_container,
 	       "recall-channel\0", recall_ladspa,
 	       NULL);
@@ -1172,14 +1176,18 @@ ags_channel_real_remove_effect(AgsChannel *channel,
   AgsRemoveRecallContainer *remove_recall_container;
   AgsRemoveRecall *remove_recall;
 
-  AgsAudioLoop *audio_loop;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
+  AgsApplicationContext *application_context;
+  
   GList *play_ladspa, *recall_ladspa;
   GList *task;
-  
-  audio_loop = (AgsAudioLoop *) AGS_APPLICATION_CONTEXT(AGS_DEVOUT(AGS_AUDIO(channel->audio)->devout)->application_context)->main_loop;
-  task_thread = (AgsTaskThread *) audio_loop->task_thread;
+
+  application_context = ags_soundcard_get_application_context(AGS_AUDIO(channel->audio)->soundcard);
+  main_loop = application_context->main_loop;
+  task_thread = (AgsTaskThread *) ags_thread_find_type(main_loop,
+						       AGS_TYPE_TASK_THREAD);
 
   play_ladspa = ags_recall_template_find_type(channel->play,
 					      AGS_TYPE_RECALL_LADSPA);
diff --git a/src/ags/audio/ags_channel.h b/src/ags/audio/ags_channel.h
index 1132f73..3e77cbb 100644
--- a/src/ags/audio/ags_channel.h
+++ b/src/ags/audio/ags_channel.h
@@ -61,7 +61,7 @@ struct _AgsChannel
   guint flags;
 
   GObject *audio;
-  GObject *devout;
+  GObject *soundcard;
 
   AgsChannel *prev;
   AgsChannel *prev_pad;
@@ -132,7 +132,7 @@ AgsChannel* ags_channel_pad_nth(AgsChannel *channel, guint nth);
 AgsChannel* ags_channel_first_with_recycling(AgsChannel *channel);
 AgsChannel* ags_channel_last_with_recycling(AgsChannel *channel);
 
-void ags_channel_set_devout(AgsChannel *channel, GObject *devout);
+void ags_channel_set_soundcard(AgsChannel *channel, GObject *soundcard);
 
 void ags_channel_remove_recall_id(AgsChannel *channel, AgsRecallID *recall_id);
 void ags_channel_add_recall_id(AgsChannel *channel, AgsRecallID *recall_id);
diff --git a/src/ags/audio/ags_devout.c b/src/ags/audio/ags_devout.c
index e540569..f9dda64 100644
--- a/src/ags/audio/ags_devout.c
+++ b/src/ags/audio/ags_devout.c
@@ -106,13 +106,8 @@ enum{
   PROP_ATTACK,
 };
 
-extern AgsConfig *ags_config;
-
 static gpointer ags_devout_parent_class = NULL;
 
-/* dangerous - produces a lot of output */
-static gboolean DEBUG_DEVOUT = FALSE;
-
 GType
 ags_devout_get_type (void)
 {
@@ -395,33 +390,15 @@ ags_devout_init(AgsDevout *devout)
   devout->flags = (AGS_DEVOUT_ALSA);
 
   /* quality */
-  devout->dsp_channels = g_ascii_strtoull(ags_config_get_value(ags_config,
-							 AGS_CONFIG_DEVOUT,
-							 "dsp-channels\0"),
-					  NULL,
-					  10);
-  devout->pcm_channels = g_ascii_strtoull(ags_config_get_value(ags_config,
-							 AGS_CONFIG_DEVOUT,
-							 "pcm-channels\0"),
-					  NULL,
-					  10);
+  devout->dsp_channels = AGS_DEVOUT_DEFAULT_DSP_CHANNELS;
+  devout->pcm_channels = AGS_DEVOUT_DEFAULT_PCM_CHANNELS;
   devout->bits = AGS_DEVOUT_DEFAULT_FORMAT;
-  devout->buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-							AGS_CONFIG_DEVOUT,
-							"buffer-size\0"),
-					 NULL,
-					 10);
-  devout->frequency = g_ascii_strtoull(ags_config_get_value(ags_config,
-						      AGS_CONFIG_DEVOUT,
-						      "samplerate\0"),
-				       NULL,
-				       10);
+  devout->buffer_size = AGS_DEVOUT_DEFAULT_BUFFER_SIZE;
+  devout->frequency = AGS_DEVOUT_DEFAULT_SAMPLERATE;
 
   //  devout->out.oss.device = NULL;
   devout->out.alsa.handle = NULL;
-  devout->out.alsa.device = g_strdup(ags_config_get_value(ags_config,
-						    AGS_CONFIG_DEVOUT,
-						    "alsa-handle\0"));
+  devout->out.alsa.device = AGS_DEVOUT_DEFAULT_DEVICE;
 
   /* buffer */
   devout->buffer = (signed short **) malloc(4 * sizeof(signed short*));
@@ -499,7 +476,39 @@ ags_devout_set_property(GObject *gobject,
       }
 
       if(application_context != NULL){
+	AgsConfig *config;
+	
 	g_object_ref(G_OBJECT(application_context));
+
+	config = AGS_APPLICATION_CONTEXT(devout->application_context)->config;
+	
+	devout->dsp_channels = g_ascii_strtoull(ags_config_get_value(config,
+								     AGS_CONFIG_DEVOUT,
+								     "dsp-channels\0"),
+						NULL,
+						10);
+	devout->pcm_channels = g_ascii_strtoull(ags_config_get_value(config,
+								     AGS_CONFIG_DEVOUT,
+								     "pcm-channels\0"),
+						NULL,
+						10);
+	devout->bits = AGS_DEVOUT_DEFAULT_FORMAT;
+	devout->buffer_size = g_ascii_strtoull(ags_config_get_value(config,
+								    AGS_CONFIG_DEVOUT,
+								    "buffer-size\0"),
+					       NULL,
+					       10);
+	devout->frequency = g_ascii_strtoull(ags_config_get_value(config,
+								  AGS_CONFIG_DEVOUT,
+								  "samplerate\0"),
+					     NULL,
+					     10);
+
+	//  devout->out.oss.device = NULL;
+	devout->out.alsa.handle = NULL;
+	devout->out.alsa.device = g_strdup(ags_config_get_value(config,
+								AGS_CONFIG_DEVOUT,
+								"alsa-handle\0"));
       }
 
       devout->application_context = application_context;
diff --git a/src/ags/audio/ags_devout.h b/src/ags/audio/ags_devout.h
index f6abbf5..1208934 100644
--- a/src/ags/audio/ags_devout.h
+++ b/src/ags/audio/ags_devout.h
@@ -45,9 +45,12 @@
 #define AGS_DEVOUT_PLAY_DOMAIN(ptr)    ((AgsDevoutPlayDomain *)(ptr))
 #define AGS_DEVOUT_PLAY(ptr)           ((AgsDevoutPlay *)(ptr))
 
+#define AGS_DEVOUT_DEFAULT_DSP_CHANNELS (2)
+#define AGS_DEVOUT_DEFAULT_PCM_CHANNELS (2)
 #define AGS_DEVOUT_DEFAULT_SAMPLERATE (44100.0)
 #define AGS_DEVOUT_DEFAULT_FORMAT (AGS_DEVOUT_RESOLUTION_16_BIT)
 #define AGS_DEVOUT_DEFAULT_BUFFER_SIZE (944)
+#define AGS_DEVOUT_DEFAULT_DEVICE "hw:0"
 #define AGS_DEVOUT_DEFAULT_BPM (120.0)
 #define AGS_DEVOUT_DEFAULT_JIFFIE ((double) AGS_DEVOUT_DEFAULT_SAMPLERATE / (double) AGS_DEVOUT_DEFAULT_BUFFER_SIZE)
 
diff --git a/src/ags/audio/ags_output.c b/src/ags/audio/ags_output.c
index 09ffd2a..fdc934e 100644
--- a/src/ags/audio/ags_output.c
+++ b/src/ags/audio/ags_output.c
@@ -19,8 +19,8 @@
 #include <ags/audio/ags_output.h>
 
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 
 void ags_output_class_init(AgsOutputClass *output_class);
@@ -142,7 +142,7 @@ ags_output_disconnect(AgsConnectable *connectable)
 GList*
 ags_output_map_audio_signal(AgsOutput *output, AgsRecallID *recall_id)
 {
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   AgsAudioSignal *audio_signal;
   GList *list_destination;
 
@@ -152,7 +152,7 @@ ags_output_map_audio_signal(AgsOutput *output, AgsRecallID *recall_id)
   }else
     return(NULL);
 
-  devout = AGS_DEVOUT(AGS_AUDIO(AGS_CHANNEL(output)->audio)->devout);
+  soundcard = AGS_SOUNDCARD(AGS_AUDIO(AGS_CHANNEL(output)->audio)->soundcard);
   
   while(output != NULL){
     list_destination->next = g_list_alloc();
@@ -161,7 +161,7 @@ ags_output_map_audio_signal(AgsOutput *output, AgsRecallID *recall_id)
   ags_copy_pattern_map_destination0:
     g_message("ags_output_map_audio_signal\n\0");
 
-    audio_signal = ags_audio_signal_new((GObject *) devout,
+    audio_signal = ags_audio_signal_new((GObject *) soundcard,
 					(GObject *) output->channel.first_recycling,
 					(GObject *) recall_id);
     ags_connectable_connect(AGS_CONNECTABLE(audio_signal));
diff --git a/src/ags/audio/ags_recall.c b/src/ags/audio/ags_recall.c
index 0f71120..79ed348 100644
--- a/src/ags/audio/ags_recall.c
+++ b/src/ags/audio/ags_recall.c
@@ -29,15 +29,15 @@
 #include <ags/object/ags_packable.h>
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/server/ags_server_application_context.h>
+#include <ags/server/ags_service_provider.h>
 #include <ags/server/ags_server.h>
 
 #include <ags/file/ags_file.h>
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_channel.h>
 #include <ags/audio/ags_recycling.h>
@@ -141,7 +141,7 @@ enum{
 
 enum{
   PROP_0,
-  PROP_DEVOUT,
+  PROP_SOUNDCARD,
   PROP_CONTAINER,
   PROP_DEPENDENCY,
   PROP_RECALL_ID,
@@ -237,19 +237,19 @@ ags_recall_class_init(AgsRecallClass *recall)
 
   /* properties */
   /**
-   * AgsRecall:devout:
+   * AgsRecall:soundcard:
    *
-   * The assigned devout.
+   * The assigned soundcard.
    * 
    * Since: 0.4
    */
-  param_spec = g_param_spec_object("devout\0",
-				   "devout of recall\0",
-				   "The devout which this recall is packed into\0",
-				   AGS_TYPE_DEVOUT,
+  param_spec = g_param_spec_object("soundcard\0",
+				   "soundcard of recall\0",
+				   "The soundcard which this recall is packed into\0",
+				   AGS_TYPE_SOUNDCARD,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_DEVOUT,
+				  PROP_SOUNDCARD,
 				  param_spec);
 
   /**
@@ -635,7 +635,7 @@ ags_recall_init(AgsRecall *recall)
 {
   recall->flags = 0;
 
-  recall->devout = NULL;
+  recall->soundcard = NULL;
   recall->container = NULL;
 
   recall->version = NULL;
@@ -673,29 +673,29 @@ ags_recall_set_property(GObject *gobject,
   recall = AGS_RECALL(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      AgsDevout *devout;
+      GObject *soundcard;
       GList *current;
       
-      devout = (AgsDevout *) g_value_get_object(value);
+      soundcard = (GObject *) g_value_get_object(value);
 
-      if(devout == ((AgsDevout *) recall->devout))
+      if(soundcard == ((GObject *) recall->soundcard))
 	return;
 
-      if(recall->devout != NULL)
-	g_object_unref(recall->devout);
+      if(recall->soundcard != NULL)
+	g_object_unref(recall->soundcard);
 
-      if(devout != NULL)
-	g_object_ref(G_OBJECT(devout));
+      if(soundcard != NULL)
+	g_object_ref(G_OBJECT(soundcard));
 
-      recall->devout = (GObject *) devout;
+      recall->soundcard = (GObject *) soundcard;
 
       current = recall->children;
 
       while(current != NULL){
 	g_object_set(G_OBJECT(current->data),
-		     "devout\0", devout,
+		     "soundcard\0", soundcard,
 		     NULL);
 
 	current = current->next;
@@ -812,9 +812,9 @@ ags_recall_get_property(GObject *gobject,
   recall = AGS_RECALL(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      g_value_set_object(value, recall->devout);
+      g_value_set_object(value, recall->soundcard);
     }
     break;
   case PROP_CONTAINER:
@@ -842,32 +842,24 @@ void
 ags_recall_add_to_registry(AgsConnectable *connectable)
 {
   AgsApplicationContext *application_context;
-  AgsServer *server;
   AgsRecall *recall;
-  AgsRegistryEntry *entry;
-  GList *list;
   
   recall = AGS_RECALL(connectable);
 
-  application_context = AGS_APPLICATION_CONTEXT(AGS_DEVOUT(recall->devout)->application_context);
-
-  server = NULL;
-  list = application_context->sibling;
-
-  while(list != NULL){
-    if(AGS_IS_SERVER_APPLICATION_CONTEXT(list->data)){
-      server = AGS_SERVER_APPLICATION_CONTEXT(list->data)->server;
-      break;
-    }
+  application_context = ags_soundcard_get_application_context(recall->soundcard);
 
-    list = list->next;
+  if(AGS_IS_SERVICE_PROVIDER(application_context)){
+    AgsServer *server;
+    AgsRegistryEntry *entry;
+    
+    server = ags_service_provider_get_server(AGS_SERVICE_PROVIDER(application_context));
+  
+    entry = ags_registry_entry_alloc(server->registry);
+    g_value_set_object(&(entry->entry),
+		       (gpointer) recall);
+    ags_registry_add(server->registry,
+		     entry);
   }
-
-  entry = ags_registry_entry_alloc(server->registry);
-  g_value_set_object(&(entry->entry),
-		     (gpointer) recall);
-  ags_registry_add(server->registry,
-		   entry);
 }
 
 void
@@ -1160,8 +1152,8 @@ ags_recall_finalize(GObject *gobject)
   g_message("finalize %s\n\0", G_OBJECT_TYPE_NAME(gobject));
 #endif
 
-  if(recall->devout != NULL){
-    g_object_unref(recall->devout);
+  if(recall->soundcard != NULL){
+    g_object_unref(recall->soundcard);
   }
 
   if((AGS_RECALL_CONNECTED & (recall->flags)) != 0){
@@ -1722,7 +1714,7 @@ ags_recall_real_duplicate(AgsRecall *recall,
 
   parameter = ags_parameter_grow(G_OBJECT_TYPE(recall),
 				 parameter, n_params,
-				 "devout\0", recall->devout,
+				 "soundcard\0", recall->soundcard,
 				 "recall_id\0", recall_id,
 				 "recall_container\0", recall->container,
 				 NULL);
@@ -1980,7 +1972,7 @@ ags_recall_add_child(AgsRecall *parent, AgsRecall *child)
     parent->children = g_list_prepend(parent->children, child);
 
     g_object_set(G_OBJECT(child),
-		 "devout\0", parent->devout,
+		 "soundcard\0", parent->soundcard,
 		 "recall_id\0", parent->recall_id,
 		 NULL);
     g_signal_connect(G_OBJECT(child), "done\0",
diff --git a/src/ags/audio/ags_recall.h b/src/ags/audio/ags_recall.h
index d184dab..be23cfd 100644
--- a/src/ags/audio/ags_recall.h
+++ b/src/ags/audio/ags_recall.h
@@ -83,7 +83,7 @@ struct _AgsRecall
 
   guint flags;
 
-  GObject *devout;
+  GObject *soundcard;
   GObject *container; // see AgsRecallContainer
 
   gchar *version;
@@ -183,7 +183,7 @@ AgsRecall* ags_recall_duplicate(AgsRecall *recall,
 				AgsRecallID *recall_id);
 
 void ags_recall_set_recall_id(AgsRecall *recall, AgsRecallID *recall_id);
-void ags_recall_set_devout_recursive(AgsRecall *recall, GObject *devout);
+void ags_recall_set_soundcard_recursive(AgsRecall *recall, GObject *soundcard);
 
 void ags_recall_notify_dependency(AgsRecall *recall, guint dependency, gint count);
 
diff --git a/src/ags/audio/ags_recall_audio_signal.c b/src/ags/audio/ags_recall_audio_signal.c
index b536e12..b75b740 100644
--- a/src/ags/audio/ags_recall_audio_signal.c
+++ b/src/ags/audio/ags_recall_audio_signal.c
@@ -24,8 +24,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>
@@ -64,9 +64,9 @@ AgsRecall* ags_recall_audio_signal_duplicate(AgsRecall *recall,
 					     AgsRecallID *recall_id,
 					     guint *n_params, GParameter *parameter);
 
-void ags_recall_audio_signal_notify_devout(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
+void ags_recall_audio_signal_notify_soundcard(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
 					   gpointer data);
-void ags_recall_audio_signal_notify_devout_after(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
+void ags_recall_audio_signal_notify_soundcard_after(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
 						 gpointer data);
 
 /**
@@ -244,10 +244,10 @@ ags_recall_audio_signal_dynamic_connectable_interface_init(AgsDynamicConnectable
 void
 ags_recall_audio_signal_init(AgsRecallAudioSignal *recall_audio_signal)
 {
-  //  g_signal_connect(G_OBJECT(recall_audio_signal), "notify::devout\0",
-  //		   G_CALLBACK(ags_recall_audio_signal_notify_devout), NULL);
-  //  g_signal_connect_after(G_OBJECT(recall_audio_signal), "notify::devout\0",
-  //			 G_CALLBACK(ags_recall_audio_signal_notify_devout_after), NULL);
+  //  g_signal_connect(G_OBJECT(recall_audio_signal), "notify::soundcard\0",
+  //		   G_CALLBACK(ags_recall_audio_signal_notify_soundcard), NULL);
+  //  g_signal_connect_after(G_OBJECT(recall_audio_signal), "notify::soundcard\0",
+  //			 G_CALLBACK(ags_recall_audio_signal_notify_soundcard_after), NULL);
 
   recall_audio_signal->flags = AGS_RECALL_INITIAL_RUN;
   recall_audio_signal->audio_channel = 0;
@@ -409,7 +409,7 @@ ags_recall_audio_signal_duplicate(AgsRecall *recall,
   recall_audio_signal = AGS_RECALL_AUDIO_SIGNAL(recall);
   parameter = ags_parameter_grow(G_OBJECT_TYPE(recall),
 				 parameter, n_params,
-				 "devout\0", AGS_RECALL(recall_audio_signal)->devout,
+				 "soundcard\0", AGS_RECALL(recall_audio_signal)->soundcard,
 				 "audio_channel\0", recall_audio_signal->audio_channel,
 				 "destination\0", recall_audio_signal->destination,
 				 "source\0", recall_audio_signal->source,
@@ -529,14 +529,14 @@ ags_recall_audio_signal_done(AgsRecall *recall)
 }
 
 void
-ags_recall_audio_signal_notify_devout(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
+ags_recall_audio_signal_notify_soundcard(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
 				      gpointer data)
 {
   //TODO:JK: implement me
 }
 
 void
-ags_recall_audio_signal_notify_devout_after(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
+ags_recall_audio_signal_notify_soundcard_after(AgsRecallAudioSignal *recall_audio_signal, GParamSpec *param,
 					    gpointer data)
 {
   //TODO:JK: implement me
@@ -546,7 +546,7 @@ ags_recall_audio_signal_notify_devout_after(AgsRecallAudioSignal *recall_audio_s
  * ags_recall_audio_signal_new:
  * @destination: destination #AgsAudioSignal
  * @source: source #AgsAudioSignal
- * @devout: default sink #AgsDevout
+ * @soundcard: default sink #AgsSoundcard
  *
  * Creates an #AgsRecallAudioSignal.
  *
@@ -557,12 +557,12 @@ ags_recall_audio_signal_notify_devout_after(AgsRecallAudioSignal *recall_audio_s
 AgsRecallAudioSignal*
 ags_recall_audio_signal_new(AgsAudioSignal *destination,
 			    AgsAudioSignal *source,
-			    AgsDevout *devout)
+			    GObject *soundcard)
 {
   AgsRecallAudioSignal *recall_audio_signal;
 
   recall_audio_signal = (AgsRecallAudioSignal *) g_object_new(AGS_TYPE_RECALL_AUDIO_SIGNAL,
-							      "devout\0", devout,
+							      "soundcard\0", soundcard,
 							      "destination\0", destination,
 							      "source\0", source, 
 							      NULL);
diff --git a/src/ags/audio/ags_recall_audio_signal.h b/src/ags/audio/ags_recall_audio_signal.h
index dfd3cf1..993fcdd 100644
--- a/src/ags/audio/ags_recall_audio_signal.h
+++ b/src/ags/audio/ags_recall_audio_signal.h
@@ -63,7 +63,7 @@ GType ags_recall_audio_signal_get_type();
 
 AgsRecallAudioSignal* ags_recall_audio_signal_new(AgsAudioSignal *destination,
 						  AgsAudioSignal *source,
-						  AgsDevout *devout);
+						  GObject *devout);
 
 #endif /*__AGS_RECALL_AUDIO_SIGNAL_H__*/
 
diff --git a/src/ags/audio/ags_recall_channel_run.c b/src/ags/audio/ags_recall_channel_run.c
index 5ea3142..cd8a4ad 100644
--- a/src/ags/audio/ags_recall_channel_run.c
+++ b/src/ags/audio/ags_recall_channel_run.c
@@ -776,7 +776,7 @@ ags_recall_channel_run_duplicate(AgsRecall *recall,
 
   parameter = ags_parameter_grow(G_OBJECT_TYPE(recall),
 				 parameter, n_params,
-				 "devout\0", AGS_RECALL(recall_channel_run)->devout,
+				 "soundcard\0", AGS_RECALL(recall_channel_run)->soundcard,
 				 "recall_channel\0", recall_channel_run->recall_channel,
 				 "audio_channel\0", recall_channel_run->audio_channel,
 				 "source\0", recall_channel_run->source,
@@ -889,7 +889,7 @@ ags_recall_channel_run_map_recall_recycling(AgsRecallChannelRun *recall_channel_
 
       do{
 	recall_recycling = g_object_new(AGS_RECALL(recall_channel_run)->child_type,
-					"devout\0", AGS_RECALL(recall_channel_run)->devout,
+					"soundcard\0", AGS_RECALL(recall_channel_run)->soundcard,
 					"recall_id\0", AGS_RECALL(recall_channel_run)->recall_id,
 					"audio_channel\0", recall_channel_run->audio_channel,
 					"source\0", source_recycling,
@@ -924,11 +924,21 @@ ags_recall_channel_run_remap_child_source(AgsRecallChannelRun *recall_channel_ru
 
   /* remove old */
   if(old_start_changed_region != NULL){
-    AgsDevout *devout;
-    AgsRecall *recall;
     AgsCancelRecall *cancel_recall;
+    AgsRecall *recall;
+    AgsThread *main_loop;
+    AgsTaskThread *task_thread;
+    GObject *soundcard;
+    AgsApplicationContext *application_context;
+
+    soundcard = AGS_SOUNDCARD(AGS_AUDIO(recall_channel_run->source->audio)->soundcard);
+
+    application_context = ags_soundcard_get_application_context(soundcard);
 
-    devout = AGS_DEVOUT(AGS_AUDIO(recall_channel_run->source->audio)->devout);
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
+    
     source_recycling = old_start_changed_region;
 
     while(source_recycling != old_end_changed_region->next){
@@ -942,7 +952,7 @@ ags_recall_channel_run_remap_child_source(AgsRecallChannelRun *recall_channel_ru
 	  cancel_recall = ags_cancel_recall_new(recall,
 						NULL);
 
-	  ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(devout->application_context)->main_loop)->task_thread),
+	  ags_task_thread_append_task(task_thread,
 				      (AgsTask *) cancel_recall);
 	}
 
@@ -959,7 +969,7 @@ ags_recall_channel_run_remap_child_source(AgsRecallChannelRun *recall_channel_ru
       
     while(source_recycling != new_end_changed_region->next){
       recall_recycling = g_object_new(AGS_RECALL(recall_channel_run)->child_type,
-				      "devout\0", AGS_RECALL(recall_channel_run)->devout,
+				      "soundcard\0", AGS_RECALL(recall_channel_run)->soundcard,
 				      "recall_id\0", AGS_RECALL(recall_channel_run)->recall_id,
 				      "audio_channel\0", recall_channel_run->audio_channel,
 				      "source\0", source_recycling,
@@ -990,11 +1000,21 @@ ags_recall_channel_run_remap_child_destination(AgsRecallChannelRun *recall_chann
 
   /* remove old */
   if(old_start_changed_region != NULL){
-    AgsDevout *devout;
     AgsRecall *recall;
     AgsCancelRecall *cancel_recall;
+    AgsThread *main_loop;
+    AgsTaskThread *task_thread;
+    GObject *soundcard;
+    AgsApplicationContext *application_context;
+
+    soundcard = AGS_SOUNDCARD(AGS_AUDIO(recall_channel_run->source->audio)->soundcard);
+    
+    application_context = ags_soundcard_get_application_context(soundcard);
 
-    devout = AGS_DEVOUT(AGS_AUDIO(recall_channel_run->source->audio)->devout);
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
+    
     destination_recycling = old_start_changed_region;
     
     while(destination_recycling != old_end_changed_region->next){
@@ -1008,7 +1028,7 @@ ags_recall_channel_run_remap_child_destination(AgsRecallChannelRun *recall_chann
 	  cancel_recall = ags_cancel_recall_new(recall,
 						NULL);
 
-	  ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_APPLICATION_CONTEXT(devout->application_context)->main_loop)->task_thread),
+	  ags_task_thread_append_task(task_thread,
 				      (AgsTask *) cancel_recall);
 	}
 
@@ -1032,7 +1052,7 @@ ags_recall_channel_run_remap_child_destination(AgsRecallChannelRun *recall_chann
 	
 	while(source_recycling != recall_channel_run->source->last_recycling->next){
 	  recall_recycling = g_object_new(AGS_RECALL(recall_channel_run)->child_type,
-					  "devout\0", AGS_RECALL(recall_channel_run)->devout,
+					  "soundcard\0", AGS_RECALL(recall_channel_run)->soundcard,
 					  "recall_id\0", AGS_RECALL(recall_channel_run)->recall_id,
 					  "audio_channel\0", recall_channel_run->audio_channel,
 					  "source\0", source_recycling,
diff --git a/src/ags/audio/ags_recall_factory.c b/src/ags/audio/ags_recall_factory.c
index 2f4acbd..f06f191 100644
--- a/src/ags/audio/ags_recall_factory.c
+++ b/src/ags/audio/ags_recall_factory.c
@@ -328,7 +328,7 @@ ags_recall_factory_create_play(AgsAudio *audio,
 
 	/* AgsPlayChannel */
 	play_channel = (AgsPlayChannel *) g_object_new(AGS_TYPE_PLAY_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", play_container,
 						       NULL);
@@ -341,7 +341,7 @@ ags_recall_factory_create_play(AgsAudio *audio,
 
 	/* AgsPlayChannelRun */
 	play_channel_run = (AgsPlayChannelRun *) g_object_new(AGS_TYPE_PLAY_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", play_channel,
 							      "recall_container\0", play_container,
@@ -380,7 +380,7 @@ ags_recall_factory_create_play(AgsAudio *audio,
 
 	/* AgsPlayChannel */
 	play_channel = (AgsPlayChannel *) g_object_new(AGS_TYPE_PLAY_CHANNEL,
-						       "devout\0", AGS_DEVOUT(audio->devout),
+						       "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 						       "source\0", channel,
 						       "recall_container\0", recall_container,
 						       NULL);
@@ -393,7 +393,7 @@ ags_recall_factory_create_play(AgsAudio *audio,
 
 	/* AgsPlayChannelRun */
 	play_channel_run = (AgsPlayChannelRun *) g_object_new(AGS_TYPE_PLAY_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", play_channel,
 							      "recall_container\0", recall_container,
@@ -458,7 +458,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
 
       /*  */
       play_audio = (AgsPlayAudio *) g_object_new(AGS_TYPE_PLAY_AUDIO,
-						 "devout\0", audio->devout,
+						 "soundcard\0", audio->soundcard,
 						 "audio\0", audio,
 						 "recall_container\0", play_container,
 						 NULL);
@@ -491,7 +491,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
 
 	/* AgsPlayChannel */
 	play_channel = (AgsPlayChannel *) g_object_new(AGS_TYPE_PLAY_CHANNEL,
-						       "devout\0", AGS_DEVOUT(audio->devout),
+						       "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 						       "source\0", channel,
 						       "recall_container\0", play_container,
 						       NULL);
@@ -506,7 +506,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
       
 	/* AgsPlayChannelRun */
 	play_channel_run_master = (AgsPlayChannelRunMaster *) g_object_new(AGS_TYPE_PLAY_CHANNEL_RUN_MASTER,
-									   "devout\0", audio->devout,
+									   "soundcard\0", audio->soundcard,
 									   "source\0", channel,
 									   "recall_channel\0", play_channel,
 									   "recall_container\0", play_container,
@@ -541,7 +541,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
 
       /*  */
       play_audio = (AgsPlayAudio *) g_object_new(AGS_TYPE_PLAY_AUDIO,
-						 "devout\0", audio->devout,
+						 "soundcard\0", audio->soundcard,
 						 "audio\0", audio,
 						 "recall_container\0", recall_container,
 						 NULL);
@@ -574,7 +574,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
 
 	/* AgsPlayChannel */
 	play_channel = (AgsPlayChannel *) g_object_new(AGS_TYPE_PLAY_CHANNEL,
-						       "devout\0", AGS_DEVOUT(audio->devout),
+						       "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 						       "source\0", channel,
 						       "recall_container\0", recall_container,
 						       NULL);
@@ -589,7 +589,7 @@ ags_recall_factory_create_play_master(AgsAudio *audio,
 	
 	/* AgsPlayChannelRun */
 	play_channel_run_master = (AgsPlayChannelRunMaster *) g_object_new(AGS_TYPE_PLAY_CHANNEL_RUN_MASTER,
-									   "devout\0", audio->devout,
+									   "soundcard\0", audio->soundcard,
 									   "source\0", channel,
 									   "recall_channel\0", play_channel,
 									   "recall_container\0", recall_container,
@@ -661,7 +661,7 @@ ags_recall_factory_create_copy(AgsAudio *audio,
 
 	/* AgsCopyChannel */
 	copy_channel = (AgsCopyChannel *) g_object_new(AGS_TYPE_COPY_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", play_container,
 						       NULL);
@@ -675,7 +675,7 @@ ags_recall_factory_create_copy(AgsAudio *audio,
 
 	/* AgsCopyChannelRun */
 	copy_channel_run = (AgsCopyChannelRun *) g_object_new(AGS_TYPE_COPY_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", copy_channel,
 							      "recall_container\0", play_container,
@@ -716,7 +716,7 @@ ags_recall_factory_create_copy(AgsAudio *audio,
 
 	/* AgsCopyChannel */
 	copy_channel = (AgsCopyChannel *) g_object_new(AGS_TYPE_COPY_CHANNEL,
-						       "devout\0", AGS_DEVOUT(audio->devout),
+						       "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 						       "source\0", channel,
 						       "recall_container\0", recall_container,
 						       NULL);
@@ -730,7 +730,7 @@ ags_recall_factory_create_copy(AgsAudio *audio,
 
 	/* AgsCopyChannelRun */
 	copy_channel_run = (AgsCopyChannelRun *) g_object_new(AGS_TYPE_COPY_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", copy_channel,
 							      "recall_container\0", recall_container,
@@ -802,7 +802,7 @@ ags_recall_factory_create_stream(AgsAudio *audio,
 
 	/* AgsStreamChannel */
 	stream_channel = (AgsStreamChannel *) g_object_new(AGS_TYPE_STREAM_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", play_container,
 							   NULL);
@@ -817,7 +817,7 @@ ags_recall_factory_create_stream(AgsAudio *audio,
 
 	/* AgsStreamChannelRun */
 	stream_channel_run = (AgsStreamChannelRun *) g_object_new(AGS_TYPE_STREAM_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall-channel\0", stream_channel,
 								  "source\0", channel,
 								  "recall_container\0", play_container,
@@ -858,7 +858,7 @@ ags_recall_factory_create_stream(AgsAudio *audio,
 
 	/* AgsStreamChannel */
 	stream_channel = (AgsStreamChannel *) g_object_new(AGS_TYPE_STREAM_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", recall_container,
 							   NULL);
@@ -873,7 +873,7 @@ ags_recall_factory_create_stream(AgsAudio *audio,
 
 	/* AgsStreamChannelRun */
 	stream_channel_run = (AgsStreamChannelRun *) g_object_new(AGS_TYPE_STREAM_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall_channel\0", stream_channel,
 								  "source\0", channel,
 								  "recall_container\0", recall_container,
@@ -945,7 +945,7 @@ ags_recall_factory_create_buffer(AgsAudio *audio,
 
 	/* AgsBufferChannel */
 	buffer_channel = (AgsBufferChannel *) g_object_new(AGS_TYPE_BUFFER_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", play_container,
 							   NULL);
@@ -960,7 +960,7 @@ ags_recall_factory_create_buffer(AgsAudio *audio,
 
 	/* AgsBufferChannelRun */
 	buffer_channel_run = (AgsBufferChannelRun *) g_object_new(AGS_TYPE_BUFFER_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall_channel\0", buffer_channel,
 								  "source\0", channel,
 								  "destination\0", ags_channel_nth(audio->output,
@@ -1003,7 +1003,7 @@ ags_recall_factory_create_buffer(AgsAudio *audio,
 
 	/* AgsBufferChannel */
 	buffer_channel = (AgsBufferChannel *) g_object_new(AGS_TYPE_BUFFER_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", recall_container,
 							   NULL);
@@ -1018,7 +1018,7 @@ ags_recall_factory_create_buffer(AgsAudio *audio,
 
 	/* AgsBufferChannelRun */
 	buffer_channel_run = (AgsBufferChannelRun *) g_object_new(AGS_TYPE_BUFFER_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall_channel\0", buffer_channel,
 								  "source\0", channel,
 								  "destination\0", ags_channel_nth(audio->output,
@@ -1084,7 +1084,7 @@ ags_recall_factory_create_delay(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) play_container);
 
     delay_audio = (AgsDelayAudio *) g_object_new(AGS_TYPE_DELAY_AUDIO,
-						 "devout\0", audio->devout,
+						 "soundcard\0", audio->soundcard,
 						 "audio\0", audio,
 						 "recall_container\0", play_container,
 						 NULL);
@@ -1097,7 +1097,7 @@ ags_recall_factory_create_delay(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(delay_audio));
 
     delay_audio_run = (AgsDelayAudioRun *) g_object_new(AGS_TYPE_DELAY_AUDIO_RUN,
-							"devout\0", audio->devout,
+							"soundcard\0", audio->soundcard,
 							"recall_audio\0", delay_audio,
 							"recall_container\0", play_container,
 							NULL);
@@ -1119,7 +1119,7 @@ ags_recall_factory_create_delay(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) recall_container);
 
     delay_audio = (AgsDelayAudio *) g_object_new(AGS_TYPE_DELAY_AUDIO,
-						 "devout\0", audio->devout,
+						 "soundcard\0", audio->soundcard,
 						 "audio\0", audio,
 						 "recall_container\0", recall_container,
 						 NULL);
@@ -1132,7 +1132,7 @@ ags_recall_factory_create_delay(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(delay_audio));
 
     delay_audio_run = (AgsDelayAudioRun *) g_object_new(AGS_TYPE_DELAY_AUDIO_RUN,
-							"devout\0", audio->devout,
+							"soundcard\0", audio->soundcard,
 							"recall_audio\0", delay_audio,
 							"recall_container\0", recall_container,
 							//TODO:JK: add missing dependency "delay-audio\0"
@@ -1188,7 +1188,7 @@ ags_recall_factory_create_count_beats(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) play_container);
 
     count_beats_audio = (AgsCountBeatsAudio *) g_object_new(AGS_TYPE_COUNT_BEATS_AUDIO,
-							    "devout\0", audio->devout,
+							    "soundcard\0", audio->soundcard,
 							    "audio\0", audio,
 							    "recall_container\0", play_container,
 							    NULL);
@@ -1201,7 +1201,7 @@ ags_recall_factory_create_count_beats(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(count_beats_audio));
 
     count_beats_audio_run = (AgsCountBeatsAudioRun *) g_object_new(AGS_TYPE_COUNT_BEATS_AUDIO_RUN,
-								   "devout\0", audio->devout,
+								   "soundcard\0", audio->soundcard,
 								   "recall_audio\0", count_beats_audio,
 								   "recall_container\0", play_container,
 								   NULL);
@@ -1223,7 +1223,7 @@ ags_recall_factory_create_count_beats(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) recall_container);
 
     count_beats_audio = (AgsCountBeatsAudio *) g_object_new(AGS_TYPE_COUNT_BEATS_AUDIO,
-							    "devout\0", audio->devout,
+							    "soundcard\0", audio->soundcard,
 							    "audio\0", audio,
 							    "recall_container\0", recall_container,
 							    NULL);
@@ -1236,7 +1236,7 @@ ags_recall_factory_create_count_beats(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(count_beats_audio));
 
     count_beats_audio_run = (AgsCountBeatsAudioRun *) g_object_new(AGS_TYPE_COUNT_BEATS_AUDIO_RUN,
-								   "devout\0", audio->devout,
+								   "soundcard\0", audio->soundcard,
 								   "recall_audio\0", count_beats_audio,
 								   "recall_container\0", recall_container,
 								   //TODO:JK: add missing dependency "delay-audio\0"
@@ -1304,7 +1304,7 @@ ags_recall_factory_create_loop(AgsAudio *audio,
 
 	/* AgsLoopChannel */
 	loop_channel = (AgsLoopChannel *) g_object_new(AGS_TYPE_LOOP_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", play_container,
 						       //TODO:JK: add missing dependency "delay_audio\0"
@@ -1319,7 +1319,7 @@ ags_recall_factory_create_loop(AgsAudio *audio,
 
 	/* AgsLoopChannelRun */
 	loop_channel_run = (AgsLoopChannelRun *) g_object_new(AGS_TYPE_LOOP_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", loop_channel,
 							      "recall_container\0", play_container,
@@ -1365,7 +1365,7 @@ ags_recall_factory_create_loop(AgsAudio *audio,
 
 	/* AgsLoopChannel */
 	loop_channel = (AgsLoopChannel *) g_object_new(AGS_TYPE_LOOP_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", recall_container,
 						       //TODO:JK: add missing dependency "delay_audio\0"
@@ -1380,7 +1380,7 @@ ags_recall_factory_create_loop(AgsAudio *audio,
 
 	/* AgsLoopChannelRun */
 	loop_channel_run = (AgsLoopChannelRun *) g_object_new(AGS_TYPE_LOOP_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "source\0", channel,
 							      "recall_channel\0", loop_channel,
 							      "recall_container\0", recall_container,
@@ -1449,7 +1449,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
       /* AgsCopyPatternAudio */
       copy_pattern_audio = (AgsCopyPatternAudio *) g_object_new(AGS_TYPE_COPY_PATTERN_AUDIO,
-								"devout\0", audio->devout,
+								"soundcard\0", audio->soundcard,
 								"audio\0", audio,
 								"recall_container\0", play_container,
 								NULL);
@@ -1460,7 +1460,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
       /* AgsCopyPatternAudioRun */
       copy_pattern_audio_run = (AgsCopyPatternAudioRun *) g_object_new(AGS_TYPE_COPY_PATTERN_AUDIO_RUN,
-								       "devout\0", audio->devout,
+								       "soundcard\0", audio->soundcard,
 								       // "recall_audio\0", copy_pattern_audio,
 								       "recall_container\0", play_container,
 								       //TODO:JK: add missing dependency "count_beats_audio_run\0"
@@ -1498,7 +1498,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
 	/* AgsCopyPatternChannel in channel->recall */
 	copy_pattern_channel = (AgsCopyPatternChannel *) g_object_new(AGS_TYPE_COPY_PATTERN_CHANNEL,
-								      "devout\0", AGS_DEVOUT(audio->devout),
+								      "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 								      "source\0", channel,
 								      // "destination\0", destination,
 								      "recall_container\0", play_container,
@@ -1512,7 +1512,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
 	/* AgsCopyPatternChannelRun */
 	copy_pattern_channel_run = (AgsCopyPatternChannelRun *) g_object_new(AGS_TYPE_COPY_PATTERN_CHANNEL_RUN,
-									     "devout\0", audio->devout,
+									     "soundcard\0", audio->soundcard,
 									     "source\0", channel,
 									     // "destination\0", destination,
 									     // "recall_channel\0", copy_pattern_channel,
@@ -1547,7 +1547,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
       /* AgsCopyPatternAudio */
       copy_pattern_audio = (AgsCopyPatternAudio *) g_object_new(AGS_TYPE_COPY_PATTERN_AUDIO,
-								"devout\0", audio->devout,
+								"soundcard\0", audio->soundcard,
 								"audio\0", audio,
 								"recall_container\0", recall_container,
 								NULL);
@@ -1558,7 +1558,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
       /* AgsCopyPatternAudioRun */
       copy_pattern_audio_run = (AgsCopyPatternAudioRun *) g_object_new(AGS_TYPE_COPY_PATTERN_AUDIO_RUN,
-								       "devout\0", audio->devout,
+								       "soundcard\0", audio->soundcard,
 								       // "recall_audio\0", copy_pattern_audio,
 								       "recall_container\0", recall_container,
 								       //TODO:JK: add missing dependency "count_beats_audio_run\0"
@@ -1601,7 +1601,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
 	/* AgsCopyPatternChannel in channel->recall */
 	copy_pattern_channel = (AgsCopyPatternChannel *) g_object_new(AGS_TYPE_COPY_PATTERN_CHANNEL,
-								      "devout\0", AGS_DEVOUT(audio->devout),
+								      "soundcard\0", AGS_SOUNDCARD(audio->soundcard),
 								      "source\0", channel,
 								      // "destination\0", destination,
 								      "recall_container\0", recall_container,
@@ -1615,7 +1615,7 @@ ags_recall_factory_create_copy_pattern(AgsAudio *audio,
 
 	/* AgsCopyPatternChannelRun */
 	copy_pattern_channel_run = (AgsCopyPatternChannelRun *) g_object_new(AGS_TYPE_COPY_PATTERN_CHANNEL_RUN,
-									     "devout\0", audio->devout,
+									     "soundcard\0", audio->soundcard,
 									     "source\0", channel,
 									     // "destination\0", destination,
 									     // "recall_channel\0", copy_pattern_channel,
@@ -1679,7 +1679,7 @@ ags_recall_factory_create_play_notation(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) play_container);
 
     play_notation_audio = (AgsPlayNotationAudio *) g_object_new(AGS_TYPE_PLAY_NOTATION_AUDIO,
-								"devout\0", audio->devout,
+								"soundcard\0", audio->soundcard,
 								"audio\0", audio,
 								"recall_container\0", play_container,
 								NULL);
@@ -1692,7 +1692,7 @@ ags_recall_factory_create_play_notation(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(play_notation_audio));
 
     play_notation_audio_run = (AgsPlayNotationAudioRun *) g_object_new(AGS_TYPE_PLAY_NOTATION_AUDIO_RUN,
-								       "devout\0", audio->devout,
+								       "soundcard\0", audio->soundcard,
 								       "recall_audio\0", play_notation_audio,
 								       "recall_container\0", play_container,
 								       NULL);
@@ -1714,7 +1714,7 @@ ags_recall_factory_create_play_notation(AgsAudio *audio,
     ags_audio_add_recall_container(audio, (GObject *) recall_container);
 
     play_notation_audio = (AgsPlayNotationAudio *) g_object_new(AGS_TYPE_PLAY_NOTATION_AUDIO,
-								"devout\0", audio->devout,
+								"soundcard\0", audio->soundcard,
 								"audio\0", audio,
 								"recall_container\0", recall_container,
 								NULL);
@@ -1727,7 +1727,7 @@ ags_recall_factory_create_play_notation(AgsAudio *audio,
     ags_connectable_connect(AGS_CONNECTABLE(play_notation_audio));
 
     play_notation_audio_run = (AgsPlayNotationAudioRun *) g_object_new(AGS_TYPE_PLAY_NOTATION_AUDIO_RUN,
-								       "devout\0", audio->devout,
+								       "soundcard\0", audio->soundcard,
 								       "recall_audio\0", play_notation_audio,
 								       "recall_container\0", recall_container,
 								       //TODO:JK: add missing dependency "delay-audio\0"
@@ -1791,7 +1791,7 @@ ags_recall_factory_create_peak(AgsAudio *audio,
 
 	/* AgsPeakChannel */
 	peak_channel = (AgsPeakChannel *) g_object_new(AGS_TYPE_PEAK_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", play_container,
 						       NULL);
@@ -1807,7 +1807,7 @@ ags_recall_factory_create_peak(AgsAudio *audio,
 
 	/* AgsPeakChannelRun */
 	peak_channel_run = (AgsPeakChannelRun *) g_object_new(AGS_TYPE_PEAK_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "recall-channel\0", peak_channel,
 							      "source\0", channel,
 							      "recall_container\0", recall_container,
@@ -1848,7 +1848,7 @@ ags_recall_factory_create_peak(AgsAudio *audio,
 
 	/* AgsPeakChannel */
 	peak_channel = (AgsPeakChannel *) g_object_new(AGS_TYPE_PEAK_CHANNEL,
-						       "devout\0", audio->devout,
+						       "soundcard\0", audio->soundcard,
 						       "source\0", channel,
 						       "recall_container\0", recall_container,
 						       NULL);
@@ -1863,7 +1863,7 @@ ags_recall_factory_create_peak(AgsAudio *audio,
 
 	/* AgsPeakChannelRun */
 	peak_channel_run = (AgsPeakChannelRun *) g_object_new(AGS_TYPE_PEAK_CHANNEL_RUN,
-							      "devout\0", audio->devout,
+							      "soundcard\0", audio->soundcard,
 							      "recall-channel\0", peak_channel,
 							      "source\0", channel,
 							      "recall_container\0", recall_container,
@@ -1935,7 +1935,7 @@ ags_recall_factory_create_volume(AgsAudio *audio,
 
 	/* AgsVolumeChannel */
 	volume_channel = (AgsVolumeChannel *) g_object_new(AGS_TYPE_VOLUME_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", play_container,
 							   NULL);
@@ -1950,7 +1950,7 @@ ags_recall_factory_create_volume(AgsAudio *audio,
 
 	/* AgsVolumeChannelRun */
 	volume_channel_run = (AgsVolumeChannelRun *) g_object_new(AGS_TYPE_VOLUME_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall-channel\0", volume_channel,
 								  "source\0", channel,
 								  "recall_container\0", play_container,
@@ -1991,7 +1991,7 @@ ags_recall_factory_create_volume(AgsAudio *audio,
 
 	/* AgsVolumeChannel */
 	volume_channel = (AgsVolumeChannel *) g_object_new(AGS_TYPE_VOLUME_CHANNEL,
-							   "devout\0", audio->devout,
+							   "soundcard\0", audio->soundcard,
 							   "source\0", channel,
 							   "recall_container\0", recall_container,
 							   NULL);
@@ -2006,7 +2006,7 @@ ags_recall_factory_create_volume(AgsAudio *audio,
 
 	/* AgsVolumeChannelRun */
 	volume_channel_run = (AgsVolumeChannelRun *) g_object_new(AGS_TYPE_VOLUME_CHANNEL_RUN,
-								  "devout\0", audio->devout,
+								  "soundcard\0", audio->soundcard,
 								  "recall_channel\0", volume_channel,
 								  "source\0", channel,
 								  "recall_container\0", recall_container,
@@ -2078,7 +2078,7 @@ ags_recall_factory_create_ladspa(AgsAudio *audio,
 
 	/* AgsRecallLadspa */
 	recall_ladspa = (AgsRecallLadspa *) g_object_new(AGS_TYPE_RECALL_LADSPA,
-							 "devout\0", audio->devout,
+							 "soundcard\0", audio->soundcard,
 							 "source\0", channel,
 							 "recall_container\0", play_container,
 							 NULL);
@@ -2097,7 +2097,7 @@ ags_recall_factory_create_ladspa(AgsAudio *audio,
 								    AGS_TYPE_RECALL_LADSPA_RUN);
 
 	g_object_set(recall_channel_run_dummy,
-		     "devout\0", audio->devout,
+		     "soundcard\0", audio->soundcard,
 		     // "recall_channel\0", recall_ladspa,
 		     "source\0", channel,
 		     "recall_container\0", play_container,
@@ -2138,7 +2138,7 @@ ags_recall_factory_create_ladspa(AgsAudio *audio,
 
 	/* AgsRecallLadspa */
 	recall_ladspa = (AgsRecallLadspa *) g_object_new(AGS_TYPE_RECALL_LADSPA,
-							 "devout\0", audio->devout,
+							 "soundcard\0", audio->soundcard,
 							 "source\0", channel,
 							 "recall_container\0", recall_container,
 							 NULL);
@@ -2156,7 +2156,7 @@ ags_recall_factory_create_ladspa(AgsAudio *audio,
 								    AGS_TYPE_RECALL_RECYCLING_DUMMY,
 								    AGS_TYPE_RECALL_LADSPA_RUN);
 	g_object_set(recall_channel_run_dummy,
-		     "devout\0", audio->devout,
+		     "soundcard\0", audio->soundcard,
 		     // "recall_channel\0", recall_ladspa,
 		     "source\0", channel,
 		     "recall_container\0", recall_container,
diff --git a/src/ags/audio/ags_recall_ladspa.c b/src/ags/audio/ags_recall_ladspa.c
index 7495c31..bc40a47 100644
--- a/src/ags/audio/ags_recall_ladspa.c
+++ b/src/ags/audio/ags_recall_ladspa.c
@@ -25,12 +25,12 @@
 #include <ags/object/ags_application_context.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file.h>
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_port.h>
 
 #include <dlfcn.h>
@@ -255,7 +255,7 @@ ags_recall_ladspa_set_property(GObject *gobject,
   switch(prop_id){
   case PROP_FILENAME:
     {
-      AgsDevout *devout;
+      GObject *soundcard;
       gchar *filename;
 
       filename = g_value_get_string(value);
@@ -776,17 +776,17 @@ ags_recall_ladspa_new(AgsChannel *source,
 		      gchar *effect,
 		      unsigned long index)
 {
-  AgsDevout *devout;
+  GObject *soundcard;
   AgsRecallLadspa *recall_ladspa;
 
   if(source != NULL){
-    devout = AGS_AUDIO(source->audio)->devout;
+    soundcard = AGS_AUDIO(source->audio)->soundcard;
   }else{
-    devout = NULL;
+    soundcard = NULL;
   }
 
   recall_ladspa = (AgsRecallLadspa *) g_object_new(AGS_TYPE_RECALL_LADSPA,
-						   "devout\0", devout,
+						   "soundcard\0", soundcard,
 						   "source\0", source,
 						   "filename\0", filename,
 						   "effect\0", effect,
diff --git a/src/ags/audio/ags_recall_ladspa_run.c b/src/ags/audio/ags_recall_ladspa_run.c
index 446ff64..0547a5c 100644
--- a/src/ags/audio/ags_recall_ladspa_run.c
+++ b/src/ags/audio/ags_recall_ladspa_run.c
@@ -58,7 +58,6 @@ void ags_recall_ladspa_run_load_ports(AgsRecallLadspaRun *recall_ladspa_run);
  * #AgsRecallLadspaRun provides LADSPA support.
  */
 
-extern AgsConfig *ags_config;
 static gpointer ags_recall_ladspa_run_parent_class = NULL;
 static AgsConnectableInterface* ags_recall_ladspa_run_parent_connectable_interface;
 
@@ -188,6 +187,7 @@ ags_recall_ladspa_run_run_init_pre(AgsRecall *recall)
   AgsRecallLadspa *recall_ladspa;
   AgsRecallLadspaRun *recall_ladspa_run;
   AgsAudioSignal *audio_signal;
+  AgsConfig *config;
   unsigned long samplerate;
   unsigned long buffer_size;
   unsigned long i;
@@ -199,18 +199,13 @@ ags_recall_ladspa_run_run_init_pre(AgsRecall *recall)
 
   recall_ladspa_run = AGS_RECALL_LADSPA_RUN(recall);
   recall_ladspa = AGS_RECALL_LADSPA(AGS_RECALL_CHANNEL_RUN(recall->parent->parent)->recall_channel);
-
+  
+  /* set up buffer */
+  audio_signal = AGS_RECALL_AUDIO_SIGNAL(recall_ladspa_run)->source;
+  
   /* set up buffer */ 
-  samplerate = (unsigned long) g_ascii_strtoull(ags_config_get_value(ags_config,
-							       AGS_CONFIG_DEVOUT,
-							       "samplerate\0"),
-						NULL,
-						10);
-  buffer_size = (unsigned long) g_ascii_strtoull(ags_config_get_value(ags_config,
-								AGS_CONFIG_DEVOUT,
-								"buffer-size\0"),
-						 NULL,
-						 10);
+  samplerate = audio_signal->samplerate;
+  buffer_size = audio_signal->buffer_size;
 
   recall_ladspa_run->input = (LADSPA_Data *) malloc(recall_ladspa->input_lines *
 						    buffer_size *
diff --git a/src/ags/audio/ags_recall_recycling.c b/src/ags/audio/ags_recall_recycling.c
index 8b509cc..b244ee5 100644
--- a/src/ags/audio/ags_recall_recycling.c
+++ b/src/ags/audio/ags_recall_recycling.c
@@ -26,11 +26,11 @@
 #include <ags/object/ags_marshal.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/thread/ags_audio_loop.h>
 #include <ags/thread/ags_task_thread.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_output.h>
 #include <ags/audio/ags_input.h>
@@ -591,7 +591,7 @@ ags_recall_recycling_duplicate(AgsRecall *recall,
 
   parameter = ags_parameter_grow(G_OBJECT_TYPE(recall),
 				 parameter, n_params,
-				 "devout\0", recall->devout,
+				 "soundcard\0", recall->soundcard,
 				 "audio_channel\0", recall_recycling->audio_channel,
 				 "destination\0", recall_recycling->destination,
 				 "source\0", recall_recycling->source,
@@ -686,7 +686,7 @@ ags_recall_recycling_source_add_audio_signal_callback(AgsRecycling *source,
 
     if(AGS_RECALL(recall_recycling)->child_type != G_TYPE_NONE){
       recall_audio_signal = g_object_new(AGS_RECALL(recall_recycling)->child_type,
-					 "devout\0", recall->devout,
+					 "soundcard\0", recall->soundcard,
 					 "audio_channel\0", recall_recycling->audio_channel,
 					 "destination\0", recall_recycling->child_destination,
 					 "source\0", audio_signal,
@@ -702,7 +702,7 @@ ags_recall_recycling_source_remove_audio_signal_callback(AgsRecycling *source,
 							 AgsAudioSignal *audio_signal,
 							 AgsRecallRecycling *recall_recycling)
 {
-  AgsDevout *devout;
+  GObject *soundcard;
   AgsChannel *channel;
   AgsRecall *recall;
   AgsCancelRecall *cancel_recall;
@@ -731,7 +731,7 @@ ags_recall_recycling_source_remove_audio_signal_callback(AgsRecycling *source,
 	      AGS_CHANNEL(recall_recycling->source->channel)->line);
 #endif
 
-    devout = AGS_DEVOUT(AGS_AUDIO(AGS_CHANNEL(source->channel)->audio)->devout);
+    soundcard = AGS_AUDIO(AGS_CHANNEL(source->channel)->audio)->soundcard;
 
     list = ags_recall_get_children(recall);
 
@@ -743,7 +743,7 @@ ags_recall_recycling_source_remove_audio_signal_callback(AgsRecycling *source,
 	//   	cancel_recall = ags_cancel_recall_new(AGS_RECALL(recall_audio_signal),
 	//				      NULL);
 	
-	//	ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_MAIN(devout->ags_main)->main_loop)->task_thread),
+	//	ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_MAIN(soundcard->ags_main)->main_loop)->task_thread),
 	//			    (AgsTask *) cancel_recall);
 
 	break;
@@ -818,7 +818,7 @@ ags_recall_recycling_destination_remove_audio_signal_callback(AgsRecycling *dest
 							      AgsAudioSignal *audio_signal,
 							      AgsRecallRecycling *recall_recycling)
 {
-  AgsDevout *devout;
+  GObject *soundcard;
   AgsRecall *recall;
   AgsCancelRecall *cancel_recall;
   AgsRecallAudioSignal *recall_audio_signal;
@@ -844,7 +844,7 @@ ags_recall_recycling_destination_remove_audio_signal_callback(AgsRecycling *dest
     	      AGS_CHANNEL(recall_recycling->source->channel)->line);
 #endif
 
-    devout = AGS_DEVOUT(AGS_AUDIO(AGS_CHANNEL(destination->channel)->audio)->devout);
+    soundcard = AGS_AUDIO(AGS_CHANNEL(destination->channel)->audio)->soundcard;
 
     list = ags_recall_get_children(AGS_RECALL(recall_recycling));
 
@@ -856,7 +856,7 @@ ags_recall_recycling_destination_remove_audio_signal_callback(AgsRecycling *dest
 	//	cancel_recall = ags_cancel_recall_new(AGS_RECALL(recall_audio_signal),
 	//				      NULL);
 
-	//	ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_MAIN(devout->ags_main)->main_loop)->task_thread),
+	//	ags_task_thread_append_task(AGS_TASK_THREAD(AGS_AUDIO_LOOP(AGS_MAIN(soundcard->ags_main)->main_loop)->task_thread),
 	//			    (AgsTask *) cancel_recall);
       }
 
diff --git a/src/ags/audio/ags_recycling.c b/src/ags/audio/ags_recycling.c
index 0e4405f..ddcdd86 100644
--- a/src/ags/audio/ags_recycling.c
+++ b/src/ags/audio/ags_recycling.c
@@ -22,8 +22,8 @@
 
 #include <ags/object/ags_marshal.h>
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_channel.h>
 
@@ -64,7 +64,7 @@ void ags_recycling_real_remove_audio_signal(AgsRecycling *recycling,
 
 enum{
   PROP_0,
-  PROP_DEVOUT,
+  PROP_SOUNDCARD,
 };
 
 enum{
@@ -135,19 +135,19 @@ ags_recycling_class_init(AgsRecyclingClass *recycling)
 
   /* properties */
   /**
-   * AgsRecycling:devout:
+   * AgsRecycling:soundcard:
    *
-   * The assigned #AgsDevout acting as default sink.
+   * The assigned #AgsSoundcard acting as default sink.
    * 
    * Since: 0.4.0
    */
-  param_spec = g_param_spec_object("devout\0",
-				   "assigned devout\0",
-				   "The devout it is assigned with\0",
-				   AGS_TYPE_DEVOUT,
+  param_spec = g_param_spec_object("soundcard\0",
+				   "assigned soundcard\0",
+				   "The soundcard it is assigned with\0",
+				   G_TYPE_OBJECT,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_DEVOUT,
+				  PROP_SOUNDCARD,
 				  param_spec);
 
   /*  */
@@ -203,8 +203,7 @@ ags_recycling_init(AgsRecycling *recycling)
 {
   recycling->flags = 0;
 
-  recycling->devout = NULL;
-
+  recycling->soundcard = NULL;
   recycling->channel = NULL;
 
   recycling->parent = NULL;
@@ -226,13 +225,13 @@ ags_recycling_set_property(GObject *gobject,
   recycling = AGS_RECYCLING(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
+  case PROP_SOUNDCARD:
     {
-      AgsDevout *devout;
+      GObject *soundcard;
 
-      devout = (AgsDevout *) g_value_get_object(value);
+      soundcard = (GObject *) g_value_get_object(value);
 
-      ags_recycling_set_devout(recycling, (GObject *) devout);
+      ags_recycling_set_soundcard(recycling, (GObject *) soundcard);
     }
     break;
   default:
@@ -252,8 +251,8 @@ ags_recycling_get_property(GObject *gobject,
   recycling = AGS_RECYCLING(gobject);
 
   switch(prop_id){
-  case PROP_DEVOUT:
-    g_value_set_object(value, recycling->devout);
+  case PROP_SOUNDCARD:
+    g_value_set_object(value, recycling->soundcard);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
@@ -289,28 +288,28 @@ ags_recycling_finalize(GObject *gobject)
 }
 
 /**
- * ags_recycling_set_devout:
+ * ags_recycling_set_soundcard:
  * @recycling:  an #AgsRecycling
- * @devout: the #AgsDevout to set
+ * @soundcard: the #AgsSoundcard to set
  *
- * Sets #AgsDevout to recycling.
+ * Sets #AgsSoundcard to recycling.
  *
  * Since: 0.3
  */
 void
-ags_recycling_set_devout(AgsRecycling *recycling, GObject *devout)
+ags_recycling_set_soundcard(AgsRecycling *recycling, GObject *soundcard)
 {
   /* recycling */
-  if(recycling->devout == devout)
+  if(recycling->soundcard == soundcard)
     return;
 
-  if(recycling->devout != NULL)
-    g_object_unref(recycling->devout);
+  if(recycling->soundcard != NULL)
+    g_object_unref(recycling->soundcard);
 
-  if(devout != NULL)
-    g_object_ref(devout);
+  if(soundcard != NULL)
+    g_object_ref(soundcard);
 
-  recycling->devout = (GObject *) devout;
+  recycling->soundcard = (GObject *) soundcard;
 }
 
 /**
@@ -409,7 +408,7 @@ ags_recycling_create_audio_signal_with_defaults(AgsRecycling *recycling,
     return;
   }
 
-  audio_signal->devout = template->devout;
+  audio_signal->soundcard = template->soundcard;
 
   audio_signal->recycling = (GObject *) recycling;
 
@@ -458,7 +457,7 @@ ags_recycling_create_audio_signal_with_frame_count(AgsRecycling *recycling,
 						   guint frame_count,
 						   gdouble delay, guint attack)
 {
-  AgsDevout *devout;
+  AgsSoundcard *soundcard;
   AgsAudioSignal *template;
   GList *stream, *template_stream, *template_loop;
   guint frames_copied;
@@ -468,9 +467,9 @@ ags_recycling_create_audio_signal_with_frame_count(AgsRecycling *recycling,
   /* some init */
   template = ags_audio_signal_get_template(recycling->audio_signal);
 
-  audio_signal->devout = template->devout;
+  audio_signal->soundcard = template->soundcard;
 
-  devout = AGS_DEVOUT(audio_signal->devout);
+  soundcard = AGS_SOUNDCARD(audio_signal->soundcard);
 
   audio_signal->recycling = (GObject *) recycling;
 
@@ -627,23 +626,23 @@ ags_recycling_position(AgsRecycling *start_recycling, AgsRecycling *end_region,
 
 /**
  * ags_recycling_new:
- * @devout: the #AgsDevout
+ * @soundcard: the #AgsSoundcard
  *
- * Creates a #AgsRecycling, with defaults of @devout.
+ * Creates a #AgsRecycling, with defaults of @soundcard.
  *
  * Returns: a new #AgsRecycling
  *
  * Since: 0.3
  */
 AgsRecycling*
-ags_recycling_new(GObject *devout)
+ags_recycling_new(GObject *soundcard)
 {
   AgsRecycling *recycling;
   AgsAudioSignal *audio_signal;
 
   recycling = (AgsRecycling *) g_object_new(AGS_TYPE_RECYCLING, NULL);
 
-  audio_signal = ags_audio_signal_new(devout,
+  audio_signal = ags_audio_signal_new(soundcard,
 				      (GObject *) recycling,
 				      NULL);
   audio_signal->flags |= AGS_AUDIO_SIGNAL_TEMPLATE;
diff --git a/src/ags/audio/ags_recycling.h b/src/ags/audio/ags_recycling.h
index 48e4eb3..9aa3eae 100644
--- a/src/ags/audio/ags_recycling.h
+++ b/src/ags/audio/ags_recycling.h
@@ -44,7 +44,7 @@ struct _AgsRecycling
   guint flags;
 
   GObject *channel;
-  GObject *devout;
+  GObject *soundcard;
 
   AgsRecycling *parent;
 
@@ -66,7 +66,7 @@ struct _AgsRecyclingClass
 
 GType ags_recycling_get_type();
 
-void ags_recycling_set_devout(AgsRecycling *recycling, GObject *devout);
+void ags_recycling_set_soundcard(AgsRecycling *recycling, GObject *soundcard);
 
 void ags_recycling_add_audio_signal(AgsRecycling *recycling,
 				    AgsAudioSignal *audio_signal);
@@ -86,6 +86,6 @@ gint ags_recycling_position(AgsRecycling *start_recycling, AgsRecycling *end_reg
 AgsRecycling* ags_recycling_find_next_channel(AgsRecycling *start_region, AgsRecycling *end_region,
 					      GObject *prev_channel);
 
-AgsRecycling* ags_recycling_new(GObject *devout);
+AgsRecycling* ags_recycling_new(GObject *soundcard);
 
 #endif /*__AGS_RECYCLING_H__*/
diff --git a/src/ags/audio/file/ags_audio_file.c b/src/ags/audio/file/ags_audio_file.c
index 594209d..5318fae 100644
--- a/src/ags/audio/file/ags_audio_file.c
+++ b/src/ags/audio/file/ags_audio_file.c
@@ -21,6 +21,7 @@
 #include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_playable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/audio/ags_audio_signal.h>
 
@@ -39,8 +40,6 @@ void ags_audio_file_connect(AgsConnectable *connectable);
 void ags_audio_file_disconnect(AgsConnectable *connectable);
 void ags_audio_file_finalize(GObject *object);
 
-extern AgsConfig *ags_config;
-
 enum{
   READ_BUFFER,
   LAST_SIGNAL,
@@ -120,15 +119,11 @@ ags_audio_file_connectable_interface_init(AgsConnectableInterface *connectable)
 void
 ags_audio_file_init(AgsAudioFile *audio_file)
 {
-  audio_file->devout = NULL;
+  audio_file->soundcard = NULL;
 
   audio_file->name = NULL;
 
-  audio_file->samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-							   AGS_CONFIG_DEVOUT,
-							   "samplerate\0"),
-					    NULL,
-					    10);
+  audio_file->samplerate = AGS_DEVOUT_DEFAULT_SAMPLERATE;
   audio_file->frames = 0;
   audio_file->channels = 2;
   audio_file->format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
@@ -363,7 +358,7 @@ ags_audio_file_read_audio_signal(AgsAudioFile *audio_file)
   GList *list;
 
   list = ags_playable_read_audio_signal(AGS_PLAYABLE(audio_file->file),
-					audio_file->devout,
+					audio_file->soundcard,
 					audio_file->start_channel, audio_file->audio_channels);
 
   audio_file->audio_signal = list;
@@ -421,7 +416,7 @@ ags_audio_file_flush(AgsAudioFile *audio_file)
 /**
  * ags_audio_file_new:
  * @name: the filename
- * @devout: defaults of #AgsDevout
+ * @soundcard: defaults of #AgsSoundcard
  * @start_channel: ommited channels
  * @audio_channels: number of channels to read
  *
@@ -433,7 +428,7 @@ ags_audio_file_flush(AgsAudioFile *audio_file)
  */
 AgsAudioFile*
 ags_audio_file_new(gchar *name,
-		   AgsDevout *devout,
+		   GObject *soundcard,
 		   guint start_channel, guint audio_channels)
 {
   AgsAudioFile *audio_file;
@@ -441,7 +436,7 @@ ags_audio_file_new(gchar *name,
   audio_file = (AgsAudioFile *) g_object_new(AGS_TYPE_AUDIO_FILE, NULL);
 
   audio_file->name = g_strdup(name);
-  audio_file->devout = devout;
+  audio_file->soundcard = soundcard;
   audio_file->start_channel = start_channel;
   audio_file->audio_channels = audio_channels;
 
diff --git a/src/ags/audio/file/ags_audio_file.h b/src/ags/audio/file/ags_audio_file.h
index 2804528..ccf925f 100644
--- a/src/ags/audio/file/ags_audio_file.h
+++ b/src/ags/audio/file/ags_audio_file.h
@@ -22,13 +22,6 @@
 #include <glib.h>
 #include <glib-object.h>
 
-#ifndef AGS_USE_AO
-#include <ags/audio/ags_devout.h>
-#else
-#include <ags/audio/ags_libao.h>
-#endif
-
-
 #define AGS_TYPE_AUDIO_FILE                (ags_audio_file_get_type())
 #define AGS_AUDIO_FILE(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_AUDIO_FILE, AgsAudioFile))
 #define AGS_AUDIO_FILE_CLASS(class)        (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_AUDIO_FILE, AgsAudioFileClass))
@@ -43,8 +36,8 @@ struct _AgsAudioFile
 {
   GObject object;
 
-  AgsDevout *devout;
-
+  GObject *soundcard;
+  
   gchar *name;
   guint samplerate;
   guint frames;
@@ -79,7 +72,7 @@ void ags_audio_file_write(AgsAudioFile *audio_file,
 void ags_audio_file_flush(AgsAudioFile *audio_file);
 
 AgsAudioFile* ags_audio_file_new(gchar *name,
-				 AgsDevout *devout,
+				 GObject *soundcard,
 				 guint start_channel, guint audio_channels);
 
 #endif /*__AGS_AUDIO_FILE_H__*/
diff --git a/src/ags/audio/recall/ags_buffer_audio_signal.c b/src/ags/audio/recall/ags_buffer_audio_signal.c
index 34c10f9..1f23d95 100644
--- a/src/ags/audio/recall/ags_buffer_audio_signal.c
+++ b/src/ags/audio/recall/ags_buffer_audio_signal.c
@@ -62,7 +62,8 @@ 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 AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 GType
 ags_buffer_audio_signal_get_type()
diff --git a/src/ags/audio/recall/ags_delay_audio.c b/src/ags/audio/recall/ags_delay_audio.c
index e5a4504..f4a25c9 100644
--- a/src/ags/audio/recall/ags_delay_audio.c
+++ b/src/ags/audio/recall/ags_delay_audio.c
@@ -51,7 +51,8 @@ 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 AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 /**
  * SECTION:ags_delay_audio
diff --git a/src/ags/audio/recall/ags_peak_channel.c b/src/ags/audio/recall/ags_peak_channel.c
index 01d7e37..601296b 100644
--- a/src/ags/audio/recall/ags_peak_channel.c
+++ b/src/ags/audio/recall/ags_peak_channel.c
@@ -41,7 +41,8 @@ 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 AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 /**
  * SECTION:ags_peak_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 ed482a6..906d35b 100644
--- a/src/ags/audio/recall/ags_play_notation_audio_run.c
+++ b/src/ags/audio/recall/ags_play_notation_audio_run.c
@@ -75,7 +75,8 @@ 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 AgsConfig *ags_config;
+extern pthread_key_t config;
+AgsConfig *ags_config =  pthread_getspecific(config);
 
 /**
  * SECTION:ags_play_notation_audio_run
diff --git a/src/ags/audio/recall/ags_stream_channel.c b/src/ags/audio/recall/ags_stream_channel.c
index 2e3c50d..19f27d1 100644
--- a/src/ags/audio/recall/ags_stream_channel.c
+++ b/src/ags/audio/recall/ags_stream_channel.c
@@ -58,7 +58,8 @@ 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 AgsConfig *ags_config;
+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[] = {
diff --git a/src/ags/audio/task/ags_apply_synth.c b/src/ags/audio/task/ags_apply_synth.c
index 1c509e3..ce8ea9b 100644
--- a/src/ags/audio/task/ags_apply_synth.c
+++ b/src/ags/audio/task/ags_apply_synth.c
@@ -36,8 +36,6 @@ void ags_apply_synth_finalize(GObject *gobject);
 
 void ags_apply_synth_launch(AgsTask *task);
 
-extern AgsConfig *ags_config;
-
 /**
  * SECTION:ags_apply_synth
  * @short_description: apply synth to channel
@@ -160,10 +158,10 @@ ags_apply_synth_finalize(GObject *gobject)
 void
 ags_apply_synth_launch(AgsTask *task)
 {
-  AgsDevout *devout;
   AgsApplySynth *apply_synth;
   AgsChannel *channel;
   AgsAudioSignal *audio_signal;
+  GObject *soundcard;
   GList *stream;
   gint wave;
   guint attack, frame_count, stop, phase, frequency;
@@ -187,20 +185,20 @@ ags_apply_synth_launch(AgsTask *task)
 				    double volume){
     switch(wave){
     case AGS_APPLY_SYNTH_SIN:
-      ags_synth_sin(devout, (signed short *) stream->data,
+      ags_synth_sin(soundcard, (signed short *) stream->data,
 		    offset, frequency, phase, frame_count,
 		    volume);
       break;
     case AGS_APPLY_SYNTH_SAW:
-      ags_synth_saw(devout, (signed short *) stream->data,
+      ags_synth_saw(soundcard, (signed short *) stream->data,
 		    offset, frequency, phase, frame_count,
 		    volume);
       break;
     case AGS_APPLY_SYNTH_SQUARE:
-      ags_synth_square(devout, (signed short *) stream->data, offset, frequency, phase, frame_count, volume);
+      ags_synth_square(soundcard, (signed short *) stream->data, offset, frequency, phase, frame_count, volume);
       break;
     case AGS_APPLY_SYNTH_TRIANGLE:
-      ags_synth_triangle(devout, (signed short *) stream->data, offset, frequency, phase, frame_count, volume);
+      ags_synth_triangle(soundcard, (signed short *) stream->data, offset, frequency, phase, frame_count, volume);
       break;
     default:
       g_warning("ags_apply_synth_launch_write: warning no wave selected\n\0");
@@ -209,17 +207,12 @@ ags_apply_synth_launch(AgsTask *task)
 
   apply_synth = AGS_APPLY_SYNTH(task);
   channel = apply_synth->start_channel;
-  devout = AGS_DEVOUT(AGS_AUDIO(channel->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_AUDIO(channel->audio)->soundcard;
+  ags_soundcard_get_presets(AGS_SOUNDCARD(soundcard),
+			    NULL,
+			    &samplerate,
+			    &buffer_size,
+			    NULL);
   
   wave = (gint) apply_synth->wave;
   g_message("wave = %d\n\0", wave);
diff --git a/src/ags/file/ags_file.c b/src/ags/file/ags_file.c
index cee592f..d31b99d 100644
--- a/src/ags/file/ags_file.c
+++ b/src/ags/file/ags_file.c
@@ -114,7 +114,8 @@ enum{
 static gpointer ags_file_parent_class = NULL;
 static guint file_signals[LAST_SIGNAL] = { 0 };
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 GType
 ags_file_get_type (void)
@@ -789,9 +790,9 @@ ags_file_real_write(AgsFile *file)
   //TODO:JK: implement me
 
   /* write main */
-  ags_file_write_main(file,
-		      file->root_node,
-		      file->application_context);
+  ags_file_write_application_context(file,
+				     file->root_node,
+				     file->application_context);
 
   /* write embedded audio */
   //TODO:JK: implement me
@@ -962,8 +963,8 @@ ags_file_real_read(AgsFile *file)
   while(child != NULL){
     if(child->type == XML_ELEMENT_NODE){
       if(!xmlStrncmp("ags-application-context\0",
-			   child->name,
-			   9)){
+		     child->name,
+		     9)){
 	current_context = NULL;
 	
 	ags_file_read_application_context(file,
@@ -1076,8 +1077,8 @@ ags_file_read_application_context(AgsFile *file, xmlNode *node, GObject **applic
   GList *list;
   gchar *context;
 
-  context = xmlNodeGetProp(node,
-			   "context\0");
+  context = xmlGetProp(node,
+		       "context\0");
   list = ags_application_context->sibling;
   
   while(list != NULL){
diff --git a/src/ags/file/ags_file_sound.c b/src/ags/file/ags_file_sound.c
index d4d0c64..23fdaa8 100644
--- a/src/ags/file/ags_file_sound.c
+++ b/src/ags/file/ags_file_sound.c
@@ -84,7 +84,8 @@ void ags_file_read_port_resolve_port_value(AgsFileLookup *file_lookup,
 void ags_file_read_task_resolve_parameter(AgsFileLookup *file_lookup,
 					  AgsTask *task);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_file_read_devout(AgsFile *file, xmlNode *node, AgsDevout **devout)
@@ -1640,14 +1641,7 @@ ags_file_read_recall(AgsFile *file, xmlNode *node, AgsRecall **recall)
   AgsRecall *gobject;
   xmlNode *child;
   xmlChar *type_name;
-  static gboolean recall_type_is_registered = FALSE;
 
-  if(!recall_type_is_registered){
-    ags_main_register_recall_type();
-
-    recall_type_is_registered = TRUE;
-  }
-  
   if(*recall == NULL){
     GType type;
 
@@ -4846,7 +4840,6 @@ ags_file_read_task(AgsFile *file, xmlNode *node, AgsTask **task)
   xmlNode *child;
   xmlChar *type_name;
   guint n_params;
-  static gboolean task_type_is_registered = FALSE;
 
   if(*task == NULL){
     GType type;
@@ -4854,12 +4847,6 @@ ags_file_read_task(AgsFile *file, xmlNode *node, AgsTask **task)
     type_name = xmlGetProp(node,
 			   AGS_FILE_TYPE_PROP);
 
-    if(!task_type_is_registered){
-      ags_main_register_task_type();
-
-      task_type_is_registered = TRUE;
-    }
-
     type = g_type_from_name(type_name);
 
     gobject = g_object_new(type,
diff --git a/src/ags/file/ags_file_thread.c b/src/ags/file/ags_file_thread.c
index cbe2851..889e4c7 100644
--- a/src/ags/file/ags_file_thread.c
+++ b/src/ags/file/ags_file_thread.c
@@ -57,7 +57,8 @@ void ags_file_read_audio_loop_resolve_devout_thread(AgsFileLookup *file_lookup,
 void ags_file_write_audio_loop_resolve_devout_thread(AgsFileLookup *file_lookup,
 						     AgsAudioLoop *audio_loop);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_file_read_thread(AgsFile *file, xmlNode *node, AgsThread **thread)
@@ -67,7 +68,6 @@ ags_file_read_thread(AgsFile *file, xmlNode *node, AgsThread **thread)
   AgsThread *gobject;
   xmlNode *child;
   xmlChar *type_name;
-  static gboolean thread_type_is_registered = FALSE;
 
   if(*thread != NULL &&
      AGS_IS_RETURNABLE_THREAD(*thread)){
@@ -77,12 +77,6 @@ ags_file_read_thread(AgsFile *file, xmlNode *node, AgsThread **thread)
   if(*thread == NULL){
     GType type;
 
-    if(!thread_type_is_registered){
-      ags_main_register_thread_type();
-
-      thread_type_is_registered = TRUE;
-    }
-
     type_name = xmlGetProp(node,
 			   AGS_FILE_TYPE_PROP);
 
diff --git a/src/ags/file/ags_file_util.c b/src/ags/file/ags_file_util.c
index 9e40ae3..dbe1b41 100644
--- a/src/ags/file/ags_file_util.c
+++ b/src/ags/file/ags_file_util.c
@@ -45,7 +45,8 @@ void ags_file_util_write_value_resolve(AgsFileLookup *file_lookup,
 void ags_file_util_read_file_link_launch(AgsFileLaunch *file_launch,
 					 AgsFileLink *file_link);
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 
 void
 ags_file_util_read_value(AgsFile *file,
diff --git a/src/ags/main.c b/src/ags/main.c
index 57fb0a0..9859d6a 100644
--- a/src/ags/main.c
+++ b/src/ags/main.c
@@ -20,7 +20,11 @@
 
 #include <ags/object/ags_application_context.h>
 #include <ags/object/ags_config.h>
+#include <ags-lib/object/ags_connectable.h>
 
+#include <ags/server/ags_server_application_context.h>
+
+#include <ags/thread/ags_thread_init.h>
 #include <ags/thread/ags_thread_application_context.h>
 #include <ags/thread/ags_thread-posix.h>
 #include <ags/thread/ags_single_thread.h>
@@ -33,11 +37,11 @@
 #include <ags/audio/ags_audio_application_context.h>
 #include <ags/audio/ags_devout.h>
 
+#include <ags/X/ags_xorg_init.h>
 #include <ags/X/ags_xorg_application_context.h>
 #include <ags/thread/ags_gui_thread.h>
 #include <ags/X/ags_window.h>
 
-#include <gtk/gtk.h>
 #include <libintl.h>
 #include <stdio.h>
 #include <signal.h>
@@ -45,9 +49,17 @@
 #include <sys/resource.h>
 #include <mcheck.h>
 
+#include <ao/ao.h>
+#include <libinstpatch/libinstpatch.h>
+
 #include <X11/Xlib.h>
 
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+
 #include <gdk/gdk.h>
+#include <gtk/gtk.h>
 
 #include <sys/types.h>
 #include <pwd.h>
@@ -62,14 +74,13 @@ extern void ags_thread_suspend_handler(int sig);
 
 static sigset_t ags_wait_mask;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern AgsThreadApplicationContext *ags_thread_application_context;
 extern AgsServerApplicationContext *ags_server_application_context;
 extern AgsAudioApplicationContext *ags_audio_application_context;
 extern AgsXorgApplicationContext *ags_xorg_application_context;
 
-extern AgsConfig *ags_config;
-
 extern AgsLadspaManager *ags_ladspa_manager;
 
 struct sigaction ags_sigact;
@@ -190,13 +201,24 @@ main(int argc, char **argv)
   pw = getpwuid(uid);
 
   /* init gsequencer */
+  LIBXML_TEST_VERSION;
+  
+  ao_initialize();
+
+  g_thread_init(NULL);  
+  gtk_init(&argc, &argv);
+
+  ags_init_context(argc, argv);
+  ags_thread_init(argc, argv);
+  ags_audio_init_context(argc, argv);
+  ags_gui_init_context(argc, &argv);
   ags_xorg_init_context(&argc, &argv);
 
   /* Declare ourself as a real time task */
   param.sched_priority = AGS_RT_PRIORITY;
 
   if(sched_setscheduler(0, SCHED_FIFO, &param) == -1) {
-    perror("sched_setscheduler failed\0");
+    //    perror("sched_setscheduler failed\0");
   }
 
   mlockall(MCL_CURRENT | MCL_FUTURE);
@@ -232,9 +254,6 @@ main(int argc, char **argv)
     uid_t uid;
     gchar *wdir, *config_file;
   
-    ags_config_load_from_file(ags_config,
-			      config_file);
-
     uid = getuid();
     pw = getpwuid(uid);
 
@@ -246,6 +265,9 @@ main(int argc, char **argv)
 				  wdir,
 				  AGS_DEFAULT_CONFIG);
 
+    ags_config_load_from_file(ags_config,
+			      config_file);
+
     g_free(wdir);
     g_free(config_file);
 
diff --git a/src/ags/object/ags_application_context.c b/src/ags/object/ags_application_context.c
index ecddaa4..db73a4a 100644
--- a/src/ags/object/ags_application_context.c
+++ b/src/ags/object/ags_application_context.c
@@ -62,9 +62,6 @@ enum{
 static gpointer ags_application_context_parent_class = NULL;
 static guint application_context_signals[LAST_SIGNAL];
 
-AgsApplicationContext *ags_application_context = NULL;
-extern AgsConfig *ags_config;
-
 GType
 ags_application_context_get_type()
 {
@@ -108,10 +105,10 @@ ags_application_context_class_init(AgsApplicationContextClass *application_conte
   GObjectClass *gobject;
   GParamSpec *param_spec;
 
-  ags_application_context_parent_class = g_type_class_peek_parent(ags_application_context);
+  ags_application_context_parent_class = g_type_class_peek_parent(application_context);
 
   /* GObjectClass */
-  gobject = (GObjectClass *) ags_application_context;
+  gobject = (GObjectClass *) application_context;
 
   gobject->set_property = ags_application_context_set_property;
   gobject->get_property = ags_application_context_get_property;
@@ -135,6 +132,22 @@ ags_application_context_class_init(AgsApplicationContextClass *application_conte
 				  PROP_MAIN_LOOP,
 				  param_spec);
 
+  /**
+   * AgsApplicationContext:config:
+   *
+   * The assigned config.
+   * 
+   * Since: 0.4
+   */
+  param_spec = g_param_spec_object("config\0",
+				   "config of application context\0",
+				   "The config what application context is running in\0",
+				   G_TYPE_OBJECT,
+				   G_PARAM_READABLE | G_PARAM_WRITABLE);
+  g_object_class_install_property(gobject,
+				  PROP_CONFIG,
+				  param_spec);
+
   /* AgsApplicationContextClass */
   application_context->load_config = ags_application_context_real_load_config;
   application_context->register_types = ags_application_context_real_register_types;
@@ -185,10 +198,10 @@ ags_application_context_init(AgsApplicationContext *application_context)
 {
   GFile *file;
   struct passwd *pw;
-  uid_t uid;
-  gchar *wdir, *filename;
+  //  uid_t uid;
+  //  gchar *wdir, *filename;
   pthread_mutexattr_t mutexattr;
-    
+  /*
   uid = getuid();
   pw = getpwuid(uid);
   
@@ -201,7 +214,7 @@ ags_application_context_init(AgsApplicationContext *application_context)
   g_file_make_directory(file,
 			NULL,
 			NULL);
-
+  */
   application_context->flags = 0;
 
   application_context->version = AGS_VERSION;
@@ -448,18 +461,7 @@ ags_application_context_find_main_loop(GList *application_context)
 }
 
 AgsApplicationContext*
-ags_application_context_get_instance()
-{
-  if(ags_application_context == NULL){
-    ags_application_context = ags_application_context_new(NULL,
-							  ags_config);
-  }
-  
-  return(ags_application_context);
-}
-
-AgsApplicationContext*
-ags_application_context_new(AgsMainLoop *main_loop,
+ags_application_context_new(GObject *main_loop,
 			    AgsConfig *config)
 {
   AgsApplicationContext *application_context;
diff --git a/src/ags/object/ags_application_context.h b/src/ags/object/ags_application_context.h
index b88e277..51db5e8 100644
--- a/src/ags/object/ags_application_context.h
+++ b/src/ags/object/ags_application_context.h
@@ -25,7 +25,6 @@
 #include <ags/lib/ags_log.h>
 
 #include <ags/object/ags_config.h>
-#include <ags/object/ags_main_loop.h>
 
 #include <ags/file/ags_file.h>
 
@@ -42,6 +41,8 @@
 #define AGS_DEFAULT_DIRECTORY ".gsequencer\0"
 #define AGS_DEFAULT_CONFIG "ags.conf\0"
 
+#define AGS_INIT_CONTEXT_TSD_APPLICATION_CONTEXT "ags-application-context\0"
+
 typedef struct _AgsApplicationContext AgsApplicationContext;
 typedef struct _AgsApplicationContextClass AgsApplicationContextClass;
 
@@ -104,8 +105,7 @@ void ags_application_context_remove_sibling(AgsApplicationContext *application_c
 AgsApplicationContext* ags_application_context_find_default(GList *application_context);
 GList* ags_application_context_find_main_loop(GList *application_context);
 
-AgsApplicationContext* ags_application_context_get_instance();
-AgsApplicationContext* ags_application_context_new(AgsMainLoop *main_loop,
+AgsApplicationContext* ags_application_context_new(GObject *main_loop,
 						   AgsConfig *config);
 
 #endif /*__AGS_APPLICATION_CONTEXT_H__*/
diff --git a/src/ags/object/ags_config.c b/src/ags/object/ags_config.c
index 6d65a3f..31b8950 100644
--- a/src/ags/object/ags_config.c
+++ b/src/ags/object/ags_config.c
@@ -81,7 +81,7 @@ enum{
   PROP_APPLICATION_CONTEXT,
 };
 
-AgsConfig *ags_config;
+extern AgsConfig *ags_config = NULL;
 static gpointer ags_config_parent_class = NULL;
 static guint config_signals[LAST_SIGNAL];
 
diff --git a/src/ags/object/ags_config.h b/src/ags/object/ags_config.h
index c2a7882..173fcb3 100644
--- a/src/ags/object/ags_config.h
+++ b/src/ags/object/ags_config.h
@@ -31,6 +31,8 @@
 #define AGS_CONFIG_DEFAULT_VERSION "0.4.3\0"
 #define AGS_CONFIG_DEFAULT_BUILD_ID "Sat Apr  4 02:44:55 GMT 2015\0"
 
+#define AGS_INIT_CONTEXT_TSD_CONFIG "ags-config\0"
+
 #define AGS_CONFIG_GENERIC "generic\0"
 #define AGS_CONFIG_THREAD "thread\0"
 #define AGS_CONFIG_DEVOUT "device\0"
diff --git a/src/ags/object/ags_init.c b/src/ags/object/ags_init.c
index 788ad83..2b1faf8 100644
--- a/src/ags/object/ags_init.c
+++ b/src/ags/object/ags_init.c
@@ -18,23 +18,38 @@
 
 #include <ags/object/ags_init.h>
 
+#include <ags/object/ags_application_context.h>
 #include <ags/object/ags_config.h>
 
-extern AgsApplicationContext *ags_application_context = NULL;
-
-extern AgsConfig *ags_config;
+static pthread_key_t config;
+static pthread_key_t application_context;
 
 void
 ags_init_context(int *argc, gchar ***argv)
 {
+  AgsApplicationContext *ags_application_context;
+  AgsConfig *ags_config;
   gchar *filename;
 
-  LIBXML_TEST_VERSION;
-
   /* instantiate config */
-  ags_config = ags_config_new();
+  ags_config = ags_config_new(NULL);
   
   /* instantiate application context */
-  ags_audio_application_context = ags_audio_application_context_new(NULL,
-								    ags_config);
+  ags_application_context = ags_application_context_new(NULL,
+							ags_config);
+  g_object_set(config,
+	       "application-context\0", ags_application_context,
+	       NULL);
+
+  /* set TSD-Data - application context */
+  pthread_key_create(application_context,
+		     NULL);
+  pthread_setspecific(application_context,
+		      ags_application_context);
+
+  /* set TSD-Data - config */
+  pthread_key_create(config,
+		     NULL);
+  pthread_setspecific(config,
+		      ags_config);
 }
diff --git a/src/ags/object/ags_main_loop.c b/src/ags/object/ags_main_loop.c
index 7dd53c9..0956a15 100644
--- a/src/ags/object/ags_main_loop.c
+++ b/src/ags/object/ags_main_loop.c
@@ -60,25 +60,25 @@ ags_main_loop_base_init(AgsMainLoopInterface *interface)
 }
 
 void
-ags_main_loop_set_async_queue(AgsMainLoop *main_loop, AgsAsyncQueue *async_queue)
+ags_main_loop_set_application_context(AgsMainLoop *main_loop, AgsApplicationContext *application_context)
 {
   AgsMainLoopInterface *main_loop_interface;
 
   g_return_if_fail(AGS_IS_MAIN_LOOP(main_loop));
   main_loop_interface = AGS_MAIN_LOOP_GET_INTERFACE(main_loop);
-  g_return_if_fail(main_loop_interface->set_async_queue);
-  main_loop_interface->set_async_queue(main_loop, async_queue);
+  g_return_if_fail(main_loop_interface->set_application_context);
+  main_loop_interface->set_application_context(main_loop, application_context);
 }
 
-AgsAsyncQueue*
-ags_main_loop_get_async_queue(AgsMainLoop *main_loop)
+AgsApplicationContext*
+ags_main_loop_get_application_context(AgsMainLoop *main_loop)
 {
   AgsMainLoopInterface *main_loop_interface;
 
   g_return_val_if_fail(AGS_IS_MAIN_LOOP(main_loop), NULL);
   main_loop_interface = AGS_MAIN_LOOP_GET_INTERFACE(main_loop);
-  g_return_val_if_fail(main_loop_interface->get_async_queue, NULL);
-  main_loop_interface->get_async_queue(main_loop);
+  g_return_val_if_fail(main_loop_interface->get_application_context, NULL);
+  main_loop_interface->get_application_context(main_loop);
 }
 
 /**
diff --git a/src/ags/object/ags_main_loop.h b/src/ags/object/ags_main_loop.h
index 37307f2..d46bfba 100644
--- a/src/ags/object/ags_main_loop.h
+++ b/src/ags/object/ags_main_loop.h
@@ -21,7 +21,7 @@
 
 #include <glib-object.h>
 
-#include <ags/thread/ags_async_queue.h>
+#include <ags/object/ags_application_context.h>
 
 #define AGS_TYPE_MAIN_LOOP                    (ags_main_loop_get_type())
 #define AGS_MAIN_LOOP(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_MAIN_LOOP, AgsMainLoop))
@@ -37,8 +37,8 @@ struct _AgsMainLoopInterface
 {
   GTypeInterface interface;
 
-  void (*set_async_queue)(AgsMainLoop *main_loop, AgsAsyncQueue *async_queue);
-  AgsAsyncQueue* (*get_async_queue)(AgsMainLoop *main_loop);
+  void (*set_application_context)(AgsMainLoop *main_loop, AgsApplicationContext *application_context);
+  AgsApplicationContext* (*get_application_context)(AgsMainLoop *main_loop);
   
   void (*set_tic)(AgsMainLoop *main_loop, guint tic);
   guint (*get_tic)(AgsMainLoop *main_loop);
@@ -49,8 +49,8 @@ struct _AgsMainLoopInterface
 
 GType ags_main_loop_get_type();
 
-void ags_main_loop_set_async_queue(AgsMainLoop *main_loop, AgsAsyncQueue *async_queue);
-AgsAsyncQueue* ags_main_loop_get_async_queue(AgsMainLoop *main_loop);
+void ags_main_loop_set_application_context(AgsMainLoop *main_loop, AgsApplicationContext *application_context);
+AgsApplicationContext* ags_main_loop_get_application_context(AgsMainLoop *main_loop);
 
 void ags_main_loop_set_tic(AgsMainLoop *main_loop, guint tic);
 guint ags_main_loop_get_tic(AgsMainLoop *main_loop);
diff --git a/src/ags/object/ags_playable.c b/src/ags/object/ags_playable.c
index 5e6b53f..1e32555 100644
--- a/src/ags/object/ags_playable.c
+++ b/src/ags/object/ags_playable.c
@@ -25,8 +25,6 @@
 
 void ags_playable_base_init(AgsPlayableInterface *interface);
 
-extern AgsConfig *ags_config;
-
 /**
  * SECTION:ags_playable
  * @short_description: read/write audio
@@ -439,6 +437,7 @@ ags_playable_read_audio_signal(AgsPlayable *playable,
 			       guint start_channel, guint channels_to_read)
 {
   AgsAudioSignal *audio_signal;
+  AgsConfig *config;
   GList *stream, *list, *list_beginning;
   short *buffer;
   guint channels;
@@ -451,19 +450,21 @@ ags_playable_read_audio_signal(AgsPlayable *playable,
   guint i, j, k, i_stop, j_stop;
   GError *error;
 
+  config = AGS_APPLICATION_CONTEXT(devout->application_context)->config;
+  
   ags_playable_info(playable,
 		    &channels, &frames,
 		    &loop_start, &loop_end,
 		    &error);
 
-  samplerate = g_ascii_strtoull(ags_config_get(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
+  samplerate = g_ascii_strtoull(ags_config_get_value(config,
+						     AGS_CONFIG_DEVOUT,
+						     "samplerate\0"),
 				NULL,
 				10);
-  buffer_size = g_ascii_strtoull(ags_config_get(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\0"),
+  buffer_size = g_ascii_strtoull(ags_config_get_value(config,
+						      AGS_CONFIG_DEVOUT,
+						      "buffer-size\0"),
 				 NULL,
 				 10);
   length = (guint) ceil((double)(frames) / (double)(buffer_size));
diff --git a/src/ags/object/ags_soundcard.c b/src/ags/object/ags_soundcard.c
index cf9a8b7..ed3f4bc 100644
--- a/src/ags/object/ags_soundcard.c
+++ b/src/ags/object/ags_soundcard.c
@@ -80,6 +80,68 @@ ags_soundcard_class_init(AgsSoundcardInterface *interface)
 	       G_TYPE_UINT);
 }
 
+AgsApplicationContext*
+ags_soundcard_get_application_context(AgsSoundcard *soundcard)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_val_if_fail(AGS_IS_SOUNDCARD(soundcard), NULL);
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_val_if_fail(soundcard_interface->get_application_context, NULL);
+  return(soundcard_interface->get_application_context(soundcard));
+}
+
+void
+ags_soundcard_set_application_context(AgsSoundcard *soundcard,
+				      AgsApplicationContext *application_context)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_if_fail(AGS_IS_SOUNDCARD(soundcard));
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_if_fail(soundcard_interface->set_application_context);
+  soundcard_interface->set_application_context(soundcard,
+					       application_context);
+}
+
+void
+ags_soundcard_set_presets(AgsSoundcard *soundcard,
+			  guint channels,
+			  guint rate,
+			  guint buffer_size,
+			  guint format)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_if_fail(AGS_IS_SOUNDCARD(soundcard));
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_if_fail(soundcard_interface->set_presets);
+  soundcard_interface->set_presets(soundcard,
+				   channels,
+				   rate,
+				   buffer_size,
+				   format);
+}
+
+void
+ags_soundcard_get_presets(AgsSoundcard *soundcard,
+			  guint *channels,
+			  guint *rate,
+			  guint *buffer_size,
+			  guint *format)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_if_fail(AGS_IS_SOUNDCARD(soundcard));
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_if_fail(soundcard_interface->get_presets);
+  soundcard_interface->get_presets(soundcard,
+				   channels,
+				   rate,
+				   buffer_size,
+				   format);
+}
+
 /**
  * ags_soundcard_play:
  * @soundcard an #AgsSoundcard
diff --git a/src/ags/object/ags_soundcard.h b/src/ags/object/ags_soundcard.h
index 243ab78..e56a7d8 100644
--- a/src/ags/object/ags_soundcard.h
+++ b/src/ags/object/ags_soundcard.h
@@ -21,7 +21,7 @@
 
 #include <glib-object.h>
 
-#include <ags/file/ags_file.h>
+#include <ags/object/ags_application_context.h>
 
 #define AGS_TYPE_SOUNDCARD                    (ags_soundcard_get_type())
 #define AGS_SOUNDCARD(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_SOUNDCARD, AgsSoundcard))
@@ -37,6 +37,21 @@ struct _AgsSoundcardInterface
 {
   GTypeInterface interface;
 
+  AgsApplicationContext* (*get_application_context)(AgsSoundcard *soundcard);
+  void (*set_application_context)(AgsSoundcard *soundcard,
+				  AgsApplicationContext *application_context);
+  
+  void (*set_presets)(AgsSoundcard *soundcard,
+		      guint channels,
+		      guint rate,
+		      guint buffer_size,
+		      guint format);
+  void (*get_presets)(AgsSoundcard *soundcard,
+		      guint *channels,
+		      guint *rate,
+		      guint *buffer_size,
+		      guint *format);
+  
   void (*list_cards)(AgsSoundcard *soundcard,
 		     GList **card_id, GList **card_name);
   void (*pcm_info)(AgsSoundcard *soundcard, gchar *card_id,
@@ -64,6 +79,21 @@ struct _AgsSoundcardInterface
 
 GType ags_soundcard_get_type();
 
+AgsApplicationContext* ags_soundcard_get_application_context(AgsSoundcard *soundcard);
+void ags_soundcard_set_application_context(AgsSoundcard *soundcard,
+					   AgsApplicationContext *application_context);
+
+void ags_soundcard_set_presets(AgsSoundcard *soundcard,
+			       guint channels,
+			       guint rate,
+			       guint buffer_size,
+			       guint format);
+void ags_soundcard_get_presets(AgsSoundcard *soundcard,
+			       guint *channels,
+			       guint *rate,
+			       guint *buffer_size,
+			       guint *format);
+
 void ags_soundcard_list_cards(AgsSoundcard *soundcard,
 			      GList **card_id, GList **card_name);
 void ags_soundcard_pcm_info(AgsSoundcard *soundcard, gchar *card_id,
diff --git a/src/ags/server/ags_server.c b/src/ags/server/ags_server.c
index 29efdfa..5f9b9ba 100644
--- a/src/ags/server/ags_server.c
+++ b/src/ags/server/ags_server.c
@@ -44,7 +44,8 @@ static guint server_signals[LAST_SIGNAL];
 
 static GList *ags_server_list = NULL;
 
-extern AgsApplicationContext *ags_application_context;
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern AgsServerApplicationContext *ags_server_application_context;
 
 GType
diff --git a/src/ags/server/ags_server_application_context.c b/src/ags/server/ags_server_application_context.c
index b5bc26e..9945c25 100644
--- a/src/ags/server/ags_server_application_context.c
+++ b/src/ags/server/ags_server_application_context.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include <ags/server/ags_server_application_context.h>
+
 #include <ags-lib/object/ags_connectable.h>
 
 void ags_server_application_context_class_init(AgsServerApplicationContextClass *server_application_context);
@@ -33,8 +35,11 @@ void ags_server_application_context_connect(AgsConnectable *connectable);
 void ags_server_application_context_disconnect(AgsConnectable *connectable);
 void ags_server_application_context_finalize(GObject *gobject);
 
+static gpointer ags_server_application_context_parent_class = NULL;
 static AgsConnectableInterface* ags_server_application_context_parent_connectable_interface;
 
+AgsServerApplicationContext *ags_server_application_context = NULL;
+
 GType
 ags_server_application_context_get_type()
 {
@@ -81,7 +86,7 @@ ags_server_application_context_class_init(AgsServerApplicationContextClass *serv
   ags_server_application_context_parent_class = g_type_class_peek_parent(ags_server_application_context);
 
   /* GObjectClass */
-  gobject = (GObjectClass *) ags_server_application_context;
+  gobject = (GObjectClass *) server_application_context;
 
   gobject->set_property = ags_server_application_context_set_property;
   gobject->get_property = ags_server_application_context_get_property;
@@ -89,10 +94,10 @@ ags_server_application_context_class_init(AgsServerApplicationContextClass *serv
   gobject->finalize = ags_server_application_context_finalize;
 
   /* AgsServerApplicationContextClass */
-  application_context = (AgsApplicationContextClass *) server_application_context_class;
+  application_context = (AgsApplicationContextClass *) server_application_context;
   
-  application_context->load_config = ags_server_application_context_load_config;
-  application_context->register_types = ags_server_application_context_register_types;
+  application_context->load_config = NULL;
+  application_context->register_types = NULL;
 }
 
 void
@@ -151,7 +156,7 @@ ags_server_application_context_connect(AgsConnectable *connectable)
 
   server_application_context = AGS_SERVER_APPLICATION_CONTEXT(connectable);
 
-  if((AGS_SERVER_APPLICATION_CONTEXT_CONNECTED & (server_application_context->flags)) != 0){
+  if((AGS_APPLICATION_CONTEXT_CONNECTED & (AGS_APPLICATION_CONTEXT(server_application_context)->flags)) != 0){
     return;
   }
 
@@ -165,7 +170,7 @@ ags_server_application_context_disconnect(AgsConnectable *connectable)
 
   server_application_context = AGS_SERVER_APPLICATION_CONTEXT(connectable);
 
-  if((AGS_SERVER_APPLICATION_CONTEXT_CONNECTED & (server_application_context->flags)) == 0){
+  if((AGS_APPLICATION_CONTEXT_CONNECTED & (AGS_APPLICATION_CONTEXT(server_application_context)->flags)) == 0){
     return;
   }
 
@@ -183,7 +188,7 @@ ags_server_application_context_finalize(GObject *gobject)
 }
 
 AgsServerApplicationContext*
-ags_server_application_context_new(AgsMainLoop *main_loop,
+ags_server_application_context_new(GObject *main_loop,
 				   AgsConfig *config)
 {
   AgsServerApplicationContext *server_application_context;
diff --git a/src/ags/server/ags_server_application_context.h b/src/ags/server/ags_server_application_context.h
index d28d9b4..3a406c6 100644
--- a/src/ags/server/ags_server_application_context.h
+++ b/src/ags/server/ags_server_application_context.h
@@ -73,7 +73,7 @@ struct _AgsServerApplicationContextClass
 
 GType ags_server_application_context_get_type();
 
-AgsServerApplicationContext* ags_server_application_context_new(AgsMainLoop *main_loop,
+AgsServerApplicationContext* ags_server_application_context_new(GObject *main_loop,
 								AgsConfig *config);
 
 #endif /*__AGS_SERVER_APPLICATION_CONTEXT_H__*/
diff --git a/src/ags/server/ags_server_init.c b/src/ags/server/ags_server_init.c
index 24974d3..bce7422 100644
--- a/src/ags/server/ags_server_init.c
+++ b/src/ags/server/ags_server_init.c
@@ -20,7 +20,10 @@
 
 #include <ags/object/ags_application_context.h>
 
-extern AgsApplicationContext *ags_application_context = NULL;
+#include <ags/server/ags_server_application_context.h>
+
+extern pthread_key_t application_context;
+AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
 extern AgsServerApplicationContext *ags_server_application_context;
 
 void
@@ -36,7 +39,7 @@ ags_server_init_context(int *argc, gchar ***argv)
 
   /* instantiate application context */
   ags_server_application_context = ags_server_application_context_new(NULL,
-									NULL);
+								      NULL);
   ags_application_context_add_sibling(ags_application_context,
 				      ags_server_application_context);
 }
diff --git a/src/ags/server/ags_service_provider.h b/src/ags/server/ags_service_provider.h
new file mode 100644
index 0000000..87474e2
--- /dev/null
+++ b/src/ags/server/ags_service_provider.h
@@ -0,0 +1,47 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __AGS_SERVICE_PROVIDER_H__
+#define __AGS_SERVICE_PROVIDER_H__
+
+#include <glib-object.h>
+
+#include <ags/server/ags_server.h>
+
+#define AGS_TYPE_SERVICE_PROVIDER                    (ags_service_provider_get_type())
+#define AGS_SERVICE_PROVIDER(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProvider))
+#define AGS_SERVICE_PROVIDER_INTERFACE(vtable)       (G_TYPE_CHECK_CLASS_CAST((vtable), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProviderInterface))
+#define AGS_IS_SERVICE_PROVIDER(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_SERVICE_PROVIDER))
+#define AGS_IS_SERVICE_PROVIDER_INTERFACE(vtable)    (G_TYPE_CHECK_CLASS_TYPE((vtable), AGS_TYPE_SERVICE_PROVIDER))
+#define AGS_SERVICE_PROVIDER_GET_INTERFACE(obj)      (G_TYPE_INSTANCE_GET_INTERFACE((obj), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProviderInterface))
+
+typedef void AgsServiceProvider;
+typedef struct _AgsServiceProviderInterface AgsServiceProviderInterface;
+
+struct _AgsServiceProviderInterface
+{
+  GTypeInterface interface;
+
+  AgsServer* (*get_server)(AgsServiceProvider *service_provider);
+};
+
+GType ags_service_provider_get_type();
+
+AgsServer* ags_service_provider_get_server(AgsServiceProvider *service_provider);
+
+#endif /*__AGS_SERVICE_PROVIDER_H__*/
diff --git a/src/ags/server/ags_service_provider.h~ b/src/ags/server/ags_service_provider.h~
new file mode 100644
index 0000000..ce067ea
--- /dev/null
+++ b/src/ags/server/ags_service_provider.h~
@@ -0,0 +1,43 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __AGS_SERVICE_PROVIDER_H__
+#define __AGS_SERVICE_PROVIDER_H__
+
+#include <glib-object.h>
+
+#include <ags/object/ags_application_context.h>
+
+#define AGS_TYPE_SERVICE_PROVIDER                    (ags_service_provider_get_type())
+#define AGS_SERVICE_PROVIDER(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProvider))
+#define AGS_SERVICE_PROVIDER_INTERFACE(vtable)       (G_TYPE_CHECK_CLASS_CAST((vtable), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProviderInterface))
+#define AGS_IS_SERVICE_PROVIDER(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_SERVICE_PROVIDER))
+#define AGS_IS_SERVICE_PROVIDER_INTERFACE(vtable)    (G_TYPE_CHECK_CLASS_TYPE((vtable), AGS_TYPE_SERVICE_PROVIDER))
+#define AGS_SERVICE_PROVIDER_GET_INTERFACE(obj)      (G_TYPE_INSTANCE_GET_INTERFACE((obj), AGS_TYPE_SERVICE_PROVIDER, AgsServiceProviderInterface))
+
+typedef void AgsServiceProvider;
+typedef struct _AgsServiceProviderInterface AgsServiceProviderInterface;
+
+struct _AgsServiceProviderInterface
+{
+  GTypeInterface interface;
+};
+
+GType ags_service_provider_get_type();
+
+#endif /*__AGS_SERVICE_PROVIDER_H__*/
diff --git a/src/ags/thread/ags_audio_loop.c b/src/ags/thread/ags_audio_loop.c
index c19c123..e63d319 100644
--- a/src/ags/thread/ags_audio_loop.c
+++ b/src/ags/thread/ags_audio_loop.c
@@ -44,8 +44,8 @@ void ags_audio_loop_get_property(GObject *gobject,
 				 GParamSpec *param_spec);
 void ags_audio_loop_connect(AgsConnectable *connectable);
 void ags_audio_loop_disconnect(AgsConnectable *connectable);
-void ags_audio_loop_set_async_queue(AgsMainLoop *main_loop, AgsAsyncQueue *async_queue);
-AgsAsyncQueue* ags_audio_loop_get_async_queue(AgsMainLoop *main_loop);
+void ags_audio_loop_set_application_context(AgsMainLoop *main_loop, AgsApplicationContext *application_context);
+AgsApplicationContext* ags_audio_loop_get_application_context(AgsMainLoop *main_loop);
 void ags_audio_loop_set_tic(AgsMainLoop *main_loop, guint tic);
 guint ags_audio_loop_get_tic(AgsMainLoop *main_loop);
 void ags_audio_loop_set_last_sync(AgsMainLoop *main_loop, guint last_sync);
@@ -299,8 +299,8 @@ ags_audio_loop_connectable_interface_init(AgsConnectableInterface *connectable)
 void
 ags_audio_loop_main_loop_interface_init(AgsMainLoopInterface *main_loop)
 {
-  main_loop->set_async_queue = ags_audio_loop_set_async_queue;
-  main_loop->get_async_queue = ags_audio_loop_get_async_queue;
+  main_loop->set_application_context = ags_audio_loop_set_application_context;
+  main_loop->get_application_context = ags_audio_loop_get_application_context;
   main_loop->set_tic = ags_audio_loop_set_tic;
   main_loop->get_tic = ags_audio_loop_get_tic;
   main_loop->set_last_sync = ags_audio_loop_set_last_sync;
@@ -326,8 +326,8 @@ ags_audio_loop_init(AgsAudioLoop *audio_loop)
 
   audio_loop->application_context = NULL;
 
-  /* AgsAsyncQueue */
-  audio_loop->async_queue = ags_async_queue_new();
+  /* AgsApplicationContext */
+  audio_loop->application_context = NULL;
 
   /* AgsTaskThread */  
   audio_loop->task_thread = (AgsThread *) ags_task_thread_new(NULL);
@@ -575,15 +575,15 @@ ags_audio_loop_disconnect(AgsConnectable *connectable)
 }
 
 void
-ags_audio_loop_set_async_queue(AgsMainLoop *main_loop, AgsAsyncQueue *async_queue)
+ags_audio_loop_set_application_context(AgsMainLoop *main_loop, AgsApplicationContext *application_context)
 {
-  AGS_AUDIO_LOOP(main_loop)->async_queue = async_queue;
+  AGS_AUDIO_LOOP(main_loop)->application_context = application_context;
 }
 
-AgsAsyncQueue*
-ags_audio_loop_get_async_queue(AgsMainLoop *main_loop)
+AgsApplicationContext*
+ags_audio_loop_get_application_context(AgsMainLoop *main_loop)
 {
-  return(AGS_AUDIO_LOOP(main_loop)->async_queue);
+  return(AGS_AUDIO_LOOP(main_loop)->application_context);
 }
 
 void
diff --git a/src/ags/thread/ags_devout_thread.c b/src/ags/thread/ags_devout_thread.c
index 089d15d..0f2be0d 100644
--- a/src/ags/thread/ags_devout_thread.c
+++ b/src/ags/thread/ags_devout_thread.c
@@ -39,7 +39,7 @@ void ags_devout_thread_start(AgsThread *thread);
 void ags_devout_thread_run(AgsThread *thread);
 void ags_devout_thread_stop(AgsThread *thread);
 
-extern AgsConfig *ags_config;
+extern pthread_key_t config;
 
 /**
  * SECTION:ags_devout_thread
@@ -125,17 +125,18 @@ void
 ags_devout_thread_init(AgsDevoutThread *devout_thread)
 {
   AgsThread *thread;
+  AgsConfig *ags_config = pthread_getspecific(config);
   guint buffer_size;
   guint samplerate;
 
   thread = AGS_THREAD(devout_thread);
 
-  buffer_size = g_ascii_strtoull(ags_config_get(ags_config,
+  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
 						AGS_CONFIG_DEVOUT,
 						"buffer-size"),
 				 NULL,
 				 10);
-  samplerate = g_ascii_strtoull(ags_config_get(ags_config,
+  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
 					       AGS_CONFIG_DEVOUT,
 					       "samplerate"),
 				NULL,
diff --git a/src/ags/thread/ags_task_thread.c b/src/ags/thread/ags_task_thread.c
index 58eb06d..bd37378 100644
--- a/src/ags/thread/ags_task_thread.c
+++ b/src/ags/thread/ags_task_thread.c
@@ -47,8 +47,6 @@ void ags_task_thread_run(AgsThread *thread);
 void ags_task_thread_append_task_queue(AgsReturnableThread *returnable_thread, gpointer data);
 void ags_task_thread_append_tasks_queue(AgsReturnableThread *returnable_thread, gpointer data);
 
-extern AgsConfig *ags_config;
-
 /**
  * SECTION:ags_task_thread
  * @short_description: task thread
@@ -62,8 +60,6 @@ extern AgsConfig *ags_config;
 static gpointer ags_task_thread_parent_class = NULL;
 static AgsConnectableInterface *ags_task_thread_parent_connectable_interface;
 
-static gboolean DEBUG;
-
 GType
 ags_task_thread_get_type()
 {
@@ -220,6 +216,7 @@ ags_task_thread_run(AgsThread *thread)
 {
   AgsDevout *devout;
   AgsTaskThread *task_thread;
+  AgsConfig *ags_config;
   GList *list;
   guint buffer_size;
   guint samplerate;
@@ -231,14 +228,14 @@ ags_task_thread_run(AgsThread *thread)
   task_thread = AGS_TASK_THREAD(thread);
   devout = AGS_DEVOUT(thread->devout);
 
-  buffer_size = g_ascii_strtoull(ags_config_get(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size\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(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate\0"),
+  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
+						     AGS_CONFIG_DEVOUT,
+						     "samplerate\0"),
 				NULL,
 				10);
 
diff --git a/src/ags/thread/ags_thread_application_context.c b/src/ags/thread/ags_thread_application_context.c
index b1bb281..f28c6a6 100644
--- a/src/ags/thread/ags_thread_application_context.c
+++ b/src/ags/thread/ags_thread_application_context.c
@@ -64,7 +64,7 @@ enum{
 };
 
 AgsThreadApplicationContext *ags_thread_application_context = NULL;
-extern AgsConfig *ags_config;
+extern pthread_key_t config;
 
 GType
 ags_thread_application_context_get_type()
@@ -310,14 +310,12 @@ ags_thread_application_context_finalize(GObject *gobject)
 void
 ags_thread_application_context_load_config(AgsApplicationContext *application_context)
 {
-  AgsConfig *config;
+  AgsConfig *ags_config =  pthread_getspecific(config);
   gchar *model;
   
-  config = ags_config;
-  
-  model = ags_config_get(config,
-			 AGS_CONFIG_THREAD,
-			 "model\0");
+  model = ags_config_get_value(ags_config,
+			       AGS_CONFIG_THREAD,
+			       "model\0");
     
   if(model != NULL){
     if(!strncmp(model,
diff --git a/src/ags/thread/ags_thread_init.c b/src/ags/thread/ags_thread_init.c
index ed35f86..c826493 100644
--- a/src/ags/thread/ags_thread_init.c
+++ b/src/ags/thread/ags_thread_init.c
@@ -21,15 +21,19 @@
 #include <ags/object/ags_init.h>
 #include <ags/object/ags_application_context.h>
 
-extern AgsApplicationContext *ags_application_context = NULL;
-extern AgsThreadApplicationContext *ags_thread_application_context;
+#include <ags/thread/ags_thread_application_context.h>
+
+extern pthread_key_t application_context;
 
 void
 ags_thread_init_context(int *argc, gchar ***argv)
 {
-  ags_init_context(argc, argv);
-  
-  g_thread_init(NULL);
+  AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
+  AgsThreadApplicationContext *ags_thread_application_context;
+
+  /* complete thread pool */
+  ags_thread_application_context->thread_pool->parent = AGS_THREAD(ags_application_context->main_loop);
+  ags_thread_pool_start(ags_thread_application_context->thread_pool);
 
   /* instantiate application context */
   ags_thread_application_context = ags_thread_application_context_new(NULL,
diff --git a/src/ags/widget/ags_gui_init.c b/src/ags/widget/ags_gui_init.c
index fd3faee..38d460d 100644
--- a/src/ags/widget/ags_gui_init.c
+++ b/src/ags/widget/ags_gui_init.c
@@ -23,5 +23,5 @@
 void
 ags_gui_init_context(int *argc, gchar ***argv)
 {
-  gtk_init(argc, argv);
+  //TODO:JK: implement me
 }

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list