aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xGem/Gem.la2
-rwxr-xr-xGem/Gem.pd_darwinbin5239464 -> 5238944 bytes
-rw-r--r--Gem/develop/include/Gem/Gem/GemGL.h16
-rw-r--r--Gem/develop/include/Gem/Utils/GLUtil.h4
-rwxr-xr-xGem/gem_filmAVF.la2
-rwxr-xr-xGem/gem_filmAVF.sobin55604 -> 55604 bytes
-rwxr-xr-xGem/gem_imageIO.la2
-rwxr-xr-xGem/gem_imageIO.sobin34376 -> 34376 bytes
-rwxr-xr-xGem/gem_imageJPEG.la2
-rwxr-xr-xGem/gem_imageJPEG.sobin50788 -> 50788 bytes
-rwxr-xr-xGem/gem_imageMAGICK.la41
-rwxr-xr-xGem/gem_imageMAGICK.sobin52780 -> 0 bytes
-rwxr-xr-xGem/gem_imageSGI.la2
-rwxr-xr-xGem/gem_imageSGI.sobin58196 -> 58196 bytes
-rwxr-xr-xGem/gem_imageTIFF.la2
-rwxr-xr-xGem/gem_imageTIFF.sobin66320 -> 66320 bytes
-rwxr-xr-xGem/gem_modelOBJ.la2
-rwxr-xr-xGem/gem_modelOBJ.sobin96632 -> 96632 bytes
-rwxr-xr-xGem/gem_videoAVF.la2
-rwxr-xr-xGem/gem_videoAVF.sobin61156 -> 61156 bytes
-rw-r--r--Gem/gemcocoawindow-help.pd280
-rwxr-xr-xGem/gemcocoawindow.la2
-rwxr-xr-xGem/gemcocoawindow.pd_darwinbin37024 -> 37024 bytes
-rw-r--r--Gem/gemglfw2window-help.pd284
-rw-r--r--Gem/gemglfw3window-help.pd253
-rw-r--r--Gem/gemglutwindow-help.pd253
-rwxr-xr-xGem/gemglutwindow.la2
-rwxr-xr-xGem/gemglutwindow.pd_darwinbin43704 -> 43704 bytes
-rw-r--r--Gem/gemglxwindow-help.pd249
-rw-r--r--Gem/gemmacoswindow-help.pd274
-rwxr-xr-xGem/gemmacoswindow.la2
-rwxr-xr-xGem/gemmacoswindow.pd_darwinbin36912 -> 36912 bytes
-rw-r--r--Gem/gemmacwindow-help.pd254
-rw-r--r--Gem/gemsdlwindow-help.pd239
-rw-r--r--Gem/gemw32window-help.pd289
-rwxr-xr-xGem/pix_drum.la2
-rwxr-xr-xGem/pix_drum.pd_darwinbin26224 -> 26224 bytes
-rwxr-xr-xGem/pix_fiducialtrack.la2
-rwxr-xr-xGem/pix_fiducialtrack.pd_darwinbin75404 -> 75404 bytes
-rwxr-xr-xGem/pix_hit.la2
-rwxr-xr-xGem/pix_hit.pd_darwinbin24448 -> 24448 bytes
-rwxr-xr-xGem/pix_mano.la2
-rwxr-xr-xGem/pix_mano.pd_darwinbin40552 -> 40552 bytes
43 files changed, 1643 insertions, 823 deletions
diff --git a/Gem/Gem.la b/Gem/Gem.la
index c0b8c2d..6c3cdd8 100755
--- a/Gem/Gem.la
+++ b/Gem/Gem.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -pthread'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L/usr/local/Cellar/fribidi/1.0.5/lib -lfribidi -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/Gem.pd_darwin b/Gem/Gem.pd_darwin
index 776543a..a17f722 100755
--- a/Gem/Gem.pd_darwin
+++ b/Gem/Gem.pd_darwin
Binary files differ
diff --git a/Gem/develop/include/Gem/Gem/GemGL.h b/Gem/develop/include/Gem/Gem/GemGL.h
index a009928..ef3b250 100644
--- a/Gem/develop/include/Gem/Gem/GemGL.h
+++ b/Gem/develop/include/Gem/Gem/GemGL.h
@@ -32,10 +32,18 @@
# define GLEW_MX
#endif
-#include "Gem/glew.h"
+#ifdef __EMSCRIPTEN__
+# include <GL/glew.h>
+# include <SDL/SDL_opengl.h>
+# include <GL/gl.h>
+# include <GL/glu.h>
+#else
+# include "Gem/glew.h"
+#endif
#ifdef __APPLE__
# include <OpenGL/OpenGL.h>
+#elif defined(__EMSCRIPTEN__)
#elif defined _WIN32
# include "Gem/wglew.h"
#elif defined(__linux__) || defined(__FreeBSD_kernel__)
@@ -86,4 +94,10 @@ GEM_EXTERN GLXEWContext*glxewGetContext(void);
# endif
#endif
+
+// missing from Emscripten's glew implementation
+#ifndef GL_TEXTURE_RECTANGLE_EXT
+# define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#endif
+
#endif /* _INCLUDE__GEM_GEM_GEMGL_H_ */
diff --git a/Gem/develop/include/Gem/Utils/GLUtil.h b/Gem/develop/include/Gem/Utils/GLUtil.h
index 7dad69d..fb15b25 100644
--- a/Gem/develop/include/Gem/Utils/GLUtil.h
+++ b/Gem/develop/include/Gem/Utils/GLUtil.h
@@ -26,7 +26,11 @@ struct _symbol;
#include <string>
/* for GLenum */
+#ifdef __EMSCRIPTEN__
+#include "Gem/glew.h"
+#else
#include "Gem/GemGL.h"
+#endif
#include "Gem/Exception.h"
diff --git a/Gem/gem_filmAVF.la b/Gem/gem_filmAVF.la
index a7faade..0ac3daf 100755
--- a/Gem/gem_filmAVF.la
+++ b/Gem/gem_filmAVF.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework AVFoundation'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_filmAVF.so b/Gem/gem_filmAVF.so
index d2801d7..3e7b300 100755
--- a/Gem/gem_filmAVF.so
+++ b/Gem/gem_filmAVF.so
Binary files differ
diff --git a/Gem/gem_imageIO.la b/Gem/gem_imageIO.la
index cc2d77f..1d6675b 100755
--- a/Gem/gem_imageIO.la
+++ b/Gem/gem_imageIO.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework ImageIO'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_imageIO.so b/Gem/gem_imageIO.so
index f4ef872..7d76def 100755
--- a/Gem/gem_imageIO.so
+++ b/Gem/gem_imageIO.so
Binary files differ
diff --git a/Gem/gem_imageJPEG.la b/Gem/gem_imageJPEG.la
index e84a6f5..e72a958 100755
--- a/Gem/gem_imageJPEG.la
+++ b/Gem/gem_imageJPEG.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ljpeg -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ljpeg -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_imageJPEG.so b/Gem/gem_imageJPEG.so
index 6a1769f..f52a06e 100755
--- a/Gem/gem_imageJPEG.so
+++ b/Gem/gem_imageJPEG.so
Binary files differ
diff --git a/Gem/gem_imageMAGICK.la b/Gem/gem_imageMAGICK.la
deleted file mode 100755
index 09a850e..0000000
--- a/Gem/gem_imageMAGICK.la
+++ /dev/null
@@ -1,41 +0,0 @@
-# gem_imageMAGICK.la - a libtool library file
-# Generated by libtool (GNU libtool) 2.4.6
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='gem_imageMAGICK.so'
-
-# Names of this library.
-library_names='gem_imageMAGICK.so gem_imageMAGICK.so'
-
-# The name of the static archive.
-old_library=''
-
-# Linker flags that cannot go in dependency_libs.
-inherited_linker_flags=' -pthread'
-
-# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -L/usr/local/Cellar/imagemagick/7.0.8-23/lib /usr/local/Cellar/imagemagick/7.0.8-23/lib/libMagickCore-7.Q16HDRI.la -L/usr/local/Cellar/little-cms2/2.9/lib -L/usr/local/opt/freetype/lib -L/usr/local/Cellar/xz/5.2.4/lib -llcms2 -lfreetype -lxml2 -llzma -lbz2 -lltdl -ldl -lz -lm'
-
-# Names of additional weak libraries provided by this library
-weak_library_names=''
-
-# Version information for gem_imageMAGICK.
-current=0
-age=0
-revision=0
-
-# Is this an already installed library?
-installed=yes
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=yes
-
-# Files to dlopen/dlpreopen
-dlopen=''
-dlpreopen=''
-
-# Directory that this library needs to be installed in:
-libdir='/usr/local/lib/pd/extra/Gem'
diff --git a/Gem/gem_imageMAGICK.so b/Gem/gem_imageMAGICK.so
deleted file mode 100755
index 9bf4e54..0000000
--- a/Gem/gem_imageMAGICK.so
+++ /dev/null
Binary files differ
diff --git a/Gem/gem_imageSGI.la b/Gem/gem_imageSGI.la
index e108bab..babfb72 100755
--- a/Gem/gem_imageSGI.la
+++ b/Gem/gem_imageSGI.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_imageSGI.so b/Gem/gem_imageSGI.so
index 1eec50c..60b303c 100755
--- a/Gem/gem_imageSGI.so
+++ b/Gem/gem_imageSGI.so
Binary files differ
diff --git a/Gem/gem_imageTIFF.la b/Gem/gem_imageTIFF.la
index f049a31..77beb98 100755
--- a/Gem/gem_imageTIFF.la
+++ b/Gem/gem_imageTIFF.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ltiff -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ltiff -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_imageTIFF.so b/Gem/gem_imageTIFF.so
index c867a6c..8d02ae4 100755
--- a/Gem/gem_imageTIFF.so
+++ b/Gem/gem_imageTIFF.so
Binary files differ
diff --git a/Gem/gem_modelOBJ.la b/Gem/gem_modelOBJ.la
index 4e06051..669cf3e 100755
--- a/Gem/gem_modelOBJ.la
+++ b/Gem/gem_modelOBJ.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_modelOBJ.so b/Gem/gem_modelOBJ.so
index 99dfc08..fe9e8fe 100755
--- a/Gem/gem_modelOBJ.so
+++ b/Gem/gem_modelOBJ.so
Binary files differ
diff --git a/Gem/gem_videoAVF.la b/Gem/gem_videoAVF.la
index 13020eb..42a323a 100755
--- a/Gem/gem_videoAVF.la
+++ b/Gem/gem_videoAVF.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework AVFoundation'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gem_videoAVF.so b/Gem/gem_videoAVF.so
index 0c6b6a8..76b1fdb 100755
--- a/Gem/gem_videoAVF.so
+++ b/Gem/gem_videoAVF.so
Binary files differ
diff --git a/Gem/gemcocoawindow-help.pd b/Gem/gemcocoawindow-help.pd
index f7fb1df..6a68823 100644
--- a/Gem/gemcocoawindow-help.pd
+++ b/Gem/gemcocoawindow-help.pd
@@ -1,118 +1,212 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemcocoawindow;
-#X obj 448 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 465 17 standard messages;
+#X text 47 51 [gemcocoawindow];
+#X text 18 79 part of Gem;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 421 48 create;
+#X msg 421 78 bang;
+#X msg 421 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 421 138 buffer 2;
+#X msg 421 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 421 198 title foo;
+#X text 515 199 title of the window;
+#X msg 421 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 421 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
-#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X obj 88 231 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 421 348 cursor \$1;
+#X obj 490 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 88 254 menubar \$1;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemcocoawindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 421 318 border \$1;
+#X obj 490 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 501 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 421 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 13 145 [gemcocoawindow] uses Cocoa to create windows.;
-#X text 16 171 afaict \, it is non-functional. you probably should
-use [gemmacoswindow] instead.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemcocoawindow];
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 207 ä;
+#X text 244 153 0!;
+#X text 244 189 0!;
+#X text 244 171 56;
+#X text 244 207 39;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 26 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X obj 88 231 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 254 menubar \$1;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X restore 421 429 pd specific messages;
+#X obj 367 472 gemcocoawindow;
+#X text 13 144 [gemcocoawindow] uses Cocoa to create windows (only
+on OSX).;
+#X connect 4 0 5 0;
+#X connect 4 1 7 0;
+#X connect 9 0 10 0;
+#X connect 10 0 6 0;
+#X connect 11 0 10 1;
+#X connect 22 0 61 0;
+#X connect 24 0 22 0;
+#X connect 25 0 22 0;
+#X connect 26 0 22 0;
+#X connect 31 0 22 0;
+#X connect 32 0 22 0;
+#X connect 34 0 22 0;
+#X connect 36 0 22 0;
+#X connect 38 0 22 0;
+#X connect 43 0 61 0;
+#X connect 48 0 22 0;
+#X connect 49 0 48 0;
+#X connect 50 0 22 0;
#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 52 0 54 0;
+#X connect 54 0 22 0;
+#X connect 55 0 22 0;
+#X connect 56 0 55 0;
+#X connect 60 0 61 0;
+#X connect 61 0 4 0;
+#X connect 61 1 3 0;
diff --git a/Gem/gemcocoawindow.la b/Gem/gemcocoawindow.la
index 0350629..d384eda 100755
--- a/Gem/gemcocoawindow.la
+++ b/Gem/gemcocoawindow.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework Cocoa'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gemcocoawindow.pd_darwin b/Gem/gemcocoawindow.pd_darwin
index 90cfa74..5edeff8 100755
--- a/Gem/gemcocoawindow.pd_darwin
+++ b/Gem/gemcocoawindow.pd_darwin
Binary files differ
diff --git a/Gem/gemglfw2window-help.pd b/Gem/gemglfw2window-help.pd
index ff8d292..890eac8 100644
--- a/Gem/gemglfw2window-help.pd
+++ b/Gem/gemglfw2window-help.pd
@@ -1,68 +1,182 @@
-#N canvas 70 90 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglfw2window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 465 17 standard messages;
+#X text 47 51 [gemglfw2window];
+#X text 18 79 part of Gem;
+#X text 13 145 [gemglfw2window] uses GLFW (version2) to create windows.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
-#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
0;
-#N canvas 413 484 890 395 specific 0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 65 6 FIXXME;
+#X text 10 102 values returned by [gemglfw2window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -77,50 +191,32 @@ created windows;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 6 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglfw2window];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemglfw2window] uses GLFW (version2) to create windows.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X restore 421 429 pd specific messages;
+#X obj 367 472 gemglfw2window;
+#X text 765 319 (NOT IMPLEMENTED);
+#X connect 5 0 6 0;
+#X connect 5 1 8 0;
+#X connect 10 0 11 0;
+#X connect 11 0 7 0;
+#X connect 12 0 11 1;
+#X connect 23 0 62 0;
+#X connect 25 0 23 0;
+#X connect 26 0 23 0;
+#X connect 27 0 23 0;
+#X connect 32 0 23 0;
+#X connect 33 0 23 0;
+#X connect 35 0 23 0;
+#X connect 37 0 23 0;
+#X connect 39 0 23 0;
+#X connect 44 0 62 0;
+#X connect 49 0 23 0;
+#X connect 50 0 49 0;
+#X connect 51 0 23 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 23 0;
+#X connect 56 0 23 0;
+#X connect 57 0 56 0;
+#X connect 61 0 62 0;
+#X connect 62 0 5 0;
+#X connect 62 1 4 0;
diff --git a/Gem/gemglfw3window-help.pd b/Gem/gemglfw3window-help.pd
index 4f348ff..dad593a 100644
--- a/Gem/gemglfw3window-help.pd
+++ b/Gem/gemglfw3window-help.pd
@@ -1,68 +1,183 @@
-#N canvas 70 90 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglfw3window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglfw3window] uses GLFW (version3) to create windows.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemglfw3window];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
0;
-#N canvas 413 484 890 395 specific 0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemglfw3window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemglfw3window;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -83,35 +198,13 @@ created windows;
#X connect 6 0 7 0;
#X connect 7 0 0 0;
#X connect 9 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglfw3window];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemglfw3window] uses GLFW (version3) to create windows.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -120,13 +213,15 @@ created windows;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemglutwindow-help.pd b/Gem/gemglutwindow-help.pd
index 395198d..b3b12f0 100644
--- a/Gem/gemglutwindow-help.pd
+++ b/Gem/gemglutwindow-help.pd
@@ -1,68 +1,184 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglutwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglutwindow] uses GLUT (the openGL Utility Toolkit)
+to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemglutwindow];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 244 189 65;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 207 ä;
+#X msg 154 171 <unknown>;
+#X text 244 153 97;
+#X text 244 171 112;
+#X text 244 207 228;
+#X text 10 102 values returned by [gemglutwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 27 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#X obj 367 472 gemglutwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#X text 765 169 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -95,36 +211,13 @@ Quit 1;
#X connect 11 0 0 0;
#X connect 12 0 9 0;
#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglutwindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemglutwindow] uses GLUT (the openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 765 211 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -133,13 +226,15 @@ to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
#X connect 51 0 20 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
+#X connect 56 0 20 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 64 0 61 0;
diff --git a/Gem/gemglutwindow.la b/Gem/gemglutwindow.la
index 6a37584..9c4a116 100755
--- a/Gem/gemglutwindow.la
+++ b/Gem/gemglutwindow.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework GLUT'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gemglutwindow.pd_darwin b/Gem/gemglutwindow.pd_darwin
index 187782a..736af6f 100755
--- a/Gem/gemglutwindow.pd_darwin
+++ b/Gem/gemglutwindow.pd_darwin
Binary files differ
diff --git a/Gem/gemglxwindow-help.pd b/Gem/gemglxwindow-help.pd
index e2678cd..9c678ea 100644
--- a/Gem/gemglxwindow-help.pd
+++ b/Gem/gemglxwindow-help.pd
@@ -1,103 +1,196 @@
-#N canvas 30 105 957 735 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglxwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglxwindow] uses the X-window system directly (via
+GLX) to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 693 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 647 r \$0-info;
-#X obj 674 670 spigot;
-#X obj 721 672 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X text 182 261 allow the window to become transparent;
-#X obj 88 238 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 88 260 transparent \$1;
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemglxwindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 13 145 [gemglxwindow] uses the X-window system directly (via
-GLX) to create windows.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 207 ä;
+#X text 244 153 38;
+#X text 244 171 50;
+#X text 244 189 38;
+#X text 244 207 48;
+#X text 10 102 values returned by [gemglxwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 26 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemglxwindow;
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X text 182 261 allow the window to become transparent;
+#X obj 88 238 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 260 transparent \$1;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -106,13 +199,15 @@ GLX) to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 62 0 61 0;
diff --git a/Gem/gemmacoswindow-help.pd b/Gem/gemmacoswindow-help.pd
index ae90536..0499910 100644
--- a/Gem/gemmacoswindow-help.pd
+++ b/Gem/gemmacoswindow-help.pd
@@ -1,120 +1,216 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemmacoswindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemmacoswindow] uses Cocoa to create windows.;
+#X text 20 172 it's supposed to be the default window on modern macOS.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X obj 88 153 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 88 176 menubar \$1;
-#X text 173 178 show/hide the macOS menubar;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemmacoswindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 211 (NOT IMPLEMENTED);
-#X text 13 145 [gemmacoswindow] uses Cocoa to create windows.;
-#X text 20 172 it's supposed to be the default window on modern macOS.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 50 7 FIXXME;
+#X text 10 102 values returned by [gemmacoswindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemmacoswindow;
+#X text 765 169 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X obj 88 153 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 176 menubar \$1;
+#X text 173 178 show/hide the macOS menubar;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X restore 421 429 pd specific messages;
+#X connect 3 0 4 0;
+#X connect 3 1 6 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 9 1;
+#X connect 21 0 62 0;
+#X connect 23 0 21 0;
+#X connect 24 0 21 0;
+#X connect 25 0 21 0;
+#X connect 30 0 21 0;
+#X connect 31 0 21 0;
+#X connect 33 0 21 0;
+#X connect 35 0 21 0;
+#X connect 37 0 21 0;
+#X connect 43 0 62 0;
+#X connect 50 0 21 0;
#X connect 51 0 50 0;
-#X connect 52 0 20 0;
+#X connect 52 0 21 0;
#X connect 53 0 52 0;
#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
+#X connect 56 0 21 0;
+#X connect 57 0 21 0;
#X connect 58 0 57 0;
+#X connect 62 0 3 0;
+#X connect 62 1 2 0;
+#X connect 64 0 62 0;
diff --git a/Gem/gemmacoswindow.la b/Gem/gemmacoswindow.la
index 1e7d7d7..4342da2 100755
--- a/Gem/gemmacoswindow.la
+++ b/Gem/gemmacoswindow.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' -framework Cocoa'
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/gemmacoswindow.pd_darwin b/Gem/gemmacoswindow.pd_darwin
index 21805c5..257b932 100755
--- a/Gem/gemmacoswindow.pd_darwin
+++ b/Gem/gemmacoswindow.pd_darwin
Binary files differ
diff --git a/Gem/gemmacwindow-help.pd b/Gem/gemmacwindow-help.pd
index d82085c..ec46ae5 100644
--- a/Gem/gemmacwindow-help.pd
+++ b/Gem/gemmacwindow-help.pd
@@ -1,68 +1,183 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemmacwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemmacwindow] uses Carbon to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemmacwindow];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 50 7 FIXXME;
+#X text 10 102 values returned by [gemmacwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#X obj 367 472 gemmacwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -95,34 +210,15 @@ Quit 1;
#X connect 11 0 0 0;
#X connect 12 0 9 0;
#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemmacwindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemmacwindow] uses Carbon to create windows.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
+#X text 16 171 afaict \, it is non-functional. you probably should
+use [gemmacoswindow] instead.;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -131,13 +227,15 @@ Quit 1;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemsdlwindow-help.pd b/Gem/gemsdlwindow-help.pd
index 1a694da..1e5f8f6 100644
--- a/Gem/gemsdlwindow-help.pd
+++ b/Gem/gemsdlwindow-help.pd
@@ -1,99 +1,192 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemsdlwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemsdlwindow] uses the GLUT (openGL Utility Toolkit)
+to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X text 90 88 no special messages;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemsdlwindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemsdlwindow] uses the GLUT (openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 189 a;
+#X msg 154 207 ä;
+#X text 244 153 38;
+#X text 244 171 50;
+#X text 244 189 38;
+#X text 244 207 48;
+#X text 10 102 values returned by [gemsdlwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 25 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemsdlwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X text 90 88 no special messages;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -102,13 +195,15 @@ to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
#X connect 51 0 20 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
+#X connect 56 0 20 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemw32window-help.pd b/Gem/gemw32window-help.pd
index 8ac7134..9255127 100644
--- a/Gem/gemw32window-help.pd
+++ b/Gem/gemw32window-help.pd
@@ -1,144 +1,223 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemw32window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 421 48 create;
+#X msg 421 78 bang;
+#X msg 421 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 421 138 buffer 2;
+#X msg 421 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 421 198 title foo;
+#X text 515 199 title of the window;
+#X msg 421 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 421 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
#X floatatom 128 61 5 0 0 0 - - -;
#X msg 128 80 dimen \$1 \$1;
#X text 201 46 change window dimension/position on the fly;
-#X msg 288 97 menu;
-#X obj 289 127 r \$0-info;
-#X obj 289 150 route menu;
-#X floatatom 289 243 5 0 0 0 - - -;
-#X obj 289 264 i;
-#X msg 289 290 addMenu \$1 File 0 \, addMenu \$1 Gem 2 \, addMenu \$1
-Quit 1;
-#X obj 289 176 route new float;
-#X floatatom 416 212 5 0 0 1 menu - -;
-#X text 326 242 ID of the newly created menu;
-#X text 320 271 add entries to the new menu, f 62;
-#X text 625 290 addMenu <menuid> <title> <value>;
-#X text 510 212 <- selected menu;
-#X text 336 96 <- create a new right-click menu;
+#X msg 152 173 topmost \$1;
+#X obj 152 151 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 231 156 make sure the Gem-window is in front of all others
+;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 6 0 0 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 11 0 0 0;
-#X connect 12 0 9 0;
-#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
+#X connect 7 0 6 0;
+#X restore 421 429 pd specific messages;
#X text 47 51 [gemw32window];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemw32window] uses GLUT (the openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 421 348 cursor \$1;
+#X obj 490 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 421 318 border \$1;
+#X obj 490 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 501 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 421 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 51 0 20 0;
+#X text 13 145 [gemw32window] uses the native Microsoft Windows toolkit
+to create windows (only on MS-Windows systems).;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemw32window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemw32window;
+#X connect 1 0 2 0;
+#X connect 1 1 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 8 0 7 1;
+#X connect 19 0 62 0;
+#X connect 21 0 19 0;
+#X connect 22 0 19 0;
+#X connect 23 0 19 0;
+#X connect 28 0 19 0;
+#X connect 29 0 19 0;
+#X connect 31 0 19 0;
+#X connect 33 0 19 0;
+#X connect 35 0 19 0;
+#X connect 41 0 62 0;
+#X connect 44 0 62 0;
+#X connect 49 0 19 0;
+#X connect 50 0 49 0;
+#X connect 51 0 19 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 19 0;
+#X connect 56 0 19 0;
+#X connect 57 0 56 0;
+#X connect 62 0 1 0;
+#X connect 62 1 0 0;
diff --git a/Gem/pix_drum.la b/Gem/pix_drum.la
index 328753a..4fa3812 100755
--- a/Gem/pix_drum.la
+++ b/Gem/pix_drum.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/pix_drum.pd_darwin b/Gem/pix_drum.pd_darwin
index b4228e1..d8a7dad 100755
--- a/Gem/pix_drum.pd_darwin
+++ b/Gem/pix_drum.pd_darwin
Binary files differ
diff --git a/Gem/pix_fiducialtrack.la b/Gem/pix_fiducialtrack.la
index 43131a0..1d9bb4f 100755
--- a/Gem/pix_fiducialtrack.la
+++ b/Gem/pix_fiducialtrack.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/pix_fiducialtrack.pd_darwin b/Gem/pix_fiducialtrack.pd_darwin
index 7c45f32..9ef8f1c 100755
--- a/Gem/pix_fiducialtrack.pd_darwin
+++ b/Gem/pix_fiducialtrack.pd_darwin
Binary files differ
diff --git a/Gem/pix_hit.la b/Gem/pix_hit.la
index ea5b7c5..7a70da6 100755
--- a/Gem/pix_hit.la
+++ b/Gem/pix_hit.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/pix_hit.pd_darwin b/Gem/pix_hit.pd_darwin
index 26a498e..f8e2580 100755
--- a/Gem/pix_hit.pd_darwin
+++ b/Gem/pix_hit.pd_darwin
Binary files differ
diff --git a/Gem/pix_mano.la b/Gem/pix_mano.la
index 3bf2bbc..c0380ee 100755
--- a/Gem/pix_mano.la
+++ b/Gem/pix_mano.la
@@ -17,7 +17,7 @@ old_library=''
inherited_linker_flags=' '
# Libraries that this one depends upon.
-dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.48-0.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
+dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.49-1.app/Contents/Resources/bin -L../.. -ldl -lz -lm'
# Names of additional weak libraries provided by this library
weak_library_names=''
diff --git a/Gem/pix_mano.pd_darwin b/Gem/pix_mano.pd_darwin
index c0f5259..9c25159 100755
--- a/Gem/pix_mano.pd_darwin
+++ b/Gem/pix_mano.pd_darwin
Binary files differ