diff --git a/.gitmodules b/.gitmodules
index 1527b7a1e22cf4fbb1f3978292fcb2533ac784be..aee1cced30f16eb4acb57ad58313c4765ef703b2 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,7 @@
 [submodule "src/libpd"]
 	path = src/libpd
 	url = https://github.com/libpd/libpd.git
+    branch = master
 [submodule "src/godot-cpp"]
 	path = src/godot-cpp
 	url = https://github.com/GodotNativeTools/godot-cpp
diff --git a/SConstruct b/SConstruct
index 43122b64a3e6c5b9232174008b12d614c7032327..dff6e8f5fbcc598447ec883d4efc5e2b12a2c5cc 100644
--- a/SConstruct
+++ b/SConstruct
@@ -3,6 +3,8 @@ import os
 import sys
 
 
+# Update submodules
+#os.system("git submodule update --init --recursive --remote")
 
 # First fix fsqrt in fiddle~.c
 fiddle_file = open("src/libpd/pure-data/extra/fiddle~/fiddle~.c","r")
@@ -95,7 +97,8 @@ if env["platform"] == "linux":
 						'-fomit-frame-pointer'])
 	env.Append(CXXFLAGS=['-std=c++17'])
 elif env["platform"] == "android":
-	env.Append(CPPDEFINES=['__UNSPECIFIED__', 'HAVE_LIBDL', 'ANDROID'])
+	env.Append(CPPDEFINES=['__UNSPECIFIED__', 'HAVE_LIBDL', 'ANDROID',
+                        'HAS_SOCKLEN_T'])
 	env.Append(CFLAGS=['-Wno-int-to-pointer-cast', '-Wno-pointer-to-int-cast',
 						'-Wno-discarded-qualifiers',
 						'-fPIC', '-O3', '-ffast-math', '-funroll-loops', 
diff --git a/src/gdpd.h b/src/gdpd.h
index 44be93ac1792e34832b0a395aa951cad337da5bc..c1698930eb4e5c34cb25c3c405ac9f06ee7f5c6c 100644
--- a/src/gdpd.h
+++ b/src/gdpd.h
@@ -72,6 +72,11 @@ private:
 
 	bool m_init;
 
+    enum Mode {OSC, AUDIO, AUDIO_RT};
+    int m_mode;
+
+
+private:
 	int start();
 
 public:
@@ -162,5 +167,4 @@ public:
 };
 
 
-
 #endif
diff --git a/src/rtaudio/RtAudio.os b/src/rtaudio/RtAudio.os
index 2ff0399f747003294a06aead1af63b69ec45ff03..1ec3e45a8b107c72164645ecd3c180df9bc90664 100644
Binary files a/src/rtaudio/RtAudio.os and b/src/rtaudio/RtAudio.os differ