diff --git a/externals/build/include/extlib_util.h b/externals/build/include/extlib_util.h
deleted file mode 100644
index 8ab253f457c3fa85ece844ec7810848ac2014f8b..0000000000000000000000000000000000000000
--- a/externals/build/include/extlib_util.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "../../creb/include/extlib_util.h"
-
-float milliseconds_2_one_minus_realpole(float time)
-{
-  float r;
-
-  if (time < 0.0f) time = 0.0f;
-  r = -expm1(1000.0f * log(ENVELOPE_RANGE) / (sys_getsr() * time));
-  if (!(r < 1.0f)) r = 1.0f;
-
-  return r;
-}
-		  
diff --git a/externals/build/include/g_all_guis.h b/externals/build/include/g_all_guis.h
deleted file mode 100644
index 9f8dd9659a340164e4be209e63c79144a8814131..0000000000000000000000000000000000000000
--- a/externals/build/include/g_all_guis.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
-/* g_7_guis.h written by Thomas Musil (c) IEM KUG Graz Austria 2000-2001 */
-
-#define IEM_GUI_DEFAULTSIZE 15
-#define IEM_GUI_MINSIZE 8
-#define IEM_SL_DEFAULTSIZE 128
-#define IEM_SL_MINSIZE 2
-#define IEM_FONT_MINSIZE 4
-
-#define IEM_GUI_DRAW_MODE_UPDATE 0
-#define IEM_GUI_DRAW_MODE_MOVE   1
-#define IEM_GUI_DRAW_MODE_NEW    2
-#define IEM_GUI_DRAW_MODE_SELECT 3
-#define IEM_GUI_DRAW_MODE_CONFIG 5
-
-#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT)
-#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL)
-
-#define IEM_GUI_OLD_SND_FLAG 1
-#define IEM_GUI_OLD_RCV_FLAG 2
-
-#define IEMGUI_MAX_NUM_LEN 32
-
-#define SCALE_NUM_MINWIDTH 1
-#define SCALE_NUM_MINHEIGHT 8
-#define SCALE_GOP_MINWIDTH 12
-#define SCALE_GOP_MINHEIGHT 12
-#define SCALEHANDLE_WIDTH   5
-#define SCALEHANDLE_HEIGHT  5
-#define LABELHANDLE_WIDTH   5
-#define LABELHANDLE_HEIGHT  5
-
-typedef void (*t_iemfunptr)(void *x, t_glist *glist, int mode);
-
-struct _scalehandle;
-typedef void (*t_clickhandlefn)(struct _scalehandle *sh, int newstate);
-typedef void (*t_motionhandlefn)(struct _scalehandle *sh, t_floatarg f1, t_floatarg f2);
-
-EXTERN t_class *scalehandle_class;
-
-typedef struct _scalehandle
-{
-    t_pd       h_pd;
-    t_object  *h_master;
-    t_glist   *h_glist; // this is the canvas to draw on. Note that when objects are edited, "glist" and "canvas" mean the same.
-    t_symbol  *h_bindsym;
-    int        h_scale; // bool
-    char       h_pathname[37]; // max size for ".x%lx.h%lx" = 5+4*sizeof(long)
-    char       h_outlinetag[18]; // max size for "h%lx" = 2+2*sizeof(long)
-    int        h_dragon; // bool
-    int        h_dragx;
-    int        h_dragy;
-    int        h_offset_x;
-    int        h_offset_y;
-    int        h_vis; // bool
-    t_clickhandlefn h_clickfn;
-    t_motionhandlefn h_motionfn;
-} t_scalehandle;
-
-typedef struct _iemgui
-{
-    t_object       x_obj;
-    t_glist       *x_glist;
-    t_iemfunptr    x_draw;           //29    /* this should be static */
-    int            x_h; //unsigned   //80
-    int            x_w; //unsigned   //119
-    int            x_ldx;            //33
-    int            x_ldy;            //33
-    int            x_fontsize;//uns. //41
-    int            x_fcol;//iemcolor //35  /* foreground */
-    int            x_bcol;//iemcolor //41  /* background */
-    int            x_lcol;//iemcolor //21  /* label */
-    t_symbol      *x_snd;            //18  /* send symbol */
-    t_symbol      *x_rcv;            //33  /* receive */
-    t_symbol      *x_lab;            //15  /* label */
-    t_symbol      *x_snd_unexpanded; //7  /* same 3, with '$' unexpanded */
-    t_symbol      *x_rcv_unexpanded; //7
-    t_symbol      *x_lab_unexpanded; //6
-    int            x_binbufindex;    //4   /* where in binbuf to find these (this should be static) */
-    int            x_labelbindex;    //5   /* where in binbuf to find label (this should be static) */
-    t_scalehandle *x_handle;         //24
-    t_scalehandle *x_lhandle;        //19
-    int            x_vis;     //bool //64  /* is the object drawn? */
-    int            x_changed; //bool //30  /* has the value changed so that we need to do graphic update */
-
-                                  // grep -w "$1" *.[ch]|wc -l
-    t_glist     *x_selected;      // 24 matches
-    // from t_iem_fstyle_flags
-    unsigned int x_font_style:6;  // 33 matches
-    unsigned int x_finemoved:1;   //  7 matches (sliders and [nbx] only)
-    unsigned int x_put_in2out:1;  //  9 matches
-    unsigned int x_change:1;      // 28 matches  // what's this and why is there also a x_changed ?
-    // from t_iem_init_symargs
-    unsigned int x_loadinit:1;    // 21 matches
-    unsigned int x_locked:1;      //  7 matches ([bng] only)
-    unsigned int x_reverse:1;     //  4 matches (sliders only)
-    unsigned int dummy:20;
-} t_iemgui;
-
-typedef struct _bng
-{
-    t_iemgui x_gui;
-    int      x_flashed; // bool
-    int      x_flashtime_break; // >= 0
-    int      x_flashtime_hold; // >= 0
-    t_clock  *x_clock_hld;
-    t_clock  *x_clock_brk;
-    t_clock  *x_clock_lck;
-} t_bng;
-
-typedef struct _slider
-{
-    t_iemgui x_gui;
-    int      x_pos;
-    int      x_val;
-    int      x_center; // is this necessary ?
-    int      x_thick; // bool
-    int      x_lin0_log1; // bool
-    int      x_steady; // bool
-    double   x_min;
-    double   x_max;
-    double   x_k;
-    double   x_last;
-    int      x_is_last_float; // bool
-    int      x_orient; // bool: 0=horizontal ([hsl]), 1=vertical ([vsl])
-} t_slider;
-
-typedef struct _radio
-{
-    t_iemgui x_gui;
-    int      x_on; // unsigned < x_number
-    int      x_on_old; /* for use by [hdl] [vdl] */
-    int      x_change; // bool
-    int      x_number; // unsigned > 0
-    int      x_drawn; // unsigned < x_number
-    t_atom   x_at[2]; // tmp buffer for outlet_list
-    int      x_orient; // bool: 0=horiz, 1=vert
-} t_radio;
-
-typedef struct _toggle
-{
-    t_iemgui x_gui;
-    t_float  x_on;
-    t_float  x_nonzero;
-} t_toggle;
-
-typedef struct _my_canvas
-{
-    t_iemgui x_gui;
-    t_atom   x_at[2]; // tmp buffer for outlet_list
-    int      x_vis_w; // unsigned
-    int      x_vis_h; // unsigned
-} t_my_canvas;
-
-typedef struct _vu
-{
-    t_iemgui x_gui;
-    int      x_led_size; // unsigned
-    int      x_peak; // 1..40 if visible ; 0 if invisible
-    int      x_rms;  // 1..40 if visible ; 0 if invisible
-    t_float  x_fp; // value for outlet 1
-    t_float  x_fr; // value for outlet 0
-    int      x_scale; // bool
-    t_outlet *x_out_rms; // outlet 0
-    t_outlet *x_out_peak; // outlet 1
-    unsigned int x_updaterms:1;
-    unsigned int x_updatepeak:1;
-} t_vu;
-
-typedef struct _my_numbox
-{
-    t_iemgui x_gui;
-    t_clock  *x_clock_reset;
-    t_clock  *x_clock_wait;
-    double   x_val;
-    double   x_min;
-    double   x_max;
-    double   x_k;
-    int      x_lin0_log1; // bool
-    char     x_buf[IEMGUI_MAX_NUM_LEN];
-    int      x_numwidth; // unsigned
-    int      x_scalewidth;  /* temporary value for scalehandle */
-    int      x_scaleheight; /* temporary value for scalehandle */
-    int      x_tmpfontsize; /* temporary value for scalehandle */
-    int      x_log_height;
-    int      x_hide_frame;  /* 0 default, 1 just arrow, 2, just frame, 3 both */
-} t_my_numbox;
-
-extern int sys_noloadbang;
-extern int iemgui_color_hex[];
-
-EXTERN int iemgui_clip_size(int size);
-EXTERN int iemgui_clip_font(int size);
-EXTERN void iemgui_verify_snd_ne_rcv(t_iemgui *iemgui);
-EXTERN t_symbol *iemgui_getfloatsym(t_atom *a);
-EXTERN t_symbol *iemgui_getfloatsymarg(int i, int argc, t_atom *argv);
-EXTERN void iemgui_new_getnames(t_iemgui *iemgui, int indx, t_atom *argv);
-EXTERN void iemgui_all_colfromload(t_iemgui *iemgui, int *bflcol);
-EXTERN void iemgui_send(t_iemgui *x, t_symbol *s);
-EXTERN void iemgui_receive(t_iemgui *x, t_symbol *s);
-EXTERN void iemgui_label(t_iemgui *x, t_symbol *s);
-EXTERN void iemgui_label_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av);
-EXTERN void iemgui_label_font(t_iemgui *x, t_symbol *s, int ac, t_atom *av);
-EXTERN void iemgui_label_getrect(t_iemgui x_gui, t_glist *x, int *xp1, int *yp1, int *xp2, int *yp2);
-EXTERN void iemgui_shouldvis(t_iemgui *x, int mode);
-EXTERN void iemgui_size(t_iemgui *x);
-EXTERN void iemgui_delta(t_iemgui *x, t_symbol *s, int ac, t_atom *av);
-EXTERN void iemgui_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av);
-EXTERN void iemgui_color(t_iemgui *x, t_symbol *s, int ac, t_atom *av);
-EXTERN void iemgui_displace(t_gobj *z, t_glist *glist, int dx, int dy);
-EXTERN void iemgui_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy);
-EXTERN void iemgui_select(t_gobj *z, t_glist *glist, int selected);
-EXTERN void iemgui_delete(t_gobj *z, t_glist *glist);
-EXTERN void iemgui_vis(t_gobj *z, t_glist *glist, int vis);
-EXTERN void iemgui_save(t_iemgui *x, t_symbol **srl, int *bflcol);
-EXTERN void iemgui_properties(t_iemgui *x, t_symbol **srl);
-EXTERN int iemgui_dialog(t_iemgui *x, int argc, t_atom *argv);
-
-EXTERN void iem_inttosymargs(t_iemgui *x, int n);
-EXTERN int iem_symargstoint(t_iemgui *x);
-EXTERN void iem_inttofstyle(t_iemgui *x, int n);
-EXTERN int iem_fstyletoint(t_iemgui *x);
-
-EXTERN void canvas_apply_setundo(t_canvas *x, t_gobj *y);
-
-// scalehandle code, as refactored by Mathieu
-EXTERN void scalehandle_bind(t_scalehandle *h);
-EXTERN void scalehandle_draw_select(t_scalehandle *h, int px, int py);
-EXTERN void scalehandle_draw_select2(t_iemgui *x);
-EXTERN void scalehandle_draw_erase(t_scalehandle *h);
-EXTERN void scalehandle_draw_erase2(t_iemgui *x);
-EXTERN void scalehandle_draw(t_iemgui *x);
-EXTERN t_scalehandle *scalehandle_new(t_object *x, t_glist *glist, int scale, t_clickhandlefn chf, t_motionhandlefn mhf);
-EXTERN void scalehandle_free(t_scalehandle *h);
-EXTERN void properties_set_field_int(long props, const char *gui_field, int value);
-EXTERN void scalehandle_dragon_label(t_scalehandle *h, float f1, float f2);
-EXTERN void scalehandle_unclick_label(t_scalehandle *h);
-EXTERN void scalehandle_click_label(t_scalehandle *h);
-EXTERN void scalehandle_click_scale(t_scalehandle *h);
-EXTERN void scalehandle_unclick_scale(t_scalehandle *h);
-EXTERN void scalehandle_drag_scale(t_scalehandle *h);
-EXTERN void iemgui__clickhook3(t_scalehandle *sh, int newstate);
-
-EXTERN int mini(int a, int b);
-EXTERN int maxi(int a, int b);
-EXTERN float minf(float a, float b);
-EXTERN float maxf(float a, float b);
-
-// other refactor by Mathieu
-EXTERN void iemgui_tag_selected(     t_iemgui *x);
-EXTERN void iemgui_label_draw_new(   t_iemgui *x);
-EXTERN void iemgui_label_draw_move(  t_iemgui *x);
-EXTERN void iemgui_label_draw_config(t_iemgui *x);
-EXTERN void iemgui_label_draw_select(t_iemgui *x);
-EXTERN void iemgui_io_draw_move(t_iemgui *x);
-EXTERN void iemgui_draw_io(t_iemgui *x, int old_sr_flags);
-EXTERN void iemgui_base_draw_new(t_iemgui *x);
-EXTERN void iemgui_base_draw_move(t_iemgui *x);
-EXTERN void iemgui_base_draw_config(t_iemgui *x);
-EXTERN void iemgui_draw_new(t_iemgui *x);
-EXTERN void iemgui_draw_config(t_iemgui *x);
-EXTERN void iemgui_draw_move(t_iemgui *x);
-EXTERN void iemgui_draw_erase(t_iemgui *x);
-EXTERN void wb_init(t_widgetbehavior *wb, t_getrectfn gr, t_clickfn cl); // rename this to iemgui_wb_init
-
-extern t_symbol *s_empty;
-EXTERN const char *selection_color;
-
-static inline int iemgui_has_snd (t_iemgui *x) {return x->x_snd!=s_empty;}
-static inline int iemgui_has_rcv (t_iemgui *x) {return x->x_rcv!=s_empty;}
-EXTERN const char *iemgui_font(t_iemgui *x);
-EXTERN const char *iemgui_typeface(t_iemgui *x);
-
-EXTERN void iemgui_class_addmethods(t_class *c);
-EXTERN void scrollbar_update(t_glist *glist);
-EXTERN void iemgui_init(t_iemgui *x, t_floatarg f);
-
-EXTERN void iemgui_out_bang(t_iemgui *x, int o, int chk_putin);
-EXTERN void iemgui_out_float(t_iemgui *x, int o, int chk_putin, t_float f);
-EXTERN void iemgui_out_list(t_iemgui *x, int o, int chk_putin, t_symbol *s, int argc, t_atom *argv);
-
diff --git a/externals/build/include/g_canvas.h b/externals/build/include/g_canvas.h
deleted file mode 100644
index d847b51b0e1a8baeaee1014c787cce4720b6828b..0000000000000000000000000000000000000000
--- a/externals/build/include/g_canvas.h
+++ /dev/null
@@ -1,781 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-/* this file defines the structure for "glists" and related structures and
-functions.  "Glists" and "canvases" and "graphs" used to be different
-structures until being unified in version 0.35.
-
-A glist occupies its own window if the "gl_havewindow" flag is set.  Its
-appearance on its "parent", also called "owner", (if it has one) is as a graph
-if "gl_isgraph" is set, and otherwise as a text box.
-
-A glist is "root" if it has no owner, i.e., a document window.  In this
-case "gl_havewindow" is always set.
-
-We maintain a list of root windows, so that we can traverse the whole
-collection of everything in a Pd process.
-
-If a glist has a window it may still not be "mapped."  Miniaturized
-windows aren't mapped, for example, but a window is also not mapped
-immediately upon creation.  In either case gl_havewindow is true but
-gl_mapped is false.
-
-Closing a non-root window makes it invisible; closing a root destroys it.
-
-A glist that's just a text object on its parent is always "toplevel."  An
-embedded glist can switch back and forth to appear as a toplevel by double-
-clicking on it.  Single-clicking a text box makes the toplevel become visible
-and raises the window it's in.
-
-If a glist shows up as a graph on its parent, the graph is blanked while the
-glist has its own window, even if miniaturized.
-
-*/
-
-/* NOTE: this file describes Pd implementation details which may change
-in future releases.  The public (stable) API is in m_pd.h. */  
-
-#ifndef PD_G_CANVAS_H
-#define PD_G_CANVAS_H
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-extern "C" {
-#endif
-  
-/* --------------------- geometry ---------------------------- */
-#define IOWIDTH 7       /* width of an inlet/outlet in pixels */
-#define IOMIDDLE ((IOWIDTH-1)/2)
-#define GLIST_DEFGRAPHWIDTH 200
-#define GLIST_DEFGRAPHHEIGHT 140
-/* ----------------------- data ------------------------------- */
-
-typedef struct _updateheader
-{
-    struct _updateheader *upd_next;
-    unsigned int upd_array:1;       /* true if array, false if glist */
-    unsigned int upd_queued:1;      /* true if we're queued */
-} t_updateheader;
-
-    /* types to support glists grabbing mouse motion or keys from parent */
-typedef void (*t_glistmotionfn)(void *z, t_floatarg dx, t_floatarg dy);
-typedef void (*t_glistkeyfn)(void *z, t_floatarg key);
-
-EXTERN_STRUCT _rtext;
-#define t_rtext struct _rtext
-
-EXTERN_STRUCT _gtemplate;
-#define t_gtemplate struct _gtemplate
-
-EXTERN_STRUCT _guiconnect;
-#define t_guiconnect struct _guiconnect
-
-EXTERN_STRUCT _tscalar;
-#define t_tscalar struct _tscalar
-
-EXTERN_STRUCT _canvasenvironment;
-#define t_canvasenvironment struct _canvasenvironment 
-
-EXTERN_STRUCT _fielddesc;
-#define t_fielddesc struct _fielddesc
-
-// jsarlo
-EXTERN_STRUCT _magicGlass;
-#define t_magicGlass struct _magicGlass
-// end jsarlo
-
-// undo stuff
-EXTERN_STRUCT _undo_action;
-#define t_undo_action struct _undo_action
-
-// preset hub stuff
-EXTERN_STRUCT _preset_hub;
-#define t_preset_hub struct _preset_hub
-
-typedef struct _selection
-{
-    t_gobj *sel_what;
-    struct _selection *sel_next;
-} t_selection;
-
-    /* this structure is instantiated whenever a glist becomes visible. */
-typedef struct _editor
-{
-    t_updateheader e_upd;           /* update header structure */
-    t_selection *e_updlist;         /* list of objects to update */
-    t_rtext *e_rtext;               /* text responder linked list */
-    t_selection *e_selection;       /* head of the selection list */
-    t_rtext *e_textedfor;           /* the rtext if any that we are editing */
-    t_gobj *e_grab;                 /* object being "dragged" */
-    t_glistmotionfn e_motionfn;     /* ... motion callback */
-    t_glistkeyfn e_keyfn;           /* ... keypress callback */
-    t_binbuf *e_connectbuf;         /* connections to deleted objects */
-    t_binbuf *e_deleted;            /* last stuff we deleted */
-    t_guiconnect *e_guiconnect;     /* GUI connection for filtering messages */
-    struct _glist *e_glist;         /* glist which owns this */
-    int e_xwas;                     /* xpos on last mousedown or motion event */
-    int e_ywas;                     /* ypos, similarly */
-    int e_selectline_index1;        /* indices for the selected line if any */
-    int e_selectline_outno;         /* (only valid if e_selectedline is set) */
-    int e_selectline_index2;
-    int e_selectline_inno;
-    t_outconnect *e_selectline_tag;
-    unsigned int e_onmotion: 3;     /* action to take on motion */
-    unsigned int e_lastmoved: 1;    /* one if mouse has moved since click */
-    unsigned int e_textdirty: 1;    /* one if e_textedfor has changed */
-    unsigned int e_selectedline: 1; /* one if a line is selected */
-    t_magicGlass *gl_magic_glass;   /* magic glass object */
-	char canvas_cnct_inlet_tag[4096]; /* tags for currently highlighted nlets */
-	char canvas_cnct_outlet_tag[4096];
-    t_clock *e_clock;               /* clock to filter GUI move messages */
-    int e_xnew;                     /* xpos for next move event */
-    int e_ynew;                     /* ypos, similarly */
-} t_editor;
-
-#define MA_NONE    0    /* e_onmotion: do nothing on mouse motion */
-#define MA_MOVE    1    /* drag the selection around */
-#define MA_CONNECT 2    /* make a connection */
-#define MA_REGION  3    /* selection region */
-#define MA_PASSOUT 4    /* send on to e_grab */
-#define MA_DRAGTEXT 5   /* drag in text editor to alter selection */
-#define MA_RESIZE  6    /* drag to resize */
-#define MA_SCROLL  7    /* scroll with middle click onto empty canvas */
-
-/* editor structure for "garrays".  We don't bother to delete and regenerate
-this structure when the "garray" becomes invisible or visible, although we
-could do so if the structure gets big (like the "editor" above.) */
-    
-typedef struct _arrayvis
-{
-    t_updateheader av_upd;          /* update header structure */
-    t_garray *av_garray;            /* owning structure */    
-} t_arrayvis;
-
-t_garray* array_garray;				/* used for sending bangs when
-									   array is changed  via gui */
-
-/* the t_tick structure describes where to draw x and y "ticks" for a glist */
-
-typedef struct _tick    /* where to put ticks on x or y axes */
-{
-    t_float k_point;      /* one point to draw a big tick at */
-    t_float k_inc;        /* x or y increment per little tick */
-    int k_lperb;        /* little ticks per big; 0 if no ticks to draw */
-} t_tick;
-
-/* the t_glist structure, which describes a list of elements that live on an
-area of a window.
-
-*/
-
-//#include "g_undo.h"
-
-struct _glist
-{  
-    t_object gl_obj;            /* header in case we're a glist */
-    t_gobj *gl_list;            /* the actual data */
-    struct _gstub *gl_stub;     /* safe pointer handler */
-    int gl_valid;               /* incremented when pointers might be stale */
-    struct _glist *gl_owner;    /* parent glist, supercanvas, or 0 if none */
-    int gl_pixwidth;            /* width in pixels (on parent, if a graph) */
-    int gl_pixheight;
-    t_float gl_x1;                /* bounding rectangle in our own coordinates */
-    t_float gl_y1;
-    t_float gl_x2;
-    t_float gl_y2;
-    int gl_screenx1;            /* screen coordinates when toplevel */
-    int gl_screeny1;
-    int gl_screenx2;
-    int gl_screeny2;
-    int gl_xmargin;                /* origin for GOP rectangle */
-    int gl_ymargin;
-    t_tick gl_xtick;            /* ticks marking X values */    
-    int gl_nxlabels;            /* number of X coordinate labels */
-    t_symbol **gl_xlabel;           /* ... an array to hold them */
-    t_float gl_xlabely;               /* ... and their Y coordinates */
-    t_tick gl_ytick;            /* same as above for Y ticks and labels */
-    int gl_nylabels;
-    t_symbol **gl_ylabel;
-    t_float gl_ylabelx;
-    t_editor *gl_editor;        /* editor structure when visible */
-    t_symbol *gl_name;          /* symbol bound here */
-    int gl_font;                /* nominal font size in points, e.g., 10 */
-    struct _glist *gl_next;         /* link in list of toplevels */
-    t_canvasenvironment *gl_env;    /* root canvases and abstractions only */
-    unsigned int gl_havewindow:1;   /* true if we own a window */
-    unsigned int gl_mapped:1;       /* true if, moreover, it's "mapped" */
-    unsigned int gl_dirty:1;        /* (root canvas only:) patch has changed */
-    unsigned int gl_loading:1;      /* am now loading from file */
-    unsigned int gl_willvis:1;      /* make me visible after loading */ 
-    unsigned int gl_edit:1;         /* edit mode */
-    unsigned int gl_isdeleting:1;   /* we're inside glist_delete -- hack! */
-    unsigned int gl_unloading:1;    /* we're inside canvas_free */
-    unsigned int gl_goprect:1;      /* draw rectangle for graph-on-parent */
-    unsigned int gl_isgraph:1;      /* show as graph on parent */
-    unsigned int gl_hidetext:1;     /* hide object-name + args when doing graph on parent */
-	unsigned int gl_gop_initialized:1;     /* used for tagged moving of gop-ed objects to avoid redundant reinit */
-	//global preset array pointer
-	t_preset_hub *gl_phub;
-	//infinite undo goodies (have to stay here rather than the editor to prevent its obliteration when editor is deleted)
-	t_undo_action *u_queue;
-	t_undo_action *u_last;
-	//dpsaha@vt.edu for the gop dynamic resizing & move handle (refactored by mathieu)
-	struct _scalehandle *x_handle;
-	struct _scalehandle *x_mhandle;
-	t_pd *gl_svg;
-};
-
-#define gl_gobj gl_obj.te_g
-#define gl_pd gl_gobj.g_pd
-
-/*-------------------universal preset stuff---------------------*/
-// for the universal preset_node ability (see g_editor.c doconnect/disconnect functions)
-// this is where all the classes capable of being controlled via preset should be defined
-
-// preset objects
-t_class *preset_hub_class;
-t_class *preset_node_class;
-
-// special case objects
-extern t_class *print_class;
-extern t_class *message_class;
-/*-----------------end universal preset stuff-------------------*/
-
-/* a data structure to describe a field in a pure datum */
-
-#define DT_FLOAT 0
-#define DT_SYMBOL 1
-#define DT_LIST 2
-#define DT_ARRAY 3
-
-typedef struct _dataslot
-{
-    int ds_type;
-    t_symbol *ds_name;
-    t_symbol *ds_arraytemplate;     /* filled in for arrays only */
-} t_dataslot;
-
-typedef struct _template
-{
-    t_pd t_pdobj;               /* header */
-    struct _gtemplate *t_list;  /* list of "struct"/gtemplate objects */
-    t_symbol *t_sym;            /* name */
-    int t_transformable;        /* counts number of arrays in template
-                                   drawn objects that depend on this
-                                   template can only be transformed
-                                   (scaled/skewed,rotated, etc.)
-                                   if this var is 0 */
-    int t_n;                    /* number of dataslots (fields) */
-    t_dataslot *t_vec;          /* array of dataslots */
-} t_template;
-
-struct _array
-{
-    int a_n;            /* number of elements */
-    int a_elemsize;     /* size in bytes; LATER get this from template */
-    char *a_vec;        /* array of elements */
-    t_symbol *a_templatesym;    /* template for elements */
-    int a_valid;        /* protection against stale pointers into array */
-    t_gpointer a_gp;    /* pointer to scalar or array element we're in */
-    t_gstub *a_stub;    /* stub for pointing into this array */
-};
-
-    /* structure for traversing all the connections in a glist */
-typedef struct _linetraverser
-{
-    t_canvas *tr_x;
-    t_object *tr_ob;
-    int tr_nout;
-    int tr_outno;
-    t_object *tr_ob2;
-    t_outlet *tr_outlet;
-    t_inlet *tr_inlet;
-    int tr_nin;
-    int tr_inno;
-    int tr_x11, tr_y11, tr_x12, tr_y12;
-    int tr_x21, tr_y21, tr_x22, tr_y22;
-    int tr_lx1, tr_ly1, tr_lx2, tr_ly2;
-    t_outconnect *tr_nextoc;
-    int tr_nextoutno;
-} t_linetraverser;
-
-EXTERN int outconnect_visible(t_outconnect *oc);
-EXTERN int outconnect_setvisible(t_outconnect *oc, int vis);
-
-/* function types used to define graphical behavior for gobjs, a bit like X
-widgets.  We don't use Pd methods because Pd's typechecking can't specify the
-types of pointer arguments.  Also it's more convenient this way, since
-every "patchable" object can just get the "text" behaviors. */
-
-        /* Call this to get a gobj's bounding rectangle in pixels */
-typedef void (*t_getrectfn)(t_gobj *x, struct _glist *glist,
-    int *x1, int *y1, int *x2, int *y2);
-        /* and this to displace a gobj: */
-typedef void (*t_displacefn)(t_gobj *x, struct _glist *glist, int dx, int dy);
-        /* change color to show selection: */
-typedef void (*t_selectfn)(t_gobj *x, struct _glist *glist, int state);
-        /* change appearance to show activation/deactivation: */
-typedef void (*t_activatefn)(t_gobj *x, struct _glist *glist, int state);
-        /* warn a gobj it's about to be deleted */
-typedef void (*t_deletefn)(t_gobj *x, struct _glist *glist);
-        /*  making visible or invisible */
-typedef void (*t_visfn)(t_gobj *x, struct _glist *glist, int flag);
-        /* field a mouse click (when not in "edit" mode) */
-typedef int (*t_clickfn)(t_gobj *x, struct _glist *glist,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-        /* and this to displace a gobj using tags: */
-typedef void (*t_displacefnwtag)(t_gobj *x, struct _glist *glist, int dx, int dy);
-        /* ... and later, resizing; getting/setting font or color... */
-
-struct _widgetbehavior
-{
-    t_getrectfn w_getrectfn;
-    t_displacefn w_displacefn;
-    t_selectfn w_selectfn;
-    t_activatefn w_activatefn;
-    t_deletefn w_deletefn;
-    t_visfn w_visfn;
-    t_clickfn w_clickfn;
-	t_displacefnwtag w_displacefnwtag;
-};
-
-/* -------- behaviors for scalars defined by objects in template --------- */
-/* these are set by "drawing commands" in g_template.c which add appearance to
-scalars, which live in some other window.  If the scalar is just included
-in a canvas the "parent" is a misnomer.  There is also a text scalar object
-which really does draw the scalar on the parent window; see g_scalar.c. */
-
-/* note how the click function wants the whole scalar, not the "data", so
-doesn't work on array elements... LATER reconsider this */
-
-        /* bounding rectangle: */
-typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, t_float basex, t_float basey,
-    int *x1, int *y1, int *x2, int *y2);
-        /* displace it */
-typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, 
-    t_word *data, t_template *tmpl, t_float basex, t_float basey,
-    int dx, int dy);
-        /* change color to show selection */
-typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, t_float basex, t_float basey,
-    int state);
-        /* change appearance to show activation/deactivation: */
-typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, t_float basex, t_float basey,
-    int state);
-        /*  making visible or invisible */
-typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
-    struct _glist *parentglist, t_scalar *sc, 
-    t_word *data, t_template *tmpl, t_float basex, t_float basey,
-    int flag);
-        /*  field a mouse click */
-typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap,
-    t_float basex, t_float basey,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-
-struct _parentwidgetbehavior
-{
-    t_parentgetrectfn w_parentgetrectfn;
-    t_parentdisplacefn w_parentdisplacefn;
-    t_parentselectfn w_parentselectfn;
-    t_parentactivatefn w_parentactivatefn;
-    t_parentvisfn w_parentvisfn;
-    t_parentclickfn w_parentclickfn;
-};
-
-    /* cursor definitions; used as return value for t_parentclickfn */
-#define CURSOR_RUNMODE_NOTHING 0
-#define CURSOR_RUNMODE_CLICKME 1
-#define CURSOR_RUNMODE_THICKEN 2
-#define CURSOR_RUNMODE_ADDPOINT 3
-#define CURSOR_EDITMODE_NOTHING 4
-#define CURSOR_EDITMODE_CONNECT 5
-#define CURSOR_EDITMODE_DISCONNECT 6
-#define CURSOR_EDITMODE_RESIZE 7
-#define CURSOR_EDITMODE_RESIZE_BOTTOM_RIGHT 8
-#define CURSOR_SCROLL 9
-EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum);
-
-extern t_canvas *canvas_editing;    /* last canvas to start text edting */ 
-extern t_canvas *canvas_whichfind;  /* last canvas we did a find in */ 
-extern t_canvas *canvas_list;       /* list of all root canvases */
-extern t_class *vinlet_class, *voutlet_class;
-extern int glist_valid;         /* incremented when pointers might be stale */
-
-#define PLOTSTYLE_POINTS 0     /* plotting styles for arrays */
-#define PLOTSTYLE_POLY 1
-#define PLOTSTYLE_BEZ 2
-#define PLOTSTYLE_BARS 3
-
-/* ------------------- functions on any gobj ----------------------------- */
-EXTERN void gobj_getrect(t_gobj *x, t_glist *owner, int *x1, int *y1,
-    int *x2, int *y2);
-EXTERN void gobj_displace(t_gobj *x, t_glist *owner, int dx, int dy);
-EXTERN void gobj_select(t_gobj *x, t_glist *owner, int state);
-EXTERN void gobj_activate(t_gobj *x, t_glist *owner, int state);
-EXTERN void gobj_delete(t_gobj *x, t_glist *owner);
-EXTERN void gobj_vis(t_gobj *x, t_glist *glist, int flag);
-EXTERN int gobj_click(t_gobj *x, struct _glist *glist,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
-EXTERN void gobj_properties(t_gobj *x, struct _glist *glist);
-EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
-EXTERN int gobj_shouldvis(t_gobj *x, struct _glist *glist);
-
-/* -------------------- functions on glists --------------------- */
-EXTERN t_glist *glist_new( void);
-EXTERN void glist_init(t_glist *x);
-EXTERN void glist_add(t_glist *x, t_gobj *g);
-EXTERN void glist_clear(t_glist *x);
-EXTERN t_canvas *glist_getcanvas(t_glist *x);
-EXTERN int glist_isselected(t_glist *x, t_gobj *y);
-EXTERN void glist_select(t_glist *x, t_gobj *y);
-EXTERN void glist_deselect(t_glist *x, t_gobj *y);
-EXTERN void glist_noselect(t_glist *x);
-EXTERN void glist_selectall(t_glist *x);
-EXTERN void glist_delete(t_glist *x, t_gobj *y);
-EXTERN void glist_retext(t_glist *x, t_text *y);
-EXTERN void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
-    t_glistkeyfn keyfn, int xpos, int ypos);
-EXTERN int glist_isvisible(t_glist *x);
-EXTERN int glist_istoplevel(t_glist *x);
-EXTERN t_glist *glist_findgraph(t_glist *x);
-EXTERN int glist_getfont(t_glist *x);
-EXTERN void glist_sort(t_glist *canvas);
-EXTERN void glist_read(t_glist *x, t_symbol *filename, t_symbol *format);
-EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
-
-EXTERN t_float glist_pixelstox(t_glist *x, t_float xpix);
-EXTERN t_float glist_pixelstoy(t_glist *x, t_float ypix);
-EXTERN t_float glist_xtopixels(t_glist *x, t_float xval);
-EXTERN t_float glist_ytopixels(t_glist *x, t_float yval);
-EXTERN t_float glist_dpixtodx(t_glist *x, t_float dxpix);
-EXTERN t_float glist_dpixtody(t_glist *x, t_float dypix);
-
-EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
-EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
-    t_float x1, t_float y1, t_float x2, t_float y2,
-    t_float px1, t_float py1, t_float px2, t_float py2);
-EXTERN void glist_arraydialog(t_glist *parent, t_symbol *s,
-    int argc, t_atom *argv);
-EXTERN t_binbuf *glist_writetobinbuf(t_glist *x, int wholething);
-EXTERN int glist_isgraph(t_glist *x);
-EXTERN void glist_redraw(t_glist *x);
-EXTERN void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime,
-    char *tag, int x1, int y1, int x2, int y2);
-EXTERN void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag);
-EXTERN void canvas_create_editor(t_glist *x);
-EXTERN void canvas_destroy_editor(t_glist *x);
-EXTERN void canvas_deletelinesforio(t_canvas *x, t_text *text,
-    t_inlet *inp, t_outlet *outp);
-EXTERN int glist_amreloadingabstractions; /* stop GUI changes while reloading */
-EXTERN int canvas_restore_original_position(t_glist *x, t_gobj *y, const char *objtag, int dir);
-
-/* -------------------- functions on texts ------------------------- */
-EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize, int pos);
-EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag,
-    int width, int height, int firsttime);
-EXTERN void text_drawborder_withtag(t_text *x, t_glist *glist, char *tag,
-    int width, int height, int firsttime);
-EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
-EXTERN int text_xcoord(t_text *x, t_glist *glist);
-EXTERN int text_ycoord(t_text *x, t_glist *glist);
-EXTERN int text_xpix(t_text *x, t_glist *glist);
-EXTERN int text_ypix(t_text *x, t_glist *glist);
-
-/* -------------------- functions on rtexts ------------------------- */
-#define RTEXT_DOWN 1
-#define RTEXT_DRAG 2
-#define RTEXT_DBL 3
-#define RTEXT_SHIFT 4
-
-// number in comment is the number in grep -w|wc
-EXTERN t_rtext *rtext_new(t_glist *glist, t_text *who); //5
-EXTERN t_rtext *glist_findrtext(t_glist *gl, t_text *who); //53
-EXTERN void rtext_draw(t_rtext *x); //4
-EXTERN void rtext_erase(t_rtext *x); //4
-EXTERN int rtext_width(t_rtext *x); //9
-EXTERN int rtext_height(t_rtext *x); //9
-EXTERN void rtext_displace(t_rtext *x, int dx, int dy); //3
-EXTERN void rtext_select(t_rtext *x, int state); //4
-EXTERN void rtext_activate(t_rtext *x, int state); //3
-EXTERN void rtext_free(t_rtext *x); //4
-EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s); //6
-EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag); //5
-EXTERN void rtext_retext(t_rtext *x); //5
-EXTERN char *rtext_gettag(t_rtext *x); //47
-EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize); //9
-EXTERN void rtext_getseltext(t_rtext *x, char **buf, int *bufsize); //4
-
-/* -------------------- functions on canvases ------------------------ */
-EXTERN t_class *canvas_class;
-
-EXTERN t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv);
-EXTERN t_symbol *canvas_makebindsym(t_symbol *s);
-EXTERN void canvas_vistext(t_canvas *x, t_text *y);
-EXTERN void canvas_fixlinesfor(t_canvas *x, t_text *text);
-EXTERN void canvas_deletelinesfor(t_canvas *x, t_text *text);
-EXTERN void canvas_eraselinesfor(t_canvas *x, t_text *text);
-EXTERN void canvas_stowconnections(t_canvas *x);
-EXTERN void canvas_restoreconnections(t_canvas *x);
-EXTERN void canvas_redraw(t_canvas *x);
-
-EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym);
-EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
-EXTERN t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym);
-EXTERN void canvas_rmoutlet(t_canvas *x, t_outlet *op);
-EXTERN void canvas_redrawallfortemplate(t_template *tmpl, int action);
-EXTERN void canvas_redrawallfortemplatecanvas(t_canvas *x, int action);
-EXTERN void canvas_zapallfortemplate(t_canvas *tmpl);
-EXTERN void canvas_setusedastemplate(t_canvas *x);
-EXTERN t_canvas *canvas_getcurrent(void);
-EXTERN void canvas_setcurrent(t_canvas *x);
-EXTERN void canvas_unsetcurrent(t_canvas *x);
-EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s);
-EXTERN t_canvas *canvas_getrootfor(t_canvas *x);
-EXTERN void canvas_dirty(t_canvas *x, t_floatarg n);
-EXTERN int canvas_getfont(t_canvas *x);
-typedef int (*t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3);
-
-EXTERN t_int *canvas_recurapply(t_canvas *x, t_canvasapply *fn,
-    t_int x1, t_int x2, t_int x3);
-
-EXTERN void canvas_resortinlets(t_canvas *x);
-EXTERN void canvas_resortoutlets(t_canvas *x);
-EXTERN void canvas_free(t_canvas *x);
-EXTERN void canvas_updatewindowlist( void);
-EXTERN void canvas_editmode(t_canvas *x, t_floatarg yesplease);
-EXTERN int canvas_isabstraction(t_canvas *x);
-EXTERN int canvas_istable(t_canvas *x);
-EXTERN int canvas_showtext(t_canvas *x);
-EXTERN void canvas_vis(t_canvas *x, t_floatarg f);
-EXTERN t_canvasenvironment *canvas_getenv(t_canvas *x);
-EXTERN void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir);
-EXTERN void canvas_loadbang(t_canvas *x);
-EXTERN int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
-    int *x1p, int *y1p, int *x2p, int *y2p);
-EXTERN t_gobj *canvas_findhitbox(t_canvas *x, int xpos, int ypos,
-    int *x1p, int *y1p, int *x2p, int *y2p);
-EXTERN int canvas_setdeleting(t_canvas *x, int flag);
-EXTERN int canvas_hasarray(t_canvas *x);
-
-/* ---- for parsing @pd_extra and other sys paths in filenames  --------------------- */
-
-EXTERN void sys_expandpathelems(const char *name, const char *result);
-
-typedef void (*t_undofn)(t_canvas *canvas, void *buf,
-    int action);        /* a function that does UNDO/REDO */
-#define UNDO_FREE 0                     /* free current undo/redo buffer */
-#define UNDO_UNDO 1                     /* undo */
-#define UNDO_REDO 2                     /* redo */
-EXTERN void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf,
-    const char *name);
-EXTERN void canvas_noundo(t_canvas *x);
-EXTERN int canvas_getindex(t_canvas *x, t_gobj *y);
-
-EXTERN void canvas_connect(t_canvas *x,
-    t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
-EXTERN void canvas_disconnect(t_canvas *x,
-    t_float index1, t_float outno, t_float index2, t_float inno);
-EXTERN int canvas_isconnected (t_canvas *x,
-    t_text *ob1, int n1, t_text *ob2, int n2);
-EXTERN void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy);
-
-
-/* ---- functions on canvasses as objects  --------------------- */
-
-EXTERN void canvas_fattenforscalars(t_canvas *x,
-    int *x1, int *y1, int *x2, int *y2);
-EXTERN void canvas_visforscalars(t_canvas *x, t_glist *glist, int vis);
-EXTERN int canvas_clicksub(t_canvas *x, int xpix, int ypix, int shift,
-    int alt, int dbl, int doit);
-EXTERN t_glist *canvas_getglistonsuper(void);
-
-EXTERN void linetraverser_start(t_linetraverser *t, t_canvas *x);
-EXTERN t_outconnect *linetraverser_next(t_linetraverser *t);
-EXTERN void linetraverser_skipobject(t_linetraverser *t);
-
-/* --------- functions on garrays (graphical arrays) -------------------- */
-
-EXTERN t_template *garray_template(t_garray *x);
-
-/* -------------------- arrays --------------------- */
-EXTERN t_garray *graph_array(t_glist *gl, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_array *array_new(t_symbol *templatesym, t_gpointer *parent);
-EXTERN void array_resize(t_array *x, int n);
-EXTERN void array_free(t_array *x);
-int array_joc; /* for "jump on click" array inside a graph */
-
-/* --------------------- gpointers and stubs ---------------- */
-EXTERN t_gstub *gstub_new(t_glist *gl, t_array *a);
-EXTERN void gstub_cutoff(t_gstub *gs);
-EXTERN void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x);
-EXTERN void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w);
-
-/* --------------------- scalars ------------------------- */
-EXTERN void word_init(t_word *wp, t_template *tmpl, t_gpointer *gp);
-EXTERN void word_restore(t_word *wp, t_template *tmpl,
-    int argc, t_atom *argv);
-EXTERN t_scalar *scalar_new(t_glist *owner,
-    t_symbol *templatesym);
-EXTERN void word_free(t_word *wp, t_template *tmpl);
-EXTERN void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey);
-EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
-EXTERN int template_has_elemtemplate(t_template *t, t_template *tmp);
-
-/* ------helper routines for "garrays" and "plots" -------------- */
-EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
-    t_symbol *elemtemplatesym,
-    t_float linewidth, t_float xloc, t_float xinc, t_float yloc, t_float scalarvis,
-    t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-
-EXTERN void array_getcoordinate(t_glist *glist,
-    char *elem, int xonset, int yonset, int wonset, int indx,
-    t_float basex, t_float basey, t_float xinc,
-    t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
-    t_float *xp1, t_float *xp2, t_float *yp, t_float *wp);
-
-EXTERN int array_getfields(t_symbol *elemtemplatesym,
-    t_canvas **elemtemplatecanvasp,
-    t_template **elemtemplatep, int *elemsizep,
-    t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, 
-    int *xonsetp, int *yonsetp, int *wonsetp);
-
-/* --------------------- templates ------------------------- */
-EXTERN t_template *template_new(t_symbol *sym, int argc, t_atom *argv);
-EXTERN void template_free(t_template *x);
-EXTERN int template_match(t_template *x1, t_template *x2);
-EXTERN int template_find_field(t_template *x, t_symbol *name, int *p_onset,
-    int *p_type, t_symbol **p_arraytype);
-EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname, t_word *wp,
-    int loud);
-EXTERN void template_setfloat(t_template *x, t_symbol *fieldname, t_word *wp,
-    t_float f, int loud);
-EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_symbol *s, int loud);
-
-EXTERN t_template *gtemplate_get(t_gtemplate *x);
-EXTERN t_template *template_findbyname(t_symbol *s);
-EXTERN int template_cancreate(t_template *tmp);
-EXTERN int template_hasxy(t_template *tmp);
-EXTERN t_canvas *template_findcanvas(t_template *tmpl);
-EXTERN void template_notify(t_template *tmpl,
-    t_symbol *s, int argc, t_atom *argv);
-
-EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setfloat(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_float f, int loud);
-EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_symbol *s, int loud);
-EXTERN t_float fielddesc_getcoord(t_fielddesc *f, t_template *tmpl,
-    t_word *wp, int loud);
-EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl,
-    t_word *wp, t_float pix, int loud);
-EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val);
-EXTERN t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord);
-
-/* ----------------------- guiconnects, g_guiconnect.c --------- */
-EXTERN t_guiconnect *guiconnect_new(t_pd *who, t_symbol *sym);
-EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay);
-
-/* ------------- IEMGUI routines used in other g_ files ---------------- */
-EXTERN t_symbol *iemgui_raute2dollar(t_symbol *s);
-EXTERN t_symbol *iemgui_dollar2raute(t_symbol *s);
-
-/* ---------- infinite undo/redo routines found in g_undo.c ------------ */
-
-EXTERN t_undo_action *canvas_undo_init(t_canvas *x);
-EXTERN t_undo_action *canvas_undo_add(t_canvas *x,
-	int type, const char *name, void *data);
-EXTERN void canvas_undo_undo(t_canvas *x);
-EXTERN void canvas_undo_redo(t_canvas *x);
-EXTERN void canvas_undo_rebranch(t_canvas *x);
-EXTERN void canvas_undo_check_canvas_pointers(t_canvas *x);
-EXTERN void canvas_undo_purge_abstraction_actions(t_canvas *x);
-EXTERN void canvas_undo_free(t_canvas *x);
-
-/* --------- 1. connect ---------- */
-
-EXTERN void *canvas_undo_set_connect(t_canvas *x,
-    int index1, int outno, int index2, int inno);
-EXTERN void canvas_undo_connect(t_canvas *x, void *z, int action);
-
-/* --------- 2. disconnect ------- */
-
-EXTERN void *canvas_undo_set_disconnect(t_canvas *x,
-    int index1, int outno, int index2, int inno);
-EXTERN void canvas_undo_disconnect(t_canvas *x, void *z, int action);
-
-/* --------- 3. cut -------------- */
-
-EXTERN void *canvas_undo_set_cut(t_canvas *x, int mode);
-EXTERN void canvas_undo_cut(t_canvas *x, void *z, int action);
-
-/* --------- 4. move ------------- */
-
-EXTERN void *canvas_undo_set_move(t_canvas *x, int selected);
-EXTERN void canvas_undo_move(t_canvas *x, void *z, int action);
-
-/* --------- 5. paste ------------ */
-
-EXTERN void *canvas_undo_set_paste(t_canvas *x, int offset, int duplicate, int d_offset);
-EXTERN void canvas_undo_paste(t_canvas *x, void *z, int action);
-
-/* --------- 6. apply ------------ */
-
-EXTERN void *canvas_undo_set_apply(t_canvas *x, int n);
-EXTERN void canvas_undo_apply(t_canvas *x, void *z, int action);
-
-/* --------- 7. arrange ---------- */
-
-EXTERN void *canvas_undo_set_arrange(t_canvas *x, t_gobj *obj, int newindex);
-EXTERN void canvas_undo_arrange(t_canvas *x, void *z, int action);
-
-/* --------- 8. canvas apply ----- */
-
-EXTERN void *canvas_undo_set_canvas(t_canvas *x);
-EXTERN void canvas_undo_canvas_apply(t_canvas *x, void *z, int action);
-
-/* --------- 9. create ----------- */
-
-EXTERN void canvas_undo_create(t_canvas *x, void *z, int action);
-EXTERN void *canvas_undo_set_create(t_canvas *x);
-
-/* --------- 10. recreate -------- */
-
-EXTERN void canvas_undo_recreate(t_canvas *x, void *z, int action);
-EXTERN void *canvas_undo_set_recreate(t_canvas *x, t_gobj *y, int old_pos);
-
-/* --------- 11. font ------------ */
-
-EXTERN void canvas_undo_font(t_canvas *x, void *z, int action);
-EXTERN void *canvas_undo_set_font(t_canvas *x, int font);
-
-/* ------------------------------- */
-
-
-/* ---------- interface to Qt (libQt5) with threads -------------------- */
-
-void *qt_thread_main (void *);
-
-/* ---------- other things added by Mathieu (aug.2014) ----------------- */
-
-void canvas_raise_all_cords (t_canvas *x);
-void canvas_getscroll (t_canvas *x);
-
-/* --------------------------------------------------------------------- */
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-}
-#endif
-
-#endif // PD_G_CANVAS_H
diff --git a/externals/build/include/m_imp.h b/externals/build/include/m_imp.h
deleted file mode 100644
index 8e42696bc12a23f46e72accf63479d1faf8f2d3e..0000000000000000000000000000000000000000
--- a/externals/build/include/m_imp.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-/* This file contains function prototypes and data types used to implement
-Pd, but not shared with Pd objects. */
-
-/* NOTE: this file describes Pd implementation details which may change
-in future releases.  The public (stable) API is in m_pd.h. */  
-
-/* LATER consider whether to use 'char' for method arg types to save space */
-#ifndef __m_imp_h_
-
-/* the structure for a method handler ala Max */
-typedef struct _methodentry
-{
-    t_symbol *me_name;
-    t_gotfn me_fun;
-    t_atomtype me_arg[MAXPDARG+1];
-} t_methodentry;
-
-EXTERN_STRUCT _widgetbehavior;
-
-typedef void (*t_bangmethod)(t_pd *x);
-typedef void (*t_pointermethod)(t_pd *x, t_gpointer *gp);
-typedef void (*t_floatmethod)(t_pd *x, t_float f);
-typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s);
-typedef void (*t_blobmethod)(t_pd *x, t_blob *st); /* MP20061226 blob type */
-typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-
-struct _class
-{
-    t_symbol *c_name;                   /* name (mostly for error reporting) */
-    t_symbol *c_helpname;               /* name of help file */
-    t_symbol *c_externdir;              /* directory extern was loaded from */
-    size_t c_size;                      /* size of an instance */
-    t_methodentry *c_methods;           /* methods other than bang, etc below */
-    int c_nmethod;                      /* number of methods */
-    t_method c_freemethod;              /* function to call before freeing */
-    t_bangmethod c_bangmethod;          /* common methods */
-    t_pointermethod c_pointermethod;
-    t_floatmethod c_floatmethod;
-    t_symbolmethod c_symbolmethod;
-    t_blobmethod c_blobmethod;  /* MP20061226 blob type */
-    t_listmethod c_listmethod;
-    t_anymethod c_anymethod;
-    struct _widgetbehavior *c_wb;       /* "gobjs" only */
-    struct _parentwidgetbehavior *c_pwb;/* widget behavior in parent */
-    t_savefn c_savefn;                  /* function to call when saving */
-    t_propertiesfn c_propertiesfn;      /* function to start prop dialog */
-    int c_floatsignalin;                /* onset to float for signal input */
-    char c_gobj;                        /* true if is a gobj */
-    char c_patchable;                   /* true if we have a t_object header */
-    char c_firstin;                 /* if patchable, true if draw first inlet */
-    char c_drawcommand;             /* a drawing command for a template */
-};
-
-
-/* m_obj.c */
-EXTERN int obj_noutlets(t_object *x);
-EXTERN int obj_ninlets(t_object *x);
-EXTERN t_outconnect *obj_starttraverseoutlet(t_object *x, t_outlet **op,
-    int nout);
-EXTERN t_outconnect *obj_nexttraverseoutlet(t_outconnect *lastconnect,
-    t_object **destp, t_inlet **inletp, int *whichp);
-EXTERN t_outconnect *obj_connect(t_object *source, int outno,
-    t_object *sink, int inno);
-EXTERN void obj_disconnect(t_object *source, int outno, t_object *sink,
-    int inno);
-EXTERN void outlet_setstacklim(void);
-EXTERN int obj_issignalinlet(t_object *x, int m);
-EXTERN int obj_issignaloutlet(t_object *x, int m);
-EXTERN int obj_nsiginlets(t_object *x);
-EXTERN int obj_nsigoutlets(t_object *x);
-EXTERN int obj_siginletindex(t_object *x, int m);
-EXTERN int obj_sigoutletindex(t_object *x, int m);
-
-/* misc */
-EXTERN void glob_evalfile(t_pd *ignore, t_symbol *name, t_symbol *dir);
-EXTERN void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv);
-EXTERN void glob_quit(void *dummy);
-#define __m_imp_h_
-#endif /* __m_imp_h_ */
diff --git a/externals/build/include/m_pd.h b/externals/build/include/m_pd.h
deleted file mode 100644
index 10acfefad741289ecbc44d235fb6d3acbaa6d92c..0000000000000000000000000000000000000000
--- a/externals/build/include/m_pd.h
+++ /dev/null
@@ -1,722 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-#ifndef __m_pd_h_
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-extern "C" {
-#endif
-
-#include <stdarg.h>
-
-#define PD_MAJOR_VERSION 0
-#define PD_MINOR_VERSION 42
-#define PD_BUGFIX_VERSION 7
-#define PD_TEST_VERSION "20140813"
-#define PDL2ORK
-
-/* old name for "MSW" flag -- we have to take it for the sake of many old
-"nmakefiles" for externs, which will define NT and not MSW */
-#if defined(NT) && !defined(MSW)
-#define MSW
-#endif
-
-/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans@at.or.at> */
-#ifdef _MSC_VER
-/* #pragma warning( disable : 4091 ) */
-#pragma warning( disable : 4305 )  /* uncast const double to float */
-#pragma warning( disable : 4244 )  /* uncast float/int conversion etc. */
-#pragma warning( disable : 4101 )  /* unused automatic variables */
-/* not using GNU C, __attribute__ means nothing */
-#  define  __attribute__(x)
-#endif /* _MSC_VER */
-
-
-    /* the external storage class is "extern" in UNIX; in MSW it's ugly. */
-#ifdef MSW
-#ifdef PD_INTERNAL
-#define EXTERN __declspec(dllexport) extern
-#else
-#define EXTERN __declspec(dllimport) extern
-#endif /* PD_INTERNAL */
-#else
-#define EXTERN extern
-#endif /* MSW */
-
-    /* and depending on the compiler, hidden data structures are
-    declared differently: */
-#if defined( __GNUC__) || defined( __BORLANDC__ ) || defined( __MWERKS__ )
-#define EXTERN_STRUCT struct
-#else
-#define EXTERN_STRUCT extern struct
-#endif
-
-
-#if !defined(_SIZE_T) && !defined(_SIZE_T_)
-#include <stddef.h>     /* just for size_t -- how lame! */
-#endif
-
-#define MAXPDSTRING 1000        /* must be >= FILENAME_MAX */
-#define MAXPDARG 5              /* max number of args we can typecheck today */
-
-/* signed and unsigned integer types the size of a pointer:  */
-#if !defined(PD_LONGINTTYPE)
-#define PD_LONGINTTYPE long
-#endif
-#if !defined(PD_FLOATTYPE)
-#define PD_FLOATTYPE float
-#endif
-typedef PD_LONGINTTYPE t_int;       /* pointer-size integer */
-typedef PD_FLOATTYPE t_float;       /* a float type at most the same size */
-typedef PD_FLOATTYPE t_floatarg;    /* float type for function calls */
-
-typedef struct _symbol
-{
-    char *s_name;
-    struct _class **s_thing;
-    struct _symbol *s_next;
-} t_symbol;
-
-EXTERN_STRUCT _array;
-#define t_array struct _array       /* g_canvas.h */
-
-/* pointers to glist and array elements go through a "stub" which sticks
-around after the glist or array is freed.  The stub itself is deleted when
-both the glist/array is gone and the refcount is zero, ensuring that no
-gpointers are pointing here. */
-
-#define GP_NONE 0       /* the stub points nowhere (has been cut off) */
-#define GP_GLIST 1      /* the stub points to a glist element */
-#define GP_ARRAY 2      /* ... or array */
-
-typedef struct _gstub
-{
-    union
-    {
-        struct _glist *gs_glist;    /* glist we're in */
-        struct _array *gs_array;    /* array we're in */
-    } gs_un;
-    int gs_which;                   /* GP_GLIST/GP_ARRAY */
-    int gs_refcount;                /* number of gpointers pointing here */
-} t_gstub;
-
-typedef struct _gpointer           /* pointer to a gobj in a glist */
-{
-    union
-    {   
-        struct _scalar *gp_scalar;  /* scalar we're in (if glist) */
-        union word *gp_w;           /* raw data (if array) */
-    } gp_un;
-    int gp_valid;                   /* number which must match gpointee */
-    t_gstub *gp_stub;               /* stub which points to glist/array */
-} t_gpointer;
-
-#define PD_BLOBS 1 /* MP20070211 Use this to test for blob capability */
-/* MP20061223 blob type: */
-typedef struct _blob /* pointer to a blob */
-{
-   unsigned long s_length; /* length of blob in bytes */
-   unsigned char *s_data; /* pointer to 1st byte of blob */
-} t_blob;
-/* ...MP20061223 blob type */
-
-
-typedef union word
-{
-    t_float w_float;
-    t_symbol *w_symbol;
-    t_gpointer *w_gpointer;
-    t_array *w_array;
-    struct _glist *w_list;
-    int w_index;
-    t_blob *w_blob; /* MP20061223 blob type */
-} t_word;
-
-typedef enum
-{
-    A_NULL,
-    A_FLOAT,
-    A_SYMBOL,
-    A_POINTER,
-    A_SEMI,
-    A_COMMA,
-    A_DEFFLOAT,
-    A_DEFSYM,
-    A_DOLLAR, 
-    A_DOLLSYM,
-    A_GIMME,
-    A_CANT,
-    A_BLOB /* MP20061223 blob type */
-}  t_atomtype;
-
-#define A_DEFSYMBOL A_DEFSYM    /* better name for this */
-
-typedef struct _atom
-{
-    t_atomtype a_type;
-    union word a_w;
-} t_atom;
-
-EXTERN_STRUCT _class;
-#define t_class struct _class
-
-EXTERN_STRUCT _outlet;
-#define t_outlet struct _outlet
-
-EXTERN_STRUCT _inlet;
-#define t_inlet struct _inlet
-
-EXTERN_STRUCT _binbuf;
-#define t_binbuf struct _binbuf
-
-EXTERN_STRUCT _clock;
-#define t_clock struct _clock
-
-EXTERN_STRUCT _outconnect;
-#define t_outconnect struct _outconnect
-
-EXTERN_STRUCT _glist;
-#define t_glist struct _glist
-#define t_canvas struct _glist  /* LATER lose this */
-
-typedef t_class *t_pd;      /* pure datum: nothing but a class pointer */
-
-typedef struct _gobj        /* a graphical object */
-{
-    t_pd g_pd;              /* pure datum header (class) */
-    struct _gobj *g_next;   /* next in list */
-} t_gobj;
-
-typedef struct _scalar      /* a graphical object holding data */
-{
-    t_gobj sc_gobj;         /* header for graphical object */
-    t_symbol *sc_template;  /* template name (LATER replace with pointer) */
-    int sc_x1;              /* cached bbox... which is already in the */
-    int sc_x2;              /* GUI. Doing this right would require me */
-    int sc_y1;              /* to redesign the whole program. Instead */
-    int sc_y2;              /* please enjoy the duplication of a bbox */
-    int sc_bboxcache;       /* caching mechanism already in tkpath.   */
-    t_glist *sc_selected;   /* I'm really sorry... I can't figure out
-                               a non-stupid and non-hacky way to make
-                               scalars in a gop patch displace right.
-                               Pd Vanilla just redraws all of the gop
-                               contents-- dumb. Here I keep the owner
-                               glist handy so I can compare it to the
-                               glist in scalar_displace_withtag. Then
-                               if they don't match it's a gop, so the
-                               x/y fields do not need to get updated.
-                               That's dumb, too, but slightly less so
-                               which is another way to say "progress" */
-    t_word sc_vec[1];       /* indeterminate-length array of words */
-} t_scalar;
-
-typedef struct _text        /* patchable object - graphical, with text */
-{
-    t_gobj te_g;                /* header for graphical object */
-    t_binbuf *te_binbuf;        /* holder for the text */
-    t_outlet *te_outlet;        /* linked list of outlets */
-    t_inlet *te_inlet;          /* linked list of inlets */
-    short te_xpix;              /* x&y location (within the toplevel) */
-    short te_ypix;
-    short te_width;             /* requested width in chars, 0 if auto */
-    unsigned int te_type:2;     /* from defs below */
-	unsigned int te_iemgui:1;	/* if this is an iemgui (for nlets color) */
-} t_text;
-
-#define T_TEXT 0        /* just a textual comment */
-#define T_OBJECT 1      /* a MAX style patchable object */
-#define T_MESSAGE 2     /* a MAX style message */
-#define T_ATOM 3        /* a cell to display a number or symbol */
-
-#define te_pd te_g.g_pd
-
-   /* t_object is synonym for t_text (LATER unify them) */
-
-typedef struct _text t_object;
-
-#define ob_outlet te_outlet
-#define ob_inlet te_inlet
-#define ob_binbuf te_binbuf
-#define ob_pd te_g.g_pd
-#define ob_g te_g
-
-typedef void (*t_method)(void);
-typedef void *(*t_newmethod)( void);
-typedef void (*t_gotfn)(void *x, ...);
-
-/* ---------------- pre-defined objects and symbols --------------*/
-EXTERN t_pd pd_objectmaker;     /* factory for creating "object" boxes */
-EXTERN t_pd pd_canvasmaker;     /* factory for creating canvases */
-EXTERN t_symbol s_pointer;
-EXTERN t_symbol s_float;
-EXTERN t_symbol s_symbol;
-EXTERN t_symbol s_blob;
-EXTERN t_symbol s_bang;
-EXTERN t_symbol s_list;
-EXTERN t_symbol s_anything;
-EXTERN t_symbol s_signal;
-EXTERN t_symbol s__N;
-EXTERN t_symbol s__X;
-EXTERN t_symbol s_x;
-EXTERN t_symbol s_y;
-EXTERN t_symbol s_;
-
-/* --------- prototypes from the central message system ----------- */
-EXTERN void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void pd_forwardmess(t_pd *x, int argc, t_atom *argv);
-EXTERN t_symbol *gensym(const char *s);
-EXTERN t_gotfn getfn(t_pd *x, t_symbol *s);
-EXTERN t_gotfn zgetfn(t_pd *x, t_symbol *s);
-EXTERN void nullfn(void);
-EXTERN void pd_vmess(t_pd *x, t_symbol *s, char *fmt, ...);
-#define mess0(x, s) ((*getfn((x), (s)))((x)))
-#define mess1(x, s, a) ((*getfn((x), (s)))((x), (a)))
-#define mess2(x, s, a,b) ((*getfn((x), (s)))((x), (a),(b)))
-#define mess3(x, s, a,b,c) ((*getfn((x), (s)))((x), (a),(b),(c)))
-#define mess4(x, s, a,b,c,d) ((*getfn((x), (s)))((x), (a),(b),(c),(d)))
-#define mess5(x, s, a,b,c,d,e) ((*getfn((x), (s)))((x), (a),(b),(c),(d),(e)))
-EXTERN void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_pd *pd_newest(void);
-
-/* --------------- memory management -------------------- */
-EXTERN void *getbytes(size_t nbytes);
-EXTERN void *getzbytes(size_t nbytes);
-EXTERN void *copybytes(void *src, size_t nbytes);
-EXTERN void freebytes(void *x, size_t nbytes);
-EXTERN void *resizebytes(void *x, size_t oldsize, size_t newsize);
-
-/* -------------------- atoms ----------------------------- */
-
-#define SETSEMI(atom) ((atom)->a_type = A_SEMI, (atom)->a_w.w_index = 0)
-#define SETCOMMA(atom) ((atom)->a_type = A_COMMA, (atom)->a_w.w_index = 0)
-#define SETPOINTER(atom, gp) ((atom)->a_type = A_POINTER, \
-    (atom)->a_w.w_gpointer = (gp))
-#define SETFLOAT(atom, f) ((atom)->a_type = A_FLOAT, (atom)->a_w.w_float = (f))
-#define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \
-    (atom)->a_w.w_symbol = (s))
-#define SETBLOB(atom, st) ((atom)->a_type = A_BLOB, (atom)->a_w.w_blob = (st)) /* MP 20061226 blob type */
-#define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \
-    (atom)->a_w.w_index = (n))
-#define SETDOLLSYM(atom, s) ((atom)->a_type = A_DOLLSYM, \
-    (atom)->a_w.w_symbol= (s))
-
-EXTERN t_float atom_getfloat(t_atom *a);
-EXTERN t_int atom_getint(t_atom *a);
-EXTERN t_symbol *atom_getsymbol(t_atom *a);
-EXTERN t_blob *atom_getblob(t_atom *a);/* MP 20070108 blob type */
-EXTERN t_symbol *atom_gensym(t_atom *a);
-EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv);
-EXTERN t_int atom_getintarg(int which, int argc, t_atom *argv);
-EXTERN t_symbol *atom_getsymbolarg(int which, int argc, t_atom *argv);
-
-EXTERN void atom_string(t_atom *a, char *buf, unsigned int bufsize);
-
-/* ------------------  binbufs --------------- */
-
-EXTERN t_binbuf *binbuf_new(void);
-EXTERN void binbuf_free(t_binbuf *x);
-EXTERN t_binbuf *binbuf_duplicate(t_binbuf *y);
-
-EXTERN void binbuf_text(t_binbuf *x, char *text, size_t size);
-EXTERN void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp);
-EXTERN void binbuf_clear(t_binbuf *x);
-EXTERN void binbuf_add(t_binbuf *x, int argc, t_atom *argv);
-EXTERN void binbuf_addv(t_binbuf *x, char *fmt, ...);
-EXTERN void binbuf_addbinbuf(t_binbuf *x, t_binbuf *y);
-EXTERN void binbuf_addsemi(t_binbuf *x);
-EXTERN void binbuf_restore(t_binbuf *x, int argc, t_atom *argv);
-EXTERN void binbuf_print(t_binbuf *x);
-EXTERN int binbuf_getnatom(t_binbuf *x);
-EXTERN t_atom *binbuf_getvec(t_binbuf *x);
-EXTERN void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv);
-EXTERN int binbuf_read(t_binbuf *b, char *filename, char *dirname,
-    int crflag);
-EXTERN int binbuf_read_via_canvas(t_binbuf *b, char *filename, t_canvas *canvas,
-    int crflag);
-EXTERN int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname,
-    int crflag);
-EXTERN int binbuf_write(t_binbuf *x, char *filename, char *dir,
-    int crflag);
-EXTERN void binbuf_evalfile(t_symbol *name, t_symbol *dir);
-EXTERN t_symbol *binbuf_realizedollsym(t_symbol *s, int ac, t_atom *av,
-    int tonew);
-
-/* ------------------  clocks --------------- */
-
-EXTERN t_clock *clock_new(void *owner, t_method fn);
-EXTERN void clock_set(t_clock *x, double systime);
-EXTERN void clock_delay(t_clock *x, double delaytime);
-EXTERN void clock_unset(t_clock *x);
-EXTERN double clock_getlogicaltime(void);
-EXTERN double clock_getsystime(void); /* OBSOLETE; use clock_getlogicaltime() */
-EXTERN double clock_gettimesince(double prevsystime);
-EXTERN double clock_getsystimeafter(double delaytime);
-EXTERN void clock_free(t_clock *x);
-
-/* ----------------- pure data ---------------- */
-EXTERN t_pd *pd_new(t_class *cls);
-EXTERN void pd_free(t_pd *x);
-EXTERN void pd_bind(t_pd *x, t_symbol *s);
-EXTERN void pd_unbind(t_pd *x, t_symbol *s);
-EXTERN t_pd *pd_findbyclass(t_symbol *s, t_class *c);
-EXTERN void pd_pushsym(t_pd *x);
-EXTERN void pd_popsym(t_pd *x);
-EXTERN t_symbol *pd_getfilename(void);
-EXTERN t_symbol *pd_getdirname(void);
-EXTERN void pd_bang(t_pd *x);
-EXTERN void pd_pointer(t_pd *x, t_gpointer *gp);
-EXTERN void pd_float(t_pd *x, t_float f);
-EXTERN void pd_symbol(t_pd *x, t_symbol *s);
-EXTERN void pd_blob(t_pd *x, t_blob *st); /* MP 20061226 blob type */
-EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv);
-#define pd_class(x) (*(x))
-
-/* ----------------- pointers ---------------- */
-EXTERN void gpointer_init(t_gpointer *gp);
-EXTERN void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto);
-EXTERN void gpointer_unset(t_gpointer *gp);
-EXTERN int gpointer_check(const t_gpointer *gp, int headok);
-
-/* ----------------- patchable "objects" -------------- */
-EXTERN t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1,
-    t_symbol *s2);
-EXTERN t_inlet *pointerinlet_new(t_object *owner, t_gpointer *gp);
-EXTERN t_inlet *floatinlet_new(t_object *owner, t_float *fp);
-EXTERN t_inlet *symbolinlet_new(t_object *owner, t_symbol **sp);
-EXTERN t_inlet *signalinlet_new(t_object *owner, t_float f);
-EXTERN void inlet_free(t_inlet *x);
-
-EXTERN t_outlet *outlet_new(t_object *owner, t_symbol *s);
-EXTERN void outlet_bang(t_outlet *x);
-EXTERN void outlet_pointer(t_outlet *x, t_gpointer *gp);
-EXTERN void outlet_float(t_outlet *x, t_float f);
-EXTERN void outlet_symbol(t_outlet *x, t_symbol *s);
-EXTERN void outlet_blob(t_outlet *x, t_blob *st); /* MP 20061226 blob type */
-EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_symbol *outlet_getsymbol(t_outlet *x);
-EXTERN void outlet_free(t_outlet *x);
-EXTERN t_object *pd_checkobject(t_pd *x);
-
-
-/* -------------------- canvases -------------- */
-
-EXTERN void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir);
-
-EXTERN void canvas_setargs(int argc, t_atom *argv);
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-EXTERN t_symbol *canvas_getcurrentdir(void);
-EXTERN t_glist *canvas_getcurrent(void);
-EXTERN void canvas_makefilename(t_glist *c, char *file,
-    char *result,int resultsize);
-EXTERN t_symbol *canvas_getdir(t_glist *x);
-EXTERN char sys_font[]; /* default typeface set in s_main.c */
-EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */
-EXTERN int sys_fontwidth(int fontsize);
-EXTERN int sys_fontheight(int fontsize);
-EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
-EXTERN int canvas_open(t_canvas *x, const char *name, const char *ext,
-    char *dirresult, char **nameresult, unsigned int size, int bin);
-
-/* ---------------- widget behaviors ---------------------- */
-
-EXTERN_STRUCT _widgetbehavior;
-#define t_widgetbehavior struct _widgetbehavior
-
-EXTERN_STRUCT _parentwidgetbehavior;
-#define t_parentwidgetbehavior struct _parentwidgetbehavior
-EXTERN t_parentwidgetbehavior *pd_getparentwidget(t_pd *x);
-
-/* -------------------- classes -------------- */
-
-#define CLASS_DEFAULT 0         /* flags for new classes below */
-#define CLASS_PD 1
-#define CLASS_GOBJ 2
-#define CLASS_PATCHABLE 3
-#define CLASS_NOINLET 8
-
-#define CLASS_TYPEMASK 3
-
-
-EXTERN t_class *class_new(t_symbol *name, t_newmethod newmethod,
-    t_method freemethod, size_t size, int flags, t_atomtype arg1, ...);
-EXTERN void class_addcreator(t_newmethod newmethod, t_symbol *s, 
-    t_atomtype type1, ...);
-EXTERN void class_addmethod(t_class *c, t_method fn, t_symbol *sel,
-    t_atomtype arg1, ...);
-EXTERN void class_addbang(t_class *c, t_method fn);
-EXTERN void class_addpointer(t_class *c, t_method fn);
-EXTERN void class_doaddfloat(t_class *c, t_method fn);
-EXTERN void class_addsymbol(t_class *c, t_method fn);
-EXTERN void class_addblob(t_class *c, t_method fn);/* MP 20061226 blob type */
-EXTERN void class_addlist(t_class *c, t_method fn);
-EXTERN void class_addanything(t_class *c, t_method fn);
-EXTERN void class_sethelpsymbol(t_class *c, t_symbol *s);
-EXTERN void class_setwidget(t_class *c, t_widgetbehavior *w);
-EXTERN void class_setparentwidget(t_class *c, t_parentwidgetbehavior *w);
-EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c);
-EXTERN char *class_getname(t_class *c);
-EXTERN char *class_gethelpname(t_class *c);
-EXTERN void class_setdrawcommand(t_class *c);
-EXTERN int class_isdrawcommand(t_class *c);
-EXTERN void class_domainsignalin(t_class *c, int onset);
-EXTERN void class_set_extern_dir(t_symbol *s);
-#define CLASS_MAINSIGNALIN(c, type, field) \
-    class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
-
-         /* classtable functions */
-EXTERN t_class *classtable_findbyname(t_symbol *s);
-EXTERN int classtable_size(void);
-EXTERN void classtable_tovec(int size, t_atom *vec);
-
-         /* prototype for functions to save Pd's to a binbuf */
-typedef void (*t_savefn)(t_gobj *x, t_binbuf *b);
-EXTERN void class_setsavefn(t_class *c, t_savefn f);
-EXTERN t_savefn class_getsavefn(t_class *c);
-        /* prototype for functions to open properties dialogs */
-typedef void (*t_propertiesfn)(t_gobj *x, struct _glist *glist);
-EXTERN void class_setpropertiesfn(t_class *c, t_propertiesfn f);
-EXTERN t_propertiesfn class_getpropertiesfn(t_class *c);
-
-#ifndef PD_CLASS_DEF
-#define class_addbang(x, y) class_addbang((x), (t_method)(y))
-#define class_addpointer(x, y) class_addpointer((x), (t_method)(y))
-#define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y))
-#define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y))
-#define class_addblob(x, y) class_addblob((x), (t_method)(y)) /* MP20061226 blob type */
-#define class_addlist(x, y) class_addlist((x), (t_method)(y))
-#define class_addanything(x, y) class_addanything((x), (t_method)(y))
-#endif
-
-/* ------------   printing --------------------------------- */
-EXTERN void post(const char *fmt, ...);
-EXTERN void startpost(const char *fmt, ...);
-EXTERN void poststring(const char *s);
-EXTERN void postfloat(t_floatarg f);
-EXTERN void postatom(int argc, t_atom *argv);
-EXTERN void endpost(void);
-EXTERN void error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
-EXTERN void verbose(int level, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
-EXTERN void bug(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
-EXTERN void pd_error(void *object, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
-EXTERN void sys_logerror(const char *object, const char *s);
-EXTERN void sys_unixerror(const char *object);
-EXTERN void sys_ouch(void);
-
-
-/* ------------  system interface routines ------------------- */
-EXTERN int sys_isreadablefile(const char *name);
-EXTERN int sys_isabsolutepath(const char *dir);
-EXTERN void sys_bashfilename(const char *from, char *to);
-EXTERN void sys_unbashfilename(const char *from, char *to);
-EXTERN int open_via_path(const char *name, const char *ext, const char *dir,
-    char *dirresult, char **nameresult, unsigned int size, int bin);
-EXTERN int sched_geteventno(void);
-EXTERN double sys_getrealtime(void);
-EXTERN int (*sys_idlehook)(void);   /* hook to add idle time computation */
-
-
-/* ------------  threading ------------------- */ 
-EXTERN void sys_lock(void);
-EXTERN void sys_unlock(void);
-EXTERN int sys_trylock(void);
-
-
-/* --------------- signals ----------------------------------- */
-
-typedef PD_FLOATTYPE t_sample;
-#define MAXLOGSIG 32
-#define MAXSIGSIZE (1 << MAXLOGSIG)
-
-typedef struct _signal
-{
-    int s_n;            /* number of points in the array */
-    t_sample *s_vec;    /* the array */
-    t_float s_sr;         /* sample rate */
-    int s_refcount;     /* number of times used */
-    int s_isborrowed;   /* whether we're going to borrow our array */
-    struct _signal *s_borrowedfrom;     /* signal to borrow it from */
-    struct _signal *s_nextfree;         /* next in freelist */
-    struct _signal *s_nextused;         /* next in used list */
-    int s_vecsize;      /* allocated size of array in points */
-} t_signal;
-
-typedef t_int *(*t_perfroutine)(t_int *args);
-
-EXTERN t_int *plus_perform(t_int *args);
-EXTERN t_int *zero_perform(t_int *args);
-EXTERN t_int *copy_perform(t_int *args);
-
-EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
-EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
-EXTERN void dsp_add_scalarcopy(t_float *in, t_sample *out, int n);
-EXTERN void dsp_add_zero(t_sample *out, int n);
-
-EXTERN int sys_getblksize(void);
-EXTERN t_float sys_getsr(void);
-EXTERN int sys_get_inchannels(void);
-EXTERN int sys_get_outchannels(void);
-
-EXTERN void dsp_add(t_perfroutine f, int n, ...);
-EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec);
-EXTERN void pd_fft(t_float *buf, int npoints, int inverse);
-EXTERN int ilog2(int n);
-
-EXTERN void mayer_fht(t_sample *fz, int n);
-EXTERN void mayer_fft(int n, t_sample *real, t_sample *imag);
-EXTERN void mayer_ifft(int n, t_sample *real, t_sample *imag);
-EXTERN void mayer_realfft(int n, t_sample *real);
-EXTERN void mayer_realifft(int n, t_sample *real);
-
-EXTERN float *cos_table;
-#define LOGCOSTABSIZE 9
-#define COSTABSIZE (1<<LOGCOSTABSIZE)
-
-EXTERN int canvas_suspend_dsp(void);
-EXTERN void canvas_resume_dsp(int oldstate);
-EXTERN void canvas_update_dsp(void);
-EXTERN int canvas_dspstate;
-
-/*   up/downsampling */
-typedef struct _resample
-{
-  int method;       /* up/downsampling method ID */
-
-  t_int downsample; /* downsampling factor */
-  t_int upsample;   /* upsampling factor */
-
-  t_sample *s_vec;   /* here we hold the resampled data */
-  int      s_n;
-
-  t_sample *coeffs;  /* coefficients for filtering... */
-  int      coefsize;
-
-  t_sample *buffer;  /* buffer for filtering */
-  int      bufsize;
-} t_resample;
-
-EXTERN void resample_init(t_resample *x);
-EXTERN void resample_free(t_resample *x);
-
-EXTERN void resample_dsp(t_resample *x, t_sample *in, int insize, t_sample *out, int outsize, int method);
-EXTERN void resamplefrom_dsp(t_resample *x, t_sample *in, int insize, int outsize, int method);
-EXTERN void resampleto_dsp(t_resample *x, t_sample *out, int insize, int outsize, int method);
-
-/* ----------------------- utility functions for signals -------------- */
-EXTERN t_float mtof(t_float);
-EXTERN t_float ftom(t_float);
-EXTERN t_float rmstodb(t_float);
-EXTERN t_float powtodb(t_float);
-EXTERN t_float dbtorms(t_float);
-EXTERN t_float dbtopow(t_float);
-
-EXTERN t_float q8_sqrt(t_float);
-EXTERN t_float q8_rsqrt(t_float);
-#ifndef N32     
-EXTERN t_float qsqrt(t_float);  /* old names kept for extern compatibility */
-EXTERN t_float qrsqrt(t_float);
-#endif
-/* --------------------- data --------------------------------- */
-
-    /* graphical arrays */
-EXTERN_STRUCT _garray;
-#define t_garray struct _garray
-
-EXTERN t_class *garray_class;
-EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
-EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec);
-EXTERN t_float garray_get(t_garray *x, t_symbol *s, t_int indx);
-EXTERN void garray_redraw(t_garray *x);
-EXTERN int garray_npoints(t_garray *x);
-EXTERN char *garray_vec(t_garray *x);
-EXTERN void garray_resize(t_garray *x, t_floatarg f);
-EXTERN void garray_usedindsp(t_garray *x);
-EXTERN void garray_setsaveit(t_garray *x, int saveit);
-EXTERN t_class *scalar_class;
-
-EXTERN t_float *value_get(t_symbol *s);
-EXTERN void value_release(t_symbol *s);
-EXTERN int value_getfloat(t_symbol *s, t_float *f);
-EXTERN int value_setfloat(t_symbol *s, t_float f);
-
-/* ------- GUI interface - functions to send strings to TK --------- */
-typedef void (*t_guicallbackfn)(t_gobj *client, t_glist *glist);
-
-#ifdef CHECK_VGUI_ARGS
-EXTERN void sys_vgui(const char *fmt, ...)
-    __attribute__((format(printf,1,2)));
-EXTERN void sys_vguid(const char *file, int line, const char *fmt, ...)
-    __attribute__((format(printf,1,2)));
-EXTERN void sys_vvguid(const char *file, int line, const char *fmt, va_list)
-    __attribute__((format(printf,3,4)));
-#else
-EXTERN void sys_vgui(const char *fmt, ...);
-EXTERN void sys_vguid(const char *file, int line, const char *fmt, ...);
-EXTERN void sys_vvguid(const char *file, int line, const char *fmt, va_list);
-#endif
-EXTERN void sys_gui(const char *s);
-#define sys_vgui(args...) sys_vguid(__FILE__,__LINE__,args)
-#define sys_gui(s)        sys_vguid(__FILE__,__LINE__,"%s",s)
-
-EXTERN void sys_pretendguibytes(int n);
-EXTERN void sys_queuegui(void *client, t_glist *glist, t_guicallbackfn f);
-EXTERN void sys_unqueuegui(void *client);
-    /* dialog window creation and destruction */
-EXTERN void gfxstub_new(t_pd *owner, void *key, const char *cmd);
-EXTERN void gfxstub_deleteforkey(void *key);
-
-extern t_class *glob_pdobject;  /* object to send "pd" messages */
-
-/*-------------  Max 0.26 compatibility --------------------*/
-
-/* the following reflects the new way classes are laid out, with the class
-   pointing to the messlist and not vice versa. Externs shouldn't feel it. */
-typedef t_class *t_externclass;
-
-EXTERN void c_extern(t_externclass *cls, t_newmethod newroutine,
-    t_method freeroutine, t_symbol *name, size_t size, int tiny,
-    t_atomtype arg1, ...);
-EXTERN void c_addmess(t_method fn, t_symbol *sel, t_atomtype arg1, ...);
-
-#define t_getbytes getbytes
-#define t_freebytes freebytes
-#define t_resizebytes resizebytes
-#define typedmess pd_typedmess
-#define vmess pd_vmess
-
-// jsarlo
-EXTERN char sys_signal_line_color[8];
-EXTERN char sys_control_line_color[8];
-EXTERN char sys_iolet_select_color[8];
-EXTERN int sys_iolet_select_width;
-EXTERN int sys_dropshadow;
-// end jsarlo
-
-/* A definition to help gui objects straddle 0.34-0.35 changes.  If this is
-defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */
-
-#define PD_USE_TE_XPIX
-
-#if defined(__i386__) || defined(__x86_64__)
-/* a test for NANs and denormals.  Should only be necessary on i386. */
-#define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) || \
-    (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))
-/* more stringent test: anything not between 1e-19 and 1e19 in absolute val */
-#define PD_BIGORSMALL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \
-    (((*(unsigned int*)&(f))&0x60000000)==0x60000000))
-#else
-#define PD_BADFLOAT(f) 0
-#define PD_BIGORSMALL(f) 0
-#endif
-
-    /* get version number at run time */
-EXTERN void sys_getversion(int *major, int *minor, int *bugfix);
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-}
-#endif
-
-#define __m_pd_h_
-#endif /* __m_pd_h_ */
diff --git a/externals/build/include/s_stuff.h b/externals/build/include/s_stuff.h
deleted file mode 100644
index 862b2a44ce81a9f880fefd2404fbf94149b2aece..0000000000000000000000000000000000000000
--- a/externals/build/include/s_stuff.h
+++ /dev/null
@@ -1,415 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-/* Audio and MIDI I/O, and other scheduling and system stuff. */
-
-/* NOTE: this file describes Pd implementation details which may change
-in future releases.  The public (stable) API is in m_pd.h. */  
-
-#ifndef __s_stuff_h_
-#define __s_stuff_h_
-
-/* in s_path.c */
-
-typedef struct _namelist    /* element in a linked list of stored strings */
-{
-    struct _namelist *nl_next;  /* next in list */
-    char *nl_string;            /* the string */
-} t_namelist;
-
-t_namelist *pd_extrapath;
-t_namelist *namelist_append(t_namelist *listwas, const char *s, int allowdup);
-t_namelist *namelist_append_files(t_namelist *listwas, const char *s);
-void namelist_free(t_namelist *listwas);
-char *namelist_get(t_namelist *namelist, int n);
-void sys_setextrapath(const char *p);
-extern int sys_usestdpath;
-extern t_namelist *sys_externlist;
-extern t_namelist *sys_searchpath;
-extern t_namelist *sys_helppath;
-int sys_open_absolute(const char *name, const char* ext,
-    char *dirresult, char **nameresult, unsigned int size, int bin, int *fdp);
-int sys_trytoopenone(const char *dir, const char *name, const char* ext,
-    char *dirresult, char **nameresult, unsigned int size, int bin);
-t_symbol *sys_decodedialog(t_symbol *s);
-
-/* s_file.c */
-
-void sys_loadpreferences( void);
-void sys_savepreferences( void);
-extern int sys_defeatrt;
-extern t_symbol *sys_flags;
-
-/* s_main.c */
-extern int sys_debuglevel;
-extern int sys_verbose;
-extern int sys_noloadbang;
-extern int sys_nogui;
-extern char *sys_guicmd;
-#ifdef QTGUI
-extern int sys_qtcanvas;
-#endif
-
-EXTERN int sys_nearestfontsize(int fontsize);
-EXTERN int sys_hostfontsize(int fontsize);
-
-extern int sys_defaultfont;
-extern t_symbol *sys_libdir;    /* library directory for auxilliary files */
-extern t_symbol *sys_guidir;    /* directory holding pd_gui, u_pdsend, etc */
-
-/* s_loader.c */
-typedef int (*loader_t)(t_canvas *canvas, char *classname); /* callback type */
-EXTERN int sys_load_lib(t_canvas *canvas, char *filename);
-EXTERN void sys_register_loader(loader_t loader);
-
-/* s_audio.c */
-
-#define SENDDACS_NO 0           /* return values for sys_send_dacs() */
-#define SENDDACS_YES 1 
-#define SENDDACS_SLEPT 2
-
-#define DEFDACBLKSIZE 64
-extern int sys_schedblocksize;  /* audio block size for scheduler */
-extern int sys_hipriority;      /* real-time flag, true if priority boosted */
-extern t_sample *sys_soundout;
-extern t_sample *sys_soundin;
-extern int sys_inchannels;
-extern int sys_outchannels;
-extern int sys_advance_samples; /* scheduler advance in samples */
-extern int sys_blocksize;       /* audio I/O block size in sample frames */
-extern t_float sys_dacsr;
-extern int sys_schedadvance;
-extern int sys_sleepgrain;
-void sys_set_audio_settings(int naudioindev, int *audioindev,
-    int nchindev, int *chindev,
-    int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev,
-    int srate, int advance, int callback);
-void sys_reopen_audio( void);
-void sys_close_audio(void);
-
-
-int sys_send_dacs(void);
-void sys_reportidle(void);
-void sys_set_priority(int higher);
-void sys_audiobuf(int nbufs);
-void sys_getmeters(t_sample *inmax, t_sample *outmax);
-void sys_listdevs(void);
-void sys_setblocksize(int n);
-
-EXTERN void sys_get_audio_devs(char *indevlist, int *nindevs,
-                          char *outdevlist, int *noutdevs, int *canmulti, int *cancallback, 
-                          int maxndev, int devdescsize);
-EXTERN void sys_get_audio_apis(char *buf);
-
-/* s_midi.c */
-#define MAXMIDIINDEV 16         /* max. number of input ports */
-#define MAXMIDIOUTDEV 16        /* max. number of output ports */
-extern int sys_midiapi;
-extern int sys_nmidiin;
-extern int sys_nmidiout;
-extern int sys_midiindevlist[];
-extern int sys_midioutdevlist[];
-
-void sys_open_midi(int nmidiin, int *midiinvec,
-    int nmidiout, int *midioutvec, int enable);
-
-EXTERN void sys_get_midi_apis(char *buf);
-EXTERN void sys_get_midi_devs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, 
-   int maxndev, int devdescsize);
-void sys_get_midi_params(int *pnmidiindev, int *pmidiindev,
-    int *pnmidioutdev, int *pmidioutdev);
-
-void sys_get_midi_apis(char *buf);
-
-void sys_reopen_midi( void);
-void sys_close_midi( void);
-EXTERN void sys_putmidimess(int portno, int a, int b, int c);
-EXTERN void sys_putmidibyte(int portno, int a);
-EXTERN void sys_poll_midi(void);
-EXTERN void sys_setmiditimediff(double inbuftime, double outbuftime);
-EXTERN void sys_midibytein(int portno, int byte);
-
-    /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */
-void midi_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int maxndev, int devdescsize);
-void sys_do_open_midi(int nmidiindev, int *midiindev,
-    int nmidioutdev, int *midioutdev);
-
-#ifdef USEAPI_ALSA
-EXTERN void sys_alsa_putmidimess(int portno, int a, int b, int c);
-EXTERN void sys_alsa_putmidibyte(int portno, int a);
-EXTERN void sys_alsa_poll_midi(void);
-EXTERN void sys_alsa_setmiditimediff(double inbuftime, double outbuftime);
-EXTERN void sys_alsa_midibytein(int portno, int byte);
-EXTERN void sys_alsa_close_midi( void);
-
-
-    /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */
-void midi_alsa_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int maxndev, int devdescsize);
-void sys_alsa_do_open_midi(int nmidiindev, int *midiindev,
-    int nmidioutdev, int *midioutdev);
-#endif
-
-/* m_sched.c */
-EXTERN void sys_log_error(int type);
-#define ERR_NOTHING 0
-#define ERR_ADCSLEPT 1
-#define ERR_DACSLEPT 2
-#define ERR_RESYNC 3
-#define ERR_DATALATE 4
-
-#define SCHED_AUDIO_NONE 0
-#define SCHED_AUDIO_POLL 1 
-#define SCHED_AUDIO_CALLBACK 2
-void sched_set_using_audio(int flag);
-
-/* s_inter.c */
-
-EXTERN void sys_microsleep(int microsec);
-
-EXTERN void sys_bail(int exitcode);
-EXTERN int sys_pollgui(void);
-
-EXTERN_STRUCT _socketreceiver;
-#define t_socketreceiver struct _socketreceiver
-
-typedef void (*t_socketnotifier)(void *x);
-typedef void (*t_socketreceivefn)(void *x, t_binbuf *b);
-
-EXTERN t_socketreceiver *socketreceiver_new(void *owner,
-    t_socketnotifier notifier, t_socketreceivefn socketreceivefn, int udp);
-EXTERN void socketreceiver_read(t_socketreceiver *x, int fd);
-EXTERN void sys_sockerror(char *s);
-EXTERN void sys_closesocket(int fd);
-
-typedef void (*t_fdpollfn)(void *ptr, int fd);
-EXTERN void sys_addpollfn(int fd, t_fdpollfn fn, void *ptr);
-EXTERN void sys_rmpollfn(int fd);
-#ifdef UNIX
-void sys_setalarm(int microsec);
-void sys_setvirtualalarm( void);
-#endif
-
-#define API_NONE 0
-#define API_ALSA 1
-#define API_OSS 2
-#define API_MMIO 3
-#define API_PORTAUDIO 4
-#define API_JACK 5
-#define API_SGI 6
-
-#ifdef __linux__
-#define API_DEFAULT API_ALSA
-#define API_DEFSTRING "ALSA"
-#endif
-#ifdef MSW
-#define API_DEFAULT API_MMIO
-#define API_DEFSTRING "MMIO"
-#endif
-#ifdef __APPLE__
-#define API_DEFAULT API_PORTAUDIO
-#define API_DEFSTRING "portaudio"
-#endif
-#ifdef IRIX
-#define API_DEFAULT API_SGI
-#define API_DEFSTRING "SGI Digital Media"
-#endif
-#define DEFAULTAUDIODEV 0
-
-#define MAXAUDIOINDEV 4
-#define MAXAUDIOOUTDEV 4
-
-#define DEFMIDIDEV 0
-
-#define DEFAULTSRATE 44100
-#ifdef _WIN32
-#define DEFAULTADVANCE 100
-#endif
-#ifdef __linux__
-#define DEFAULTADVANCE 50
-#endif
-#ifdef __APPLE__
-#define DEFAULTADVANCE 20
-#endif
-
-typedef void (*t_audiocallback)(void);
-
-int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin,
-    t_sample *soundout, int framesperbuf, int nbuffers,
-    int indeviceno, int outdeviceno, t_audiocallback callback);
-void pa_close_audio(void);
-int pa_send_dacs(void);
-void sys_reportidle(void);
-void pa_listdevs(void);
-void pa_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int *canmulti, 
-        int maxndev, int devdescsize);
-
-int oss_open_audio(int naudioindev, int *audioindev, int nchindev,
-    int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
-    int *choutdev, int rate);
-void oss_close_audio(void);
-int oss_send_dacs(void);
-void oss_reportidle(void);
-void oss_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int *canmulti, 
-        int maxndev, int devdescsize);
-
-int alsa_open_audio(int naudioindev, int *audioindev, int nchindev,
-    int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
-    int *choutdev, int rate);
-void alsa_close_audio(void);
-int alsa_send_dacs(void);
-void alsa_reportidle(void);
-void alsa_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int *canmulti, 
-        int maxndev, int devdescsize);
-
-int jack_open_audio(int wantinchans, int wantoutchans, int srate);
-void jack_close_audio(void);
-int jack_send_dacs(void);
-void jack_reportidle(void);
-void jack_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int *canmulti, 
-        int maxndev, int devdescsize);
-void jack_listdevs(void);
-
-int mmio_open_audio(int naudioindev, int *audioindev,
-    int nchindev, int *chindev, int naudiooutdev, int *audiooutdev,
-    int nchoutdev, int *choutdev, int rate);
-void mmio_close_audio( void);
-void mmio_reportidle(void);
-int mmio_send_dacs(void);
-void mmio_getdevs(char *indevlist, int *nindevs,
-    char *outdevlist, int *noutdevs, int *canmulti, 
-        int maxndev, int devdescsize);
-
-void sys_listmididevs(void);
-void sys_set_midi_api(int whichapi);
-void sys_set_audio_api(int whichapi);
-void sys_get_audio_apis(char *buf);
-extern int sys_audioapi;
-void sys_set_audio_state(int onoff);
-
-/* API dependent audio flags and settings */
-void oss_set32bit( void);
-void linux_alsa_devname(char *devname);
-
-void sys_get_audio_params(
-    int *pnaudioindev, int *paudioindev, int *chindev,
-    int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
-    int *prate, int *padvance, int *callback);
-void sys_save_audio_params(
-    int naudioindev, int *audioindev, int *chindev,
-    int naudiooutdev, int *audiooutdev, int *choutdev,
-    int rate, int advance, int callback);
-
-/* s_file.c */
-
-typedef void (*t_printhook)(const char *s);
-extern t_printhook sys_printhook;  /* set this to override printing */
-extern int sys_printtostderr;
-extern int sys_k12_mode;
-
-/* jsarlo { */
-
-EXTERN double sys_time;
-EXTERN double sys_time_per_dsp_tick;
-EXTERN int sys_externalschedlib;
-
-EXTERN t_sample* get_sys_soundout(void ) ;
-EXTERN t_sample* get_sys_soundin(void ) ;
-EXTERN int* get_sys_main_advance(void ) ;
-EXTERN double* get_sys_time_per_dsp_tick(void ) ;
-EXTERN int* get_sys_schedblocksize(void ) ;
-EXTERN double* get_sys_time(void ) ;
-EXTERN t_float* get_sys_dacsr(void ) ;
-EXTERN int* get_sys_sleepgrain(void ) ;
-EXTERN int* get_sys_schedadvance(void ) ;
-
-EXTERN void sys_clearhist(void );
-EXTERN void sys_initmidiqueue(void );
-EXTERN int sys_addhist(int phase);
-EXTERN void sys_setmiditimediff(double inbuftime, double outbuftime);
-EXTERN void sched_tick(double next_sys_time);
-EXTERN void sys_pollmidiqueue(void );
-EXTERN int sys_pollgui(void );
-EXTERN void sys_setchsr(int chin, int chout, int sr);
-
-EXTERN void inmidi_noteon(int portno, int channel, int pitch, int velo);
-EXTERN void inmidi_controlchange(int portno,
-                                 int channel,
-                                 int ctlnumber,
-                                 int value);
-EXTERN void inmidi_programchange(int portno, int channel, int value);
-EXTERN void inmidi_pitchbend(int portno, int channel, int value);
-EXTERN void inmidi_aftertouch(int portno, int channel, int value);
-EXTERN void inmidi_polyaftertouch(int portno,
-                                  int channel,
-                                  int pitch,
-                                  int value);
-/* } jsarlo */
-extern t_widgetbehavior text_widgetbehavior;
-
-/* in x_list.c */
-    /* List element for storage.  Keep an atom and, in case it's a pointer,
-        an associated 'gpointer' to protect against stale pointers. */
-typedef struct _listelem
-{
-    t_atom l_a;
-    t_gpointer l_p;
-} t_listelem;
-
-struct _alist
-{
-    t_pd l_pd;          /* object to point inlets to */
-    int l_n;            /* number of items */
-    int l_npointer;     /* number of pointers */
-    t_listelem *l_vec;  /* pointer to items */
-};
-
-#ifndef t_alist
-#define t_alist struct _alist
-#endif
-
-#if 0 /* probably won't use this version... */
-#ifdef HAVE_ALLOCA
-#define LIST_ALLOCA(x, n) ( \
-    (x).l_n = (n), \
-    (x).l_vec = (t_listelem *)((n) < LIST_NGETBYTE ?  \
-        alloca((n) * sizeof(t_listelem)) : getbytes((n) * sizeof(t_listelem))))     \
-#define LIST_FREEA(x) ( \
-    ((x).l_n < LIST_NGETBYTE ||
-        (freebytes((x).l_vec, (x).l_n * sizeof(t_listelem)), 0)))
-
-#else
-#define LIST_ALLOCA(x, n) ( \
-    (x).l_n = (n), \
-    (x).l_vec = (t_listelem *)getbytes((n) * sizeof(t_listelem))) 
-#define LIST_FREEA(x) (freebytes((x).l_vec, (x).l_n * sizeof(t_listelem)))
-#endif
-#endif
-
-#if HAVE_ALLOCA
-#define XL_ATOMS_ALLOCA(x, n) ((x) = (t_atom *)((n) < LIST_NGETBYTE ?  \
-        alloca((n) * sizeof(t_atom)) : getbytes((n) * sizeof(t_atom))))
-#define XL_ATOMS_FREEA(x, n) ( \
-    ((n) < LIST_NGETBYTE || (freebytes((x), (n) * sizeof(t_atom)), 0)))
-#else
-#define XL_ATOMS_ALLOCA(x, n) ((x) = (t_atom *)getbytes((n) * sizeof(t_atom)))
-#define XL_ATOMS_FREEA(x, n) (freebytes((x), (n) * sizeof(t_atom)))
-#endif
-
-EXTERN void atoms_copy(int argc, t_atom *from, t_atom *to);
-EXTERN t_class *alist_class;
-EXTERN void alist_init(t_alist *x);
-EXTERN void alist_clear(t_alist *x);
-EXTERN void alist_list(t_alist *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void alist_anything(t_alist *x, t_symbol *s, int argc, t_atom *argv);
-EXTERN void alist_toatoms(t_alist *x, t_atom *to);
-EXTERN void alist_clone(t_alist *x, t_alist *y);
-
-#endif /* __s_stuff_h_ */
diff --git a/externals/build/include/t_tk.h b/externals/build/include/t_tk.h
deleted file mode 100644
index a6943679c23c5ca35811bf9651e1c8fe53963833..0000000000000000000000000000000000000000
--- a/externals/build/include/t_tk.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-void pdgui_vmess(char *fmt, ...);
-void pdgui_mess(char *s);
-
-void pdgui_evalfile(char *s);
-
-#define GUISTRING 1000
diff --git a/externals/iem16/src/tab16read.d.16832 b/externals/iem16/src/tab16read.d.16832
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/externals/iem16/src/tab16read~.d.6324 b/externals/iem16/src/tab16read~.d.6324
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000